Wolfram mathematica 在mathematica中如何求解给定两个等价多项式的未知数

Wolfram mathematica 在mathematica中如何求解给定两个等价多项式的未知数,wolfram-mathematica,Wolfram Mathematica,例如,我有以下多项式要等价,我需要分别确定未知量c1,c2,c3。我如何在mma中自动执行此操作,尤其是当涉及到许多术语时 x+2*x^3+4*x^5==(c1+c2)*(x+2*c2*x^3)+(4-c1)*c3*x^5 非常感谢 编辑:理想情况下,我想使x中指数相等的项的左右系数相等。然后求解这个方程组。如果这必须适用于所有x,您可以使用(未测试) 如果所有x都必须为真,则可以使用(未测试) 尝试: 出去 尝试: 出去 即使在更复杂的情况下,这也能满足您的需求 eq = x + 2*x^3

例如,我有以下多项式要等价,我需要分别确定未知量c1,c2,c3。我如何在mma中自动执行此操作,尤其是当涉及到许多术语时

x+2*x^3+4*x^5==(c1+c2)*(x+2*c2*x^3)+(4-c1)*c3*x^5
非常感谢


编辑:理想情况下,我想使x中指数相等的项的左右系数相等。然后求解这个方程组。

如果这必须适用于所有
x
,您可以使用(未测试)


如果所有
x
都必须为真,则可以使用(未测试)

尝试:

出去

尝试:

出去


即使在更复杂的情况下,这也能满足您的需求

eq = x + 2*x^3 + 4*x^5 == (c1 + c2)*(x + 2*c2*x^3) + (4 - c1)*c3*x^5;
list = CoefficientList[eq /. Equal[k__, l__] -> Plus[k, -l], x];
vars = Variables@list;
Solve[list == Table[0, {i, First@Dimensions@list}], vars]

Out[1] := {{c1 -> 0, c2 -> 1, c3 -> 1}}

即使在更复杂的情况下,这也能满足您的需求

eq = x + 2*x^3 + 4*x^5 == (c1 + c2)*(x + 2*c2*x^3) + (4 - c1)*c3*x^5;
list = CoefficientList[eq /. Equal[k__, l__] -> Plus[k, -l], x];
vars = Variables@list;
Solve[list == Table[0, {i, First@Dimensions@list}], vars]

Out[1] := {{c1 -> 0, c2 -> 1, c3 -> 1}}

当然,对于这类问题,mma有一个内置的解决方案:-)。
SolveAlways
是一个方便的(未经认可的)命令。几年前我制定了一个要求学生平衡反应的计划。使用
SolveAlways
@Simon“在考试主管确认上传的笔记本数量正确之前,请坐好不要讲话”,这是一个最容易解决的问题。。。我可以上厕所吗?@belisarius考试的最后15分钟里你是不允许上厕所的。我们不能完全信任学生自己上传到ftp站点。(我在明年的笔记本上解决了这个问题。!@Simon SolveAlways方法很好地平衡了化学反应,但试着用你的反应,但在左侧添加(合成化学物质)NaO_2,右侧添加FeCrC。将溶剂转化为平衡反应并非小事。使用Minimize可以获得很好的结果。当然,mma对于这类问题有一个内置的解决方案:-)。
SolveAlways
是一个方便(且不受欢迎)的命令。几年前我制定了一个要求学生平衡反应的计划。使用
SolveAlways
@Simon“在考试主管确认上传的笔记本数量正确之前,请坐好不要讲话”,这是一个最容易解决的问题。。。我可以上厕所吗?@belisarius考试的最后15分钟里你是不允许上厕所的。我们不能完全信任学生自己上传到ftp站点。(我在明年的笔记本上解决了这个问题。!@Simon SolveAlways方法很好地平衡了化学反应,但试着用你的反应,但在左侧添加(合成化学物质)NaO_2,右侧添加FeCrC。将溶剂转化为平衡反应并非小事。使用Minimize.Nice方法可以得到很好的结果,但是假设所有符号都是独立的(即没有参数)Nice方法,但是假设所有符号都是独立的(即没有参数)
 {{c1 -> 0, c2 -> 1, c3 -> 1}}
eq = x + 2*x^3 + 4*x^5 == (c1 + c2)*(x + 2*c2*x^3) + (4 - c1)*c3*x^5;
list = CoefficientList[eq /. Equal[k__, l__] -> Plus[k, -l], x];
vars = Variables@list;
Solve[list == Table[0, {i, First@Dimensions@list}], vars]

Out[1] := {{c1 -> 0, c2 -> 1, c3 -> 1}}