2009-07-20 7 views
2

J'essaie d'écrire une fonction qui produit une solution unique à un système d'équations sous-représenté (par exemple, la matrice qui décrit le système est plus large que haute). Pour ce faire, j'ai cherché dans la documentation de LAPACK un moyen de réduire en ligne une matrice à sa forme réduite-échelonnée, similaire à la fonction rref() dans les calculatrices Mathematica et TI. Le plus proche, je suis tombé sur http://software.intel.com/en-us/forums/intel-math-kernel-library/topic/53107/ ce petit fil. Ce fil, cependant, semble impliquer que prendre simplement la matrice triangulaire supérieure «U» (et diviser chaque rangée par la diagonale) est la même que la forme échelonnée réduite d'une matrice, ce que je ne crois pas être le cas. Je pourrais coder rref() moi-même, mais je ne crois pas que je pourrais atteindre la performance pour laquelle LAPACK est célèbre. 1) Y a-t-il une meilleure façon d'obtenir simplement une solution spécifique à un système sous-représenté?
2) Si ce n'est pas le cas, est-ce que LAPACK peut réduire une matrice en ligne?Réduction de rang de Lapack

Merci!

+0

La matrice U dans une décomposition LU est une 'ref'. La division de chaque ligne par l'entrée principale convertira un 'ref' en un' rref'. – Sharpie

Répondre

3

Un procédé souvent utilisé pour cela est la solution la moins carré, voir Lapack de sgelsx

+0

J'ai essayé ceci et cela semble fonctionner. Merci. – Litherum

Questions connexes