Quadriken  3d Paraboloid

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

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

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

 

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

math

EW:=[0,1,2]: m:=[3,-1,-3] //liegt drauf

Quadrik:=matrix([[5*x^2 - 10*x*y - 4*x*z - 40*x + 5*y^2 + 4*y*z + 52*y + 8*z^2 + 64*z + 164]]);

math

Qp:=plot::Implicit3d(Quadrik[1]=0,x=-2..7,y=-5..0,z=-7..0,FillColor=[0,1,0,1]):

plot(Qp):

MuPAD graphics

A  und a passend aufstellen

A:=matrix([[5,-5,-2],[-5,5,2],[-2,+2,8]]);

a:=matrix([-40,52,64]): at:=linalg::transpose(a);

d:=164;

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]://neg, damit es ein Rechtssystem wird

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

math

math

math

linalg::det(ev1.ev2.ev3)

math

Diese Determinante sollte positiv sein, donst ist später noch eine

Spiegelung im Spiel.

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..4,y=-5..6, z=-7..0,FillColor=[1,1,0,1]):

plot(quastrichp , Scaling=Constrained):

MuPAD graphics

quastrich

math

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

Hier durch Hinsehen:

yterm:=hold(6*(y-1/2*sqrt(6))^2);expand(yterm);

zterm:=hold(12*(z+13/6*sqrt(3))^2);expand(zterm);

math

math

math

math

dd:=d-9-169;

math

yterm+zterm+6*sqrt(2)*x+dd;

expand(%)-quastrich

math

math

Hier muss 0 herauskommen

xterm:=hold(6*sqrt(2)*(x-7/6*sqrt(2)));expand(xterm);

math

math

Also

quastrichK:=xterm+yterm+zterm 

math

quastrich-expand(quastrichK)

math

hier muss 0 herauskommen

Letzter Teil der Hauptachsentransformation ist die Translation t

t:=matrix([-7/6*sqrt(2),-1/2*sqrt(6), 13/6*sqrt(3)]);

tt:=linalg::transpose(t):

tp:=plot::Arrow3d(t):

math

image also image Das ergibt:

quaH:=Simplify(expand((pt-tt)*Pt*A*P*(p-t)+at*P*(p-t)+d));

math

Angabe der Gleichung in der üblichen Form:

hold(x=-y^2/sqrt(2)-sqrt(2)*z^2)

math

quadrikHp:=plot::Implicit3d(quaH[1],x=-4..0,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 Scheitelpunkt.

 

Bestimmung des Urbildes des rechten Hauptscheitels:

image

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

r:=-ev1: // Achse des Paraboloids

rs:=Pt*r;

rp:=plot::Arrow3d(m,m+5*r, LineColor=[0,0,0], LineWidth=1 ):

rsp:=plot::Arrow3d(-t, -t+5*rs, LineColor=[0,0,0], LineWidth=1 ):

rssp:=plot::Arrow3d(5*rs, LineColor=[0,0,0], LineWidth=1):

math

pkt:=matrix([3,-1,-3]):

pktp:=plot::Point3d(pkt,PointColor=[1,0,1],PointSize=2,PointStyle=FilledSquares):

pkts:=Pt*pkt; float(%);

pktsp:=plot::Point3d(pkts,PointColor=[1,0,1], PointSize=2,PointStyle=FilledSquares):

pktss:=pkts+t;float(%);

pktssp:=plot::Point3d(pktss,PointColor=[1,0,1], PointSize=2,PointStyle=FilledSquares):

math

math

math

math

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

msp:=plot::Point3d(-t,PointSize=2, PointColor=[0,1,0]):

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

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(Qp,quadrikHp,quastrichp,mp,msp,Op,rp,rsp,rssp,tp,pktp,pktsp,pktssp,

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

MuPAD graphics

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

linalg::det(Pt)

math

plot(Qp,quastrichp, quadrikHp,mp,Op,tp,rp,rp,rsp,

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

MuPAD graphics

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

Weitere Untersuchungen, in anderer Datei