# Why matlab only fives one complex result?

3 views (last 30 days)
Graciano Ding on 30 Oct 2019
Commented: 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?

Walter Roberson on 30 Oct 2019
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.

Walter Roberson on 30 Oct 2019
>> syms z
>> solve((z^(-3/2))^2 == (3-3*i)^2)
ans =
(1i/18)^(1/3)
(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)*18^(2/3))/18
((-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.
Graciano Ding on 30 Oct 2019
Just one question...how 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? Sai Bhargav Avula on 30 Oct 2019
Edited: Sai Bhargav Avula on 30 Oct 2019
Hi,
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