MATLAB: Test equality of two symbolic expressions

MATLABsymbolicSymbolic Math Toolbox

Suppose, for the sake of simplicity, that I need to compare two equivalent symbolic expressions in Matlab.
syms a b
x = sin(a + b);
y = sin(a)*cos(b) + sin(b)*cos(a);
And, obviously, we know that . Now if I use the Matlab functions isequal (or isequaln), I don't get the expected result, which is a logical 1, because this is an equality:
>> isequal(x,y)
ans =
logical
0
Why does it happen? Is there any function that does what I am trying to do?
Thanks!

Best Answer

  • Ask MATLAB if those two symbolic expressions isAlways equal.
    >> syms a b
    >> x = sin(a + b);
    >> y = sin(a)*cos(b) + sin(b)*cos(a);
    >> isAlways(x==y)
    ans =
    logical
    1