Shared4D / 1_3D-Implizit.ipynbOpen in CoCalc
Author: Ingo Dahn
Views : 34

Dieses Material ist lizensiert unter der Lizemz Creative Commons Attribution-ShareAlike 4.0 International License Creative Commons License.

Vorbetrachtungen im 3-dimensionalen Raum

Betrachten wir zunächst das analoge Problem der Untersuchung einer 3-dimensionalen Fläche aus der Perspektive eines 2-dimensionalen Wesens - nennen wir es R2D2 - das nur die 2 Dimensionen einer Ebene EE wahrnehmen kann. Nehmen wir an, dass sich die Ebene EE durch den 3-dimensionalen Raum bewegt und dabei zeitweise die durch diese Gleichung FlFl definierte Fläche schneidet. Betrachten wir z.B. die durch die folgende Gleichung implizit definierte Fläche.
In [1]:
var('d,p,q,u,x,y') assume(x,'real');assume(y,'real');assume(u,'real') dmin=-2;dmax=2 pmin=-4;pmax=4 qmin=-4;qmax=4 xmin=-2;xmax=2 ymin=-2;ymax=2 umin=-2;umax=2 # Ändern Sie das Folgende, um eine andere Definition zu verwenden #f(x,y,u)=(u-x*y) #f(x,y,u)=x^3 + y^2 - u^2 f(x,y,u)=x^2 + y^2 + u^2 + cos(4*x) + cos(4*y) + cos(4*u) - 0.2 #f(x,y,u)=x^2+y^2+u^2-1 Fl=f(x,y,u)==0 show(LatexExpr("Fl: "),Fl) def N3(x): return N(x,digits=3)
Fl:u2+x2+y2+cos(4u)+cos(4x)+cos(4y)0.200000000000000=0Fl: u^{2} + x^{2} + y^{2} + \cos\left(4 \, u\right) + \cos\left(4 \, x\right) + \cos\left(4 \, y\right) - 0.200000000000000 = 0

Als erstes legen wir nun die Richtung fest, in der sich die Ebene im 3-dimensionalen Raum bewegt.

Wir bestimmen für diesen Vektor n\vec{n} den zugehörigen Betrag dn=nd_n = | \vec{n}| und Einheitsvektor en\vec{e_n}, so dass n=dnen\vec{n}=d_n\vec{e_n} ist. Dabei ist en=1dnn=(enxenyenu)\vec{e_n}=\frac{1}{d_n}\vec{n} = \begin{pmatrix}e_{nx} \\ e_{ny} \\e_{nu}\end{pmatrix}.

dn=1.73,en=(0.5770.5770.577)d_n= 1.73 , \vec{e_n}= \left(\begin{array}{r} 0.577 \\ 0.577 \\ 0.577 \end{array}\right)

Wir können nun die Ebene EE darstellen, in der unser 2-dimensionales Wesen R2D2 lebt. ne\vec{n_e} ist ein Normaleneinheitsvektor der Ebene und dnd_n ist der Abstand zwischen der Ebene und dem Koordinatenursprung.
Die Lage dieser Ebene im 3-dimensionalen (x,y,u)(x,y,u)-Raum können wir mit der Hessesche Normalform beschreiben als Menge aller Punkte z\vec{z}, die der Gleichung zen=dn\vec{z}\cdot \vec{e_n} = d_n genügen; das dabei verwendete Produkt ist das Skalarprodukt.
Die Ebene ist also durch die Angabe des Normalenvektors n\vec{n} eindeutig festgelegt.

Die durch FlFl definierte Fläche (grün) können wir zusammen mit der Ebene (blau) darstellen. Die Bewegung der Ebene können wir darstellen, indem wir den Abstand d der Ebene zum Koordinatenursprung verändern und die Ebene EdE_d betrachten, die durch die Gleichung zen=d\vec{z}\cdot \vec{e_n} = d definiert wird:

Fl:u2+x2+y2+cos(4u)+cos(4x)+cos(4y)0.200000000000000=0Fl: u^{2} + x^{2} + y^{2} + \cos\left(4 \, u\right) + \cos\left(4 \, x\right) + \cos\left(4 \, y\right) - 0.200000000000000 = 0

Geben wir nun R2D2 die Möglichkeit, die Kurve zu beschreiben, die unsere Fläche beim Durchgang durch dessen Welt - die Ebene EE - erzeugt. Dazu benötigt R2D2 ein Orthonormalsystem in EE als Koordinatensystem.
Es gibt dafür viele mögliche Koordinatensysteme. Wir konstruieren eines indem wir ein 3-dimensionals Orthonormalsystem im Koordinatenursprung bilden, dessen einer Vektor en\vec{e_n} ist. Dieses Koordinatensystem verschieben wir dann längs n\vec{n} in die Ebene. Der Vektor en+n\vec{e_n}+\vec{n}, der dabei entsteht, wird nicht mehr benötigt, die übrigen 2 bilden ein Orthonormalsystem für EE.
Die Ebene parallel zu EE, die durch den Koordinatenursprung geht, ist der Kern der linearen Abbildung zzen\vec{z}\mapsto \vec{z}\cdot \vec{e_n}, die durch die Matrix Mn=(enxenyenu)M_n=\begin{pmatrix}e_{nx} \\ e_{ny} \\e_{nu}\end{pmatrix} beschrieben wird.
Wir berechnen eine Basis [a1,a2][\vec{a_1},\vec{a_2}] für diesen Kern.

In [6]:
M_n=matrix(RR,e_n.column()) B=M_n.kernel().basis() a_1=B[0];a_2=B[1] show(LatexExpr("\\vec{a_1}="),N3(a_1.column()),LatexExpr(",\\vec{a_2}="),N3(a_2.column()))
a1=(1.000.0001.00),a2=(0.0001.001.00)\vec{a_1}= \left(\begin{array}{r} 1.00 \\ 0.000 \\ -1.00 \end{array}\right) ,\vec{a_2}= \left(\begin{array}{r} 0.000 \\ 1.00 \\ -1.00 \end{array}\right)

[a1,a2][\vec{a_1},\vec{a_2}] orthonormalisieren wir mit dem Gram-Schmidtschen Orthonormalisierungsverfahren zu [b1,b2][\vec{b_1},\vec{b_2}].

b1=(0.7070.0000.707),b2=(0.4080.8160.408)\vec{b_1}= \left(\begin{array}{r} -0.707 \\ -0.000 \\ 0.707 \end{array}\right) ,\vec{b_2}= \left(\begin{array}{r} 0.408 \\ -0.816 \\ 0.408 \end{array}\right)

Damit ist [b1,b2,en][\vec{b_1},\vec{b_2},\vec{e_n}] ein Orthonormalsystem für den 3-dimensionalen Raum, das wir mit dem Vektor n\vec{n} so verschieben können, dass b1\vec{b_1} und b2\vec{b_2} in die Ebene EE zu liegen kommen.
Die Richtungsvektoren vom Endpunkt von n\vec{n} zu n+b1,n+b2\vec{n}+\vec{b_1}, \vec{n}+\vec{b_2} bilden dann ein Koordinatensystem KnK_n, dessen Koordinatenachsen in der Ebene EE liegen.