rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Calcul d'une matrice inverse en C++

rif59, le samedi 21 juin 2008 à 02:08:18
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
Répondre à rif59  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
d0o0b, le samedi 21 juin 2008 à 02:45:00
Petite remarque : tu appelles la fonction mat_inv mais elle ne te retourne rien, tous les calculs sont effectués sur les variables locales Mat et matinver, donc pas étonnant que ça marche pas en sortie, mat1 n'est jamais modifiée...
Répondre à d0o0b

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
rif59, le samedi 21 juin 2008 à 13:43:38
merci;
si je mis mat_inver(mat,mat1); sa marche pa aussi;
Répondre à rif59

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
d0o0b, le samedi 21 juin 2008 à 13:45:39
Ben normal t'as rien changé au problème posé :/
Répondre à d0o0b

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
rif59, le samedi 21 juin 2008 à 13:49:14
en fait je suis debutant en C++, et je voi pas koi changer; tu peut me dire k'est ce ke je doit changer; et est ke la structure est bonne ??
Répondre à rif59

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
d0o0b, le samedi 21 juin 2008 à 13:54:18
Pas besoin d'avoir des connaissances en C++ pour comprendre : tu appelles ta fonction mat_inv qui va inverser les matrices passées en arguments, mais tous les traitements sont faits localement ; quand tu reviens dans la fonction main(), mat1 n'a pas été modifiée, donc l'inverse n'a pas été calculée.
Avant de te lancer dans la programmation copiée/collée, lis des cours de C++, au moins les bases, c'est le minimum : http://casteyde.christian.free.fr/cpp/cours/online/book1.htm­l
Répondre à d0o0b

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 rif59, le dimanche 22 juin 2008 à 14:01:15
est ce ke quelqu'un d'autre a une reponse plus claire que celles de doob.merci d'avance.
Répondre à rif59
C++, fichier xls et matrices (Résolu)Salut tout le monde, Je suis un débutant en C++ , je voudrais vous poser une question comment je peu lire un fichier xls à partir de C++. J'ai une question de plus, est ce qu'il y a un bon cours de C++ qui traite les matrices, le calcul... www.commentcamarche.net/forum/affich-3646829-c-fichier-xls-et-matrices
Vidéo en "négatif" couleur inversée dans (Résolu)Bonjour, Lorsque je regarde une vidéo avec Windows Media, elle défile en "négatif", les couleurs sont inversées. Ceci seulement sur un de mes deux PC, alors que sur l'autre elle est tout à fait normale. Pouvez vous m'indiquer s'il y a... www.commentcamarche.net/forum/affich-3624908-video-en-negatif-couleur-inversee-dans
Pb Carte Mére son Inverse (Résolu)Bonjour, Il y a de sa 3mois j'investi dans un nouvelle ordi et notamment dans une Carte Mére K9N2 SLi 2-F avec une carte son intégré pendant 2mois pas de probleme un du jour en lendemain le son c'est inverse ce qui est assez chiant dans... www.commentcamarche.net/forum/affich-6947818-pb-carte-mere-son-inverse
Rotation écran / Affichage inversé (90° ou 180°)Si votre écran est inversé (rotation d'angle 90° voire 180°), ceci est dû : soit aux propriétés de votre carte graphique soit à une mauvaise manipulation sur le clavier Vérifier les propriétés de la carte graphique Cliquer avec le bouton... www.commentcamarche.net/faq/sujet-5228-rotation-ecran-affichage-inverse-90-ou-180
Inverser le texte dans Word (effet miroir)S'il est possible d'effectuer une rotation du texte avec Word (icône zone de texte, puis format / orientation du texte), celui-ci ne permet en revanche pas de faire des opérations de symétrie. La solution consiste donc à insérer une image contenant... www.commentcamarche.net/faq/sujet-5630-inverser-le-texte-dans-word-effet-miroir
Google - Fonction calculatriceGoogle dispose d'une calculatrice intégrée. Pour l'utiliser, il suffit simplemement d'entrer une expression dans le champ de saisie et de lancer la recherche ! Cette fonction est aussi accessible à partir de la barre Google ou des navigateurs... www.commentcamarche.net/faq/sujet-814-google-fonction-calculatrice
Curiosité? L inversé (Résolu)bonjour, Quand j'utilise le bloc note mon L minuscule devient un L majuscule inversé c'est à dire tête en bas ou un T à qui il manque la branche droite est ce signe qu'il y a un virus? Autre chose ?pouvez vous me dire ce que celà... www.commentcamarche.net/forum/affich-3436144-curiosite-l-inverse
Autorisation fichier avec une commande ms dos (Résolu)Bonjour, voila jai besoin de faire un petit "porgramme" en bat le but de celui ci etant de bloquer lecriture ou la modification(et pourquoi lacces) des fichiers presents sur une cle usb. et apres faire le programme inverse, cest a dire quil autorise... www.commentcamarche.net/forum/affich-3685975-autorisation-fichier-avec-une-commande-ms-dos
Transformation .csv/.xls en perl (Résolu)Bonjour, Il y a quelques temps, j'avais demandé de l'aide sur la conversion d'un fichier .xls en .csv en perl. Et j'avais réussi à faire ma conversion grâce à vous. Maintenant, je dois faire l'inverse, c'est à dire passer... www.commentcamarche.net/forum/affich-4694515-transformation-csv-xls-en-perl
Télécharger MOREFUNC (Macro complémentaire EXCEL)Morefunc est une macro complémentaire proposant 67 nouvelles fonctions de feuille de calcul pour Excel. Ces fonctions sont compatibles avec Excel 95 à 2007. Elles ne sont pas portables sur d'autres plate-formes que Windows, ni sur d'autres... www.commentcamarche.net/telecharger/telecharger-34056283-morefunc-macro-complementaire-excel
Télécharger Ma Calculatrice Windows propose par défaut une calculatrice avec des fonctions dites scientifiques mais tout de même incomplètes. MaCalculatrice est une calculatrice beaucoup plus complète et évoluée. C'est une calculatrice graphique et comprend divers modules... www.commentcamarche.net/telecharger/telecharger-34055817-ma-calculatrice
Télécharger Semagsoft CalculatorWindows propose par défaut une calculatrice qui propose ces défauts et ces inconvénients. Entre autres, cette calculatrice possède deux modes, le mode classique et le mode scientifique. Si vous n'aimez pas trop l'interface de cette calculatrice,... www.commentcamarche.net/telecharger/telecharger-34056424-semagsoft-calculator
Epson DLQ3500DLQ 3500 ,Matricielle, couleur, A4, 360 dpi, Parallel, USB,Vitesse d'impression noir et blanc: ,Vitesse d'impression couleur: ,Connexion:Parallel, USB,Imprimante réseau:Oui (Option),Type d'imprimante:Matricielle,Imprimante couleur,Format... www.commentcamarche.net/guide-achat/epson-dlq3500-97689-fiche-technique
Tally T2265T 2265 ,Matricielle, couleur, A4, 360 dpi, Parallel/Serial,Vitesse d'impression noir et blanc: ,Vitesse d'impression couleur: ,Connexion:Parallel/Serial,Type d'imprimante:Matricielle,Imprimante couleur,Format papier:A4 www.commentcamarche.net/guide-achat/tally-t2265-97719-fiche-technique
Toutes les réponses pour « calcul d'une matrice inverse en C++ »