MatLAB do not simplify (a^2)^(1/2) in symbolic ToolBox?
24 views (last 30 days)
Show older comments
Alaa Altimimy
on 3 Aug 2018
Commented: Nathan Hardenberg
on 27 Jul 2023
>> simplify((cos(phymi)^2)^(1/2), 3000)
ans =
(cos(phymi)^2)^(1/2)
>> rewrite (((cos(phymi))^2)^(1/2), 'exp')
ans =
((exp(-phymi*1i)/2 + exp(phymi*1i)/2)^2)^(1/2)
>> simplify((phymi^2)^(1/2), 5000)
ans =
(phymi^2)^(1/2)
0 Comments
Accepted Answer
Walter Roberson
on 3 Aug 2018
Edited: Walter Roberson
on 3 Aug 2018
MATLAB assumes that symbols might have complex values unless you tell it they are not complex. For complex values, sqrt(x^2) is not the same as x. For that matter, sqrt(x^2) is not the same as x even just for negative real values.
If you know for sure that your values are nonnegative, then add an assumption about that, such as
syms phymi
assume(phymi >= 0)
1 Comment
Nathan Hardenberg
on 27 Jul 2023
You can also assume directly:
syms a
syms b real
syms c positive
syms d real positive
A = simplify( sqrt(a^2) )
B = simplify( sqrt(b^2) )
C = simplify( sqrt(c^2) )
D = simplify( sqrt(d^2) )
More Answers (1)
Star Strider
on 3 Aug 2018
It does:
syms phymi
a = simplify((cos(phymi)^2)^(1/2), 'Steps',3000, 'IgnoreAnalyticConstraints',1)
a =
cos(phymi)
0 Comments
See Also
Categories
Find more on Symbolic Math Toolbox in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!