logo

Informatique et récurrence ...


autreInformatique et récurrence ...

#msg1931968 Posté le 09-07-08 à 15:58
Posté par Profillyonnais lyonnais

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
re : Informatique et récurrence ...#msg1931980 Posté le 09-07-08 à 16:17
Posté par Profilapaugam apaugam

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
re : Informatique et récurrence ...#msg1931982 Posté le 09-07-08 à 16:20
Posté par Profilinfophile infophile

Bonjour

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

Sauf erreur.
re : Informatique et récurrence ...#msg1931985 Posté le 09-07-08 à 16:30
Posté par Profilapaugam apaugam

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
re : Informatique et récurrence ...#msg1931986 Posté le 09-07-08 à 16:30
Posté par Profillyonnais lyonnais

J'essai tout de suite, merci de ton aide

(Salut Kevin)
re : Informatique et récurrence ...#msg1931990 Posté le 09-07-08 à 16:41
Posté par Profillyonnais lyonnais

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 ...
re : Informatique et récurrence ...#msg1931992 Posté le 09-07-08 à 16:52
Posté par Profillyonnais lyonnais

Wahouu j'ai réussi !!
re : Informatique et récurrence ...#msg1931994 Posté le 09-07-08 à 16:56
Posté par Profillyonnais lyonnais

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
re : Informatique et récurrence ...#msg1931997 Posté le 09-07-08 à 17:02
Posté par Profillyonnais lyonnais

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 !
re : Informatique et récurrence ...#msg1932122 Posté le 09-07-08 à 21:27
Posté par Profiltealc tealc

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
re : Informatique et récurrence ...#msg1932128 Posté le 09-07-08 à 21:37
Posté par Profillyonnais lyonnais

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
re : Informatique et récurrence ...#msg1932130 Posté le 09-07-08 à 21:42
Posté par Profiltealc tealc

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
re : Informatique et récurrence ...#msg1932140 Posté le 09-07-08 à 22:16
Posté par Profillyonnais lyonnais

Ok merci je vais regarder ça
re : Informatique et récurrence ...#msg1932195 Posté le 09-07-08 à 23:37
Posté par Profilotto otto

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 ?
re : Informatique et récurrence ...#msg1932206 Posté le 09-07-08 à 23:53
Posté par Profillyonnais lyonnais

Bonsoir otto

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

Bonne soirée
re : Informatique et récurrence ...#msg1932258 Posté le 10-07-08 à 04:39
Posté par Profilotto otto

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 ...
re : Informatique et récurrence ...#msg1932269 Posté le 10-07-08 à 09:51
Posté par Profillyonnais lyonnais

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

Répondre à ce sujet

réservé Seuls les membres peuvent poster sur le forum !

Vous devez être connecté pour poster
attention Un modérateur est susceptible de supprimer toute contribution qui ne serait pas en relation avec le thème de discussion abordé, la ligne éditoriale du site, ou qui serait contraire à la loi.

  • Ce topic

    imprimer Imprimer
    réduire la tailleRéduire   /   agrandir la tailleAgrandir

    Pour plus d'options, connection connectez vous !
  • Fiches de maths

    * algèbre en post-bac
    16 fiches de mathématiques sur "algèbre" en post-bac disponibles.


cours particuliers - cours de maths haut de pagehaut Retrouvez cette page sur ilemaths l'île des mathématiques
© Tom_Pascal & Océane 2008