找回密码
 欢迎注册
楼主: creasson

[原创] 怎么求复合后的方程?

[复制链接]
 楼主| 发表于 2012-7-29 19:45:45 | 显示全部楼层
谢谢各位了!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-29 23:27:54 | 显示全部楼层
19# creasson
但是在不知道具体是哪两个根相加的情况下这样做是不行的

不管哪两个相加,结果都是一样的.
都是同一多项式的根,
可以证明一下.
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-30 10:35:24 | 显示全部楼层
就本例而言,不管哪两个相加,结果都是一样的,都是同一多项式的根。因为复合前的两个多项式都是不可约的。
特情证明也“简单”,检查确认得到的复合多项式不可约就行了。
  1. In[1]=fx=-53-116x+191x^2+1393x^3-7677x^4+10429x^5-20034x^6+34395x^7-36887x^8-32235x^9-11257x^10+77061x^11+51163x^12-19040x^13-46835x^14-27874x^15-13792x^16-12785x^17-29225x^18-29750x^19-12152x^20-1820x^21-85x^22-2300x^23-2030x^24-448x^25+42x^26+21x^27-5x^28-5x^29-7x^30-7x^31+x^35;
  2. In[2]=IrreduciblePolynomialQ[fx]
  3. Out[1]=True
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-30 10:44:29 | 显示全部楼层
已知:x是多项式f(x)的根,y是多项式g(x)的根,求:z=h(x,y)的最小多项式。

对于这个问题,18楼的方法既具有理论意义,也是实际计算的一般性方法,并且几乎是唯一可行的一般性方法。Mathematica的MinimalPolynomial[]的内核应该就是这种方法。

评分

参与人数 1威望 +12 金币 +12 贡献 +12 收起 理由
wayne + 12 + 12 + 12 多谢!

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-30 10:47:38 | 显示全部楼层
h(x,y)是二元多项式
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-30 20:59:57 | 显示全部楼层
24# hujunhua
我花了点时间google了下, 找Mathematica关于 代数数 root reduce 的算法,其实也即是MinimalPolynomial 的 算法.
无果.
现在想想,的确是不用找了! 算法就在这!!!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-30 22:34:30 | 显示全部楼层
已知:x是多项式f(x)的根,y是多项式g(x)的根,求:z=h(x,y)的最小多项式。

对于这个问题,18楼的方法既具有理论意义,也是实际计算的一般性方法,并且几乎是唯一可行的一般性方法。Mathematica的MinimalPolynomi ...
hujunhua 发表于 2012-7-30 10:44

14楼方法也可很一般,设f(x)=0,g(y)=0,h(x,y,z)=0都是多项式。取a不是f的根,那么h*(x-a)^k mod f(x)得出若干式子后用14楼方法消去x,然后类似再消去y即可
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-31 18:00:04 | 显示全部楼层

《代数数和代数函数》

建议楼主看看《代数数和代数函数》这本书。你的问题是代数数论中的基本问题:代数数构成域的证明。
所谓构成域,就是对四则运算(加、减、乘、除)封闭,我写的z=h(x,y)不过是四则运算的复合。解决了基本运算,复合叠加自然不成问题。
mathe更进一步,写成了h(x,y,z)=0, 这就不仅是四则运算的叠加了,但是z仍然是代数数。即以代数数为系数的代数方程(区别于超越方程)的根仍是代数数。在代数数论中,这个结论谓之“代数数域是一个代数闭包”。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2022-3-28 11:47:29 | 显示全部楼层
hujunhua 发表于 2012-7-30 10:44
已知:x是多项式f(x)的根,y是多项式g(x)的根,求:z=h(x,y)的最小多项式。

对于这个问题,18楼的方法既 ...

对于本题而言,还有一种数值方法是可行的,而且操作上更简单。

我们知道复合后的多项式是35次的,其35个根可以由原来的5次和7次方程组合得到,

然后将所有35个$z-z_i$乘起来就可以得到多项式,最后将系数取整即可。

这个方法同样是一般性的,但由于数值精度的问题,可能并不能保证所有情况下都能得到

准确的结果。


gp代码
  1. getPoly() = {
  2.     X = polroots(x^5-x-1);
  3.     Y = polroots(y^7-y-1);
  4.     res = 1;
  5.     for(i = 1,5,
  6.         for(j = 1,7,
  7.             res *= (z-X<i>-Y[j]);
  8.         );
  9.         
  10.     );
  11.     Z = 0;
  12.     for(i = 0,35,
  13.         an = polcoef(res,i,v=z);
  14.         print([i,abs(an-round(an))]);
  15.         Z += round(an)*z^i;
  16.     );
  17.     print(Z);
  18.    
  19. };</i>
复制代码


毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-4-27 12:00 , Processed in 0.894265 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表