Méthodes Numériques-TP
Méthodes Numériques-TP
Méthodes Numériques-TP
Ces travaux pratiques étaient une chance pour nous d’assimiler les données
théoriques et développer notre aspect pratique.
Ecrire les codes des trois m´méthodes itératives vues dans le cours avec le Tests
d’arrêt des itérations
Exécution du programme :
On introduit alors le programme qui permet à l’utilisateur d’entrer une matrice de son choix
EXECUTION DU PROGRAMME
k = 1;
while k <= m
err = 0;
for i = 1 : n
s = 0;
for j = 1 : n
s = s-A(i,j)*x1(j);
end
s = w*(s+A(i,n+1))/A(i,i);
if abs(s) > err
err = abs(s);
end
x1(i) = x1(i)+s;
end
EXECUTION DU PROGRAMME
Apres l’exécution pour plusieurs matrices, on constate qu’il se peut que la méthode de Jacobi
converge tandis que la méthode de Gauss Seidel diverge et pour certains exemples en trouve
l’inverse. C’est-à-dire gauss Seidel converge mais la méthode de Jacobi diverge.
Sur des exemples concrets des équations différentielles, on applique les méthodes d’Euler pour
trouver une solution approchée avec une précision demandée.
Tracer sur le même graphique les trois courbes ainsi que la courbe de la fonction exponentielle.
clc, clear
a=0;
b=1;
y0=1;
f = @(x,y) y;
x=0:1/100:1 ;
[x1,y1] = EulerExplicite (a, b, y0, 3, f);
[x2,y2] = EulerExplicite (a, b, y0, 10, f);
[x3,y3] = EulerExplicite (a, b, y0, 50, f);
plot(x1,y1,'+y',x2,y2,'+b',x3,y3,'+r',x,exp(x),'y','LineWidth',2);
legend({'n=3','n=10','n=50','exp'},'Location','northwest');
function [x,y] = EulerExplicite (t0, t, y0, N, f)
h = (t - t0 ) / N;
x = t0:h:t ;
y = zeros (1,N);
y(1) = y0;
for i = 1 : N
y(i+1) = y(i) + h * f(x(i),y(i));
end
end