Bonjour,
je souhaite calculer l'inverse d'une matrice carrée 5x5; j'ai fé un programme en C++, mais ça marche pas, est ke quelqu'un peut corriger cet algorithme. et merci d'avance . voila le programme
#include "stdafx.h"
#include <iostream>
#include <math.h>
using namespace std;
void mat_inver(double Mat[5][5],double matinver[5][5]) {
int i,j;
for (i=0;i<5;i++){
for ( j=0;j<5;j++){
matinver[i][j]=0;
} }
for (i=0;i<5;i++){
for ( int j=0;j<5;j++){
matinver[i][i]=1/Mat[i][i];
if (j!=i) {
matinver[i][j]=-Mat[i][j]/Mat[i][i];
}
for ( int k=0;k<5;k++){
if (k!=i)
{
matinver[k][i]=Mat[k][i]/Mat[i][i];
}
if (j!=i &&k!=i)
{
matinver[k][j]=Mat[k][j]-Mat[i][j]*Mat[k][i]/Mat[i][i];
} } }
for ( int i=0;i<5;i++)
{
for ( int j=0;j<5;j++)
{
Mat[i][j]=matinver[i][j];
}}}}
int main (){
double mat[5][5];double mat1[5][5];
mat[1][1]=3; mat[1][2]=2; mat[1][3]=5; mat[1][4]=1 ; mat[1][5]=7;
mat[2][1]=1; mat[2][2]=4; mat[2][3]=0; mat[2][4]=6 ; mat[2][5]=4;
mat[3][1]=9; mat[3][2]=5; mat[3][3]=8; mat[3][4]=2; mat[3][5]=1;
mat[4][1]=6; mat[4][2]=1; mat[4][3]=3; mat[4][4]=4; mat[4][5]=6;
mat[5][1]=8; mat[5][2]=7; mat[5][3]=10; mat[5][4]=0; mat[5][5]=1;
cout<<mat[1][1]<<" "<<mat[1][2]<<" "<<mat[1][3]<<" "<<mat[1][4]<<" "<<mat[1][5]<<endl;
cout<<mat[2][1]<<" "<<mat[2][2]<<" "<<mat[2][3]<<" "<<mat[2][4]<<" "<<mat[2][5]<<endl;
cout<<mat[3][1]<<" "<<mat[3][2]<<" "<<mat[3][3]<<" "<<mat[3][4]<<" "<<mat[3][5]<<endl;
cout<<mat[4][1]<<" "<<mat[4][2]<<" "<<mat[4][3]<<" "<<mat[4][4]<<" "<<mat[4][5]<<endl;
cout<<mat[5][1]<<" "<<mat[5][2]<<" "<<mat[5][3]<<" "<<mat[5][4]<<" "<<mat[5][5]<<"\n"<<endl;
mat_inver(mat1, mat);
cout<<mat1[1][1]<<" "<<mat1[1][2]<<" "<<mat1[1][3]<<" "<<mat1[1][4]<<" "<<mat1[1][5]<<endl;
cout<<mat1[2][1]<<" "<<mat1[2][2]<<" "<<mat1[2][3]<<" "<<mat1[2][4]<<" "<<mat1[2][5]<<endl;
cout<<mat1[3][1]<<" "<<mat1[3][2]<<" "<<mat1[3][3]<<" "<<mat1[3][4]<<" "<<mat1[3][5]<<endl;
cout<<mat1[4][1]<<" "<<mat1[4][2]<<" "<<mat1[4][3]<<" "<<mat1[4][4]<<" "<<mat1[4][5]<<endl;
cout<<mat1[5][1]<<" "<<mat1[5][2]<<" "<<mat1[5][3]<<" "<<mat1[5][4]<<" "<<mat1[5][5]<<"\n"<<endl;
}
Configuration: Windows XP
Internet Explorer 6.0