使用Matlab绘制y = -log(sin(x))

问题描述 投票:-2回答:2

我试过了:

x=linspace(-2*pi,2*pi);
y=-log(sin(x));
plot(x,y)
grid on
axis([-2*pi,2*pi,-5,10])

这产生了这个情节:

enter image description here

如何防止Matlab在返回复数的区间中仅绘制解的实部?

matlab matlab-figure
2个回答
2
投票

你可以通过分别使用real functionimag function来分离实部和虚部来实现这一点。完成后,您所要做的就是在同一轴上执行两个单独的图:

x = linspace(-2*pi,2*pi);

y = -log(sin(x));
y_real = real(y);
y_imag = imag(y);

h1 = plot(x,y_real);
grid on;
axis([-2*pi,2*pi,-5,10]);

hold on;
h2 = plot(x,y_imag);
hold off;

legend([h1 h2],'Real Part','Imaginary Part');

在最终结果下面:

Result


0
投票

看起来我找到了一个简单的方法:

syms x
fplot(-log(sin(x)),[-2*pi,2*pi],...
    'LineWidth',1)
axis([-2*pi,2*pi,0,8])
grid on

哪个产生这个图像:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.