Bonjour,voilà mon problème est assez simple je veux trigonaliser une matrice sauf que mon programme ne fait que le début de la trigonalisation et ne veut pas faire le reste. je m'explique il commence bien en faisant L3-coef(L1) L1 etant la ligne 1. Mais cependant après il ne veut pas soustraire la L3 et la L2 entre elles pour supprimer le coef a(3,2) coef à la ligne 3 et colonne 2. Un exemple simple est:
M=(1 2 3)
(4 5 6)
(7 8 9)
Ainsi on fait L2<-L1-4L2 et L3<-L1-7L2 jusqu'à là le programme marche d'où:
M=(1 2 3)
(0 -3 -6)
(0 -6 -12)
Ensuite il ne veut pas faire L3<-L3-2L2 ce qui me donnerait:
M=(1 2 3)
(0 -3 -6)
(0 0 -12)
Voici mon programme en détail merci de m'expliquer mon erreur et de ne pas me donner un programme tout fait qui trigonalise. C'est en se corrigeant que l'on progresse non en copiant et puis j'ai vu plusieurs programme pour ça et je ne les avais pas compris. Tréve de bavardage.
J'espère que vous pourrez m'aider car ça fait plus de 5 heures que je bosse dessus je suis perséverant mais j'ai mes limites aussi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 double Matrice::tri_mat(Matrice a)//Triangularisation de la matrice {int x=0,y=0,k=0; Matrice G; if(a.get_ligne()==a.get_colonne()) {for(int y=1; y<=a.get_colonne() ; y++) {G.M[1][y]=a.M[1][y]; } for(int x=2; x<=a.get_ligne(); x++) {for(int y=1; y<=a.get_colonne() ; y++) { G.M[x][y]=a.M[x][y]-((a.M[x][1]*a.M[1][y])/a.M[1][1]); } } for(int k=2; k<=(a.get_ligne()-1) ; k++) {for(int x=k+1; x<=a.get_ligne(); x++) for(int y=2; y<=a.get_colonne() ; y++) G.M[x][y]+=-((G.M[x][k]*G.M[k][y])/G.M[k][k]); } for(int x=1; x<=a.get_ligne() ; x++)//Affiche la matrice traingularisé { for(int y=1; y<=a.get_colonne() ; y++) { cout<<G.M[x][y]<<""; } cout<<endl; } } else {cout<<"impossible!!"<<endl; } };![]()
Partager