Calculation of abs() and angle() of a symbolic expression - strange behaviour
3 次查看(过去 30 天)
显示 更早的评论
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 个评论
Govind KM
2024-12-10
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?
采纳的回答
Govind KM
2024-12-10
编辑:Walter Roberson
2024-12-10
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!
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Number Theory 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!