MATLAB Answers

How to get the real&imaginary mode of the symbolic complex equation

8 views (last 30 days)
Ruimin Dai
Ruimin Dai on 30 Jun 2020
Commented: Ruimin Dai on 30 Jun 2020
Hi, it seems the MATLAB(2018b) cannot express the real&imaginary&mode of the symbolic complex equation? For instance, Function=A+1j*B, and I expect "sqrt(A^2+B^2)" as the answer when I type in "abs(Function)". However, Matlab just returned "abs(Funtion)", which is not what I expected.
I found some similar quesiton on these sort of thing, this one "https://it.mathworks.com/matlabcentral/answers/386933-symbolic-complex-number-manipulation" suggets to add "real", and this one "https://it.mathworks.com/matlabcentral/answers/14945-complex-numbers-in-symbolic-toolbox " mentiones to add "simplify". I tried to add both "simplify" and “real”, but Matlab still doesn't understand. I figured that if you type in number, Matlab can easily work out, but if using symbolic, Matlab isn't that intelligent. By the way,software MathCad seems understand better in how to express symbolic complex equation.
Is this just a problem only for 2018b version? If anyone knows how to solve this kind of symbolic complex equation manipulation, that will be very helpful.

  0 Comments

Sign in to comment.

Accepted Answer

madhan ravi
madhan ravi on 30 Jun 2020
syms A B real
Function = A+1j*B
rewrite(abs(Function),'sqrt')

  1 Comment

Ruimin Dai
Ruimin Dai on 30 Jun 2020
Thank your advice. That solves my question.
I used "assume(A,'real'); assume(B,'real');" instead of "syms A B real", and I overlooked to use "rewrite (Funtion,'sqrt')" in the end. That is why I failed before.

Sign in to comment.

More Answers (0)