Y at - il eu des travaux visant à trouver le nombre minimum d'opérations arithmétiques élémentaires nécessaires pour calculer le déterminant d'un par matrice pour les petites et fixe ? Par exemple, .n n n = 5
14
Y at - il eu des travaux visant à trouver le nombre minimum d'opérations arithmétiques élémentaires nécessaires pour calculer le déterminant d'un par matrice pour les petites et fixe ? Par exemple, .n n n = 5
Réponses:
On sait que le nombre d'opérations arithmétiques nécessaires pour calculer le déterminant d'une matrice est n ω + o ( 1 ) , où ω est la constante de multiplication de la matrice. Voir par exemple ce tableau sur Wikipédia, ainsi que ses notes de bas de page et références. Notez que la complexité asymptotique de l'inversion matricielle est également la même que la multiplication matricielle dans ce même sens.n×n nω+o(1) ω
L'équivalence est assez efficace. En particulier, vous pouvez calculer récursivement le déterminant d'une matrice en travaillant sur des blocs ( n / 2 ) × ( n / 2 ) en utilisant le complément de Schur:n×n (n/2)×(n/2)
Ainsi, vous pouvez calculer un déterminant en calculant deux ( n / 2 ) × ( n / 2 ) déterminants, en inversant une ( n / 2 ) × ( n / 2 ) matrice, en multipliant deux paires de ( n / 2 ) × ( n / 2 ) matrices, et quelques opérations plus simples. En élargissant récursivement les appels déterminants, la complexité finit par être dominée par la multiplication et l'inversion matricielles.n×n (n/2)×(n/2) (n/2)×(n/2) (n/2)×(n/2)
Cela fonctionne bien même pour les petitsn et même sans utiliser d'algorithmes de multiplication de matrice sous-cubique. (Bien sûr, cela finit par être plus ou moins équivalent à l'élimination gaussienne.) Par exemple, pour , nous pouvons calculer det ( D ) avec deux multiplications, D - 1 avec quatre divisions, B D - 1 C avec 2 × 8 = 16 multiplications, det ( A - B D - 1 C )n=4 det(D) D−1 BD−1C 2×8=16 det(A−BD−1C) avec deux multiplications, et la réponse finale avec une multiplication. Le nombre total est de multiplications plus divisions, ce qui est inférieur aux 40 de l'expansion des cofacteurs. L'utilisation de l'algorithme de Strassen enregistre ici deux multiplications, mais de manière plus asymptotique.2+4+16+2+1=25 40
la source