- 注册时间
- 2017-12-7
- 最后登录
- 1970-1-1
- 威望
- 星
- 金币
- 枚
- 贡献
- 分
- 经验
- 点
- 鲜花
- 朵
- 魅力
- 点
- 上传
- 次
- 下载
- 次
- 积分
- 3243
- 在线时间
- 小时
|
发表于 2019-3-2 19:53:40
|
显示全部楼层
早说你问的是这个问题啊
那些原根都可以的……谁说那些原根不能用的……
257仿照17解就是了- l00 = -1;
- l10 = S[1, 0];
- l11 = S[1, 1];
- {l10 + l11 - l00, l1 l2} // N
- l20 = S[2, 0];
- l22 = S[2, 2];
- l21 = S[2, 1];
- l23 = S[2, 3];
- {l20 + l22 - l10, l20 l22, l21 + l23 - l11, l21 l23} // N
- l30 = S[3, 0];
- l34 = S[3, 4];
- l32 = S[3, 2];
- l36 = S[3, 6];
- l31 = S[3, 1];
- l35 = S[3, 5];
- l33 = S[3, 3];
- l37 = S[3, 7];
- {l30 + l34 - l20, l30 l34, l32 + l36 - l22, l32 l36, l31 + l35 - l21,
- l31 l35, l33 + l37 - l23, l33 l37} // N
复制代码 这里,前面两个答案都是很简单的- {-2.10942*10^-15, -64.}
- {0., -16., 0., -16.}
- {0., -31.0078, 0., -9.05468, 0., 23.7152, 0., 0.34723}
复制代码 但从第三项开始,就出现了我说的那个问题,就是,我们需要手动进行积化和差运算,值得庆幸的是,运算目标之中的好多项(根据(1)定理)是相等的:
- l30 l34 - (2*l20 + 5*l21 + 4*l22 + 5*l23) // N
- 1.06581*10^-14
复制代码 这里2*l20 + 5*l21 + 4*l22 + 5*l23的四个系数需要手算(暂时没想到除了暴力展开之外更好的算法,我直接用Simplify[TrigReduce[l30*l34]]来作弊了,事实上计算并不需要这么复杂,我们只需要l**中某一项的系数就可以了,毕竟根据定理(1)l**里面的系数都是一样的)
然后,根据定理(1),我们可以直接乘那个原根把其他四项的系数推算出来:- l31 l35 - (2*l21 + 5*l22 + 4*l23 + 5*l20) // N
- 1.42109*10^-14
- l32 l36 - (2*l22 + 5*l23 + 4*l20 + 5*l21) // N
- 1.42109*10^-14
- l33 l37 - (2*l23 + 5*l20 + 4*l21 + 5*l22) // N
- 8.88178*10^-16
复制代码 用- comp[x_] := Cos[2 \[Pi] #/(2^2^n + 1)] & /@ x
- 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
从而- l40 = S[4, 0];
- l41 = S[4, 1];
- l42 = S[4, 2];
- l43 = S[4, 3];
- l44 = S[4, 4];
- l45 = S[4, 5];
- l46 = S[4, 6];
- l47 = S[4, 7];
- l48 = S[4, 8];
- l49 = S[4, 9];
- l4A = S[4, 10];
- l4B = S[4, 11];
- l4C = S[4, 12];
- l4D = S[4, 13];
- l4E = S[4, 14];
- l4F = S[4, 15];
- {l40 + l48 - l30,l40 l48 - Plus @@ ({2, 0, 1, 0, 1, 0, 2, 2}*{l30, l31, l32, l33, l34, l35, l36, l37})} // N
复制代码 得到
剩下的都是同理可得的东西,慢慢算总能算出来,然而SelArc[4,*]已经出现16进制了……我懒得继续编号了,就这样吧
|
|