Combining symbolic integral expressions
2 views (last 30 days)
Show older comments
Consider the example
syms a b x y f(x) g(x)
I = @(x)int( f(x), x, a, b)
J = @(x)int( g(x), x, a, b)
K = combine(I(x)*I(y) + J(y)*J(x),'int')
L = int(int(f(x)*f(y) + g(x)*g(y),x,a,b),y,a,b)
How can I get matlab to simplify K such that it results in L? Also I noticed that matlab seems to think that the two are different since
logical(K == L)
returns 0; on the other hand it thinks they are the same since
simplify(K-L,100)
also returns 0.
0 Comments
Answers (1)
Naman Chaturvedi
on 7 Sep 2018
Hi Randolf,
To check the validity of K==L, you must expand the equation and then simplify it as shown:
>> logical(simplify(expand(K))==simplify(expand(L)))
ans =
logical
1
Do not use logical to check equations and inequalities that require simplification or mathematical transformations. For such equations and inequalities, logical might return unexpected results. For example, logical does not recognize mathematical equivalence of these expressions:
syms x
logical(sin(x)/cos(x) == tan(x))
ans =
logical
0
To test the validity of equations and inequalities that require simplification or mathematical transformations, use isAlways:
isAlways(sin(x)/cos(x) == tan(x))
ans =
logical
1
Using isAlways to check K and L,
isAlways((K) == (L))
ans =
logical
1
HTH
See Also
Categories
Find more on Assumptions in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!