simple()无效

时间:2018-07-05 15:38:49

标签: matlab expression symbolic-math algebra simplification

我使用以下代码段简化了方程式:

syms P Q R S T U V A B C D E F G X Y
simplify((X - A)^2 + (Y - B)^2 - (X - B)^2 - (Y + A)^2)

哪个给了我结果:

2*B*X - 2*A*Y - 2*A*X - 2*B*Y

另一方面,

simplify((X - A)^2 + (Y - B)^2 - (X - B)^2 - (Y + 2*A)^2)
重新排序后,

得到相同的结果:

(A - X)^2 - (B - X)^2 - (2*A + Y)^2 + (B - Y)^2

这两个方程之间发生了什么变化?我不能正确使用该功能吗?

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:3)

根据the documentation,您可以使用以下方法增加简化“步骤”的数量:

simplify(expr,'Steps',nSteps); % e.g. nSteps = 50

您还可以尝试使用other functionscombineexpandfactor,...)来重新排列表达式。

我有用于MATLAB的Maple符号工具箱,并且得到的结果与您不同:

>> syms P Q R S T U V A B C D E F G X Y
>> simplify((X - A)^2 + (Y - B)^2 - (X - B)^2 - (Y + A)^2)

ans =

                         (-2 X - 2 Y) A + 2 B (X - Y)

>> simplify((X - A)^2 + (Y - B)^2 - (X - B)^2 - (Y + 2*A)^2)

ans =     
                         2
                     -3 A  + (-2 X - 4 Y) A + 2 B (X - Y)

总结-它可以按预期工作,您应该尝试使用其他功能/工具。

答案 1 :(得分:2)

(X - A)^2 + (Y - B)^2 - (X - B)^2 - (Y + A)^2
X^2 + A^2 - 2*A*X + Y^2 + B^2 - 2*Y*B - X^2 - B^2 + 2*X*B -Y^2 - A^2 + 2*Y*A
2*B*X - 2*A*Y - 2*A*X - 2*B*Y

初始值:12个用于计算数字的运算

最终:用于计算数字的12个运算


另一方面:

(X - A)^2 + (Y - B)^2 - (X - B)^2 - (Y + 2*A)^2
X^2 + A^2 - 2*A*X + Y^2 + B^2 - 2*Y*B - X^2 - B^2 + 2*X*B -Y^2 - 4*A^2 + 4*Y*A
-3*A^2 + 2*B*X - 4*A*Y - 2*A*X - 2*B*Y

初始:13个用于计算数字的运算

最终:用于计算数字的15种运算