si je ne veux qu'un élément de la matrice inverse, existe-t-il un algorithme rapide?

9

J'utilise Mathematica pour résoudre des problèmes. J'ai une question sur l'inverse de la matrice.

si je ne veux qu'un seul élément de la matrice inverse, existe-t-il un algorithme plus rapide que d'utiliser Inversepour calculer la matrice inverse entière et extraire l'élément que je veux?

user15964
la source
Le résumé de cet article dit qu'ils peuvent calculer la diagonale de la matrice inverse dans , mais je ne sais pas s'il y a quelque chose pour une entrée arbitraire. O(n32)
G. Bach
Le problème sous-jacent ici peut concerner davantage les mathématiques que l' informatique .
Dukeling
1
Voici quelque chose sur plus que la diagonale pour les matrices clairsemées, et voici quelque chose sur un algorithme parallèle pour les matrices clairsemées structurées.
G. Bach
@ G.Bach merci pour vos informations
user15964
2
@ G.Bach Beaucoup de mes réponses sont comme ça. Utiliser Google efficacement n'est pas anodin. Si l'information est utile, elle répond à la question.
Yuval Filmus

Réponses:

1

Je n'ai pas vu exactement cela dans Mathematica mais je pense que pouvoir résoudre un ensemble d'équations pour une seule inconnue peut être pris en charge.

Le moyen direct serait bien sûr de mettre en œuvre les algorithmes matriciels inverses et de les faire s'arrêter lorsque l'élément particulier est déterminé. Il serait probablement intéressant de voir quelles optimisations vous pouvez avoir pour chaque algorithme si l'objectif est d'obtenir un seul élément.

Mais selon le premier paragraphe, une idée pourrait être d'exprimer votre matrice inverse en tant qu'inconnues dans le système d'équations, puis d'essayer de résoudre uniquement pour l'inconnu dont vous avez besoin (car la résolution de l'équation définie pour une seule inconnue devrait être prise en charge). Si vous obtenez une meilleure mémoire et de meilleures performances CPU, alors il peut être sûr de dire que Mathematica n'a pas réellement résolu toute l'équation mais a juste fait ses optimisations pour déterminer uniquement votre inconnu. Bien sûr, vous pouvez obtenir de moins bonnes performances car vous n'utilisez pas directement des algorithmes inverses. Si vous décidez d'essayer, faites-nous savoir si cela a fonctionné!

user3134164
la source