Nochmals zum MartixExponential

Hallo,
ich habe folgendes Problem: ich muss ein MatrixExponential einer 3x3 Matrix ausrechnen; das ist einfach die Exponentialfunktion mit einer Matrix als Argument. Mathematica schafft es nicht, weil es die Eigenwerte dieser Matrix nicht herausbekommt.
Vieleicht hat jemand von euch Matlab oder ein and. math. Programm.
Bei Mathematica lautet der Befehl: MatrixExp[A]. A, die 3x3 Matrix, hat die Form:

{{-a (1 - z), -1 - b (1 - z), -1}, {1 - b (1 - z), 0.2 - e (1 - z), 0}, {-0.0839202, 0, 5.55804 - j (1 - z)}}.

a,b,e,j sind kleine reelle Zahlen, z ist eine komlpexe Zahl.

Versucht es jemand mit irgendeinem Program?
Vielen Dank im Vorraus.

MatrixExponential-Funktion
Hallo,

ich habe eine Lösung:

  • ich nehme k statt j wegen mgl. Verwechselung mit imagin. Einheit

  • hoffentlich sind die Multipl. zeichen richtig gesetzt
    Die Matrix ist jetzt:

    A =
    [(-a*(1 - z)) (-1 - b*(1 - z)) -1]
    [(1 - b*(1 - z)) (0.2 - e*(1 - z)) 0]
    [-0.0839202 0 5.55804 - k*(1 - z)]

Der Versuch mit der symbol. Math Toolbox von Matlab schlägt im 1. Anlauf fehl, dann nachgesehen bei: http://mathworld.wolfram.com/MatrixExponential.html
==> Matrix erst diagonalisieren !!!:
Die Diagonalmatrix zu A sei AD:

AD =
[-a\*(1-z), 0, 0]
[0, 1/5-e\*(1-z), 0]
[0, 0, 5.55804-k\*(1-z)]

davon kann die Maxtrixexponential-fkt. B berechnet werden:

B = expm(AD) =
[exp(-a+a\*z), 0, 0]
[0, exp(1/5-e+e\*z), 0]
[0, 0, exp(5.55804-k+k\*z)]

ohne Gewähr der Richtigkeit, geht so vielleicht auch mit Mathematica.

Gruss
Albert

Hallo,
also, wenn ich diese Matrix versuche zu diagonalisieren, dann kommt etwas anderes heraus, nähmlich eine viel grössere; ich habe sie diagonalisiert mit der JordanDecompostion, dann sieht man auch gleich, ob die Eigenwerte einfach sind, und dort sind die Eigenwerte viel grösser; wie hast du denn diese Matrix diagonalisiert?
viele Grüsse

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,
die Diagonalmatrix habe ich mit dem Matlab-Kommando erzeugt
AD = diag(diag(A)).
Zitat: „DIAG(X) is the main diagonal of X. DIAG(DIAG(X)) is a diagonal matrix.“ Die Hilfe sagt nichts über den Formalismus, der diag zugrunde liegt.
Der Rang der Matrix A ist lt. Matlab 3.
Die MatrixExponential-Funktion wird via Pade approximation berechnet (Zitat:„See Golub and Van Loan, Matrix Computations, Algorithm 11.3-1.“)

Ratlose Grüsse
Albert

Hallo,
also, wenn ich diese Matrix versuche zu diagonalisieren, dann
kommt etwas anderes heraus, nähmlich eine viel grössere; ich
habe sie diagonalisiert mit der JordanDecompostion, dann sieht
man auch gleich, ob die Eigenwerte einfach sind, und dort sind
die Eigenwerte viel grösser; wie hast du denn diese Matrix
diagonalisiert?
viele Grüsse

Hallo,

die Diagonalmatrix habe ich mit dem Matlab-Kommando erzeugt
AD = diag(diag(A)).
Zitat: „DIAG(X) is the main diagonal of X. DIAG(DIAG(X)) is a
diagonal matrix.“ Die Hilfe sagt nichts über den Formalismus,
der diag zugrunde liegt.

Ich glaube fast ihr zwei redet aneinander vorbei. Was Du hier machst (sofern ich die Erklärung richtig verstehe), die Matrix zu konstruieren, die aus der Diagonale der ursprünglichen Matrix besteht. Das meint man aber mit Diagonalisieren nicht. Diagonalisieren einer quadratischen Matrix bedeutet, dass man eine invertierbare Matrix S „konstruiert“ so dass D := SMS-1 eine Diagonalmatrix ist. Die Einträge sind (falls solch ein S existiert, was nicht immer der Fall ist) genau die Eigenwerte der ursprünglichen Matrix.

Im Zusammenhang mit dem Berechnen des Exponentials einer Matrix ist die diagonalisierte Matrix hilfreich, weil exp(M&gt:wink:=S-1 exp(D) S gilt. Das Exponential einer Diagonalmatriz lässt sich leicht berechnen, denn man muss einfach die das Exponential der Diagonaleinträge nehmen. Für diagonalisierbare Matrizen erübrigen sich dann oft Approximationsverfahren, wie unten erwähnt:

Der Rang der Matrix A ist lt. Matlab 3.
Die MatrixExponential-Funktion wird via Pade approximation
berechnet (Zitat:„See Golub and Van Loan, Matrix Computations,
Algorithm 11.3-1.“)

Gruss Urs

Hallo Urs,
Danke für die Aufklärung.
Ich habe jetz versucht, den beschriebenen Weg zu gehen, aber meine Studentenversion von Matlab bricht bei der Berechnung der Eigenwerte der Matrix A ab, weil nur Matrizen bis 16384 Elemente möglich sind !!??
Vielleicht kann es die Vollversion

Gruss
Albert