matlab编程问题

用matlab画出-5到5之间y=e^x比y=tanx大的部分

你好,这个可以这么画

x = linspace(-5,5,100000);
y = nan(size(x));
p = exp(x)>tan(x);% exp(x)比tan(x)大的部分
y(p) =exp(x(p));    % 画出来
plot(x,y)

img

结果可以发现有两个间断的地方,第二个是比较小的,放大才能看见

将y=e.^x与y=tanx的图像画出来,显示前者大于后者的部分,这样更加直观!


x=-5:0.04:5;
y1 = exp(x);
y2 = tan(x);
plot(x,y1,'r');
hold on
plot(x,y2,'b')
hold on
c=[];
b=[];
for i =1:length(y1)
    if  y1(i)>y2(i)
        c=[c,y1(i)];
        b=[b,x(i)];
    end
end
plot(b,c,'k.');
legend('y=e.^x','y=tanx','e.^x>tanx的部分')

标黑色的部分为e.^x>tanx的部分!如果想要效果好一点可以将x=-5:0.05:5;,这里为了能更加的显示y=e.^x部分,我就设为了x=-5:0.04:5;

img