Ecrire un algorithme sur matlab

Fermé
tsarsafin - 25 nov. 2007 à 14:26
 danny - 11 avril 2008 à 18:10
Bonjour,jai besoin daide si kelkun a la solution sa serai gentil de me lenvoyer sur mon courier maratsafin-46@hotmail.com sé important

matrice A= 2 -1 0 0 b= 1
-1 2 -1 0 0
0 -1 2 -1 0
0 0 -1 2 1
1-calcule le conditionement de de A
2-ecrire un programe sous matlab pour la resolution de A=b avec la methode du gradient conjugué
-initialisation :
itemax; eps=10puissance-7;x=0;r=b-a*x;d=r;it=0;z=dot(r,r)
-iteration:
tant que norm(r) > eps & it< itemax faire
alfa = z/ dot(d,a*d);
x=x+alfa*d;
r= r-alpha*d;
z1= dot(r,r);
beta = z1/z;
d=r+beta*d;
z = z1;
it = it + 1;
fin de tant que
impression des resultats , conclusion
s'il vous plait je sai po vrement comment faire pour resoudre cette exercice enfait chui kun debutant en matlab jespere ke vous pourer maider si vous avez la solution envoyez la moi sur mon msn :maratsafin-46@hotmail.com merci davance
stp jen ai besoin pour cette soirée

1 réponse

close all;
clear all;
% Cette fonction est adaptée à l'étude d'une forme quadratique de la forme
% 1/2*x*A*x+ bx-c. La différentielle en x s'exprime Ax-b;
A = [[2,-1,2];[-1,2,2];[2,2,-1]];
b=[1;3;5];
% n est tel que A de taille n²
n=3;
x1 = [24;-120;14];
phi1= A*x1-b;
muu=-phi1;
x2=x1-((phi1'*phi1)/(phi1'*A*phi1)*phi1);
phi2= (eye(n,n) - ((phi1'*phi1*A)/(phi1'*A*phi1)))*phi1;
k=2;
x2
while 1
x1=x2;
muu=-phi2+((phi2'*phi2)/(phi1'*phi1))*muu;
lambda=(phi2'*phi2)/(muu'*A*muu);
x2=x1+lambda*muu;
phi1=phi2;
phi2=phi1+(lambda*A*muu);
test = norm(x2-x1);
if test < 0.001;
break;
else
x2
end;
end;
8