Diagonalisierung von Matrizen

Prof. Dr. Dörte Haftendorn: Mathematik mit MuPAD4 , 23.06.07  Update 15.07.07

Web:  https://mathe.web.leuphana.de             www.mathematik-verstehen.de ######################################################

Für symmetrische Matrizen sind reelle EW gesichert.

Für diese ist auch gesichert, dass die EV zu verschiedenen EW senkrecht aufeinander stehen.

Darum werden nur in vielen Anwendungen möglichst symmetrische Matizen betrachtet.

Es werden 4 Fälle betrachtet:    

Fall 1 2d-Matrix, 2 versch. EW

Fall 2-4  3d-Matrizen  

Fall 2 alle 3 EW verschieden      

Fall3 einer doppelt 0, einer =/=0

Fall 4 einer 0, der andere doppelt

Das in den Dateien Konstruktion rückwärts für Kegelschnitte und  Quadriken

vorgestellte Verfahren zum Aufstellen einer Matrix mit selbst gewählten EV und EW

ist eicht auf höhere Dimensionen übertragbar.

Es ist zum Erzeugen von weiteren Beispielen zu empfehlen.

-----------------------------

Fall 1: 2d-Matrix, 2 Eigenwerte, verschieden

A:= matrix([[3,1],[1,3]])

math

evli:=linalg::eigenvectors(A)

math

Herausgreifen der EigenWerte ki und der Eigenvektoren evi

k1 :=evli[1][1];  k2 :=evli[2][1];

ev1:=evli[1][3][1]:

ev2:=evli[2][3][1]:

math

math

Prüfung, ob die Eigenvektoren senkrecht aufeinander stehen.

Ggf. Herstellung eine ONS aus Eigenvektoren.

linalg::scalarProduct(ev1,ev2)

math

Aufstellen der Transformationsmatrix P aus den Eigenvektoren.

P:=ev1.ev2

math

Pt:=linalg::transpose(P)  //hier unnötig

math

Diagonalisierung

Pt*A*P

math

#########################################

Fall 2: 3d-Matrix, 3 verschiedene Eigenwerte

A:=matrix([[7,-2,-1],[-2,7,-1],[-1,-1,4]])

math

Liste aus Eigenwert, Vielfachheit und Eigenvektor

evli:=linalg::eigenvectors(A)

math

Herausgreifen der EigenWerte ki und der Eigenvektoren evi

k1 :=evli[1][1];  k2 :=evli[2][1]; k3 :=evli[3][1];

ev1:=evli[1][3][1]:

ev2:=evli[2][3][1]:

ev3:=evli[3][3][1]:

math

math

math

linalg::scalarProduct(ev1,ev2),

linalg::scalarProduct(ev2,ev3),

linalg::scalarProduct(ev1,ev3);

math

Prüfung, ob die Eigenvektoren senkrecht aufeinander stehen.

(was für symm. Matrizen und verschiedene EW von selbst so ist.

Herstellung eine ONS aus Eigenvektoren.

ev1n:=linalg::normalize(ev1):

ev2n:=linalg::normalize(ev2):

ev3n:=linalg::normalize(ev3):

Aufstellen der Transformationsmatrix P aus den Eigenvektoren.

P:=ev1n.ev2n.ev3n

math

 

Pt:=linalg::transpose(P)

math

Diagonalisierung

Pt*A*P

math

####################################################

Fall 3: 3d-Matrix, 0 als doppelter Eigenwert,

                             einer verschieden von 0

A:=matrix([[1,1,1],[1,1,1],[1,1,1]])

math

Liste aus Eigenwert, Vielfachheit und Eigenvektor

evli:=linalg::eigenvectors(A)

math

Herausgreifen der EigenWerte ki und der Eigenvektoren evi

k1 :=evli[1][1];  k2 :=evli[2][1];

ev1:=evli[1][3][1]:

ev2:=evli[1][3][2]:

ev3:=evli[2][3][1]:

math

math

linalg::scalarProduct(ev1,ev2),

linalg::scalarProduct(ev2,ev3),

linalg::scalarProduct(ev1,ev3);

math

Prüfung, ob die Eigenvektoren senkrecht aufeinander stehen.

Das tun sie nicht. Zu einem  doppelten EW gehört ein 2-dim-Eigenraum.

Aus diesem wird ein i.a. nicht orthogonales Paar angegeben.

Der dritte EV ist aber orthogonal zu diesem Eigenraum. Daher kann man

mit dem Kreuzprodukt einen passenden anderen auswählen.

---------------------

Herstellung eine ONS aus Eigenvektoren.

ev2:=linalg::crossProduct(ev1,ev3)

math

ev1n:=linalg::normalize(ev1):

ev2n:=-linalg::normalize(ev2): //negativ genommen, s.u.

ev3n:=linalg::normalize(ev3):

Aufstellen der Transformationsmatrix P aus den Eigenvektoren.

P:=ev1n.ev2n.ev3n;

Pt:=linalg::transpose(P)

math

math

 

linalg::det(P)

math

In vielen Anwendungen ist es vorteilhaft, wenn die Determinate von P positiv ist.

Das erreicht man, wenn die EV ein Rechtssystem bilden. Man kann sie vertauschen oder

auch einen mit -1 multiplizieren, um das zu erreichen.

Diagonalisierung

Pt*A*P

math

Fall 4: 3d-Matrix, 2 verschiedene Eigenwerte,

               einer 0,  ein positiver doppelt

A:=matrix([[2,1,-1],[1,2,1],[-1,1,2]])

math

Liste aus Eigenwert, Vielfachheit und Eigenvektor

evli:=linalg::eigenvectors(A)

math

Herausgreifen der EigenWerte ki und der Eigenvektoren evi

k1 :=evli[1][1];  k2 :=evli[2][1]; k3 :=evli[2][1];

ev1:=evli[1][3][1]:

ev2:=evli[2][3][1]:

ev3:=evli[2][3][2]:

math

math

math

linalg::scalarProduct(ev1,ev2),

linalg::scalarProduct(ev2,ev3),

linalg::scalarProduct(ev1,ev3);

math

Prüfung, ob die Eigenvektoren senkrecht aufeinander stehen.

Das tun sie nicht. Zu einem  doppelten EW gehört ein 2-dim-Eigenraum.

Aus diesem wird ein i.a. nicht orthogonales Paar angegeben.

Der dritte EV ist aber orthogonal zu diesem Eigenraum. Daher kann man

mit dem Kreuzprodukt einen passenden anderen auswählen.

Für höhere Dimensionen kann man mit dem Gram-Schmidtschen

Orthogonalisierungsverfahren eine ONS herstellen.

-----------------

Herstellung eine ONS aus Eigenvektoren.

ev2:=linalg::crossProduct(ev1,ev3)

math

ev1n:=linalg::normalize(ev1):

ev2n:=-linalg::normalize(ev2): //Negativ genommen, s.u.

ev3n:=linalg::normalize(ev3):

Aufstellen der Transformationsmatrix P aus den Eigenvektoren.

P:=ev1n.ev2n.ev3n;

Pt:=linalg::transpose(P)

math

math

linalg::det(P)

math

Diagonalisierung

Pt*A*P

math

expand(Pt*A*P)

math

float(Pt*A*P)

math