Puissance d'une matrice en C
Fermé
tudjo
Messages postés
1
Date d'inscription
dimanche 27 janvier 2008
Statut
Membre
Dernière intervention
27 janvier 2008
-
27 janv. 2008 à 23:11
tatou_38 Messages postés 1928 Date d'inscription vendredi 21 avril 2006 Statut Membre Dernière intervention 5 août 2015 - 28 janv. 2008 à 08:50
tatou_38 Messages postés 1928 Date d'inscription vendredi 21 avril 2006 Statut Membre Dernière intervention 5 août 2015 - 28 janv. 2008 à 08:50
A voir également:
- Puissance d'une matrice en C
- Test puissance pc - Guide
- Puissance wifi - Guide
- Entrée en économiser puissance - Forum Ecran
- Vous ne pouvez pas modifier une partie de matrice - Forum Excel
- Diagonale secondaire d'une matrice - Forum C
3 réponses
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
28 janv. 2008 à 02:06
28 janv. 2008 à 02:06
Bonjour,
Concernant ton problème : Je n'ai pas particulièrement bien lu ton code. Mais ce que j'ai compris : tu calcules simplement une puissance de matrice en la multipliant plusieurs fois avec elle-même (il est posssible de beaucoup simplifier ce calcul, mais ça demande un peu de maths ;) ).
Donc ma suggestion est celle-ci : réutilises ta fonction "fois" ! (puisqu'elle marche bien).
(Vérifier que k est une valeur correcte !)
Z = identité( ... );
Pour i = 1 jusqu'a k
faire Z = fois ( Z, A, Z, ...)
Concernant ton problème : Je n'ai pas particulièrement bien lu ton code. Mais ce que j'ai compris : tu calcules simplement une puissance de matrice en la multipliant plusieurs fois avec elle-même (il est posssible de beaucoup simplifier ce calcul, mais ça demande un peu de maths ;) ).
Donc ma suggestion est celle-ci : réutilises ta fonction "fois" ! (puisqu'elle marche bien).
(Vérifier que k est une valeur correcte !)
Z = identité( ... );
Pour i = 1 jusqu'a k
faire Z = fois ( Z, A, Z, ...)
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
28 janv. 2008 à 08:49
28 janv. 2008 à 08:49
salut, m'étonne pas que ça fonctionne pas, tu altèe Z trop tôt et tu le réutilise.
Du coup tu peux pas avoir le bon résultat.
Si tu veux utiliser fois(), il suffit de le déclarer avant puissance.
Sinon, regarde là, un fichier permettant la plupart des opérations avec les matrices :
http://mapage.noos.fr/julien.lamome/prog/matriceV5.h
Du coup tu peux pas avoir le bon résultat.
Si tu veux utiliser fois(), il suffit de le déclarer avant puissance.
Sinon, regarde là, un fichier permettant la plupart des opérations avec les matrices :
http://mapage.noos.fr/julien.lamome/prog/matriceV5.h
tatou_38
Messages postés
1928
Date d'inscription
vendredi 21 avril 2006
Statut
Membre
Dernière intervention
5 août 2015
121
28 janv. 2008 à 08:50
28 janv. 2008 à 08:50
Juste une remarque, en C les tableaux commencent à l'indice 0, aussi tu devrais plutôt faire tes boucles de la façon suivante :
for ( i = 0 ; i < n ; i++ ) { .... }
Car le risque est de déborder de ton tableau au dernier élément, en effet si tu as déclaré un tableau, par ex : int tableau[10] , le dernier élément sera tableau[9] et tu risque fort un crash si tu touches à tanleau[10] !
Sinon je ne me rapelle pas trop le calcul matriciel, mais ton code me parait bizarre.
for ( i = 0 ; i < n ; i++ ) { .... }
Car le risque est de déborder de ton tableau au dernier élément, en effet si tu as déclaré un tableau, par ex : int tableau[10] , le dernier élément sera tableau[9] et tu risque fort un crash si tu touches à tanleau[10] !
Sinon je ne me rapelle pas trop le calcul matriciel, mais ton code me parait bizarre.