找回密码
 欢迎注册
查看: 2980|回复: 14

[求助] MMA 无法计算 方程 t^5+t+3=0 的 5 个根的平方和

[复制链接]
发表于 2022-12-26 11:32:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
本帖最后由 uk702 于 2022-12-26 11:35 编辑

https://zhuanlan.zhihu.com/p/341394836 描述了用 maple 解决如下问题:

设 $t_1,t_2,...t_5$ 为方程 $t^5+t+3=0$ 的5个根,求 解以下问题:$\frac{1}{t_1^5}+\frac{1}{t_2^5}+...+\frac{1}{t_5^5$

我尝试用 Mathematica 来求解,代码如下(希望没错 ):
  1. ClearAll["Global`*"];
  2. ans=Simplify@Solve[t^5+t+3==0];
  3. Simplify@Fold[(#1)^(-5) + (#2)^(-5) &, t /. ans]
复制代码

不知什么原因,MMA 没有给出简化解来

于是我又尝试求数值解:
  1. ClearAll["Global`*"];
  2. ans=Simplify@Solve[t^5+t+3==0] // N;
  3. Fold[(#1)^(-5) + (#2)^(-5) &, t /. ans]
复制代码

MMA 给出答案为:-1129.86+1174.16 i
竟然和该文给的: $-\frac{406}{243}$ 完全不同!晕~~~

甚至,感觉手工算也不难的 $t_1^2+t_2^2+...+t_5^2$:
  1. ClearAll["Global`*"];
  2. ans = Simplify@Solve[t^5 + t + 3 == 0];
  3. FullSimplify@Fold[#1^2 + #2^2 &, t /. ans]
复制代码


MMA 竟然算个没完没了!若改为数值解,
  1. ClearAll["Global`*"];
  2. ans = Simplify@Solve[t^5 + t + 3 == 0] // N;
  3. FullSimplify@Fold[#1^2 + #2^2 &, t /. ans]
复制代码


MMA 给出的结果是 21.9442 + 8.73535 i 。

难道 MMA 学的韦达定理跟我们不一样?



毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2022-12-26 12:19:10 | 显示全部楼层
本帖最后由 uk702 于 2022-12-26 12:42 编辑

暴汗!代码真写错了。FullSimplify@Fold[#1^2 + #2^2 &, t /. ans] 计算的是 \( (((t_1^2+t_2^2)^2+t_3^2)^2+t_4^2)^2+t_5^2 \) 的值。

要计算 \( \frac{1}{t_1^5}+\frac{1}{t_2^5}+...+\frac{1}{t_5^5} \) 的值,发现用这个代码 FullSimplify@Sum[Part[t^(-5) /. ans, i], {i, 5}]  可以。

这个代码也可以:
FullSimplify@Total[t^(-5) /. Solve[t^5 + t + 3 == 0]]

这是目前发现的最简单的写法了。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2022-12-26 15:57:41 | 显示全部楼层
用 Fold 来计算也是可以的,但要改成:


  1. ClearAll["Global`*"];
  2. ans=Simplify@Solve[t^5+t+3==0];
  3. ans = Prepend[ans, {t -> 0}]; (* 在 ans 的最前面添加一项 t->0 *)
  4. FullSimplify@Fold[#1 + (#2)^(-5) &, t /. ans] (* 计算 0 + t1^(-5) + t2^(-5) + ... + t5^(-5) *)
复制代码



补充内容 (2022-12-27 08:18):
可进一步简化为: ans=Simplify@Solve[t^5+t+3==0]; FullSimplify@Fold[#1 + (#2)^(-5) &, 0, t /. ans]
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2022-12-26 16:22:28 | 显示全部楼层
可以这样,答案是 -(406/243)
  1. RootSum[#^5 + # + 3 &, #^(-5) &]
复制代码

点评

简单暴力,学习了  发表于 2022-12-26 17:16
学习了,谢谢。  发表于 2022-12-26 16:26
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2022-12-26 17:18:51 | 显示全部楼层
Rootsum的计算机制是什么? 即使是150次方,也是秒出

$RootSum[#^5 + # + 3 &, 1/#^150 &]$

$\frac{2715490287490597683785158637255586579628505626924395171690913387}{369988485035126972924700782451696644186473100389722973815184405301748249}$
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2022-12-27 09:10:19 | 显示全部楼层
递推数列呀
设$a_n=\sum_{h=1}^5 t_h^n$
于是容易得出$a(n+5)=-a(n+1)-3a(n)$
于是
\(\begin{pmatrix}a(n+5)\\a(n+4)\\a(n+3)\\a(n+2)\\a(n+1)\end{pmatrix}=
\begin{bmatrix}0&0&0&-1&-3\\
1&0&0&0&0\\
0&1&0&0&0\\
0&0&1&0&0\\
0&0&0&1&0
\end{bmatrix}
\begin{pmatrix}a(n+4)\\a(n+3)\\a(n+2)\\a(n+1)\\a(n)\end{pmatrix}
\)
然后显然a(0)=5,a(1)=a(2)=a(3)=0,a(-1)=-1/3
于是
\(\begin{pmatrix}a(n+4)\\a(n+3)\\a(n+2)\\a(n+1)\\a(n)\end{pmatrix}=
\begin{bmatrix}0&0&0&-1&-3\\
1&0&0&0&0\\
0&1&0&0&0\\
0&0&1&0&0\\
0&0&0&1&0
\end{bmatrix}^{n+1}
\begin{pmatrix}a(3)\\a(2)\\a(1)\\a(0)\\a(-1)\end{pmatrix}
\)
所以
\(a(n)=\begin{pmatrix}0&0&0&0&1\end{pmatrix}\begin{bmatrix}0&0&0&-1&-3\\
1&0&0&0&0\\
0&1&0&0&0\\
0&0&1&0&0\\
0&0&0&1&0
\end{bmatrix}^{n+1}
\begin{pmatrix}0\\0\\0\\5\\-\frac13\end{pmatrix}
\)


? f(n)=[0,0,0,0,1]*M^(n+1)*[0,0,0,5,-1/3]~
%8 = (n)->[0,0,0,0,1]*M^(n+1)*[0,0,0,5,-1/3]~
? f(-1)
%9 = -1/3
? f(-150)
%10 = 2715490287490597683785158637255586579628505626924395171690913387/36998848               5035126972924700782451696644186473100389722973815184405301748249
? f(-300)
%11 = 7373664376498616689947802511828188559166026210098992096965241773198299059348389353763026565134484527210885191229025722842141751/136891479058588375991326027382088315966463695625337436471480190078368997177499076593800206155688941388250484440597994042813512732765695774566001
? f(-1000)
%12 = 780329251088398005228108048464490410963582190572609858477362098807131513163365633040884888164208256386043441790172419796218003903978347630488120959441685971180697788629039509724914064414637384573490932683219209817093798763715361425846945448165113048373575427631800676781983912785784413197062729740388467014833103740249267956988092605300546062903960132481563949526049777380379845772926104380699253536402082670668240809773124/1322070819480806636890455259752144365965422032752148167664920368226828597346704899540778313850608061963909777696872582355950954582100618911865342725257953674027620225198320803878014774228964841274390400117588618041128947815623094438061566173054086674490506178125480344405547054397038895817465368254916136220830268563778582290228416398307887896918556404084898937609373242171846359938695516765018940588109060426089671438864102814350385648747165832010614366132173102768902855220001

评分

参与人数 1威望 +8 金币 +8 贡献 +8 经验 +8 鲜花 +8 收起 理由
northwolves + 8 + 8 + 8 + 8 + 8 很给力!

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2022-12-27 09:43:52 | 显示全部楼层
我统计了一下计算耗时,可以确定 Mathematica的RootSum内置算法还不是 二分幂算法, 可能 比矩阵二分幂要快一些
计算$r^{-10^6}$,RootSum耗时2.10781 秒,MatrixPower耗时 11.7358秒,差了6倍
计算$r^{-10^7}$,RootSum耗时20.5403 秒,MatrixPower耗时 221.61秒,差了10倍
计算$r^{-10^8}$,RootSum耗时301.689 秒,MatrixPower耗时 4116.12秒,差了14倍

  1. n = -10^7; Timing[RootSum[#^5 + # + 3 &, #^(n) &];]
复制代码


借用mathe的公式:
  1. m={{0,0,0,-1,-3},{1,0,0,0,0},{0,1,0,0,0},{0,0,1,0,0},{0,0,0,1,0}};
  2. Timing[First[MatrixPower[m,n-3].Transpose[{0,0,0,5,-1/3}]];]
复制代码


点评

膜拜一下大神。  发表于 2022-12-27 09:49

评分

参与人数 1威望 +8 金币 +8 贡献 +8 经验 +8 鲜花 +8 收起 理由
northwolves + 8 + 8 + 8 + 8 + 8 很给力!

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2022-12-27 10:16:02 来自手机 | 显示全部楼层
牛顿恒等式只处理了次数不超过变量数目的情况,次数大于变量数目时,本质上就递推数列了

点评

有道理。我错了。我有空再 深入挖掘一下RootSum算法比MatrixPower快10倍的原因  发表于 2022-12-27 10:49
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2022-12-27 10:17:53 来自手机 | 显示全部楼层
精度合理估计的话,采用浮点计算会更快

点评

是的,代数域应该也行,可以求出通项公式(其中主要包含五个数的n次幂)  发表于 2022-12-27 11:59
Mathematica的RootSum 是 代数数域 的计算。  发表于 2022-12-27 11:04
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2024-4-28 00:55 , Processed in 0.056430 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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