3

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

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

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

4

7 回答 7

2

有一些特定于绘制复杂地图的 MATLAB 函数:

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

另请参阅MATLAB 文档中的复变量函数

于 2012-12-27T20:30:53.890 回答
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));
于 2012-11-11T19:34:35.423 回答
1

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

我可以以丰富多彩的方式在 2D 中显示复杂的功能。您的功能可以在 此处和下方可见:

请注意,黑色是零,白色是无限的,它用与复数相关的颜色覆盖复平面,例如红色 = 1,青色 = -1,i = 绿色,-i = 紫色。

他要求的功能的反射。

于 2015-05-05T08:15:06.077 回答
0

您可以使用以下方法之一:

  • plot(real(Y))
  • plot(imag(Y))
  • plot(real(Y),imag(Y))
  • plot(abs(Y))
于 2012-11-11T18:58:42.770 回答
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)])
于 2012-11-11T23:33:36.687 回答
0
plot(re(Y),im(Y))

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

于 2012-11-11T19:42:04.120 回答
0

作为 Python 的替代方案,您可以使用我编写的工具:cplot。它使用域着色来进行复杂的绘图,即它将 的绝对值f(z)与亮度相关联,将色相与复杂的角度相关联。

你的功能:

import cplot
import numpy as np

plt = cplot.plot(lambda z: 1 / (1 - np.cos(z) + 4j), (-10, +10, 400), (-10, +10, 400))
plt.show()

在此处输入图像描述

于 2021-10-26T12:21:13.180 回答