在matlab中绘制复杂函数

时间:2018-03-10 04:46:40

标签: matlab plot complex-numbers

我有以下代码

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(虚构)的预期。

非常感谢任何帮助。 谢谢,

1 个答案:

答案 0 :(得分:0)

请注意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返回实数和虚数都为正的那个。