> |
Zu Aufgabe (27/28)
Bitte beachten:
-- die griechischen Buchstaben sehen hier zum Teil anders aus als auf dem Aufgabenblatt.
-- die zugehörige mws-Datei ist hier hinterlegt.
> | restart: |
> | with(LinearAlgebra): |
> | c:=0; |
> | phi:=2*x1^2+x2^2-x3^2-x4^2+c; |
Die Matrix dieses quadratischen Polynoms ist
> | A:=Matrix([[coeff(phi,x1,2),0,0,0],[0,coeff(phi,x2,2),0,0],[0,0,coeff(phi,x3,2),0],[0,0,0,coeff(phi,x4,2)]]); |
> | lambda:=x1-x2-x4-1; |
> | mu:=x1+x2-x3-1; |
Entsprechende Normalenvektoren sind
> | B:=u-><seq(coeff(u,x||k,1),k=1..4)>: |
> | B(lambda),B(mu); |
Nicht gefragt ist die folgende Bestimmung eines Polynoms, das sich bei Elimination von mit Hilfe der Polynome und ergibt:
> | sx4:=solve(lambda,x4); |
> | sx3:=solve(subs(x4=sx4,mu),x3); |
> | subs(x4=sx4,x3=sx3,phi); |
> | xi:=expand(%); |
Die Nullstellenmenge von in sieht so aus:
> | plots[implicitplot](xi,x1=-100..100,x2=-100..100,numpoints=10000,scaling=constrained,axes=boxed); |
Die Nullstellenmenge von in sieht z.B. so aus (in kann man es sich leider nicht mit Paple ansehen):
> | plots[implicitplot3d](xi,x1=-100..100,x2=-100..100,x3=-100..100,numpoints=10000,scaling=constrained,axes=boxed); |
> |
Das Polynom ist aber nicht das in der Aufgabe gesuchte!
Warum?
Orthonormale Basisergänzung zum Orthogonalraum zu . Dadurch erhält man eine orthogonale Matrix für die gesuchte lineare Abbildung l :
> | BB:=<B(lambda)|B(mu)>; |
> | N:=NullSpace(Transpose(BB)); |
> | NB:=[N[1],N[2],B(lambda),B(mu)]: |
> | P:=convert(GramSchmidt(NB,conjugate=false,normalized),Matrix); |
> | P1:=Transpose(P): |
> | sqrt(6)*P; |
Proben:
> | Multiply(P1,P),Determinant(P); |
gemeinsamer Stützvektor für die durch und gegebenen Hyperebenen:
> | v:=<1,-1,-1,1>; |
> | #v:=<2,0,2,0>; |
Probe:
> | fl:=u->subs(seq(x||k=u[k],k=1..4),lambda): |
> | fm:=u->subs(seq(x||k=u[k],k=1..4),mu): |
> | fl(v),fm(v); |
Bestimmung der Transformation 1 des Polynoms :
> | y:=<seq(y||k,k=1..4)>: |
> | AA:=P1.A.P; |
> | phi||1:=sort(expand(Transpose(P.y+v).A.(P.y+v)+c),[y1,y2,y3,y4],plex); |
> | bb:=2*P1.A.v; |
> | cc:=Transpose(v).A.v+c; |
Probe:
> | expand(phi||1-(Transpose(y).AA.y+Transpose(y).bb+cc)); |
> | lambda||1:=collect(Transpose(B(lambda)).(P.y+v)+tcoeff(lambda),[y1,y2,y3,y4]); |
> | mu||1:=collect(Transpose(B(mu)).(P.y+v)+tcoeff(mu),[y1,y2,y3,y4]); |
> | sy3:=solve(lambda||1,y3); |
> | sy4:=solve(mu||1,y4); |
> | psi:=sort(simplify(subs(y3=sy3,y4=sy4,phi||1)),[y1,y2,y3,y4],plex); |
So sieht die Kurve aus:
> | plots[implicitplot](psi,y1=-100..100,y2=-100..100,numpoints=10000,scaling=constrained,axes=boxed); |
So sieht die ursprüngliche Fläche (" ") in der Hyperebene x4=1 aus:
> | plots[implicitplot3d](subs(x4=1,phi),x1=-10..10,x2=-10..10,x3=-10..10,numpoints=10000,axes=boxed,scaling=constrained); |
Sieht sie wirklich so aus, oder hat implicitplot zu ungenau gerechnet in der Nähe des Nullpunktes, was durchaus vorkommen kann ?
Wie sieht der Schnitt mit der Ebene x3=0 aus ?
> | subs(x4=1,x3=0,phi); |
> | plots[implicitplot](subs(x4=1,x3=0,phi),x1=-10..10,x2=-10..10,numpoints=50000,scaling=constrained); |
> |
> |
> |