如何在Matlab中绘制复杂函数?例如:
Y[e^jx] = 1 / (1 - cosx + j4)
我尝试了一些代码,但我认为正确的方法是分别绘制实部和虚部。
答案 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));
答案 2 :(得分:1)
也许不适合你,但也适合寻求绘制复杂功能的其他人。 我们建立了一个网站,您可以快速渲染它们并下载它们(reflex4you.com,reflex =表示复杂功能)
我可以用彩色的方式在2D中显示复杂的功能。你的功能可以 visible here及以下:
请注意,黑色为零,白色无限,并且它覆盖复杂平面,其颜色与复数相关联,例如红色= 1,青色= -1,i =绿色,-i =紫色。
答案 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)])