Algorithmus von Faddejew-Leverrier

Der Algorithmus von Faddejew-Leverrier (nach Dmitri Konstantinowitsch Faddejew und Urbain Le Verrier) ist ein Verfahren, das für beliebige quadratische Matrizen A R n × n {\displaystyle A\in R^{n\times n}} die Koeffizienten c k ( k = 1 , , n ) {\displaystyle c_{k}\;(k=1,\ldots ,n)} , c n = 1 {\displaystyle c_{n}=1} des durch p ( λ ) = det ( λ I A ) {\displaystyle p(\lambda )=\det(\lambda I-A)} definierten charakteristischen Polynoms

p ( λ ) = c n λ n + c n 1 λ n 1 + c n 2 λ n 2 + + c 1 λ + c 0 {\displaystyle p(\lambda )=c_{n}\lambda ^{n}+c_{n-1}\lambda ^{n-1}+c_{n-2}\lambda ^{n-2}+\ldots +c_{1}\lambda +c_{0}}

ermittelt. Außerdem liefert der Algorithmus die Determinante und die Adjunkte sowie für reguläre Eingabematrizen die Inverse von A {\displaystyle A} .

Für den Ring R {\displaystyle R} der Matrixelemente wird vorausgesetzt, dass es sich um einen kommutativen Ring mit Einselement handelt und dass eine der beiden folgenden Voraussetzungen erfüllt ist (vgl. Johannson[1]):

  • R {\displaystyle R} hat die Charakteristik 0 (wie z. B. für R = R {\displaystyle R=\mathbb {R} } oder R = C {\displaystyle R=\mathbb {C} } )
  • Die Charakteristik von R {\displaystyle R} ist teilerfremd zu k { 1 , , n } {\displaystyle k\in \{1,\ldots ,n\}}

Motivation und theoretischer Hintergrund

Durch Ausmultiplizieren der faktorisierten Darstellung des charakteristische Polynoms einer Matrix A R n × n {\displaystyle A\in R^{n\times n}} mit den Eigenwerten λ 1 , , λ n {\displaystyle \lambda _{1},\ldots ,\lambda _{n}} erhält man

p ( λ ) = k = 1 n ( λ λ i ) = k = 0 n ( 1 ) k σ k ( λ 1 , , λ n ) λ n k {\displaystyle p(\lambda )=\prod _{k=1}^{n}(\lambda -\lambda _{i})=\sum _{k=0}^{n}(-1)^{k}\sigma _{k}(\lambda _{1},\ldots ,\lambda _{n})\lambda ^{n-k}}

wobei die in der resultierenden Summe auftretenden elementarsymmetrischen Polynome σ k {\displaystyle \sigma _{k}} folgendermaßen definiert sind:

σ k ( λ 1 , , λ n ) = S { 1 , , n } # S = k   i S λ i k = 0 , 1 , , n {\displaystyle \sigma _{k}(\lambda _{1},\dots ,\lambda _{n})=\sum _{S\subseteq \{1,\dotsc ,n\} \atop \#S=k}\ \prod _{i\in S}\lambda _{i}\qquad k=0,1,\dots ,n}

Die Newton-Identitäten stellen einen Zusammenhang zwischen den elementarsymmetrischen Polynomen σ k {\displaystyle \sigma _{k}} und den Potenzsummen der Eigenwerte s k = i = 1 n λ i k {\displaystyle s_{k}=\sum _{i=1}^{n}\lambda _{i}^{k}} her.

Gleichungen für die Koeffizienten

Mit i = 1 n λ i k = tr   A k {\displaystyle \sum _{i=1}^{n}\lambda _{i}^{k}=\operatorname {tr} ~A^{k}} lässt sich s k {\displaystyle s_{k}} als Spur der Matrixpotenz A k {\displaystyle A^{k}} ausdrücken und auf Grund von c n k = ( 1 ) k σ k ( λ 1 , , λ n ) {\displaystyle c_{n-k}=(-1)^{k}\sigma _{k}(\lambda _{1},\ldots ,\lambda _{n})} übersetzten sich die Newton-Identitäten

dann in folgende Gleichungen, mit denen sich die Koeffizienten sukzessive ermitteln lassen ( k = 1 , , n ) {\displaystyle (k=1,\ldots ,n)} :

c n = 1 , c n 1 = c n tr   A , c n 2 = 1 2 ( c n 1 tr   A + c n tr   A 2 ) , c n 3 = 1 3 ( c n 2 tr   A + c n 1 tr   A 2 + c n tr   A 3 ) , c n k = 1 k i = 1 k c n k + i tr   A i {\displaystyle {\begin{aligned}c_{n}&=1,\\[4pt]c_{n-1}&=-c_{n}\operatorname {tr} ~A,\\[4pt]c_{n-2}&=-{\frac {1}{2}}(c_{n-1}\operatorname {tr} ~A+c_{n}\operatorname {tr} ~A^{2}),\\[4pt]c_{n-3}&=-{\frac {1}{3}}(c_{n-2}\operatorname {tr} ~A+c_{n-1}\operatorname {tr} ~A^{2}+c_{n}\operatorname {tr} ~A^{3}),\\[4pt]\vdots \\[4pt]c_{n-k}&=-{\frac {1}{k}}\sum _{i=1}^{k}c_{n-k+i}\operatorname {tr} ~A^{i}\end{aligned}}}

Formulierung als lineares Gleichungssystem

Die soeben hergeleiteten Gleichungen für die Koeffizienten c n k {\displaystyle c_{n-k}} lassen sich etwas kompakter (und für theoretische Zwecke besser geeignet) in folgendes äquivalentes lineares Gleichungssystem umformulieren:

[ 1 0 0 0 tr A 2 0 tr A 2 tr A 3 0 tr A n 1 tr A n 2 tr A n ] [ c n 1 c n 2 c n 3 c 0 ] = [ tr A tr A 2 tr A 3 tr A n ] {\displaystyle \left[{\begin{matrix}1&0&0&\cdots &0\\\operatorname {tr} A&2&0&\ddots &\vdots \\\operatorname {tr} A^{2}&\operatorname {tr} A&3&\ddots &0\\\vdots &\vdots &\ddots &\ddots &\vdots \\\operatorname {tr} A^{n-1}&\operatorname {tr} A^{n-2}&\cdots &\operatorname {tr} A&n\end{matrix}}\right]\left[{\begin{matrix}c_{n-1}\\[0.21cm]c_{n-2}\\[0.21cm]c_{n-3}\\[0.21cm]\vdots \\c_{0}\end{matrix}}\right]=\left[{\begin{matrix}-\operatorname {tr} A\\[0.21cm]-\operatorname {tr} A^{2}\\[0.21cm]-\operatorname {tr} A^{3}\\[0.21cm]\vdots \\-\operatorname {tr} A^{n}\end{matrix}}\right]}

Das Auflösen des Gleichungssystems nach den Koeffizienten c n k {\displaystyle c_{n-k}} durch Vorwärtseinsetzen führt gerade auf die Formeln aus dem vorherigen Abschnitt.

Explizite Darstellungen der Koeffizienten

Aus dem linearen Gleichungssystem gewinnt man durch Anwenden der Cramerschen Regel folgende explizite Darstellung für die Koeffizienten c n k {\displaystyle c_{n-k}} :

c n k = ( 1 ) k k ! | tr A k 1 0 0 tr A 2 tr A k 2 0 tr A k 1 tr A k 2 tr A 1 tr A k tr A k 1 tr A 2 tr A |   . {\displaystyle c_{n-k}={\frac {(-1)^{k}}{k!}}\;{\begin{vmatrix}\operatorname {tr} A&k-1&0&\cdots &0\\\operatorname {tr} A^{2}&\operatorname {tr} A&k-2&\ddots &\vdots \\\vdots &\vdots &\ddots &\ddots &0\\\operatorname {tr} A^{k-1}&\operatorname {tr} A^{k-2}&\cdots &\operatorname {tr} A&1\\\operatorname {tr} A^{k}&\operatorname {tr} A^{k-1}&\cdots &\operatorname {tr} A^{2}&\operatorname {tr} A\end{vmatrix}}~.}

Ein Vergleich mit der Determinantendarstellung der vollständigen Bell-Polynome B k {\displaystyle {\mathcal {B}}_{k}} (vgl. z. B. A. Zúñiga-Segundo et al.[2] und [3]) zeigt, dass man dies äquivalent dazu auch etwas bequemer folgendermaßen ausdrücken kann:

c n k = ( 1 ) k k ! B k ( 0 !   tr A , 1 !   tr A 2 , 2 !   tr A 3 , , ( 1 ) k 1 ( k 1 ) !   tr A k ) {\displaystyle c_{n-k}={\frac {(-1)^{k}}{k!}}\;{\mathcal {B}}_{k}{\Bigl (}0!~\operatorname {tr} A,-1!~\operatorname {tr} A^{2},2!~\operatorname {tr} A^{3},\ldots ,(-1)^{k-1}(k-1)!~\operatorname {tr} A^{k}{\Bigr )}}

Wenn man nicht -- wie vorgeführt -- auf dem oben formulierten linearen Gleichungssystem aufbaut, dann benötigt man für die Herleitung der Formeln aus diesem Abschnitt tieferliegende Hilfsmittel aus der Analysis (z. B. die Plemelj-Smithies-Formeln).

Rekursive Formulierung

Mit Hilfe der Matrizen B 0 , , B n R n × n {\displaystyle B_{0},\ldots ,B_{n}\in R^{n\times n}} kann man die Formeln für die Koeffizienten c 0 , , c n R {\displaystyle c_{0},\ldots ,c_{n}\in R} aus der Motivation in folgendes rekursives Schema übersetzen (Nachweis durch Induktion nach k {\displaystyle k} , siehe Begründung für die Korrektheit des Algorithmus weiter unten):

B 0 = 0 c n = 1 ( k = 0 ) B k = A B k 1 + c n k + 1 I c n k = 1 k t r ( A B k ) k = 1 , , n {\displaystyle {\begin{aligned}B_{0}&=0&c_{n}&=1\qquad &(k=0)\\B_{k}&=AB_{k-1}+c_{n-k+1}I\qquad \qquad &c_{n-k}&=-{\frac {1}{k}}\mathrm {tr} (AB_{k})\qquad &k=1,\ldots ,n\end{aligned}}}

Hierin ist t r ( M ) := i = 1 n m i i {\displaystyle \textstyle \mathrm {tr} (M):=\sum _{i=1}^{n}m_{ii}} die sogenannte Spur einer quadratischen Matrix M R n × n {\displaystyle M\in R^{n\times n}}

Aus der Rekursion lassen sich weitere interessante Beziehungen ableiten:

  • Wegen
c 0 = p ( 0 ) = det ( A ) = ( 1 ) n det A {\displaystyle c_{0}=p(0)=\det(-A)=(-1)^{n}\;\det A}

erhält man unmittelbar den Wert der Determinanten von A {\displaystyle A} .

  • Außerdem kann man mit Hilfe von
B n + 1 = A B n + c 0 I = 0 {\displaystyle B_{n+1}=AB_{n}+c_{0}I=0\;}

überprüfen, ob die Rekursion korrekt terminiert. Durch Umformen erhält man hieraus für reguläres A {\displaystyle A} insbesondere auch die Inverse:

A 1 = 1 c 0 B n (falls c 0 0 ) . {\displaystyle A^{-1}=-{\frac {1}{c_{0}}}B_{n}\qquad {\textrm {(falls}}\;c_{0}\neq 0{\textrm {)}}.}
  • Schließlich folgt wegen A adj ( A ) = det A I {\displaystyle A\cdot \operatorname {adj} (A)=\operatorname {det} A\cdot I} für die Adjunkte:
adj ( A ) = ( 1 ) n + 1 B n {\displaystyle \operatorname {adj} (A)=(-1)^{n+1}B_{n}}

Algorithmus

Basierend auf dem rekursiven Schema kann man nun den Algorithmus von Faddejew-Leverrier formulieren:

/* Eingabe: Quadratische Matrix A der Dimension n                                               */
/*          Für den kommutativen Ring R mit Einselement der Matrixelemente wird vorausgesetzt:  */
/*          char(R) = 0 oder char(R) teilerfremd zu 1,...n                                      */

B[0] = 0;
c[n] = 1;

for (k = 1; k <= n; k++)
{
    B[k]   =   A * B[k-1] + c[n-k+1] * I;
    c[n-k] = - 1/k * tr( A * B[k] );
}

B[n+1] = A * B[n] + c[0] * I;

if ( B[n+1] != O )
{
    printf("Fehler: Algorithmus terminiert nicht korrekt!");
}

if ( c[0] != 0 )
{
    Ainv = -1/c[0] * B[n];
}
else
{
    printf("Die Eingabematrix ist singulär!");
}

/*
    Ausgabe:
    c[0] , ...,  c[n]  : Koeffizienten des charakteristischen Polynoms von A
    (-1)^n     * c[0]  : Determinante von A
    (-1)^(n+1) * B[n]  : Adjunkte von A
    Ainv               : Inverse von A (sofern c[0] ungleich 0)
* /

Numerisches Beispiel

Für Matrizen kleiner Dimension lässt sich der Algorithmus leicht von Hand durchzuführen. Wir betrachten folgendes einfaches Beispiel:

A = [ 3 1 5 3 3 1 4 6 4 ] {\displaystyle A=\left[{\begin{array}{rrr}3&1&5\\3&3&1\\4&6&4\end{array}}\right]}

Dann liefert der Algorithmus:

B 0 = [ 0 0 0 0 0 0 0 0 0 ] c 3 = 1 B 1 = [ 1 0 0 0 1 0 0 0 1 ] A B 1 = [ 3 1 5 3 3 1 4 6 4 ] c 2 = 1 1 10 = 10 B 2 = [ 7 1 5 3 7 1 4 6 6 ] A B 2 = [ 2 26 14 8 12 12 6 14 2 ] c 1 = 1 2 ( 8 ) = 4 B 3 = [ 6 26 14 8 8 12 6 14 6 ] A B 3 = [ 40 0 0 0 40 0 0 0 40 ] c 0 = 1 3 120 = 40 {\displaystyle {\begin{aligned}B_{0}&=\left[{\begin{array}{rrr}0&0&0\\0&0&0\\0&0&0\end{array}}\right]\qquad \qquad &&&c_{3}&&&&&=&1\\B_{\mathbf {\color {blue}1} }&=\left[{\begin{array}{rrr}1&0&0\\0&1&0\\0&0&1\end{array}}\right]\qquad \qquad &A*B_{1}&=\left[{\begin{array}{rrr}\mathbf {\color {red}3} &1&5\\3&\mathbf {\color {red}3} &1\\4&6&\mathbf {\color {red}4} \end{array}}\right]\qquad \qquad &c_{2}&&&=-{\frac {1}{\mathbf {\color {blue}1} }}\cdot \mathbf {\color {red}10} &&=&-10\\B_{\mathbf {\color {blue}2} }&=\left[{\begin{array}{rrr}-7&1&5\\3&-7&1\\4&6&-6\end{array}}\right]\qquad \qquad &A*B_{2}&=\left[{\begin{array}{rrr}\mathbf {\color {red}2} &26&-14\\-8&\mathbf {\color {red}-12} &12\\6&-14&\mathbf {\color {red}2} \end{array}}\right]\qquad \qquad &c_{1}&&&=-{\frac {1}{\mathbf {\color {blue}2} }}\cdot \mathbf {\color {red}(-8)} &&=&4\\B_{\mathbf {\color {blue}3} }&=\left[{\begin{array}{rrr}6&26&-14\\-8&-8&12\\6&-14&6\end{array}}\right]\qquad \qquad &A*B_{3}&=\left[{\begin{array}{rrr}\mathbf {\color {red}40} &0&0\\0&\mathbf {\color {red}40} &0\\0&0&\mathbf {\color {red}40} \end{array}}\right]\qquad \qquad &c_{0}&&&=-{\frac {1}{\mathbf {\color {blue}3} }}\cdot \mathbf {\color {red}120} &&=&-40\end{aligned}}}

Es zeigt sich, dass B 4 = A B 3 + c 0 I = 0 {\displaystyle B_{4}=A*B_{3}+c_{0}*I=0} , was eine zusätzliche Kontrolle für die Korrektheit der Rechnung ist (s. o.).

Das charakteristische Polynom der Matrix A {\displaystyle A} lautet also:

p A ( λ ) = λ 3 10 λ 2 + 4 λ 40. {\displaystyle p_{A}(\lambda )=\lambda ^{3}-10\lambda ^{2}+4\lambda -40.}

Weiterhin gilt:

det ( A ) = ( 1 ) 3 c 0 = 40 {\displaystyle \det(A)=(-1)^{3}\cdot c_{0}=40}

Für die Inverse von A {\displaystyle A} ergibt sich aus der obigen Rechnung:

A 1 = 1 c 0 B 3 = 1 40 [ 6 26 14 8 8 12 6 14 6 ] = [ 0 , 15 0 , 65 0 , 35 0 , 20 0 , 20 0 , 30 0 , 15 0 , 35 0 , 15 ] {\displaystyle A^{-1}=-{\frac {1}{c_{0}}}\cdot B_{3}={\frac {1}{40}}\cdot \left[{\begin{array}{rrr}6&26&-14\\-8&-8&12\\6&-14&6\end{array}}\right]=\left[{\begin{array}{rrr}0{,}15&0{,}65&-0{,}35\\-0{,}20&-0{,}20&0{,}30\\0{,}15&-0{,}35&0{,}15\end{array}}\right]}

Begründung für die Korrektheit des Algorithmus

Für die Korrektheit des Algorithmus muss man dessen Terminiertheit und partielle Korrektheit nachweisen. Dass der Algorithmus stets terminiert, ist offensichtlich. Die partielle Korrektheit des Algorithmus folgt, wenn die per Rekursion ermittelten Koeffizienten c 0 , , c n {\displaystyle c_{0},\ldots ,c_{n}} mit der in der Motivation hergeleiteten Darstellung übereinstimmen.

Zu diesem Zweck weisen wir induktiv nach, dass die Rekursion im k {\displaystyle k} -ten Schritt die folgenden Ergebnisse liefert:

B k = i = 1 k c n k + i A i 1 c n k = 1 k i = 1 k c n k + i tr   A i {\displaystyle {\begin{aligned}B_{k}=&\qquad \sum _{i=1}^{k}c_{n-k+i}A^{i-1}\\c_{n-k}=&-{\frac {1}{k}}\sum _{i=1}^{k}c_{n-k+i}\operatorname {tr} ~A^{i}\end{aligned}}}

Für den ersten Rekursionsschritt ( k = 1 {\displaystyle k=1} ) sind die beiden Beziehungen wegen B 1 = I {\displaystyle B_{1}=I} und c n 1 = tr   A {\displaystyle c_{n-1}=-\operatorname {tr} ~A} offensichtlich erfüllt.

Um die Gültigkeit für den ( k + 1 ) {\displaystyle (k+1)-} ten Schritt zu zeigen, nehmen wir an, dass die Beziehungen für den k {\displaystyle k-} ten Schritt richtig sind (Schluss von k {\displaystyle k} auf k + 1 {\displaystyle k+1} ):

B k + 1 = A B k + c n k I = A ( i = 1 k c n k + i A i 1 ) + c n k I = i = 1 k + 1 c n ( k + 1 ) + i A i 1 {\displaystyle {\begin{aligned}B_{k+1}=&AB_{k}+c_{n-k}I\\=&A\left(\sum _{i=1}^{k}c_{n-k+i}A^{i-1}\right)+c_{n-k}I\\=&\sum _{i=1}^{k+1}c_{n-(k+1)+i}A^{i-1}\quad \checkmark \end{aligned}}}
c n ( k + 1 ) = 1 k + 1 t r ( A B k + 1 ) = 1 k + 1 t r ( A j = 1 k + 1 c n ( k + 1 ) + j A j 1 ) = 1 k + 1 j = 1 k + 1 c n ( k + 1 ) + j   t r A j {\displaystyle {\begin{aligned}c_{n-(k+1)}=&-{\frac {1}{k+1}}\mathrm {tr} (AB_{k+1})\\=&-{\frac {1}{k+1}}\mathrm {tr} \left(A\sum _{j=1}^{k+1}c_{n-(k+1)+j}A^{j-1}\right)\\=&-{\frac {1}{k+1}}\sum _{j=1}^{k+1}c_{n-(k+1)+j}~\mathrm {tr} A^{j}\quad \checkmark \\\end{aligned}}}

Alternative Zugänge zum Algorithmus

Der Weg über die Newton-Identitäten (wie oben vorgeführt und z. B. in Gantmacher[4]) ist zwar sehr ökonomisch im Aufbau und in der Darstellung, hat aber den Nachteil, dass er Vorwissen aus dem Bereich der Algebra benötigt und keinen intuitiven Zugang über die grundlegenden Konzepte der Linearen Algebra bietet. Insbesondere erscheint die Notwendigkeit zur Verwendung der Matrizen B k {\displaystyle B_{k}} etwas künstlich.

Daher verfolgen einige Darstellungen in der Literatur einen anderen Ansatz und motivieren zunächst die rekursive Darstellung für die Matrizen B k {\displaystyle B_{k}} (vgl.[5] und Beweisarchiv auf den Wikibooks, siehe Weblinks):

Der bekannte Zusammenhang zwischen Determinante und Adjunkte angewendet auf die Matrix λ I A {\displaystyle \lambda I-A} ergibt:

( λ I A ) a d j ( λ I A ) = det ( λ I A ) I = p A ( λ ) I {\displaystyle (\lambda I-A)\cdot \mathrm {adj} (\lambda I-A)=\det(\lambda I-A)\cdot I=p_{A}(\lambda )\cdot I}

Hieraus folgt, dass λ {\displaystyle \lambda \;} in a d j ( λ I A ) {\displaystyle \mathrm {adj} (\lambda I-A)\;} höchstens mit Grad n 1 {\displaystyle n-1\;} auftritt, so dass sich a d j ( λ I A ) {\displaystyle \mathrm {adj} (\lambda I-A)\;} als Polynom in λ {\displaystyle \lambda } mit Matrix-Koeffizienten B k C n × n ( k = 0 , , n + 1 ) {\displaystyle B_{k}\in \mathbb {C} ^{n\times n}\;(k=0,\ldots ,n+1)\;} schreiben lässt (wobei B 0 = 0 {\displaystyle B_{0}=0\;} und B n + 1 = 0 {\displaystyle B_{n+1}=0\;} ):

a d j ( λ I A ) = k = 0 n + 1 B k λ n k {\displaystyle \mathrm {adj} (\lambda I-A)=\sum _{k=0}^{n+1}B_{k}\lambda ^{n-k}}

Einsetzen und Umformen liefert:

( λ I A ) k = 0 n + 1 B k λ n k = p A ( λ ) I k = 1 n + 1 ( B k A B k 1 ) λ n k + 1 = k = 1 n + 1 c n k + 1 λ n k + 1 I {\displaystyle {\begin{aligned}(\lambda I-A)\cdot \sum _{k=0}^{n+1}B_{k}\lambda ^{n-k}&=p_{A}(\lambda )\cdot I\\\sum _{k=1}^{n+1}\left(B_{k}-AB_{k-1}\right)\lambda ^{n-k+1}&=\sum _{k=1}^{n+1}c_{n-k+1}\lambda ^{n-k+1}\cdot I\end{aligned}}}

Durch Koeffizientenvergleich erhält man schließlich die rekursive Darstellung für die B k {\displaystyle B_{k}} :

B k A B k 1 = c n k + 1 I B k = A B k 1 + c n k + 1 I {\displaystyle B_{k}-AB_{k-1}=c_{n-k+1}I\quad \Longleftrightarrow \quad B_{k}=AB_{k-1}+c_{n-k+1}I}

Zur Ableitung der Beziehung für die Koeffizienten c n k {\displaystyle c_{n-k}} muss man nun allerdings auf Hilfsmittel aus der Analysis zurückgreifen, was ein Nachteil dieses Zugangs ist. In der Literatur wird zu diesem Zweck beispielsweise

  • Jacobi’s Formel zur Differentiation von Determinanten-Funktionen (vgl.[6] und Beweisarchiv auf den Wikibooks, siehe Weblinks)
  • die Laplace-Transformierte des Matrixexponential L ( e t A ) = ( s I A ) 1 {\displaystyle {\mathcal {L}}(e^{tA})=(sI-A)^{-1}} welche gerade der Resolvente von A {\displaystyle A} entspricht (vgl. Hou[7])

verwendet.

Anwendungsbereich und Voraussetzungen

Wie bereits in der Einleitung erwähnt, ist der Algorithmus nur dann auf die Matrix A R n × n {\displaystyle A\in R^{n\times n}} anwendbar, wenn der Ring R {\displaystyle R} der Matrixelemente ein kommutativer Ring mit Einselement ist und eine der beiden folgenden Voraussetzungen erfüllt ist (vgl. Johannson[8]):

  • R {\displaystyle R} hat die Charakteristik 0 (wie z. B. für R = R {\displaystyle R=\mathbb {R} } oder R = C {\displaystyle R=\mathbb {C} } )
  • Die Charakteristik von R {\displaystyle R} ist teilerfremd zu k { 1 , , n } {\displaystyle k\in \{1,\ldots ,n\}}

Diese Bedingung stellt sicher, dass die im Algorithmus auftretenden Divisionen durch k { 1 , , n } {\displaystyle k\in \{1,\ldots ,n\}} im Ring R {\displaystyle R} exakt durchführbar sind, d. h. dass

( x k ) / k = x x R , k n {\displaystyle (xk)/k=x\qquad \forall x\in R,k\leq n}

Ein genereller Nachteil des Algorithmus von Faddejew-Leverrier ist das Auftreten von Divisionen, was konträr zur Definition der Determinante über die Leibniz-Formel ist, die ohne Divisionen auskommt und daher auch auf Matrizen anwendbar ist, deren Einträge Elemente eines beliebigen kommutativen Rings mit Einselement sind. Für diesen allgemeinen Fall (d. h. insbesondere wenn die oben angegebenen Voraussetzungen nicht erfüllbar sind) bieten sich divisions-freie Algorithmen, wie z. B. der Algorithmus von Samuelson-Berkowitz als Alternative an, die einen vergleichbaren Aufwand haben.

Aufwand und Vergleich mit anderen Verfahren

Der Zeitaufwand für den Algorithmus von Faddejew-Leverrier wird von den auftretenden n {\displaystyle n} Matrizenmultiplikationen dominiert. Wenn man nun mit O ( n ω ) {\displaystyle {\mathcal {O}}(n^{\omega })} den Aufwand für die Methode notiert, die für die Matrizenmultiplikation verwendet wird, so ergibt sich für den Gesamtaufwand eine asymptotische obere Schranke von O ( n ω + 1 ) {\displaystyle {\mathcal {O}}(n^{\omega +1})} .

Beispiele:

  • Klassische Matrizenmultiplikation ( ω = 3 {\displaystyle \omega =3} ): Aufwand O ( n 4 ) {\displaystyle {\mathcal {O}}(n^{4})}
  • Strassen-Algorithmus ( ω = log 2 7 2,807 {\displaystyle \omega =\log _{2}7\approx 2{,}807} ): Aufwand O ( n 3,807 ) {\displaystyle {\mathcal {O}}(n^{3{,}807})}

Determinantenberechnung nach der Leibniz-Formel

Der naive Algorithmus basierend auf der Determinantenberechnung nach der Leibniz-Formel ermittelt und addiert n ! {\displaystyle n!} Summanden was nach der Stirlingschen Formel einer asymptotischen Zeitkomplexität von O ( n ! ) = O ( ( n e ) n + 1 2 ) {\displaystyle {\mathcal {O}}(n!)={\mathcal {O}}\left(({\tfrac {n}{e}})^{n+{\frac {1}{2}}}\right)} entspricht.

Neben dem exponentiellen Aufwand macht auch die Notwendigkeit von Polynomarithmetik diesen Ansatz inpraktikabel.

Gauß-Elimination

Die Berechnung mittels Gauß-Elimination mit einem Aufwand der Größenordnung O ( n 3 ) {\displaystyle {\mathcal {O}}(n^{3})} ist zwar zumindest für die reine Determinantenberechnung günstiger, erfordert jedoch, wenn man auch an den Koeffizienten des charakteristischen Polynoms interessiert ist, erhöhten technischen Aufwand bei der Implementierung in einem Computerprogramm (man benötigt Polynomarithmetik für die Matrixeinträge).

Algorithmus von Samuelson-Berkowitz

Der Algorithmus von Samuelson-Berkowitz hat ebenfalls eine asymptotische obere Schranke von O ( n 4 ) {\displaystyle {\mathcal {O}}(n^{4})} für die Zeitkomplexität.

Parallelisierbarkeit

Der Algorithmus lässt sich effizient parallelisieren. Genaueres hierzu findet man in der Originalarbeit von Csanky[9] sowie in der Übersicht in Algorithmen zur parallelen Determinantenberechnung.[10]

Numerische Stabilität

Der Algorithmus von Faddejew-Leverrier ist numerisch nicht stabil (siehe z. B. Wilkinson[11] und Rehman/Ipsen[12]). Daher ist er für die Anwendung mit Gleitkomma-Arithmetik nicht gut geeignet, kann aber mit exakter Bruch-Arithmetik verwendet werden. Trotz seiner eingeschränkten praktischen Relevanz ist der Algorithmus von theoretischer Bedeutung, da er eine formale Charakterisierung für die Koeffizienten des charakteristischen Polynoms sowie entsprechende Zusammenhänge zu Determinanten, Inversen und Adjunkten angibt.

Historisches

Der Algorithmus wurde bereits 1840 von Urbain Jean Joseph Leverrier beschrieben,[13] geriet dann aber für längere Zeit wieder in Vergessenheit. Ab 1935 wurde er dann mehrfach wiederentdeckt und weiterentwickelt, unter anderem durch P. Horst,[14] Jean-Marie Souriau,[15] Dmitri Konstantinowitsch Faddejew und Sominski,[16] J. S. Frame,[17] U. Wegner[18] und Csanky.[9] Der Algorithmus in der vorliegenden Form stammt von Faddejew, was auch die heute allgemein übliche Benennung erklärt. Weitere Details zur historischen Entwicklung (mit entsprechenden Literaturhinweisen) findet man z. B. im Buch von Householder.[19]

Literatur

  • H. Burbach: Algorithmen zur parallelen Determinantenberechnung. Diplom-Arbeit, Universität Dortmund, Oktober 1992, Online-Version (PDF-Datei; 801 kB)
  • L. Csanky: Fast Parallel Matrix Inversion Algorithms. SIAM Journal on Computing, 618–623, 1976, doi:10.1137/0205040.
  • D. K. Faddev, I. S. Sominsky. Collection of problems on higher algebra, Moscow, 1949.
  • V. N. Faddeva: Computational Methods of Linear Algebra, (Translated From The Russian By Curtis D. Benster), Dover Publications Inc. N.Y., Date Published 1959, ISBN 0-486-60424-1.
  • J. S. Frame: A simple recursion formula for inverting a matrix (abstract). Bull. Am. Math. Soc. 55, 1045 (1949), doi:10.1090/S0002-9904-1949-09310-2.
  • J. S. Frame: Matrix functions and applications, IEEE Spectrum 1 (1964) (fünf Artikel in den Nummern 3–7)
  • F. R. Gantmacher: The Theory of Matrices, Chelsea, 1990, siehe speziell §IV.5.
  • Alston Scott Householder: The Theory of Matrices in Numerical Analysis, Dover, New York, 1975, ISBN 0-486-61781-5
  • Paul Horst: A method of determining the coefficients of a characteristic equation. Ann. Math. Stat. 6, 83–84 (1935), doi:10.1214/aoms/1177732612.
  • Shui-Hung Hou: Classroom Note: A Simple Proof of the Leverrier-Faddeev Characteristic Polynomial Algorithm, SIAM, 1998, SIAM Review:40(3), S. 706–709, doi:10.1137/S003614459732076X, http://link.aip.org/link/?SIR/40/706/1
  • F. Johannson: On a fast and nearly division-free algorithm for the characteristic polynomial. Preprint (2020), arxiv:2011.12573
  • Urbain Le Verrier: Sur les variations séculaires des éléments des orbites pour les sept planètes principales, J. de Math. (1) 5, 230 (1840), Online-Version des Artikels verfügbar auf der Webseite der Bibliotheque nationale de France digital library (Gallica)
  • R. Rehman and I. C. F. Ipsen: La Budde's Method for Computing Characteristic Polynomials. Preprint (2011), arxiv:1104.3769
  • Jean-Marie Souriau: Une méthode pour la décomposition spectrale et l’inversion des matrices. Comptes Rend. 227, 1010–1011 (1948).
  • U. Wegner: Bemerkungen zur Matrizentheorie. Z. angew. Math. Mech. 33, 262–264 (1953), doi:10.1002/zamm.19530330807.
  • J. H. Wilkinson: The algebraic eigenvalue problem, volume 87. Clarendon press Oxford, 1965, ISBN 978-0-19-853418-1.
  • A. Zúñiga-Segundo, J. López-Bonilla, S. Vidal-Beltrán: Characteristic equation of a matrix via Bell polynomials, Asia Mathematika Volume 2 Issue 2 (2018) page: 49-51, Online-Version des Artikels
  • A. Zúñiga-Segundo, J. López-Bonilla, S. Vidal-Beltrán: Some Applications of Complete Bell Polynomials, World Engineering & Applied Sciences Journal 9 (3): 89-92, 2018, ISSN 2079-2204, Online-Version des Artikels

Weblinks

Wikibooks: Beweis der Korrektheit des Algorithmus von Faddejew-Leverrier – Lern- und Lehrmaterialien

Einzelnachweise

  1. F. Johannson: On a fast and nearly division-free algorithm for the characteristic polynomial. Preprint (2020), arxiv:2011.12573
  2. A. Zúñiga-Segundo, J. López-Bonilla, S. Vidal-Beltrán: Characteristic equation of a matrix via Bell polynomials, Asia Mathematika Volume 2 Issue 2 (2018) page: 49-51, Online-Version des Artikels
  3. A. Zúñiga-Segundo, J. López-Bonilla, S. Vidal-Beltrán: Some Applications of Complete Bell Polynomials, World Engineering & Applied Sciences Journal 9 (3): 89-92, 2018, ISSN 2079-2204, Online-Version des Artikels
  4. F. R. Gantmacher: The Theory of Matrices, Chelsea, 1990, siehe speziell Kapitel IV §5, pp. 87-89
  5. J. S. Frame: Matrix functions and applications, IEEE Spectrum 1 (1964) (fünf Artikel in den Nummern 3–7)
  6. J. S. Frame: Matrix functions and applications, IEEE Spectrum 1 (1964) (fünf Artikel in den Nummern 3–7)
  7. Shui-Hung Hou: Classroom Note: A Simple Proof of the Leverrier-Faddeev Characteristic Polynomial Algorithm, SIAM, 1998, SIAM Review:40(3), S. 706–709, doi:10.1137/S003614459732076X
  8. F. Johannson: On a fast and nearly division-free algorithm for the characteristic polynomial. Preprint (2020), arxiv:2011.12573
  9. a b L. Csanky: Fast Parallel Matrix Inversion Algorithms. SIAM Journal on Computing, 618–623, 1976, doi:10.1137/0205040
  10. H. Burbach: Algorithmen zur parallelen Determinantenberechnung. Diplom-Arbeit, Universität Dortmund, Oktober 1992, Online-Version (PDF-Datei; 801 kB)
  11. J. H. Wilkinson: The algebraic eigenvalue problem, volume 87. Clarendon press Oxford, 1965, ISBN 978-0-19-853418-1, Kapitel 7, §19, pp. 434-435
  12. R. Rehman and I. C. F. Ipsen: La Budde's Method for Computing Characteristic Polynomials. Preprint (2011), arxiv:1104.3769
  13. Urbain Le Verrier: Sur les variations séculaires des éléments des orbites pour les sept planètes principales, J. de Math. (1) 5, 230 (1840), Online-Version des Artikels verfügbar auf der Webseite der Bibliotheque nationale de France digital library (Gallica)
  14. Paul Horst: A method of determining the coefficients of a characteristic equation. Ann. Math. Stat. 6, 83–84 (1935), doi:10.1214/aoms/1177732612
  15. Jean-Marie Souriau: Une méthode pour la décomposition spectrale et l’inversion des matrices. Comptes Rend. 227, 1010–1011 (1948)
  16. D. K. Faddeev, I. S. Sominski: Sbornik zadatch po vyshej algebre. Moskow-Leningrad 1949
  17. J. S. Frame: A simple recursion formula for inverting a matrix (abstract). Bull. Am. Math. Soc. 55, 1045 (1949), doi:10.1090/S0002-9904-1949-09310-2
  18. U. Wegner: Bemerkungen zur Matrizentheorie. Z. angew. Math. Mech. 33, 262–264 (1953), doi:10.1002/zamm.19530330807
  19. Alston Scott Householder: The Theory of Matrices in Numerical Analysis. Dover, New York 1975, ISBN 0-486-61781-5