为什么在matlab里面用下面的程序:x=linspace(-pi/2,pi/2,20); >> y=tan(x); >
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/27 08:02:12
为什么在matlab里面用下面的程序:x=linspace(-pi/2,pi/2,20); >> y=tan(x); >> plot(a,y)
画出来的是折线,无论x去多少点.
不知道是不是matlab自身的设置问题
画出来的是折线,无论x去多少点.
不知道是不是matlab自身的设置问题
原因是,tan(pi/2)对应的值是无穷大,虽然因数值计算的精度所限,不是真正的无穷大,但比起其它值大很多(几个数量级),所以中间段看起来就几乎没有区别了.应该把-pi/2和pi/2给分别微调一下,例如:
x=linspace(-pi/2+1e-2,pi/2-1e-2,200);
y=tan(x);
plot(x,y)
再问: 谢谢,但是画的图也不是很理想,和真正的tan曲线还是存在很大差距,不知道用plot函数还有其他方法吗?
再答: 之前回答的重心是告诉你画出的图效果不满意的原因,你完全也可以把x的范围再调小一些,例如 x=linspace(-pi/2+0.1,pi/2-0.1,200);y=tan(x);plot(x,y) 或者,画完图设置坐标轴的范围达到希望的效果,例如在前面的画图命令后面加上 axis(-pi/2 pi/2 -8 8]) 当然,画这类函数最简单实用的方法是用ezplot函数。其实ezplot的做法也是通过一个简单的算法来确定一个适当的坐标范围的,代码大致如下(不同版本可能有差异): ymin = u(1); ymax = u(npts); if npts > 4 del = u(fix(7*npts/8)) - u(fix(npts/8)); ymin = max(u(1)-del/8,u(fix(npts/8))-del); ymax = min(u(npts)+del/8,u(fix(7*npts/8))+del); end 其中,u是曲线的y轴数据,npts是数据点数。这种做法在多数情况下还是比较有效的,但有些情况下确定的坐标范围效果也不理想。 ezplot可以画多条曲线,但不是象plot那样的语法。一种方法是,把函数写成数组形式,例如 ezplot('[cos(x); sin(x)]',[-pi/2 pi/2]) 另一种方法是使用hold on命令,例如 ezplot('tan(x)',[-pi/2 pi/2]) hold on; ezplot('cos(x)',[-pi/2 pi/2]) 不建议使用后一种方法,其不足是:(1)各线条颜色相同,不好区分;(2)坐标范围根据最新一个ezplot命令确定,效果往往不理想。
再问: 谢谢。。。
x=linspace(-pi/2+1e-2,pi/2-1e-2,200);
y=tan(x);
plot(x,y)
再问: 谢谢,但是画的图也不是很理想,和真正的tan曲线还是存在很大差距,不知道用plot函数还有其他方法吗?
再答: 之前回答的重心是告诉你画出的图效果不满意的原因,你完全也可以把x的范围再调小一些,例如 x=linspace(-pi/2+0.1,pi/2-0.1,200);y=tan(x);plot(x,y) 或者,画完图设置坐标轴的范围达到希望的效果,例如在前面的画图命令后面加上 axis(-pi/2 pi/2 -8 8]) 当然,画这类函数最简单实用的方法是用ezplot函数。其实ezplot的做法也是通过一个简单的算法来确定一个适当的坐标范围的,代码大致如下(不同版本可能有差异): ymin = u(1); ymax = u(npts); if npts > 4 del = u(fix(7*npts/8)) - u(fix(npts/8)); ymin = max(u(1)-del/8,u(fix(npts/8))-del); ymax = min(u(npts)+del/8,u(fix(7*npts/8))+del); end 其中,u是曲线的y轴数据,npts是数据点数。这种做法在多数情况下还是比较有效的,但有些情况下确定的坐标范围效果也不理想。 ezplot可以画多条曲线,但不是象plot那样的语法。一种方法是,把函数写成数组形式,例如 ezplot('[cos(x); sin(x)]',[-pi/2 pi/2]) 另一种方法是使用hold on命令,例如 ezplot('tan(x)',[-pi/2 pi/2]) hold on; ezplot('cos(x)',[-pi/2 pi/2]) 不建议使用后一种方法,其不足是:(1)各线条颜色相同,不好区分;(2)坐标范围根据最新一个ezplot命令确定,效果往往不理想。
再问: 谢谢。。。
x=linspace(0,2*pi)在matlab中是什么意思
MATLAB中,x=linspace(0,2*pi,
matlab >> syms x y;x=linspace(0,2*pi,60);y=(sin(x)*cos(5*x))
创建z=exp(x+i*y)在x=linspace(-1,1,100);y=linspace(-2*pi,2*pi,10
Matlab问题,下面是我所编写的代码,t=linspace(0,2*pi,100); x=[t;t]'; y=[sin
matlab 我用linspace(0,2*pi,1000)定义了一个1000维的自变量,用y=x.*sin(x)后再用
已知函数f(x)=tan(pi/2),则y=f(pi/2-x)sinx在区间【0,pi】上的大致图像为什么?
怎么用matlab计算出pi/2=x+arccos(tan(pi/4-x/2)中未知数x的值
matlab中t=linspace(0,2*pi,100);x=[t;t]';y=[sin(t);cos(t)]';pl
matlab t=linspace(0,pi/10,1000); >> syms x y z% >> th=[x*(1+
matlab三维图程序:[X,Y]=meshgrid([200:2:300],[-pi/4:pi/100:pi/4]);
Matlab中“x=0:pi/100:2*pi”步长为什么设定是pi/100啊.