绘制复杂的功能

时间:2012-11-11 18:54:09

标签: matlab plot

如何在Matlab中绘制复杂函数?例如:

Y[e^jx] = 1 / (1 - cosx + j4)

我尝试了一些代码,但我认为正确的方法是分别绘制实部和虚部。

6 个答案:

答案 0 :(得分:2)

x = linspace(-pi, pi, 1e3);
y = 1./(1 - cos(x) + i*4);

% Plot absolute value and phase
figure;
subplot(2,1,1); plot(x, abs(y));
subplot(2,1,2); plot(x, angle(y));

% Plot real and imaginary parts
figure;
subplot(2,1,1); plot(x, real(y));
subplot(2,1,2); plot(x, imag(y));

答案 1 :(得分:2)

有一些MATLAB函数专门用于绘制复杂的地图:

z = cplxgrid(60);
cplxmap(z, 1./(1 - cos(z) + 4*i));

另见Functions of Complex Variables in MATLAB's documentation

答案 2 :(得分:1)

也许不适合你,但也适合寻求绘制复杂功能的其他人。 我们建立了一个网站,您可以快速渲染它们并下载它们(reflex4you.com,reflex =表示复杂功能)

我可以用彩色的方式在2D中显示复杂的功能。你的功能可以 visible here及以下:

请注意,黑色为零,白色无限,并且它覆盖复杂平面,其颜色与复数相关联,例如红色= 1,青色= -1,i =绿色,-i =紫色。

Reflex of the function he asked.

答案 3 :(得分:0)

您可以使用以下其中一项:

  • plot(real(Y))
  • plot(imag(Y))
  • plot(real(Y),imag(Y))
  • plot(abs(Y))

答案 4 :(得分:0)

plot(re(Y),im(Y))

但请记住,在您的情况下,有一个与复杂函数关联的域,在这种情况下:cos(x)-4j< 1

答案 5 :(得分:0)

默认情况下,plot(X)会绘制真实与虚数,因此它等于plot(real(X), imag(X)) 例如,尝试:

>> r = sort(rand(10, 1)) + 1i * rand(10, 1);
>> figure, plot(r)

如果您在y轴上都需要它们,请使用:

plot([real(X), imag(X)])