Rechercher : dans
Par :

[Matlab] Inversion matrice complexe 39x39

Dernière réponse le 25 aoû 2009 à 13:57:02 matbator, le 28 mai 2009 à 18:59:38 
 Signaler ce message aux modérateurs

Bonjour,

J'ai un problème avec une inversion de matrice sous matlab. En fait, je résous un système d'équation linéaires par cette simple opération :

Vect_RDS = inv(Mat_parametres)*Vect_I0;

avec Mat_parametres : matrice 39x39 complexe
et Vect_I0 : vecteur 39 lignes complexe.

Malheureusement, le résultat de cette opération n'est pas exact. Parfois, j'ai l'erreur suivante :

Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 4.565062e-18

Et quand je fais le produit :

inv(Mat_parametres)*Mat_parametres;

La matrice résultante n'est la matrice identité ! Matlab semble donc battu sur ce coup.

Quelqu'un connaitrait il un moyen d'inverser une matrice lourde et de type complexe sous matlab ?

Je n'sais pas si ça parle à quelqu'un ? Mais si oui, je serais vraiment heureux d'avoir une piste pour me débloquer.

Configuration: Windows XP
Firefox 3.0.10

Meilleures réponses pour « [Matlab] Inversion matrice complexe 39x39 » dans :
Manipulations élémentaires des tableaux sous MatLab VoirSommaire I. Stockage des tableaux II. L'indexation linéaire II.1. Accéder à un élément d'un tableau en utilisant l'indexation linéaire II.2. Passer d'une indexation à l'autre II.2.1. La fonction ind2sub II.2.2. La fonction sub2ind III. La...
Concaténer les vecteurs ou les matrices sous Matlab VoirL'opération de concaténation des variables de Matlab consiste à regrouper ces variables dans une seule (vecteur ou matrice). Exemple : |2 3 4| X= |1 2 5| |0 2 7| Avec : |9 6 8| Y= |5 6 2| |3 2 1| Donne...
Représentation des courbes sous Matlab VoirLa fonction plot permet essentiellement de tracer des courbes sous Matlab. Dans cette astuce, nous allons essayer de détailler le fonctionnement de cette commande. Simple utilisation Vecteur Matrice Vecteur en fonction d'un autre Autres...
Traitement d'images VoirIntroduction au traitement d'images On désigne par traitement d'images numériques l'ensemble des techniques permettant de modifier une image numérique dans le but de l'améliorer ou d'en extraire des informations. Histogramme Un histogramme est...

1

Fee Fay, le 31 mai 2009 à 03:03:10

Bonsoir mon ami !

Si ta matrice est mal conditionnée ou très proche d'une matrice singulière, il n'y a aucun moyen de donner ta matrice telle qu'elle est à Matlab pour qu'il l'inverse.

Les possibilités qui me viennent à l'esprit sont :

1) Utiliser une méthode itérative pour la résolution comme la méthode de Gauss-Seidel, peut-être que les résultats seront meilleurs s'il ne s'agit que d'un problème de conditionnement, mais tu auras certainement besoin d'un nombre important d'itérations pour arriver à la solution.
Tu pourras trouver un programme pour cette méthode sur cette page : http://matlabdb.mathematik.uni-stuttgart.de/download.jsp?MC_ID=3&MP_ID=406

2) Utiliser un préconditionneur si le problème est uniquement un problème de conditionnement de ta matrice

3) Si le problème que tu essaies de résoudre correspond à un problème inverse, il faut savoir qu'en général, les problèmes inverses ne sont pas des problèmes bien posés au sens de Hadamard (ils sont donc mal posés, jolie lapalissade...) et il est nécessaire de régulariser ces problèmes, la méthode de régularisation la plus utilisée étant selon moi la régularisation de Tychonoff. Une méthode possible de détermination du(des) paramètre(s) de régularisation est le Morozov Discrepancy Principle.

Je te souhaite une bien bonne nuit ! Tous les animaux criaient bien haut
Qu’il était le crapaud le plus beau, quand il jouait du banjo

Répondre à Fee Fay

2

 qouerty, le 25 aoû 2009 à 13:57:02

Bonjour

j'ai le même problème que vous avec des matrices 100*100. Avez vous réussi à resoudre votre problème de matrices singulières. Si oui comment???

Merci d'avance pour votrre réponse

Répondre à qouerty
Collection CommentÇaMarche.net