J'ai besoin de calculer l'inverse de la matrice et j'ai utilisé la solve
fonction. Bien qu'il fonctionne bien sur les petites matrices, il a solve
tendance à être très lent sur les grandes matrices. Je me demandais s'il existe une autre fonction ou combinaison de fonctions (via SVD, QR, LU ou d'autres fonctions de décomposition) qui peuvent me donner des résultats plus rapides.
r
matrix-decomposition
matrix-inverse
jitendra
la source
la source
solve
méthode fait définitivement mon travail mais je veux que l'algorithme soit plus rapide. Donc, je me demande simplement s'il existe une fonction plus efficace (dans le contexte temporel) pour calculer l'inverse pour une matrice de grande taille.solve
? Bien sûr, en l'absence de structure spéciale, vous ne pouvez pas échapper aux limites de la complexité théorique de l'inversion de matrice générale.Réponses:
Avez-vous essayé ce que le cardinal a suggéré et exploré certaines des méthodes alternatives pour calculer l'inverse? Prenons un exemple spécifique:
solve
chol2inv(chol())
qr.solve()
L'inverse via la décomposition de Choleski est donc environ deux fois plus rapide que
solve
. Il existe bien sûr des moyens encore plus rapides de le faire. Je viens d'explorer quelques-unes des plus évidentes ici. Et comme déjà mentionné dans les commentaires, si la matrice a une structure spéciale, cela peut probablement être exploité pour plus de vitesse.la source
solve
:-)