Considérons le problème de la valeur limite suivante:programme Matlab pour la méthode des différences finies pour y « » + e^y = 0
y'' + e^y = 0 i.e. y(0) = y(1) = 0.
Je suis curieux de savoir comment Matlab résoudra la méthode des différences finies pour ce problème particulier. Je sais que si nous avons une EDO linéaire, par ex. y'' + (e^x)y = 0
, avec les mêmes conditions aux limites, alors le programme est assez simple. Disons que nous utilisons la partition de l'intervalle [0,1] dans 20 sous-intervalles égaux, le code suivant fonctionnera:
N = 19;
h = 1/N;
x = linspace(0, 1, N+1)';
A(1,1) = 1;
F(1) = 0;
for k=2:N
A(k,k-1) = -1/h^2;
A(k,k) = 2/h^2+exp(x(k));
A(k,k+1) = -1/h^2;
F(k) = 0;
end
A(N+1, N+1)=1;
F(N+1) = 0;
U = A\F';
Cependant, il semble que ma question est très différent de cet exemple simple, parce que nous traitent de systèmes d'équations non linéaires. Comment devrions-nous formuler le code dans ce cas?