zu Beispiel 7 in § 8
Falls Sie Maple benutzen finden Sie hier die zu Grunde liegende mws-Datei.
> | restart: |
> | with(LinearAlgebra): |
> | kappa:=x1^2+x2^2-x0^2; |
Die Matrix dieses quadratischen Polynoms ist
> | A:=Matrix([[coeff(kappa,x0,2),0,0],[0,coeff(kappa,x1,2),0],[0,0,coeff(kappa,x2,2)]]); |
> | mu:=x1-x0-c; |
Ein Normalenvektor zu der durch gegebenen Ebene in ist:
> | B:=u-><seq(coeff(u,x||k,1),k=0..2)>: |
> | B(mu); |
Gesucht ist ein Polynom, das die Schnittmenge von V ( ) mit V ( ) bezüglich der Schnittebene beschreibt.
Elimination von mit Hilfe des Polynoms ergibt:
> | rho:=rem(kappa,mu,x0); |
Die Nullstellenmenge von in sieht so aus :
> | plots[implicitplot](subs(c=10,rho),x1=-100..100,x2=-100..100,numpoints=10000,scaling=constrained,axes=boxed); |
Die Nullstellenmenge von in sieht so aus:
> | plots[implicitplot3d](subs(c=10,rho),x1=-100..100,x2=-100..100,x3=-100..100,numpoints=10000,scaling=constrained,axes=boxed); |
Das Polynom ist aber nicht das gesuchte!
Warum?
Orthonormale Basisergänzung zum Normalenvektor B( ). Dadurch erhält man eine orthogonale Matrix für einen Koordinatenwechsel:
> | BB:=<B(mu)>; |
> | N:=NullSpace(Transpose(BB)); |
> | NB:=[N[1],N[2],B(mu)]: |
> | P:=convert(GramSchmidt(NB,conjugate=false,normalized),Matrix); |
> | P1:=Transpose(P): |
> | sqrt(2)*P; |
Proben:
> | Multiply(P1,P),Determinant(P); |
Stützvektor für die durch gegebene Ebene ist:
> | v:=<-c/2,c/2,0>; |
Probe:
> | fm:=u->subs(seq(x||(k-1)=u[k],k=1..3),mu): |
> | fm(v); |
v ist so gewählt, dass der Fußpunkt der Parabel in der Schnittebene im 0-Punkt liegen wird.
Bestimmung der Transformation des Polynoms :
> | y:=<seq(y||k,k=0..2)>: |
> | AA:=P1.A.P; |
> | kappa||1:=sort(expand(Transpose(P.y+v).A.(P.y+v)),[y0,y1,y2],plex); |
> | bb:=2*P1.A.v; |
> | cc:=Transpose(v).A.v; |
Probe:
> | expand(kappa||1-(Transpose(y).AA.y+Transpose(y).bb+cc)); |
> | P.y+v; |
> | mu||1:=collect(Transpose(B(mu)).(P.y+v)-c,[y0,y1,y2]); |
> | sy2:=solve(mu||1,y2); |
> | psi:=sort(simplify(subs(y2=sy2,kappa||1)),[y0,y1,y2],plex); |
So sieht die Kurve aus:
> | plots[implicitplot](subs(c=10,psi),y0=-100..100,y1=-100..100,numpoints=30000,scaling=constrained,axes=boxed); |
Bei genauerem Hinsehen stellt man fest, dass eine Verzerrung gegenüber der Nullstellenmenge von stattgefunden hat. Der Typ ist aber (nur hier ?) nach wie vor der einer Parabel.
> |
> |