Quadriken 3d Hyperbolischer Zylinder
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)
quadrik:=matrix([[8*z - 12*y - 12*x - 1/2*x^2 - 1/2*y^2 - x*y + 2*x*z + 2*y*z + 40]])
quadrikp:=plot::Implicit3d(quadrik[1],x=-20..20,y=-20..20, z=-20..20,FillColor=[0,1,0,0.2]
):
plot(quadrikp)
A passend aufstellen
A:=matrix([[-1/2,-1/2,1],[-1/2,-1/2,1],[1,1,0]]);
a:=matrix([-12,-12,8]): at:=linalg::transpose(a);
d:=40;
expand(pt*A*p+at*p+d); //Probe, ob man A,a und d richtig hat
%-quadrik
hier muss 0 herauskommen
Hauptachtsentransformation
E3:=matrix([[1,0,0],[0,1,0],[0,0,1]])
evli:=linalg::eigenvectors(A) //Probe, was MuPAD liefert
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];
ev1n:=linalg::normalize(ev1):
ev2n:=linalg::normalize(ev2):
ev3n:=linalg::normalize(ev3):
P:=ev1n.ev2n.ev3n: Pt:=linalg::transpose(P);
Vektorschreibweise für die Abbildung und die
Quadrikgleichungen, die sich durch Einsetzen ergeben:
quastrich:=Simplify(pt*Pt*A*P*p+at*P*p+d)
quastrichp:=plot::Implicit3d(quastrich[1],x=-20..20,y=-20..20, z=-20..20,Filled=FALSE):
plot(quastrichp):
quastrich
Die Arbeitsweise ist dieselbe wie bei der Herstellung der Scheitelform einer Parabel.
Hier durch Hinsehen:
//xterm:=hold(2*(x+7/2*sqrt(2))^2);expand(xterm);
yterm:=hold(-2*(y-8/3*sqrt(3))^2);expand(yterm);
zterm:=hold((z-2/3*sqrt(6))^2);expand(zterm);
Also
quastrichK:=yterm+zterm+80 // i.a. mit xterm
quastrich-expand(quastrichK)
hier muss 0 herauskommen
Letzter Teil der Hauptachsentransformation ist die Translation t
t:=matrix([s, -8/3*sqrt(3),-2/3*sqrt(6)]);
tt:=linalg::transpose(t):
also Das ergibt:
quaH:=Simplify(expand((pt-tt)*Pt*A*P*(p-t)+at*P*(p-t)))+40;
quadrikH:=ew1*x^2+ew2*y^2+ew3*z^2+80
Angabe der Gleichung in der üblichen Form:
hold(y^2/40-z^2/80=1)
quadrikHp:=plot::Implicit3d(quadrikH,x=-20..20,y=-20..20, z=-20..20
):
plot(%)
Bestimmung des ursprünglichen Mittelpunktes:
ms:=Simplify(P*(-t))
Auf dieser Geraden liegt der alte Mittelpunkt.
m:=ms|s=0;
Den bei der Rückwärtsrechnung verwendeten Mittelpunkt erhält man für
solve({ms[1]=-1,ms[2]=-3,ms[3]=4},s)
Bestimmung des Urbildes des rechten Hauptscheitels:
(hier nicht werwendet, Mit ev1 rechts ist hier der normierte 1. Eigenvektor gemeint.
r:=sqrt(40): //große (rechte) Halbachse
rur:=r*ev2n+m;
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]):
rp:=plot::Point3d([0,r,0],PointSize=2, PointColor=[0,0,1]):
ev1urp:=plot::Arrow3d(m,m+5*ev1):
ev2urp:=plot::Arrow3d(m,m+5*ev2):
ev3urp:=plot::Arrow3d(m,m+5*ev3):
tp:=plot::Arrow3d(-t|s=0,[0,0,0],LineColor=[1,0,0]):
plot(quadrikp,mp,Op,rurp,tp,
ev1urp,ev2urp,ev3urp,PointSize=2,Scaling=Constrained);
plot(quadrikp,quastrichp, quadrikHp,mp,Op,tp,rp,
ev1urp,ev2urp,ev3urp,PointSize=2,Scaling=Constrained)