creasson 发表于 2012-7-29 10:55:00

怎么求复合后的方程?

举个例子,如果x^5=x+1,    y^7=y+1,怎么求 z=x+y 所满足的代数方程?有没有简便方法?

mathematica 发表于 2012-7-29 11:38:17

(*怎么求复合后的方程?*)
(*地址:http://bbs.emath.ac.cn/thread-4491-1-1.html*)
Clear["Global`*"];(*Clear all variables*)
(*求解方程1的所有解*)
eq1=NSolve;
eq2=x/.eq1;
eq3=Transpose@Table;(*形成5*7的矩阵*)
(*求解方程2的所有解*)
eqa=NSolve;
eqb=y/.eqa;
eqc=Table;(*形成5*7的矩阵*)
eq=eq3+eqc(*两个矩阵相加*)
eq=Union@Flatten@eq(*合并所有的相同的结果*)(*怎么求复合后的方程?*)
(*地址:http://bbs.emath.ac.cn/thread-4491-1-1.html*)
Clear["Global`*"];(*Clear all variables*)
(*求解方程1的所有解*)
eq1=NSolve;
eq2=x/.eq1;
eq3=Transpose@Table;(*形成5*7的矩阵*)
(*求解方程2的所有解*)
eqa=NSolve;
eqb=y/.eqa;
eqc=Table;(*形成5*7的矩阵*)
eq=eq3+eqc(*两个矩阵相加*)
eq=Union@Flatten@eq(*合并所有的相同的结果*)

mathematica 发表于 2012-7-29 11:39:55

求解结果:

{-1.575 - 0.090 I, -1.575 + 0.090 I, -1.575 - 0.615 I, -1.575 +
0.615 I, -1.129 - 0.600 I, -1.129 + 0.600 I, -1.129 -
1.305 I, -1.129 + 1.305 I, -0.629 - 0.821 I, -0.629 +
0.821 I, -0.629 - 1.347 I, -0.629 + 1.347 I, -0.182 -
0.131 I, -0.182 + 0.131 I, -0.182 - 2.037 I, -0.182 +
2.037 I, -0.148 - 0.548 I, -0.148 + 0.548 I, -0.148 -
1.253 I, -0.148 + 1.253 I, 0.348 - 0.3525 I, 0.348 + 0.3525 I,
0.357 - 0.2629 I, 0.357 + 0.2629 I, 0.798 - 0.183 I, 0.798 + 0.183 I,
0.798 - 1.985 I, 0.798 + 1.985 I, 0.804 - 0.9526 I,
0.804 + 0.9526 I, 1.294 - 1.0840 I, 1.294 + 1.0840 I,
1.784 - 0.9009 I, 1.784 + 0.9009 I, 2.280}

creasson 发表于 2012-7-29 11:45:48

3# mathematica

我要求的是精确方程,非数值,谢谢你了,我想到了一个麻烦的方法,现在正学mathematica编程。
想请教的是,给定一个多项式P(x,y),怎么将每一项系数提取出?
这个语句怎么是错的呢?
For[n = 0, n <= 6, n++,
For];];]

creasson 发表于 2012-7-29 12:04:20

已发现问题并解决了

wayne 发表于 2012-7-29 12:48:56

First@Reduce[{x^5 == x + 1, y^7 == y + 1, z == x + y}, {x, y}]orRootReduce + Root[#^7 - # - 1 &, 1]]

creasson 发表于 2012-7-29 12:54:29

6# wayne
不是这个结果

wayne 发表于 2012-7-29 13:04:19

4# creasson
CoefficientList[(z - y)^5 - (z - y) - 1, z]

Normal@CoefficientArrays[(z - y)^5 - (z - y) - 1, {y, z}]

creasson 发表于 2012-7-29 13:20:17

8# wayne
不是这个,我刚编了个程序,po = Table, {i, 0, 35}].Table[(x + y)^i, {i, 0, 35}];
q = PolynomialRemainder,
   y^7 - y - 1, y];
eq = Table, {i, 0, 34}];
For[n = 0, n <= 4, n++,
For[m = 0, m <= 6, m++,
W = Coefficient;]]
Solve解出的结果是这样:
{{G -> -((20034 G)/191), G -> (77061 G)/191,
G -> (51163 G)/191, G -> -((19040 G)/191),
G -> -((27874 G)/191), G -> -((13792 G)/191),
G -> -((12785 G)/191), G -> -((29225 G)/191),
G -> -((29750 G)/191), G -> -((12152 G)/191),
G -> -((1820 G)/191), G -> -((85 G)/191),
G -> -((2300 G)/191), G -> -((2030 G)/191),
G -> -((448 G)/191), G -> (42 G)/191,
G -> (21 G)/191, G -> -((5 G)/191),
G -> -((5 G)/191), G -> -((7 G)/191),
G -> -((7 G)/191), G -> 0, G -> 0, G -> 0,
G -> G/191, G -> -((53 G)/191),
G -> (10429 G)/191, G -> (34395 G)/191,
G -> -((32235 G)/191), G -> -((11257 G)/191),
G -> -((46835 G)/191), G -> -((7677 G)/191),
G -> -((36887 G)/191), G -> (1393 G)/191,
G -> -((116 G)/191)}}
我现在需要按照这个结果赋值,即G = -((20034 G)/191), G=(77061 G)/191,
G = (51163 G)/191, G = -((19040 G)/191),.......
请问怎么编程实现?

creasson 发表于 2012-7-29 13:21:56

上面打出来效果好差,不知道怎么回事,抱歉,请问怎么实现呢?

gxqcn:
问题出在你的帖子里有“[i]”,被误解为斜体的标签,造成排版效果不对。
解决方法有:
1、编辑帖子,点击“更多设定”,勾选“禁用 Discuz!代码”,按返回(副作用是:禁用Discuz!代码后,无法复杂排版);
2、将“[i]”中的“i ”前面或后面加一个空格;
3、将用代码标签(如上编辑好的效果),这是最佳方案。
页: [1] 2 3
查看完整版本: 怎么求复合后的方程?