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.
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.