Quadriken  3d Hyperbolisches Paraboloid

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

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

Rückwärts aufgestellt, siehe Datei Konstruktion-rückwärts

p:=matrix([x,y,z]):pt:=linalg::transpose(p)

math

Hyperbolisches Paraboloid

//kv1:=0: kv2:=-2: kv3:=3:

quadrik:=matrix([[5*x^2 - 26*x*y + 8*x*z - 88*x + 5*y^2 + 8*y*z + 56*y - 4*z^2 + 34*z + 128]])

math

quadrikp:=plot::Implicit3d(quadrik[1]=0,x=-5..5,y=-10..2,z=-5..5,FillColor=[0,1,0,1], Scaling=Constrained):

plot(quadrikp):

quadrikp:=plot::Implicit3d(quadrik[1]=0,x=-5..5,y=-10..2,z=-5..5,FillColor=[0,1,0,0.8], Scaling=Constrained): //nochmal Transparent

MuPAD graphics

A passend aufstellen

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

a:=matrix([-88,+56,34]): at:=linalg::transpose(a);

d:=128;

math

math

math

expand(pt*A*p+at*p+d);  //Probe, ob man A,a und d richtig hat

%-quadrik

math

math

hier muss 0 herauskommen

Hauptachtsentransformation

E3:=matrix([[1,0,0],[0,1,0],[0,0,1]])

math

evli:=linalg::eigenvectors(A) //Probe, was MuPAD liefert

math

Eigenwerte und Eigenvektoren

ew1 :=evli[1][1];  ew2 :=evli[2][1]; ew3 :=evli[3][1];

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

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

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

math

math

math

math

math

math

ev1n:=linalg::normalize(ev1):

ev2n:=linalg::normalize(ev2):

ev3n:=linalg::normalize(ev3):

P:=ev1n.ev2n.ev3n: Pt:=linalg::transpose(P);

math

Vektorschreibweise für die Abbildung image  und die 

Quadrikgleichungen, die sich durch Einsetzen ergeben:

imagebzw. in 3D

quastrich:=Simplify(pt*Pt*A*P*p+at*P*p+d)

math

quastrichp:=plot::Implicit3d(quastrich[1],x=-5..5,y=-5..4, z=-7..5,FillColor=[1,1,0,1]):

plot(quastrichp /*,Op, tp */, Scaling=Constrained):

MuPAD graphics

quastrich

math

Die Arbeitsweise ist dieselbe wie bei der Herstellung der Scheitelform einer Parabel.

Hier durch Hinsehen:

//xterm:=hold(6*(x+5/3*sqrt(3))^2);expand(xterm);

yterm:=hold(-12*(y-11/12*sqrt(3))^2);expand(yterm);

zterm:=hold(18*(z+2*sqrt(2))^2);expand(zterm);

math

math

math

math

Also

128-(144-121/4)

math

xterm:=6*sqrt(6)*(x+57/(24*sqrt(6)));expand(xterm);

math

math

quastrichK:=xterm+yterm+zterm 

math

quastrich-expand(quastrichK)

math

hier muss 0 herauskommen

Letzter Teil der Hauptachsentransformation ist die Translation t

t:=matrix([19*sqrt(6)/48, -11/12*sqrt(3),2*sqrt(2)]);

tt:=linalg::transpose(t):

math

image also image Das ergibt:

quaH:=Simplify(expand((pt-tt)*Pt*A*P*(p-t)+at*P*(p-t)))+6*sqrt(x)+128;

quadrikH:=ew1*x^2+ew2*y^2+ew3*z^2+6*sqrt(6)*x;

math

math

Angabe der Gleichung in der üblichen Form:

hold(x/sqrt(6)-y^2/3+z^2/2=0)

math

quadrikHp:=plot::Implicit3d(quadrikH,x=-2..2,y=-3..3, z=-2..2,

Scaling=Constrained):

plot(%)

MuPAD graphics

Bestimmung des ursprünglichen Mittelpunktes:

image nun in 3D

m:=Simplify(P*(-t))

math

Dieses ist der alte Mittelpunkt.

 

Bestimmung des Urbildes des rechten Hauptscheitels:

image

Mit ev1 rechts ist hier der normierte 1. Eigenvektor gemeint. Alles jetzt in 3D

r:=matrix([-2/3*sqrt(6),2,2]): //Punkt auf letzem Bild

rurstr:=r-t;

rur:=float(P*rurstr);

math

math

r

math

mp:=plot::Point3d(m,PointSize=2, PointColor=[0,1,0]):

Op:=plot::Point3d([0,0,0], PointSize=2, PointColor=[1,0,0]):

rurp:=plot::Point3d(rur, PointSize=2, PointColor=[0,1,1]):

rursp:=plot::Point3d(rurstr, PointSize=2, PointColor=[1,0.5,0]):

rp:=plot::Point3d(r,PointSize=2, PointColor=[0,0,1]):

ev1urp:=plot::Arrow3d(m,m+3*ev1):

ev2urp:=plot::Arrow3d(m,m+3*ev2):

ev3urp:=plot::Arrow3d(m,m+3*ev3):

tp:=plot::Arrow3d(-t,[0,0,0],LineColor=[1,0,0]):

plot(quadrikp,mp,Op,rurp,tp,

      ev1urp,ev2urp,ev3urp,PointSize=2,Scaling=Constrained);

MuPAD graphics

Test ob es eine Drehung allein oder gefolgt von Spiegelung ist. det=1 reine Drehung

linalg::det(Pt)

math

plot(quadrikp,quastrichp, quadrikHp,mp,Op,tp,rp,rurp,rursp,

      ev1urp,ev2urp,ev3urp,Axes=Origin,Scaling=Constrained)

MuPAD graphics

Bestimmung der Dreh-Spiegelachse

Pt

math

 

evliP:=linalg::eigenvectors(Pt)

math

 

float(evliP)

math

 

dreh:=evliP[1][3][1]

math

 

drehp:=plot::Arrow3d(5*dreh, LineColor=[1,0,1])

math

 

plot(quadrikp,quastrichp, quadrikHp,mp,Op,tp,rp,rurp,rursp,

      ev1urp,ev2urp,ev3urp,drehp,Axes=Origin,Scaling=Constrained)

MuPAD graphics