error To compute complex results, make at least one input complex, e.g. 'power(complex(a),b)'.

hi,
i try to run a function when i have:
b = -log(((F - G*1i)*(1 + (F^2 + G^2 - 1)^(1/2)*1i)*1i)/(F^2 + G^2))*1i;
but it's generated,
??? Domain error. To compute complex results, make at least one input complex, e.g.
'power(complex(a),b)'.
how can i resolve it?

4 comentarios

Are F and G scalars or arrays?
Please show a sample F and G that it fails on.
Somewhere along the line you sent me a sample F and G value (but not e1.) I explored the graph with those values, and used an arbitrary e1, and I found that your "b" value can come out real or complex depending on the exact values used. When G = 1 there is also a singularity.

Iniciar sesión para comentar.

Respuestas (2)

Try
b = -log(((F - G*1i).*(1 + (F.^2 + G.^2 - 1).^(1/2)*1i)*1i)./(F.^2 + G.^2))*1i;

2 comentarios

it's generate the same error
I am going to speculate that what might work is
b = -log(((F - G*1i).*(1 + complex(F.^2 + G.^2 - 1).^(1/2)*1i)*1i)./(F.^2 + G.^2))*1i;

Iniciar sesión para comentar.

studentU
studentU el 20 de Mayo de 2015
Editada: Walter Roberson el 21 de Mayo de 2015
i try for:
h2=(4*sin(el)^2*(G - F*(F^2 + G^2 - 1)^(1/2))^2*(1 + (F^2 + G^2 - 1)^(1/2)*1i)^2)/((F*1i - G)^2*(F^2 + G^2)^2);
>> h2= (complex((4*sin(el).^2).*(G - F.*(F.^2 + G.^2 - 1).^(1/2)).^2*(1 + (F.^2 + G.^2 - 1)^(1/2)*1i)^2))/((F.*1i - G).^2*(F.^2 + G.^2).^2);
but i didn't success to do it for:
h3=(8*sin(el)*(G - F*(F^2 + G^2 - 1)^(1/2))*(1 + (F^2 + G^2 - 1)^(1/2)*1i)^2)/((F*1i - G)^2*(F^2 + G^2));
h4=(sin(el)*(1 + (F^2 + G^2 - 1)^(1/2)*1i)^2*1i)/(F*1i - G)^2;
a = -log(((F^2 + G^2)^2*(h1 + (2*(1 + (F^2 + G^2 -1)^(1/2)*1i)*1i)/(F*1i - G) + ((4*(1 + (F^2 + G^2 - 1)^(1/2)*1i)^2)/(F*1i - G)^2 + X2^2 + X3^2 - (2*X2^2*(1 + (F^2 + G^2 - 1)^(1/2)*1i)^2)/(F*1i - G)^2 + (X2^2*(1 + (F^2 + G^2 - 1)^(1/2)*1i)^4)/(F*1i - G)^4 - (2*X3^2*(1 + (F^2 + G^2 - 1)^(1/2)*1i)^2)/(F*1i - G)^2 + (X3^2*(1 + (F^2 + G^2 - 1)^(1/2)*1i)^4)/(F*1i - G)^4 + h2 - h3)^(1/2)*1i + h4))/(2*(G + F*1i)^2*(X2 - X3*1i)*(1 - G^2 + F*G*1i + (F^2 + G^2 - 1)^(1/2)*1i)))*1i;

1 comentario

I am confused now. Is this in Simulink or is this at the MATLAB command prompt?
If it is at the MATLAB command prompt, then I need to a current copy of the line that failed and I need to know the values it fails on -- a sample el, F, G

Iniciar sesión para comentar.

Categorías

Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 20 de Mayo de 2015

Comentada:

el 21 de Mayo de 2015

Community Treasure Hunt

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

Start Hunting!

Translated by