pfffffff je comprend pas poukoi . [maple] - Programmation
Marsh Posté le 06-05-2002 à 17:40:04
Est-ce que tu pourrais m'expliquer ta méthode (en 2 mots...)
A vue de nez je dirais comme ça que
res:=[`k`,`uk`,`uk+1/uk`],[0,x0,ukp(1)[1]/x0[1]];
me parait louche...
Marsh Posté le 06-05-2002 à 21:22:18
nan c bon la dessus y'a pas de pb (comme ca ca empeche l'evaluation)
dc la methode :
A: une matrice U0 un vecteur
uk=A^k*U0
uk+1=A^(k+1)*U0
r=uk+1[1]/uk[1] (1ere coord des vecteurs)
tant que r est superieur a eps (passe en param) alors on augment k de 1
et a chaque fois (pour pouvoir avoir un bo tableau recapitulatif) j'ajoute une liste au resultat (res:=res,[k,uk,r])
Marsh Posté le 06-05-2002 à 17:07:46
arggg j'en ai marrrrrrrrrrrrrrrrrrrreeeeeee, soit ca plante soit ca n'evalue pas uk...
qq'un sait pourqUOI ,
(la fonction permettra de trouver le vecteur propre par la methode des puissances)
A:=matrix([[1,2],[3,4]]);u0:=[1,1];
[1 2]
A := [ ]
[3 4]
u0 := [1, 1]
> puiss := proc(M,x0,eps)
> local uk,ukp,r,anc,res,k,i;
> uk:=k->evalm(M^k&*x0);
> ukp:=k->evalm(M^(k+1)&*x0);
> r:=k->ukp(k)[1]/uk(k)[1];
> res:=[`k`,`uk`,`uk+1/uk`],[0,x0,ukp(1)[1]/x0[1]];
> k:=1;
> while abs(r(k)-r(k+1))>eps do
> k:=k+1;
> od;
> res:=res,seq([i,uk(i),r(i)],i=1..k);
> array([res]);
> end;