MatLAB do not simplify (a^2)^(1/2) in symbolic ToolBox?
24 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Alaa Altimimy
am 3 Aug. 2018
Kommentiert: Nathan Hardenberg
am 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 Kommentare
Akzeptierte Antwort
Walter Roberson
am 3 Aug. 2018
Bearbeitet: Walter Roberson
am 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 Kommentar
Nathan Hardenberg
am 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) )
Weitere Antworten (1)
Star Strider
am 3 Aug. 2018
It does:
syms phymi
a = simplify((cos(phymi)^2)^(1/2), 'Steps',3000, 'IgnoreAnalyticConstraints',1)
a =
cos(phymi)
0 Kommentare
Siehe auch
Kategorien
Mehr zu Symbolic Math Toolbox finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!