Quadriken Konstruktion rückwärts 3d
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 ######################################################
Fall1 drei verschiedene EW
Fall2 zwei verschiedene EW, einer doppelt
Konstruktion einer anderenLage, Sammlung guter Beispiele, unten
-----------------------------
E3:=matrix([[1,0,0],[0,1,0],[0,0,1]])

Gewünschte orthogonale EV
v1:=matrix([1,-1,1]);
v2:=matrix([-1,1,2]); //selbst aufpassen, dass dieser orthogonal ist.
v3:=1/3*linalg::crossProduct(v1,v2);
linalg::scalarProduct(v1,v2)



![]()
v1n:=linalg::normalize(v1):
v2n:=linalg::normalize(v2):
v3n:=linalg::normalize(v3):
Pv:=v1n.v2n.v3n

simplify(linalg::det(Pv))
![]()
Diese Determinantet kann eigentlich wegen des Kreuzproduktes nicht -1 werden.
Falls man von Hand aufgestellt hat und diese Det. -1 ist, vertauscht man besser v1 und v2.
Anderenfalls ist noch eine Achsenspiegelung nach der Drehung zu denken.
Ptv:=linalg::transpose(Pv)

kv1:=2: kv2:=1: kv3:=4: // freie Wahl der EW, verschieden
//kv1:=1: kv2:=2: kv3:=kv2: // freie Wahl der EW, einer dopp
//kv1:=2: kv2:=kv1:kv3:=kv1: // freie Wahl des dreifachen EW, trivial, zentrische Streckung
Dewv:=matrix([[kv1,0,0],[0,kv2,0],[0,0,kv3]])

A:=Simplify(Pv*Dewv*Ptv);
factor(Simplify(Pv*Dewv*Ptv))


amke:=[A-kv1*E3, A-kv2*E3,A-kv3*E3] //Verwendung bei Berechnung es EV

Simplify(map(amke,linalg::det)) //Probe
![]()
evli:=linalg::eigenvectors(6*A) //Probe, was MuPAD liefert

Herausgreifen der EigenWerte ki und der Eigenvektoren evi
####################################################################
Gehe zum passenden Fall
Anpassen wegen der Vielfachheiten Fall1 Drei verschiedene EW
k1 :=evli[1][1]; k2 :=evli[2][1]; k3 :=evli[3][1];
ev1:=evli[1][3][1]:
ev2:=evli[2][3][1]: //evt. neg, damit Rechtssystem herauskommt
ev3:=evli[3][3][1]:
![]()
![]()
![]()
linalg::det(ev1.ev2.ev3)
![]()
Diese Determinante sollte positiv sein, donst ist später noch eine
Spiegelung im Spiel.
##################################################################
Herausgreifen der EigenWerte ki und der Eigenvektoren evi
Anpassen wegen der Vielfachheiten Fall 2 zwei verschiedene EW, ein dopp.
//k1 :=evli[1][1]; k2 :=evli[1][1]; k3 :=evli[2][1];
//ev1:=evli[1][3][1];ev2:=evli[1][3][2];ev3:=evli[2][3][1];
![]()
![]()
![]()



Hier müssen später die EV orthogonalisiert werden, z.B.
//ev1:=linalg::crossProduct(ev2,ev3)

linalg::det(ev1.ev2.ev3)
![]()
Diese Determinante sollte positiv sein, donst ist später noch eine
Spiegelung im Spiel.
#########################################
Konstruktion einer anderen Lage
p:=matrix([x,y,z]): pt:=linalg::transpose(p)
![]()
Erfindung eines Punktes für das Urbild.
Bei parabolischen Quadriken ist die vorherige Bestimmung des Scheitels
an dieser Stelle zu aufwändig. Ist kein Eigenwert 0 kann man hier einen Mittelpunkt
der späteren Quadrik wählen.
m:=matrix([5,-2,2]); mt:=linalg::transpose(m) ;

![]()
Konstruktion ein schönen Quadrik-Gleichung.
Bei parabolischen Quadriken muss hier ein linearer Term für die
Richtung mit Eigenwert 0 ( Reihenfolge von MuPAD) vorgesehen werden.
z.B.
d:=-kv1*kv2*kv3; // das ist nicht nötig aber praktisch
Quadrik:=6*expand((pt-mt)*A*(p-m)+d);
![]()

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

##############################################################
Sammlung guter Beispiele,
v1:=matrix([1,1,2]);
v2:=matrix([-1,-1,1]); //selbst aufpassen, dass dieser orthogonal ist.


Ellipsoid, in Extradatei dann untersucht
kv1:=1: kv2:=2: kv3:=3: // freie Wahl der EW, verschieden
Q1:=matrix([[7*x^2 - 4*x*y - 2*x*z - 70*x + 7*y^2 - 2*y*z + 38*y + 4*z^2 + 28*z + 202]])

m:=matrix([4,-2,-3]);
Q1p:=plot::Implicit3d(Q1[1]=0,x=-2..7,y=-5..0,z=-7..0):
plot(Q1p):


Einschaliges Hyperboloid
Q2:=matrix([[42*z - 6*y - 60*x - 6*x^2 - 6*y^2 + 6*x*y + 6*x*z + 6*y*z - 180]])

m:=matrix([-5,-2,2]):
Q2p:=plot::Implicit3d(Q3[1]=0,x=-10..10,y=-10..10,z=-10..10):
plot(Q2p):

zweischaliges Hyperboloid
Q3:=matrix([[78*x - 30*y - 12*z + 6*x^2 + 6*y^2 - 6*x*y - 6*x*z - 6*y*z + 222]])

m:=matrix([-4,2,3]):
Q3p:=plot::Implicit3d(Q3[1]=0,x=-20..20,y=-20..20,z=-20..20):
plot(Q3p):

Kegel
EW:=[1,3,-2]: m:=[-4,1,2]: //liegt drauf, Mittelpnkt
Quadrik5:=matrix([[33*x^2 - 24*x*y - 42*x*z + 372*x - 30*y^2 - 24*y*z + 12*y + 33*z^2 - 276*z + 1014]]);

Q5p:=plot::Implicit3d(Quadrik5[1]=0,x=-5..5,y=-5..5,z=-5..5):
plot(Q5p):

Elliptisches Paraboloid
EW:=[0,1,2]: m:=[3,-1,-3] //liegt drauf
Quadrik7:=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]]);

Quadrik7|{x=3,y=-1,z=-3}
![]()
Q7p:=plot::Implicit3d(Quadrik7[1]=0,x=-2..7,y=-5..0,z=-7..0):
plot(Q7p):

Hyperbolisches Paraboloid
EW:=[0,-2,1]: m:=[-3,1,-3]; //liegt drauf
Quadrik8:=matrix([[60*y + 48*z - 3*x^2 - 3*y^2 + 6*x*y + 12*x*z - 12*y*z - 12]])
![]()

Quadrik8|{x=-3,y=1,z=-3}
![]()
Q8p:=plot::Implicit3d(Quadrik8[1]=0,x=-10..10,y=-10..10,z=-10..10):
plot(Q8p):

Elliptischer Zylinder
EW:=[0,3,2]: m:=[4,2,-2]://Mittelpunkt
Quadrik9:=matrix([[11*x^2 + 8*x*y - 14*x*z - 132*x + 8*y^2 + 8*y*z - 48*y + 11*z^2 + 84*z + 288]]);

Q9p:=plot::Implicit3d(Quadrik9[1]=0,x=-5..10,y=-5..10,z=-5..10):
plot(Q9p):

Hyperbolischer Zylinder, in Extradatei dann untersucht
Q10:=matrix([[8*z - 12*y - 12*x - 1/2*x^2 - 1/2*y^2 - x*y + 2*x*z + 2*y*z + 40]])

m:=matrix([-1,-3,4]):
Q10p:=plot::Implicit3d(Q10[1]=0,x=-20..20,y=-20..20,z=-20..20):
plot(Q10p):

Parabolischer Zylinder
Quadrik14:=matrix([[4*x^2 + 20*x*y + 4*x*z - 36*x + 25*y^2 + 10*y*z + 60*y + z^2 + 12*z + 96]]);

Q14p:=plot::Implicit3d(Quadrik14[1]=0,x=-5..5,y=-5..5,z=-5..5,
Mesh=[20,20,20]):
plot(Q14p):

ein weiteres Ellipsoid
EW:=[6,12,24]: m:=[5,-2,2]://Mittelpunkt
Quadrik1b:=6*expand((pt-mt)*A*(p-m)+d);
![]()

Q1bp:=plot::Implicit3d(Quadrik1b[1]=0,x=-5..7,y=-4..0,z=-2..5
,Mesh=[20,20,20]):
plot(Q1bp):
