Comment ecrire un algorithme du calcul de l'inverse d'une matrice

Signaler
Messages postés
3
Date d'inscription
mardi 5 décembre 2006
Statut
Membre
Dernière intervention
6 décembre 2006
-
Messages postés
2
Date d'inscription
mardi 21 avril 2009
Statut
Membre
Dernière intervention
2 mars 2009
-
N'étant pas tres bonne en informatique  , je souhaiterais une aide pour écrire un algorithme sur le calcul de l'inverse d'une matrice ce qui veut dire que l'on travaille sur un tableau de dimension 2

11 réponses

Messages postés
148
Date d'inscription
samedi 4 novembre 2006
Statut
Membre
Dernière intervention
4 décembre 2008

As tu déjà une idée en tête ? Sinon je te conseille de faire un petit tour par le règlement...

Quand je suis là tout va mal  
Messages postés
148
Date d'inscription
samedi 4 novembre 2006
Statut
Membre
Dernière intervention
4 décembre 2008

... Sinon voila un exemple de tableau à deux dimensions à adapter
var Tableau(2,2) : entier  2 colonnes, 2 lignes
var i : entier
Début
   pour i <- 1 a 2 faire
      pour j <- 1 a 2 faire
         Tableau(i,j)<-  Valeur
      finpour
   finpour
fin
Evidement, je ne sais pas non plus quel logiciel tu utilises pour ton algo
Ensuite qu'entends tu par inverse ?
1 2      4 3    
3 4      2 1  un truc comme ça ?
Quand je suis là tout va mal  
Messages postés
475
Date d'inscription
jeudi 19 juin 2003
Statut
Membre
Dernière intervention
3 novembre 2008

On étudie actuellement les matrices en classe.
L'inverse d'une matrice de format 2x2 est relativement facile à calculer.
Soit la matrice A suivante
a b
c d

1) Il faut d'abord calculer son déterminent :  det(A) = a*d - b*c
2) Ensuite, il faut inverser le "d" et le "a"; et changer le signe du "b" et du "c" :
d -b
-c a

3) Finalement, l'inverse est égale à :
1/(det(A)) * | la matrice du numéro 2 |

Et voilà, la mise en forme d'application est très facile.
Il faut juste prendre soin de tester que le déterminent (numéro 1) est différent de zéro

[:D] @++
Messages postés
475
Date d'inscription
jeudi 19 juin 2003
Statut
Membre
Dernière intervention
3 novembre 2008

La classe suivante fait tout ce que tu veux sur les matrices : http://www.csharpfr.com/codes/CLASSE-MATRICE_34171.aspx
Sinon, pour les besoins de la cause, je t'ai fait un petit code qui calcule l'inverse d'une matrice :
using

System;
namespace

InverseMatrice{

class
InverseMatrice2x2{

double[,] matrice2x2 =
new
double[2,2];

double[,] matriceInverse =
new
double[2, 2];

public
double[,] Matrice2x2{

get {
return matrice2x2; }

set { matrice2x2 =
value; CalculerMatriceInverse(); }}

public
double[,] MatriceInverse{

get {
return matriceInverse; }

set { matriceInverse =
value; }}

private
void CalculerMatriceInverse(){
double det matrice2x2[0, 0] * matrice2x2[1, 1] - matrice2x2[0, 1] * matrice2x2[1, 0];matriceInverse[0, 0] matrice2x2[1, 1] / det;

matriceInverse[1, 1] = matrice2x2[0, 0] / det;

matriceInverse[0, 1] = -matrice2x2[0, 1] / det;

matriceInverse[1, 0] = -matrice2x2[1, 0] / det;

}

public
void Print(){

Console.WriteLine(
"Matrice originale : \n-------------------");

Console.WriteLine(
"\t" + matrice2x2[0, 0] +
" | " + matrice2x2[0, 1]);

Console.WriteLine(
"\t" + matrice2x2[1, 0] +
" | " + matrice2x2[1, 1]);

Console.WriteLine(
"Matrice inverse : \n-------------------");

Console.WriteLine(
"\t" + matriceInverse[0, 0] +
" | " + matriceInverse[0, 1]);

Console.WriteLine(
"\t" + matriceInverse[1, 0] +
" | " + matriceInverse[1, 1]);}

}

class
Program{

static
void Main(
string[] args){

InverseMatrice2x2 im =
new
InverseMatrice2x2();

//Matrice originale :

// 1 | 3

// 2 | 4

//La matrice inverse est automatiquement calculéeim.Matrice2x2 =

new
double[,] { { 1, 3 }, { 2, 4 } };

//Afficher les deux matricesim.Print();

}

}

}

[:D] @++
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
16
salut,

méthode Gauss ou de Gauss Jordan :
http://www.freevbcode.com/ShowCode.Asp?ID=6221

ShareVB
Messages postés
3
Date d'inscription
mardi 5 décembre 2006
Statut
Membre
Dernière intervention
6 décembre 2006

je travaille sur le langage VBA
donc je cherche à écrire un algorithme  sur le calcul de l'inverse d'une matrice 2*2 (tableau de dimension 2)
Messages postés
3
Date d'inscription
mardi 5 décembre 2006
Statut
Membre
Dernière intervention
6 décembre 2006

oui , je pense que c'est à peu près cela , je ne suis pas très douée.
Mais il faudrait que je traduise cela en langage VBA et je puisse réussir à ecrire l'algorithme correctement et c'est à cet endroit que j'ai besoin de plus d'aide
merci
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
16
salut,

si c'est une matrice 2x2, il me semble qu'il y a une formule genre, à vérifier :

1/(a*d-b*c)((a c)(b d))

ShareVB
Messages postés
475
Date d'inscription
jeudi 19 juin 2003
Statut
Membre
Dernière intervention
3 novembre 2008

Je pense lui avoir très bien expliquer le calcul d'une matrice inverse (et même donner un code en C#)
Alors, pour l'implémentation en VBA, une petite recherche sur Internet s'impose.

ShareVB >> je pense qu'il y a un problème avec ton équation, regarde celle que j'ai posté un peu plus haut.
[:D] @++
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
16
salut,

oui, c'était de mémoire, et effectivement, ca serait plutot :
1/(a*d-b*c)((d -b)(-c a))

j'aurais du vérifier http://fr.wikipedia.org/wiki/Matrice_inversible avant de dire une co******...dsl...

ShareVB
Messages postés
2
Date d'inscription
mardi 21 avril 2009
Statut
Membre
Dernière intervention
2 mars 2009

salut c Amel j'ai besoin des méthodes de calcul de l'inverse d'une matrice quelconque.