MATLAB Answers


Why matlab only fives one complex result?

Asked by Graciano Ding on 30 Oct 2019
Latest activity Commented on by Graciano Ding on 30 Oct 2019
Hello everyone, I have been struggling for so much time...I have been doing a complex equation (I am actually able to solve it manually but I just want to ger more familiar with Matlab). There are 3 complex solutons, however, matlab only gives me one of them. What can I do so that it gives me all 3 solutions?


Sign in to comment.

2 Answers

Answer by Walter Roberson
on 30 Oct 2019
 Accepted Answer

Square both sides of the equation. MATLAB will provide 3 solutions.
It is advisable to cross check the solutions, as squaring both sides can introduce false roots.


>> syms z
>> solve((z^(-3/2))^2 == (3-3*i)^2)
ans =
(1i/18)^(1/3)*((3^(1/2)*1i)/2 - 1/2)
-(1i/18)^(1/3)*((3^(1/2)*1i)/2 + 1/2)
>> simplify(solve((z^(-3/2))^2 == (3-3*i)^2))
ans =
((-1)^(1/6)*2^(2/3)*3^(1/3)*(- 1 + 3^(1/2)*1i))/12
-((-1)^(1/6)*2^(2/3)*3^(1/3)*(1 + 3^(1/2)*1i))/12
>> double(ans)
ans =
0.330450538041682 + 0.190785707092222i
-0.330450538041682 + 0.190785707092222i
0 - 0.381571414184444i
>> ans.^(-3/2)
ans =
3 - 3i
-3 + 3i
-3 + 3i
Cross-check shows there is only one solution. The claim that there are 3 solutions is incorrect.
Just one can (0-0.381571414184444i)^(-3/2) be -3+3*i? I calculated it manually and it should be one of the answers...what mistake did I make?complexo power.jpg

Sign in to comment.

Answer by Sai Bhargav Avula on 30 Oct 2019
Edited by Sai Bhargav Avula on 30 Oct 2019

MATLAB cannot generate all the Solutions, which might require a global solver.
However, if you have the Extended Symbolic Math Toolbox (access to Maple), then you can do this in Maple.
maple('_EnvAllSolutions:= true;')
This can give a generic result for the equation provided


This is misleading. Producing all of the solutions does not require a global solver.
It might require different intilizations to get all the solutions. So I suggested this.

Sign in to comment.