Hyperbel in allgemeiner Lage

Prof. Dr. Dörte Haftendorn: Mathematik mit MuPAD 4 Juni 07   Update 29.06.07

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

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

Sinnvoller ist die Erzeugung mit "Konstruktion rückwärts-2d"

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

Das Beispiel aus der Vorlesung, mit Eigenwerten, die Wurzelausdrücke sind.

So hatten wir es uns die Matrix A  ausgedacht. Rechnerisch ist das also kein günstiges Beispiel.

Konsequenz dieser Erfahrung sind die Dateien zur Rückwärtskonstrunktion der Kegelschnitte

und Quadriken.

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

math

 

keg:=A[1,1]*x^2+2*A[1,2]*x*y+A[2,2]*y^2-5

math

kegp:=plot::Implicit2d(keg,x=-5..8,y=-2..2):

plot(kegp,Scaling=Constrained);

MuPAD graphics

Dieser Kegelschnitt ist offenbar eine Hyperbel.

Bestimmung der Achsenrichtungen:

evli:=linalg::eigenvectors(A)

math

 

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

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

math

math

 

float(ev1),float(ev2)

math

Das folgende hatten wie in der Vorlesung zu vx=1 selbst berechnet

vy:=float(-1/2+sqrt(20)/4)

math

Das passte also.

Einzeinenen der Eigenvektoren:

ev1p:=plot::Arrow2d(ev1):

ev2p:=plot::Arrow2d(ev2):

plot(kegp,ev1p,ev2p, Scaling=Constrained)

MuPAD graphics

Wie erwartet sind die Eigenvektoren die Richtungen der Hauptachsen des Kegelschnittes.

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

Bestimmung der Kegelschnittgleichung ist ganz einfach, wenn man die Theorie gleich verwendet:

Man nimmt die Eigenwerte als Koeffizienten der quadratischen Glieder.

Die gemischten  lässt man weg.

Wie eventuelle lineare Glieder umgeformt werden, wird in anderen Beispielen gezeigt.

ew1:=evli[1][1];

ew2:=evli[2][1];

math

math

kegH:=ew1*x^2+ew2*y^2-5;

float(%)

math

math

Diesen in  Hauptachsenlage transformierten Kegelschnitt

zeichnen wir ein:

kegHp:=plot::Implicit2d(kegH,x=-5..8,y=-2..2,

         LineWidth=1,LineColor=[1,0,0]):

plot(kegp, kegHp,ev1p,ev2p,Scaling=Constrained)

MuPAD graphics

Ganz offenbar ist da eine Drehung vollzogen worden.

Die Drehmatrix von der Hauptachsenlage in die gegebene Lage ergibt sich aus den normierten Eigenvektoren.

Die stehen gleich von alleine senkrecht aufeinander, wenn die Eigenwerte verschieden sind.

Sie ist dann eine Orthonormal-Matrix, bezeichnet mit P. Für solche ist die inverse Matrix

gleich der transponierten Matrix, bezeichnet mit Pt (oder mit hochstelltem T).

Die Transformationsmatrix,  die den Kegelschnitt in die Hauptachsenlage dreht, ist Pt.

Abbildungsgleichung:  image

Die Theorie sagt nun, dass  Pt*A*P die Diagonalmatrix aus den Eigenwerten ist.

Davon kann man sich hier überzeugen:  

ev1n:=linalg::normalize(ev1):

ev2n:=linalg::normalize(ev2):

P:=ev1n.ev2n

math

float(P)

math

Pt:=linalg::transpose(P)

math

float(Pt)

math

Der Vergleich mit der allgemeinen Drehmatrix ergibt:

cos(phi)=float(Pt[1,1]);sin(phi)=float(Pt[2,1]);

math

math

Daraus folgt umgerechnet ins Winkelmaß:

float(arccos(float(Pt[1,1]))/PI*180);

wi:=float(arcsin(float(Pt[2,1]))/PI*180);

math

math

Die Deutung muss man etwas überlegen, mit

wi

math

sind beide Gleichungen erfüllt. Also ist es eine Drehung um diesen Winkel.

So passt es auch zur Zeichnung.

Diagonalisierung, die klappt immer, wenn die EV eine ONB bilden,

wenn man also so ein P aufstellen kann.

Simplify(Pt*A*P);

float(Pt*A*P)

math

math

Die winzigen 10^-19 Werte sind numerisch 0.