《实验作业2MATLAB作图.docx》由会员分享,可在线阅读,更多相关《实验作业2MATLAB作图.docx(4页珍藏版)》请在三一办公上搜索。
1、实验作业2 MATLAB作图实验作业2 MATLAB作图 1、用plot,fplot 绘制函数y=cos(tan(px)的图形。 解: 代码如下: x=linspace(-0.5,0.5,30); y=cos(tan(pi*x); plot(x,y) 结果: fplot(cos(tan(pi*x),-0.5,0.5) 结果: 注意事项: fplot(cos(tan(pi*x),-0.5,0.5)不能写成fplot(cos(tan(pi*x),)否则是错误程序。 2. 用ezplot绘制函数 exy-sin(x+y)=0 在-3, 3上的图形。 解: 代码如下: ezplot(exp(x*y)-
2、sin(x+y)=0,-3,3) 3. 用matlab以动画的方式绘制出摆线 x=a(t-sint) y=a(1-cost) 的渐屈线 clear; clc; close; a=1; syms t x=a*(t-sin(t); y=a*(1-cos(t); ezplot(x,y,0,2*pi),grid on;hold on; dy=diff(y)/diff(x); dyy=diff(dy)/diff(x); xx=x-(1+dy2)*dy/dyy;%渐屈线的坐标 yy=y+(1+dy2)/dyy; M=50; t=0; xxx=subs(xx); yyy=subs(yy); H1=plot(
3、xxx,yyy,r);hold on;grid on;axis(0,7,-2.5,2.5); x1=subs(x); y1=subs(y); H2=plot(x1,xxx,y1,yyy,k-); H3=plot(x1,y1,ko); H4=plot(xxx,yyy,ro); tt=linspace(0,2*pi,M); for i=1:M pause(0.2); t=tt(1:i); xxx=subs(xx); yyy=subs(yy); x1=subs(x); y1=subs(y); set(H1,xdata,xxx,ydata,yyy); set(H2,xdata,x1(i),xxx(i)
4、,ydata,y1(i),yyy(i); set(H3,xdata,x1(i),ydata,y1(i); set(H4,xdata,xxx(i),ydata,yyy(i); end x=a(t-sint) 绘制函数在t0,2p上的图形。 y=a(1-cost)程序:a=input(please input a=); t=linspace(0,2*pi,100); x=a*(sin(t); y=a*(t-cos(t); plot(x,y); please input a=10 4. 5. 在同一平面中的两个窗口分别画出心形线和马鞍面。 要求:1)在图形上加格栅、图例和标注; 2)定制坐标; 3)
5、以不同角度观察马鞍面。 解: 心型线代码如下: clear; clc; i=-pi:0.1:pi; x=2.*(sin(i)-sin(2*i)./2); y=2.*(cos(i)-cos(i).2); plot(x,y); axis(-3 3 -4.2 1);%制定图形坐标 title(心形线);%当前图顶端加图例 xlabel(x);%当前图x轴加图例 ylabel(y);%当前图y轴加图例 grid on;%加格栅到当前图上 心型线运行结果显示如下图: 图3.1 马鞍线代码如下: clear; clc; a=10; b=10; x=-1.5:0.1:1.5; y=-1.5:0.1:1.5;
6、 X,Y=meshgrid(x,y);%x行y列的矩阵 Z=X.2/a-Y.2/b; figure(2);%新建窗口 subplot(221);%分割当前窗口,作图显示在该分割块上 surf (X,Y,Z); title(马鞍面); xlabel(x); ylabel(y); subplot(222); surf (X,Y,Z); title(马鞍面); xlabel(x); ylabel(y); view(20,30);%改变视角到 subplot(224); surf (X,Y,Z); title(马鞍面); xlabel(x); ylabel(y); view(60,10);%改变视角到 马鞍线运行结果显示如下图: 图3.2 7.以不同的视角观察球面x2+y2+z2=r2 和圆柱面 x2+y2=rx所围区域. 解: 代码如下: clear; clc; r=2; x0,y0,z0=sphere(50); x=r*x0;y=r*y0;z=r*z0; surf(x,y,z);hold on; f=(x,y)x.2+y.2-r*x; ezsurf(f,-1.5,2.5,-2,1.5); axis equal; view(30,20); 运行结果显示如下图: 图3.3