Am Sun, 26 Sep 2021 17:50:10 +0200
schrieb Gerhard Strangar <
g...@arcor.de>:
>
> Denn weiter unten kommt ein Beispiel mit der Matrix
> (%i72) A:matrix([2,-2,6],[-2,-6,2],[4,-2,2]);
> [ 2 - 2 6 ]
> [ ]
> (%o72) [ - 2 - 6 2 ]
> [ ]
> [ 4 - 2 2 ]
> zur Berechnung des charakteristischen Polynoms benötige ich lambda mit
> der Einheitsmatrix multipliziert:
> (%i73) L:matrix([lambda,0,0],[0,lambda,0],[0,0,lambda]);
> [ lambda 0 0 ]
> [ ]
> (%o73) [ 0 lambda 0 ]
> [ ]
> [ 0 0 lambda ]
>
> (%i75) ratsimp(determinant(A-L));
> 3 2
> (%o75) (- lambda ) - 2 lambda + 44 lambda + 128
>
> Das ist das charakteristische Polynom. Und wenn ich für lambda die
> Matrix A einsetze, bekomme ich nicht die Nullmatrix:
>
> (%i76) substitute([lambda=A],%);
> [ 200 40 104 ]
> [ ]
> (%o76) [ 40 8 200 ]
> [ ]
> [ 208 40 200 ]
>
> Und die Subtraktion von 128 ist nicht das Problem:
> (%i77) -A^3-2*A^2+44*A;
> [ 72 - 88 - 24 ]
> [ ]
> (%o77) [ - 88 - 120 72 ]
> [ ]
> [ 80 - 88 72 ]
>
> Nur wo ist das Problem dann?
Wie Martin schon schrieb, ist dein Programm da ein wenig merkürdig. Hier
mit pari:
? M=[2,-2,6;-2,-6,2;4,-2,2]
%1 =
[ 2 -2 6]
[-2 -6 2]
[ 4 -2 2]
? charpoly(M)
%2 = x^3 + 2*x^2 - 44*x - 128
(Es ist üblich, dass das charakteristische Polynom normiert ist, also der
Koeffizient der höchsten Potenz der Unbekannten gleich 1 ist.)
Und dann:
? M^3+2*M^2-44*M-128
%3 =
[0 0 0]
[0 0 0]
[0 0 0]
So wie es sein soll.