在 matlab 中绘制复杂函数

Plotting complex functions in matlab

我有以下代码

x = linspace(-pi, pi, 1e3);
y = sqrt((x).^(1/2));
plot(x, real(y));
plot(x, imag(y));

实部和虚部x=-1处的值都是0.7071(sqrt(0.5)。为什么不是0(实部)和1(虚部)?当我输入这段代码时:

real((-1)^(1/2))
imag((-1)^(1/2))

这给了我预期的 0(实数)和 1(虚数)。

如有任何帮助,我们将不胜感激。 谢谢,

请注意 sqrt((x).^(1/2)) = x.^(1/4)

不是(-i)^4 = i^4 = -1*-1 = 1以来的所有虚构。考虑在复平面上发生的情况,您应该能够得出这样的结论:如果 y^4 = -1 那么 y = exp(i*(2*N-1)*pi/4) 其中 N 是任何整数。

这导致 y 有 4 个独特的解决方案,即 +/-sqrt(2)/2 +/- i*sqrt(2)/2。 MATLAB returns实部和虚部都为正的