找回密码
 欢迎注册
查看: 51044|回复: 18

[提问] 如何用手工的办法求解出x^17=1的根式解

[复制链接]
发表于 2019-3-1 13:25:44 | 显示全部楼层 |阅读模式

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

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

×
我想知道的是高斯当年是如何解出这个方程的,
而不是结果,我看重的是思路
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2019-3-1 14:28:56 | 显示全部楼层
\[x^{16}+x^{15}+x^{14}+x^{13}+x^{12}+x^{11}+x^{10}+x^9+x^8+x^7+x^6+x^5+x^4+x^3+x^2+x+1==0\]
先求解这个方程,两边都除以x^8,然后配对,这步比较简单,具体我就不算了
我用$t=x+1/x$来代换,降低方程的阶
得到方程
$t^8+t^7-7 t^6-6 t^5+15 t^4+10 t^3-10 t^2-4 t+1==0$
剩下的我就不会了

代码
  1. Clear["Global`*"];
  2. aa=Sum[x^k,{k,0,16,1}]
  3. Eliminate[aa==0&&t==x+1/x, {x}]
复制代码


毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2019-3-1 14:41:27 | 显示全部楼层
mathematica 发表于 2019-3-1 14:28
\[x^{16}+x^{15}+x^{14}+x^{13}+x^{12}+x^{11}+x^{10}+x^9+x^8+x^7+x^6+x^5+x^4+x^3+x^2+x+1==0\]
先求解 ...

如何继续降低方程次数呢?
我发现这种办法对5次方程有效,为什么17次就不行了呢?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-3-1 15:57:27 | 显示全部楼层
首先,我们可以把解写成
$\cos \left(\frac{2 \pi }{17}\right)+i \sin \left(\frac{2 \pi }{17}\right)$
也就是,我们只需要求Cos[Pi/17]的值
注意到
FullSimplify[
Cos[\[Pi]/17] Cos[(2 \[Pi])/17] Cos[(4 \[Pi])/17] Cos[(8 \[Pi])/17]]
得到结果1/16
……
我准备作弊了

ToRadicals[Cos[(2 \[Pi])/19]]
\(-\frac{1}{2} (-1)^{17/19} \left(1+(-1)^{4/19}\right)\)
据此推测
……
https://zhidao.baidu.com/question/565950978554291804.html
https://www.cnblogs.com/rhythmic/p/5469814.html
搞定
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-3-1 16:39:24 | 显示全部楼层
本帖最后由 .·.·. 于 2019-3-1 16:59 编辑
mathematica 发表于 2019-3-1 14:41
如何继续降低方程次数呢?
我发现这种办法对5次方程有效,为什么17次就不行了呢?


据此可以试试cos(2pi/257)
首先想到素数,必然想到原根
根据某某定理,3是所有费马素数的原根
  1. l1 = PowerMod[3, Table[2*i, {i, 0, 127}], 257]
  2. l2 = PowerMod[3, Table[2*i + 1, {i, 0, 127}], 257]
  3. f[x_] := Cos[2 \[Pi] x/257]
  4. Plus @@ f /@ l1*Plus @@ f /@ l2 // N
  5. Plus @@ f /@ l1+Plus @@ f /@ l2 // N
  6. lx1 = PowerMod[3, Table[4*i, {i, 0, 63}], 257]
  7. lx2 = PowerMod[3, Table[4*i + 2, {i, 0, 63}], 257]
  8. Plus @@ f /@ lx1*Plus @@ f /@ lx2 // N
复制代码

剩下的基本都是同理可得了
65537也是同理可得
然鹅更大的费马数不是素数,于是我们做不到“取原根”这项操作
至于为啥弄一个原根可以保证和差化积性质……别问我

点评

每一个原根应该都可以,你可以把这里的3改成27  发表于 2019-3-1 16:59
我最想知道的答案是为什么搞原根,以及别的原根行不行!  发表于 2019-3-1 16:53
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2019-3-1 16:45:20 | 显示全部楼层
本帖最后由 mathematica 于 2019-3-1 16:48 编辑
.·.·. 发表于 2019-3-1 16:39
据此可以试试cos(2pi/257)
首先想到素数,必然想到原根
根据某某定理,3是所有费马素数的原根


看看哈代数论!
我问的就是想知道为什么搞原根,结果你说别问。
我就是想把这个问题当成一个新问题,然后来解决,假设在历史上没人解决过这个问题,然后你如何解决。
为什么那么做,对我来说很重要,我知道答案是这样子,但是我想知道的是答案为什么是这样子

QQ截图20190301164344.png

点评

请假装没看见我上一条点评……  发表于 2019-3-1 21:34
当我没说  发表于 2019-3-1 18:09
找到了 和差化积时候待定系数,然后(使用原根提供的对称性)证明任意两项系数相等  发表于 2019-3-1 18:00
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-3-1 17:22:44 | 显示全部楼层
本帖最后由 .·.·. 于 2019-3-1 17:35 编辑
mathematica 发表于 2019-3-1 16:45
看看哈代数论!
我问的就是想知道为什么搞原根,结果你说别问。
我就是想把这个问题当成一个新问题, ...


我说“别问”的意思是
这玩意太复杂了
Gauss的思路是把根式转化成二次方程然后进行解答(尺规作图只能处理二次)
事实上如果允许三次根,可能我们在凑数的时候可以试试a1+a2+a3=p,a1a2+a2a3+a1a3=q,a1a2a3=r这样的根式
然而如果我们只能使用二次的根式,至少在这种思路下,我们只能找若干cos(x(2pi/n)),使得其和大小可解,其积大小为能够通过和差化积计算
……
和差化积超难算的
目测是用数论的方法判断是否和差化积之后f(x)的个数
大抵因为我们用了原根的缘故,所有f(x)一样多
TrigReduce[(Cos[x] + Cos[4 x]) (Cos[2 x] + Cos[8 x])]
\(\frac{1}{2} (\cos (x)+\cos (2 x)+\cos (3 x)+\cos (4 x)+\cos (6 x)+\cos (7 x)+\cos (9 x)+\cos (12 x))\)
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-3-1 22:12:16 | 显示全部楼层
本帖最后由 .·.·. 于 2019-3-1 22:49 编辑

……才发现,当年大约就是这样倒在2012CMO第二题上面的
首先,让我们做两个操作
一个叫待定系数
下面假设$y_S=\sum_{i \in \{cos(2k\pi/n):k\in S\}}i$中若干项的和
同时为了简便,记$f(k)=cos(2k\pi/n)$
对每一个$y_A*y_B$,先用待定系数法设$y_Ay_B=a1f(1)+...+a_nf(n)$
拿线性代数很容易证明,对整数a1,...,an跟b1,...,bn,如果$a_1f(1)+...+a_nf(n)=b_1f(1)+...+b_nf(n)$,那么$a_1=b_1,...,a_n=b_n$……………………(1)

根据和差化积公式,若记$kA=\{ka:a\in A\}$
则$y_{kA}y_{kB}=a_1f(k*1)+...+a_nf(k*n)$

这里,我们用到的集合X都有形式$\{3^{2^m*l+r}:l={1,2,...(n-1)/2^m}\}$
注意到$3^aX=\{3^{2^m*l+r+a}:l=1,2,...(n-1)/2^m\}$
这样我们直接解决了第一个等号:
$y_{\{3^{2^m*l}:l=1,2,...,(n-1)/2\}}y_{\{3^{2^m*l+1}:l=1,2,...,(n-1)/2\}}=y_{\{3^{2^m*l+2}:l=1,2,...,(n-1)/2\}}y_{\{3^{2^m*l+1}:l=1,2,...,(n-1)/2\}}=y_{3\{3^{2^m*l+1}:l=1,2,...,(n-1)/2\}}y_{3\{3^{2^m*l}:l=1,2,...,(n-1)/2\}}$
根据(1)直接得出待定系数时候$a_1=a_3=a_9=a_{3^3 mod 17}=...$
数数有多少项就可以直接得到每一项的系数是多少

以及理解错Hardy这本书上面算法的意思了
后面的几步应该都需要自己乘出来的,待定系数法那一部分的证明可以保证每个形如$\{3^{2^m*l+r}:l={1,2,...(n-1)/2^m}\}$的集合的系数都是一致的,而这个一致的值是前面的步骤已经求解出的。
这样就完成了尺规作图
至于除了最后一步之外的那两步都神奇地出现了-1这个值
可能是巧合,可能不是
毕竟最后那步并没得到类似的结果
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2019-3-2 12:36:50 | 显示全部楼层
.·.·. 发表于 2019-3-1 22:12
……才发现,当年大约就是这样倒在2012CMO第二题上面的
首先,让我们做两个操作
一个叫待定系数

你写这么多,我看不懂,我就想知道,x^257-1=0这个方程
你解出来看一下,
我看哈代数论的时候,就好奇,为什么要弄3这个原根,
PrimitiveRootList[17]
{3, 5, 6, 7, 10, 11, 12, 14}
这表明3 5 6 7都是原根,这些原根究竟行不行

点评

话说你为啥看的是哈代的数论?这是你们大学的教材/参考资料还是你高中竞赛时候的数论启蒙书籍?  发表于 2019-3-2 22:24
回复的公式需要用mathematica才能看,论坛贴的代码分不清1跟l,搞得我那个代码相当奇妙  发表于 2019-3-2 22:21
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-3-2 19:53:40 | 显示全部楼层
mathematica 发表于 2019-3-2 12:36
你写这么多,我看不懂,我就想知道,x^257-1=0这个方程
你解出来看一下,
我看哈代数论的时候,就好奇 ...

早说你问的是这个问题啊
那些原根都可以的……谁说那些原根不能用的……
257仿照17解就是了
  1. l00 = -1;
  2. l10 = S[1, 0];
  3. l11 = S[1, 1];
  4. {l10 + l11 - l00, l1 l2} // N
  5. l20 = S[2, 0];
  6. l22 = S[2, 2];
  7. l21 = S[2, 1];
  8. l23 = S[2, 3];
  9. {l20 + l22 - l10, l20 l22, l21 + l23 - l11, l21 l23} // N
  10. l30 = S[3, 0];
  11. l34 = S[3, 4];
  12. l32 = S[3, 2];
  13. l36 = S[3, 6];
  14. l31 = S[3, 1];
  15. l35 = S[3, 5];
  16. l33 = S[3, 3];
  17. l37 = S[3, 7];
  18. {l30 + l34 - l20, l30 l34, l32 + l36 - l22, l32 l36, l31 + l35 - l21,
  19.   l31 l35, l33 + l37 - l23, l33 l37} // N
复制代码
这里,前面两个答案都是很简单的
  1. {-2.10942*10^-15, -64.}
  2. {0., -16., 0., -16.}
  3. {0., -31.0078, 0., -9.05468, 0., 23.7152, 0., 0.34723}
复制代码
但从第三项开始,就出现了我说的那个问题,就是,我们需要手动进行积化和差运算,值得庆幸的是,运算目标之中的好多项(根据(1)定理)是相等的:
  1. l30 l34 - (2*l20 + 5*l21 + 4*l22 + 5*l23) // N
  2. 1.06581*10^-14
复制代码
这里2*l20 + 5*l21 + 4*l22 + 5*l23的四个系数需要手算(暂时没想到除了暴力展开之外更好的算法,我直接用Simplify[TrigReduce[l30*l34]]来作弊了,事实上计算并不需要这么复杂,我们只需要l**中某一项的系数就可以了,毕竟根据定理(1)l**里面的系数都是一样的)
然后,根据定理(1),我们可以直接乘那个原根把其他四项的系数推算出来:
  1. l31 l35 - (2*l21 + 5*l22 + 4*l23 + 5*l20) // N
  2. 1.42109*10^-14
  3. l32 l36 - (2*l22 + 5*l23 + 4*l20 + 5*l21) // N
  4. 1.42109*10^-14
  5. l33 l37 - (2*l23 + 5*l20 + 4*l21 + 5*l22) // N
  6. 8.88178*10^-16
复制代码
  1. comp[x_] := Cos[2 \[Pi] #/(2^2^n + 1)] & /@ x
  2. comp[{Sort[SelArc[4, 0]][[1]], Sort[SelArc[4, 1]][[1]],Sort[SelArc[4, 2]][[1]], Sort[SelArc[4, 3]][[1]],Sort[SelArc[4, 4]][[1]], Sort[SelArc[4, 5]][[1]],Sort[SelArc[4, 6]][[1]], Sort[SelArc[4, 7]][[1]]}]
复制代码
得到{Sort[SelArc[4, 0]][[1]], Sort[SelArc[4, 1]][[1]],Sort[SelArc[4, 2]][[1]], Sort[SelArc[4, 3]][[1]],Sort[SelArc[4, 4]][[1]], Sort[SelArc[4, 5]][[1]],Sort[SelArc[4, 6]][[1]], Sort[SelArc[4, 7]][[1]]}这几项的系数是2 0 1 0 1 0 2 2
从而
  1. l40 = S[4, 0];
  2. l41 = S[4, 1];
  3. l42 = S[4, 2];
  4. l43 = S[4, 3];
  5. l44 = S[4, 4];
  6. l45 = S[4, 5];
  7. l46 = S[4, 6];
  8. l47 = S[4, 7];
  9. l48 = S[4, 8];
  10. l49 = S[4, 9];
  11. l4A = S[4, 10];
  12. l4B = S[4, 11];
  13. l4C = S[4, 12];
  14. l4D = S[4, 13];
  15. l4E = S[4, 14];
  16. l4F = S[4, 15];
  17. {l40 + l48 - l30,l40 l48 - Plus @@ ({2, 0, 1, 0, 1, 0, 2, 2}*{l30, l31, l32, l33, l34, l35, l36, l37})} // N
复制代码
得到
  1. {0., 7.99361*10^-15}
复制代码

剩下的都是同理可得的东西,慢慢算总能算出来,然而SelArc[4,*]已经出现16进制了……我懒得继续编号了,就这样吧
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2024-6-26 09:07 , Processed in 0.052368 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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