Matlab中如何绘制复杂的函数?例如:
Y[e^jx] = 1 / (1 - cosx + j4)
我尝试了一些代码,但我认为正确的方法是分别绘制实部和虚部。
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));
也许不适合你,但适合其他想要绘制复杂函数的人。我们建立了一个网站,您可以在其中快速渲染并下载它们(reflex4you.com,reflex = 复杂函数的表示)
我可以以丰富多彩的方式在 2D 中显示复杂的功能。您的功能可以在 此处和下方可见:
请注意,黑色是零,白色是无限的,它用与复数相关的颜色覆盖复平面,例如红色 = 1,青色 = -1,i = 绿色,-i = 紫色。
您可以使用以下方法之一:
plot(real(Y))
plot(imag(Y))
plot(real(Y),imag(Y))
plot(abs(Y))
默认情况下,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)])
plot(re(Y),im(Y))
但请记住,在您的情况下,有一个与复杂函数相关联的域有效:cos(x)-4j < 1