Calculation of abs() and angle() of a symbolic expression - strange behaviour
9 views (last 30 days)
Show older comments
Marek Golebiowski
on 6 Dec 2024
Edited: Walter Roberson
on 10 Dec 2024
Hi.
I have come across some strange behaviour of the abs() and angle() function in symbolic calculations:
The first result is as expected. The second should be calculated with equal ease as
but matlab just rewrites the expression using the | | sign.
Similar behaviour applies to the angle function
Why is this happening and how to force matlab to do the calculation also in the second case?
Marek
2 Comments
Govind KM
on 10 Dec 2024
Hi Marek,
I am able to reproduce this in MATLAB R2024b for abs but not for angle. Do you have a similiar example for the same behaviour using angle?
Accepted Answer
Govind KM
on 10 Dec 2024
Edited: Walter Roberson
on 10 Dec 2024
Hi Marek,
When a symbolic expression is defined, it undergoes some internal simplification before being displayed. For some cases, additional simplification steps can be required to get a simpler result. The simplify method can be used to perform further simplication on a symbolic expression. Here is sample code for the provided example:
syms R real positive
syms L real positive
%Specify the number of simplification steps using the 'Steps' option
%Use the 'All' option to return all equivalent results
exp1=simplify(abs(R+1i*L*R+1),'All',true,'Steps',10), disp(char(exp1))
exp2=simplify(abs(R+1i*L*R+L),'All',true,'Steps',10), disp(char(exp2))
The desired result can be selected as needed:
desiredExp=exp2(2), disp(char(desiredExp))
The PreferReal option can be used to favor the selection of expressions containing real values over the ones containing complex values:
simplify(abs(R+1i*L*R+L),'Steps',10,'Criterion','PreferReal'), disp(char(ans))
A similar approach can be followed for the angle function.
More details on the simplify method and its options can be found in the following documentation:
Hope this is helpful!
More Answers (0)
See Also
Categories
Find more on Number Theory 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!