用在线的Macaulay2把曲线参数方程变为隐函数形式
用在线的Macaulay2把曲线参数方程变成隐函数形式
{x=y=−9sin(2t)−5sin(3t)9cos(2t)−5cos(3t)
这个就是常被拿来说事的五角星形状的曲线, 就不单独画了。⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪x=y=2t(3t4+50t2−33)(t2+1)32(7t6−60t4+15t2+2)(t2+1)3
F(x,y)==625x6+1875x4y2+1875x2y4+625y6−182250x4y+364500x2y3−36450y5+585816x4+1171632x2y2+585816y4−41620992x2−41620992y2+550731776625(x2+y2)3−36450y(5x4−10x2y2+y4)+585816(x2+y2)2−41620992(x2+y2)+550731776
****-MarkDown长的数学公式不能自动wrap, 比stackexchange逊色了
目的
希望把如下曲线的参数方程变成隐函数
这个就是常被拿来说事的五角星形状的曲线, 就不单独画了。
实现
有理参数方程到隐函数形式的 Implicitization 问题在代数几何里已经解决得很漂亮了。
方法和原理参考文献 如果无法打开,可以到资源区下载。
所以, 只须把原始问题转化为有理参数方程就可以套用现成的办法鸟.
有理化
先把上面的三角函数形式参数方程变成有理函数形式,万能公式妥妥的:
用Macaulay2 隐函数化
计算工具: 点击在浏览器中打开Macaulay2在线版
可以看到分左右两栏的界面,左侧是帮助和提示,右侧是输入输出窗口。
学习这个软件的图书
输入如下命令:
R=QQ[s,t,x,y,z,MonomialOrder=>Eliminate 2]
I=ideal(x-2*s*t*(3*t^4+50*t^2*s^2-33*s^4),y-2*(7*t^6-60*t^4*s^2+15*t^2*s^4+2*s^6),z-(t^2+s^2)^3)
gens gb I
大致是:
1. 定义一个多项式环;
2. 基于曲线的参数方程,生成多项式环的一个理想;
3. 求该理想的Groebner基,并消去
取其中的输出:
o6 = 625x6+1875x4y2+1875x2y4+625y6-182250x4yz+364500x2y3z-36450y5z+585816x4z2+1171632x2y2z2+585816y4z2-41620992x2z4-41620992y2z4+550731776z6
去齐次化(让
****-MarkDown长的数学公式不能自动wrap, 比stackexchange逊色了
让人郁闷的是, 如果用Mathematica来做, 只须一行代码即可搞定:
GroebnerBasis[Thread[{x,y}=={2 t (3 t^4+50 t^2-33)/(1 + t^2)^3, 2(7 t^6-60 t^4+15 t^2+2)/(1+t^2)^3}], {x, y},t]
或
Eliminate[Thread[{x, y} == {2 t (3 t^4 + 50 t^2 - 33)/(1 + t^2)^3, 2 (7 t^6 - 60 t^4 + 15 t^2 + 2)/(1 + t^2)^3}], t]
本来想推销Macaulay2自由开源, 又替Wolfram白白安利了一次。
结果印证
用Mathematica画出来:
ContourPlot[625x^6+1875x^4y^2+1875x^2y^4+625y^6-182250x^4y+364500x^2y^3-36450y^5+585816x^4+1171632x^2y^2+585816y^4-41620992x^2-41620992y^2+550731776==0,{x,-15,15},{y,-15,15}]
这就验证了计算结果是正确滴。
版权声明:本文为博主原创,转载请注明出处。