Maxima で綴る数学の旅

紙と鉛筆の代わりに、数式処理システムMaxima / Macsyma を使って、数学を楽しみましょう

-数学- 不思議な対称性「2つの曲線は等しい」

$$ f\left(t\right):=\exp \left(i\,t\right)-\frac{\exp \left(6\,i\,t\right)}{2}+\frac{i\,\exp \left(\left(-14\right)\,i\,t\right)}{3} $$

この指数関数の3つの項からなる関数は複素平面上で閉曲線を描きます。一方、コメントに書かれたx, yの28次の多項式もおなじ閉曲線を描きます。

f:id:jurupapa:20150624221124p:plainf:id:jurupapa:20150621223347p:plain

 

2つの曲線が厳密に同じであることをどうやって示せば良いでしょうか。

 

色々と調べた結果、この問題はtrigonometric curveのimplicitizationという形で定式化されていることがわかりました。x, yがフーリエ級数の有限項打ち切りで表される曲線をtrigonometric curveと呼びます。この曲線を表すx,yの多項式(陰関数=implicit function)を求めることをimplicitizationと呼びます。

 

Hoon Hongらが1998年に発表したアルゴリズムを使えば、trigonometric curveとおなじ曲線を表すimplicitizationを求めることができます。今回はこのアルゴリズムを"Creating Symmetry"に載っていた複素関数に手作業で適用してみます。

 

まずは後で使うための式変形のルールを2つ定義します。

(%i1) matchdeclare(m,integerp);
$$ \tag{%o1} \mathbf{done} $$
(%i2) defrule(Rs,sin(m*t),(z^m-z^(-m))/(2*%i));
$$ \tag{%o2} \mathrm{Rs}:\sin \left(m\,t\right)\rightarrow -\frac{i\,\left(z^{m}-\frac{1}{z^{m}}\right)}{2} $$
(%i3) defrule(Rc,cos(m*t),(z^m+z^(-m))/2);
$$ \tag{%o3} \mathrm{Rc}:\cos \left(m\,t\right)\rightarrow \frac{z^{m}+\frac{1}{z^{m}}}{2} $$

次のf(t)が"Creating Symmetry"に載っている複素関数です。
(%i4) f(t):=exp(%i*t)-exp(6*%i*t)/2+%i*exp(-14*%i*t)/3;

$$ \tag{%o4} f\left(t\right):=\exp \left(i\,t\right)-\frac{\exp \left(6\,i\,t\right)}{2}+\frac{i\,\exp \left(\left(-14\right)\,i\,t\right)}{3} $$
これの実部を計算します。

(%i5) RP:realpart(f(t));
$$ \tag{%o5} \frac{\sin \left(14\,t\right)}{3}-\frac{\cos \left(6\,t\right)}{2}+\cos t $$

確かにフーリエ級数の有限項、の形になっています。これを先ほど定義したルールで変形します。
(%i6) xx:xthru(expand(apply1(RP,Rs,Rc)));
$$ \tag{%o6} \frac{-2\,i\,z^{28}-3\,z^{20}+6\,z^{15}+6\,z^{13}-3\,z^8+2\,i}{12\,z^{14}} $$

同じように虚部を計算します。
(%i7) IP:imagpart(f(t));
$$ \tag{%o7} \frac{\cos \left(14\,t\right)}{3}-\frac{\sin \left(6\,t\right)}{2}+\sin t $$

ルールを適用して変形します。
(%i8) yy:xthru(expand(apply1(IP,Rs,Rc)));
$$ \tag{%o8} \frac{2\,z^{28}+3\,i\,z^{20}-6\,i\,z^{15}+6\,i\,z^{13}-3\,i\,z^8+2}{12\,z^{14}} $$
(%i9) display2d:false;
(%o9) false

実部、虚部から求めた2つの式をそれぞれ少し変形したものから、zを消去する形で終結式を計算すると、それが求めたいx,yの多項式となるのです。
(%i10) F:ev(resultant(xx*z^14-z^14*x,yy*z^14-z^14*y,z), expand,factor) / 17592186044416;

(%o10) 25153299310447884276596736*y^28+352146190346270379872354304*x^2*y^26
+23755893793200779594563584*y^26 + ...  +2624934016462944842530597944*x^2
-243384066397251875030111507

 

Hoon Hongらの論文によればこのアルゴリズムはtrigonometric curveとおなじ曲線を持つimplicitazionを求める、となっているので、これでおなじ曲線であることが証明できた、とさせてください。(孤立点など細かい議論はあると思いますが、ここでは省略)。

 

ちなみに%o10を求めるのに、約7時間かかりました。Quad coreCore i5, 2.7GHz。