Inscription / Connexion Nouveau Sujet
Niveau autre
Partager :

Informatique et récurrence ...

Posté par
lyonnais
09-07-08 à 15:58

Bonjour à tous

J'essaie de me mettre à l'informatique (enfin plus précisement à la programmation). Je vous met l'énoncé.

Citation :
Soit A_0\in M_n(\bb{R)

On construit par récurrence :

\Large{A_k = A_0.(A_{k-1}-\frac{1}{k}tr(A_{k-1}).I_n)

Ecrire un algorithme permettant de calculer A60


Voila, j'ai vraiment besoin de votre aide. Ca sent la récursivité, mais je ne sais pas comment ça marche.
Sinon, j'utilise Mathématica, donc si vous codez en autre chose (et il y a des chances), serait-il possible de mettre l'algorithme en français ?

Merci d'avance

Posté par
apaugam
re : Informatique et récurrence ... 09-07-08 à 16:17

initialisation
A0:=une matrice concrète donnée
A:=A0
boucle
for i from 1 to 60 do
A:=A0.(A-\frac{1}{k}tr(A)I)
fin de boucle
A_{60}=A qd la boucle a touné 60 fois

il reste juste à vérifier la syntaxe  de Mathématica pour les produits de matrice et pour la trace et aussi pour la boucle. Il y a peut etre une marque de fin de boucle

Posté par
infophile
re : Informatique et récurrence ... 09-07-08 à 16:20

Bonjour

Dans l'affectation de A le k est à changer.

Sauf erreur.

Posté par
apaugam
re : Informatique et récurrence ... 09-07-08 à 16:30

Oui bien sur c'est i (celui de la boucle for i from 1 to 60 do) qu'il faut mettre a la place de k

Posté par
lyonnais
re : Informatique et récurrence ... 09-07-08 à 16:30

J'essai tout de suite, merci de ton aide

(Salut Kevin)

Posté par
lyonnais
re : Informatique et récurrence ... 09-07-08 à 16:41

J'ai toujours un problème.

Mathématica m'affiche "récursion limite" même pour le calcul de A[4].

J'ai du me tromper quelque part ...

Posté par
lyonnais
re : Informatique et récurrence ... 09-07-08 à 16:52

Wahouu j'ai réussi !!

Posté par
lyonnais
re : Informatique et récurrence ... 09-07-08 à 16:56

En fait j'ai utilisé une autre méthode en reprenant mes cours de sup.

Je définis A[0] et une fonction que je nomme puiss de M et de k

Si n est négatif ou nul je renvoi A[0]

Sinon je renvoi A[0].(puiss[M,n-1]-(1/n).Tr[puiss[M,n-1])

Et ça à l'air de marcher, super rapide en plus

Merci pour votre aide

Posté par
lyonnais
re : Informatique et récurrence ... 09-07-08 à 17:02

D'ailleurs si je ne me trompe pas, la suite de matrice converge super vite vers 0.

Si jamais quelqu'un y voit une explication !

Posté par
tealc
re : Informatique et récurrence ... 09-07-08 à 21:27

Salut,

dans le même genre, tu as

4$A_i = AB_{i-1}-\frac{tr(AB_{i-1})}{i}I_n

avec B_0 = I_n

qui permet de calculer "simplement" le polynome caractéristique de A, ainsi que le determinant

Posté par
lyonnais
re : Informatique et récurrence ... 09-07-08 à 21:37

Salut tealc >

Si tu as le temps, tu pourais m'en dire plus sur ce "simplement" ? Ca m'intéresse mais je ne vois pas comment faire !

A bientôt

Posté par
tealc
re : Informatique et récurrence ... 09-07-08 à 21:42

On peut montrer que si les B_i sont définis comme précédemment, alors

4$Poca_A(X) = (-1)^n\left(X^n -tr(AB_0)X^{n-1} - ... - \frac{tr(AB_{n-1})}{n}\right)  et ainsi

4$det A = (-1)^{n+1} \frac{tr(AB_{n-1})}{n}

Alors quand je dis "simple" ça nécessite quand même de calculer les B_i pour i entre 0 et n, mais ensuite, on n'a qu'une "trace" à faire ...

Pour plus d'info, recherche l'algorithme de Fadéev

Posté par
lyonnais
re : Informatique et récurrence ... 09-07-08 à 22:16

Ok merci je vais regarder ça

Posté par
otto
re : Informatique et récurrence ... 09-07-08 à 23:37

Allo,
le fait que tu aies une formule de récurrence te permet de résoudre simplement ton problème non ?

algo(k)
Si k<0 erreur
si k=0 tu sors A0
sinon tu sors
A0(algo(k-1)-1/k.trace(algo(k-1)).In)
end

un truc du genre ne te convient pas ?

Posté par
lyonnais
re : Informatique et récurrence ... 09-07-08 à 23:53

Bonsoir otto

Merci de ta réponse. C'est la solution que j'ai retenu ( cf mon message de 16:56 ).

Bonne soirée

Posté par
otto
re : Informatique et récurrence ... 10-07-08 à 04:39

Ok j'avais lu ca mais je trouvais ca un peu plus bizarre parce que je ne comprenais pas pourquoi M était en parametre ni ce que c'était d'ailleurs ...

Posté par
lyonnais
re : Informatique et récurrence ... 10-07-08 à 09:51

Oui, maintenant que je relis, j'ai mal recopié mon truc. Je voulais mettre :

Je nomme une fonction puiss de M et de n

Si n est négatif ou nul je renvoi M

Sinon je renvoi M.(puiss[M,n-1]-(1/n).Tr[puiss[M,n-1]I)

end

En fait, M correspond à A[0]

Merci encore



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1675 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !