简化()没有效果

simplify() has no effect

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

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

这两个等式之间发生了什么变化?我没有正确使用该功能吗?

如有任何帮助,我们将不胜感激。

(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 个操作

根据 the documentation,您可以使用以下方式增加简化量 "steps":

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

您也可以尝试 other functions (combine, expand, factor, ...) 重新排列表达式。

我有 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)

总之 - 它按预期工作,您应该尝试其他 functions/tools。