Difference between revisions of "ApCoCoA-1:Ap Tutorial De Example"
KHiddemann (talk | contribs) (→Ein rundes Beispiel: LaTeX -> CoCoAL code) |
|||
(One intermediate revision by one other user not shown) | |||
Line 6: | Line 6: | ||
<code> | <code> | ||
− | M:=Mat([[0.9817,-0.191],[0.191,0.9817]]); | + | M := Mat([[0.9817,-0.191],[0.191,0.9817]]); |
− | U:=[]; | + | U := []; |
− | P:=Mat([[1],[0]]); | + | P := Mat([[1],[0]]); |
− | For I:=1 To 500 Do | + | For I:= 1 To 500 Do |
− | P:=M*P; | + | P := M*P; |
− | P[1,1]:=FloatApprox(P[1,1] | + | P[1,1] := FloatApprox(P[1,1], 10^(-6)); |
− | P[2,1]:=FloatApprox(P[2,1] | + | P[2,1] := FloatApprox(P[2,1], 10^(-6)); |
− | Append(U | + | Append(U, [P[1,1], P[2,1]]); |
EndFor; | EndFor; | ||
</code> | </code> | ||
Line 23: | Line 23: | ||
<code> | <code> | ||
− | A:=[[2+P[2],2+P[1]*1.414,2+P[2]]|P In U]; | + | A := [ [2+P[2], 2+P[1]*1.414, 2+P[2]] | P In U ]; |
− | B:=[[2+P[1]+P[2]*0.577 | + | B := [ [2+P[1]+P[2]*0.577, 2-2*P[2]*0.577, 2-P[1]+P[2]*0.577] | P In U ]; |
− | C:=Mat(Concat(A,B)); | + | C := Mat(Concat(A,B)); |
</code> | </code> | ||
Line 39: | Line 39: | ||
Der ApCoCoA-Befehl | Der ApCoCoA-Befehl | ||
− | <center>< | + | <center><tt>L:=Numerical.GBasisOfPoints(C,0.08,False);</tt></center> |
berechnet eine sogenannte Gröbner-Basis des approximativen | berechnet eine sogenannte Gröbner-Basis des approximativen |
Latest revision as of 20:25, 1 August 2008
Ein rundes Beispiel
Zuallererst konstruieren wir uns eine gestörte Menge von Punkten. Hierfür verwenden wir in ApCoCoA die folgenden kleinen Programme.
Mit Hilfe der Befehle
M := Mat([[0.9817,-0.191],[0.191,0.9817]]);
U := [];
P := Mat([[1],[0]]);
For I:= 1 To 500 Do
P := M*P;
P[1,1] := FloatApprox(P[1,1], 10^(-6));
P[2,1] := FloatApprox(P[2,1], 10^(-6));
Append(U, [P[1,1], P[2,1]]);
EndFor;
erzeugen wir zunächst 500 Punkte, die in der Nähe des Einheitskreises liegen. Hierbei wird der Punkt jeweils um ca. weitergedreht. Dann betrachten wir die Kreise vom Radius um den Punkt , die in den Ebenen und liegen. Mit
A := [ [2+P[2], 2+P[1]*1.414, 2+P[2]] | P In U ];
B := [ [2+P[1]+P[2]*0.577, 2-2*P[2]*0.577, 2-P[1]+P[2]*0.577] | P In U ];
C := Mat(Concat(A,B));
erzeugen wir dann 1000 Punkte, die wie zwei Gürtel stark gestört um die beiden Kreise liegen.
![1000Punkte.png](/wiki/images/6/60/1000Punkte.png)
Nun suchen wir nach polynomialen Relationen, die an diesen Punkten approximativ verschwinden. Wir machen über die Gestalt der zu berechnenden Gleichungen nur geringe Annahmen: Die in den Relationen vorkommenden Variablen seien bekannt, und die gesuchten Relationen seien von polynomialer Natur.
Der ApCoCoA-Befehl
berechnet eine sogenannte Gröbner-Basis des approximativen Verschwindungsideals der 1000 Punkte, wobei verwendet wird. Die resultierende Liste enthält Polynome und mit
und
Das erste ist ziemlich genau das -fache der definierenden Gleichung der Sphäre
und das zweite entspricht der Gleichung
der beiden Ebenen, die wir ja zur Konstruktion der Punkte verwendet hatten.
![1000Punkte Sphere.png](/wiki/images/2/28/1000Punkte_Sphere.png)