Bonsoir,
Je suis en train de reprendre un peu avec matlab, et la fonction det() ne permet de calculer le déterminant que pour des matrices carrées.
Savez-vous comment calculer avec Matlab le déterminant d'une matrice non carrée ?
Merci,
Rouliane
Bonsoir,
Je suis en train de reprendre un peu avec matlab, et la fonction det() ne permet de calculer le déterminant que pour des matrices carrées.
Savez-vous comment calculer avec Matlab le déterminant d'une matrice non carrée ?
Merci,
Rouliane
Je ne sais pas calculer le déterminant d'une matrice non carrée...
A quoi ça peut servir ??
On peut savoir ce que tu essaies de faire ?
Surtout que ce n'est pas définie Cf iciEnvoyé par progfou
Effectivement, ça n'est pas défini, j'suis vraiment bête
Ma remarque était ironique
Le but était de lui faire dire que ça n'existe pas.
pas tout à fait d'accord avec vous:
voici ma référence:En effet la fonction DET est seulement capable de determiner le déterminant d'une matice carrée.[1] Press, W.H., Teukolsky, S.A., Vetterling, W.T., and B.P. Flannery, Numerical Recipes in C, Cambridge University Press, 1992.
The determinant is defined only for square matrices. However, the determinant of an LU-decomposed matrix of any size as defined in [1] is the product of the diagonal elements of the upper triangular matrix "U".
Pour trouver le déterminant d'une matrice non carrée
il faut faire une factorisation LU pour obtenir "L" et "U".
Le déterminant est alors le produit des éléments de la diagonale de U
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 [L,U] = lu(A); d = prod(diag(U));
Merci pour ces précisions.
Je ne sais même pas ce qu'est une décomposition LU, je vais aller voir ça de suite
Sinon, savez-vous comment on calcule l'inverse d'une matrice non carrée ? ( Pour moi ça n'existe pas, mais bon, on ne apprend tous les jours )
oui c'est possible dans ce cas là au lieu d'utilser inv tu utilises l'opérateur slash comme indiqué dans la note technique ci dessous:
http://www.mathworks.com/support/sol...lution=1-19BE2
Merci.
Par contre, apparemment l'opérateur '\' s'utilise dans le cadre de la résolution de Ax=b.
Mais par exemple, pour une matrice A carrée, si je tappe B=inv(A), Matlab me sort la matrice B, qui est l'inverse de A.
Est-il possible de la même façon d'avoir l'inverse du matrice non carrée ? ( de telle façon que je puisse avoir à la fin la matrice inverse écrite )
J'ai essayé d'écrire B=A.\ ou A\ mais ça ne fonctionne...
EDIT : j'ai fait avec B=A\eye(4) et ça semble marcher.
Il y a plusieurs choses que je ne comprends pas dans tout ce que vous dites
1) déterminant = produit des valeurs propres. Supposons que la matrice A soit diagonlisable, alors détermiant(A)=produit des coefficients sur la diagonale principale.
Si la matrice n'est pas carré, elle n'est pas inversible ! et le déterminant d'une matrice non carrée n'existe pas !
2) Si A est inversible (et donc carrée) alors l'inverse de A s'écrit A^-1 et A*A^-1 = identité.
Mais, A doit être carrée. donc l'inverse d'une matrice non carrée n'existe pas !
Calculer l'inverse d'une matrice revient à résoudre un système linéaire. Et pour que ce système ait une unique solution, il faut que le nombre d'équations soit égal au nombre d'inconnues, c'est-à-dire que la matrice doit être carrée !
Avec Matlab, on peut calculer le déterminant et l'inverse de matrices non carrée, j'avais que je n'ai toujours pas compris pourquoi, mais bon
Voici un exemple d'une matrice A non carrée, dont on trouve l'inverse avec Matlab :
De même, avec la décomposition LU, on peut trouver le déterminant de A :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 A = 1 3 2 -5 3 1 -10 0 3 1 0 -2 inv1 = 0.0718 -0.0718 -0.0627 -0.0581 0.1189 0.2145 -0.0856 0.0978 0.1914 -0.1914 0.0875 -0.2730
Code : Sélectionner tout - Visualiser dans une fenêtre à part detA=-13
Etrange, n'est ce pas
Il y a une théorie en math, l'algèbre linéaire, qui dit que seule une matrice carrée peut être inversée et que l'on peut calculer un détermiant d'une matric carrée (cf les endomorphismes).
Ce n'est pas l'inverse, mais la pseudo-inverse de A. Et comment as-tu fait pour calculer l'inverse de A ? j'ai refais ton code, et voici ce que me sors MatlabAvec Matlab, on peut calculer le déterminant et l'inverse de matrices non carrée, j'avais que je n'ai toujours pas compris pourquoi, mais bon
Voici un exemple d'une matrice A non carrée, dont on trouve l'inverse avec Matlab :
ça confirme bien que A doit être carrée pour calculer son inverse !??? Error using ==> inv
Matrix must be square.
si det(A) != 0 alors A est diagonalisable et inversible. Or A n'est pas carré donc pas diagonaliable. Et elle n'est pas inversable (cf mon post précédent)De même, avec la décomposition LU, on peut trouver le déterminant de A :
detA=-13
Ton résultat est faux !
N'utilises pas un logiciel comme une boîte noire. Quels sont les algos de matlab ?
Quant à la décomposition LU, une condition nécessaire et suffisante est que A doit etre inversible. En math, il faut se poser deux questions
1) existante de la solution
2) unicité de la solution
A n'est pas inversible donc tu ne peux pas calculer sa décomposition LU et son déterminant. Revois tes cours d'algèbre linéaire (endomorphisme, automorphisme, diagonalisation, trigonalisation, ...)
mais je suis tout à fait d'accord, je le dis moi-même que je ne comprends pas d'où ça sort alors que ça n'existe pas.
Toujours est-il qu'avec Matlab on peut calculer la décomposition LU d'une matrice non carré, après je ne sais pas quel est l'algorithme utilisé.
Faut pas croire que je gobbe tout ce que me raconte Matlab
Et effectivement, c'est bien la pseudo-inverse que Matlab calcule.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager