MATLAB isequal 函数给出了符号表达式的错误答案
MATLAB isequal function gives wrong answer for symbolic expression
在下面的简单代码中:
syms x
isequal((x+1)^2, x^2+2*x+1)
MATLAB returns false,但两个表达式相同!
代码有什么问题?
这些不是完全相同的表达式,isequal()
测试表达式是否相等。尝试例如:
>> isequal(expand((x+1)^2), x^2+2*x+1)
ans =
logical
1
或者,
>> isequal(simplify((x+1)^2), simplify(x^2+2*x+1))
ans =
logical
1
PS 你也可以使用 isAlways()
来比较表达式,
isAlways((x+1)^2 == x^2+2*x+1)
ans =
logical
1
在下面的简单代码中:
syms x
isequal((x+1)^2, x^2+2*x+1)
MATLAB returns false,但两个表达式相同! 代码有什么问题?
这些不是完全相同的表达式,isequal()
测试表达式是否相等。尝试例如:
>> isequal(expand((x+1)^2), x^2+2*x+1)
ans =
logical
1
或者,
>> isequal(simplify((x+1)^2), simplify(x^2+2*x+1))
ans =
logical
1
PS 你也可以使用 isAlways()
来比较表达式,
isAlways((x+1)^2 == x^2+2*x+1)
ans =
logical
1