Borrar filtros
Borrar filtros

How to compute sqrt of complex number ?

22 visualizaciones (últimos 30 días)
Dimitar
Dimitar el 13 de Oct. de 2012
sqrt(z) , (where z=x+iy a general complex number) will have two solutions. I would like to pick up a solution that lies in the fourth quadrant always. How can i do it ?
sqrt(z)=sqrt(r)e^(1/2*i*(phase+2*k*pi)) ,where k= 0,1, r=(x^2+y^2)^(1/2) The solution has two branches I would like to pick a specific one.
min = 0.65;
max = 0.95;
no = complex(1,-10^-4);
c = linspace(min, max, 10000);
n1 = (1+0.6961663.*c.^2./(c.^2-0.0684043.^2) + 0.4079426.*c.^2./(c.^2-0.1162414.^2) + 0.8974794.*c.^2./(c.^2-9.896161.^2)).^(1/2);
n1 = complex(n1,-10^-5);
b = length(c);
theta = 45*(3.14/2)/180;
for i = 1:b
sqd1(i) = sqrt(n1(i)^2 - no^2*sin(theta)^2);
% need to pick up the solution in the fourth quadrant
end
  3 comentarios
Azzi Abdelmalek
Azzi Abdelmalek el 13 de Oct. de 2012
sqrt(x+i*y) is a function : one result
Dimitar
Dimitar el 14 de Oct. de 2012
Editada: Matt Fig el 14 de Oct. de 2012
I mean z=x+i*y (i=sqrt(-1)) is complex number
sqrt(z) = sqrt(r)e^(1/2*i*(phase+2*k*pi))
% With k= 0,1, r=(x^2+y^2)^(1/2)
The solution has two branches I would like to pick a specific one.

Iniciar sesión para comentar.

Respuesta aceptada

Rick Rosson
Rick Rosson el 14 de Oct. de 2012
Editada: Rick Rosson el 14 de Oct. de 2012
First method:
r = roots([1 0 z]);
phi = angle(r);
v = r(phi<0);
Second method:
r = roots([1 0 z]);
p = imag(r);
v = r(p<0);
The second method is probably faster.

Más respuestas (0)

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by