1、matlab程序题复习1.编写m文件要求利用matlab数值绘图功能画出衰减振荡曲线及其它的包络线。的取值范围是,数值采样间隔点为pi/50,在图中用红色是线段绘出,用蓝色虚线绘出,且两函数作在同一张图上。1.t=0:pi/50:4*pi;y0=exp(-t/3); y=exp(-t/3).*sin(3*t); figure;plot(t,y,-r) hold on;plot(t,y0,:b);plot(t,-y0,:b); hold off;title(y=exp(-t/3)sin(3t);xlabel(x)ylabel(y)2.利用matlab数值绘图功能,画出所表示的三维曲面。的取值范围
2、是,要求去除当x,y均等于0时,函数z的不连续点,数值坐标采样间隔为0.5.2.clear;x=-8:0.5:8; y=x;X Y=meshgrid(x,y); R=sqrt(X.2+Y.2)+eps; Z=sin(R)./R; surf(X,Y,Z); (mesh(X,Y,Z) colormap(cool) xlabel(x),ylabel(y),zlabel(z) Title(z=sin(sqrt(x2+y2)/sqrt(x2+y2);3.利用matlab数值绘图功能,绘制t在区间-2pi 2pi时函数y=sin(t)/t的图形,采样间隔为pi/10,要求利用逻辑运算求出x=0时函数近似极
3、限,并修补图形缺口。3.t=-2*pi:pi/10:2*pi;y=sin(t)./t;tt=t+(t=0)*eps;yy=sin(tt)./tt;subplot(1,2,1),plot(t,y),axis(-7,7,-0.5,1.2),xlabel(t),ylabel(y);subplot(1,2,2),plot(tt,yy),axis(-7,7,-0.5,1.2)4.编制一个解数论问题的函数文件:取任意整数,若是偶数,则用2除,否则乘3加1,重复此过程,直到整数变为1。 4.function c=collatz(n) c=n; while n1 if rem(n,2)=0 n=n/2; el
4、se n=3*n+1; end c=c n; end5.有一周期为4的正弦波上叠加了方差为0.1的正态分布的随机噪声的信号,用循环结构编制一个三点线性滑动平均的程序。(提示:用0.1*randn(1,n)产生方差为0.1的正态分布的随机噪声;三点线性滑动平均就是依次取每三个相邻数的平均值作为新的数据,如x1(2)=(x(1)+x(2)+x(3)/3,x1(3)=( x(2)+x(3)+x(4)/3)。 5. t=0:pi/50:4*pi; n=length(t); y=sin(t)+0.1*randn(1,n); ya(1)=y(1); for i=2:n-1 ya(i)=sum(y(i-1:
5、i+1)/3; end ya(n)=y(n); plot(t,y,c,t,ya,r,linewidth,2) 6.有一组测量数据如下表所示,数据具有y=x2的变化趋势,用最小二乘法求解y。并要求图示之。x11.522.533.544.55y-1.42.735.98.412.216.618.826.2 6. x=1 1.5 2 2.5 3 3.5 4 4.5 5 y=-1.4 2.7 3 5.9 8.4 12.2 16.6 18.8 26.2 e=ones(size(x) x.2 c=ey x1=1:0.1:5; y1=ones(size(x1),x1.2*c; plot(x,y,ro) hol
6、d on; plot(x1,y1,k); xlabel(x); ylabel(y); title(拟合曲线); legend; 7.,当x和y的取值范围均为-2到2时,用建立子窗口的方法在同一个图形窗口中绘制出三维线图、网线图、表面图和带渲染效果的表面图。 7 x,y=meshgrid(-2:.2:2); z=x.*exp(-x.2-y.2); mesh(x,y,z) subplot(2,2,1), plot3(x,y,z) title(plot3 (x,y,z) subplot(2,2,2), mesh(x,y,z) title(mesh (x,y,z) subplot(2,2,3), su
7、rf(x,y,z) title(surf (x,y,z) subplot(2,2,4), surf(x,y,z), shading interp title(surf (x,y,z), shading interp)8.利用matlab绘图功能,分别以条形图、阶梯图、杆图和填充图形式绘制曲线y=2sin(x),要求作在同一张图上,并标注标题。8.解:x=0:pi/10:2*pi;y=2*sin(x);subplot(2,2,1);bar(x,y,g);title(bar(x,y,g); axis(0 7 2 2);subplot(2,2,2);stairs(x,y,b);title(stair
8、s(x,y,b);axis(0 7 2 2); subplot(2,2,3); stem(x,y,k); title(stem(x,y,k);axis(0 7 2 2); subplot(2,2,4); fill(x,y,y); title(fill(x,y,y);axis(0 7 2 2); 必考 9.使用 MATLAB 画一个圆心在原点、半径等于 10 的圆,并在圆周上依逆时钟方向取 任意四点 A、B、C、D,将线段 AB、AC、AD、BC、BD、CD 用直线画出。 计算线段 AB、AC、AD、BC、BD、CD 的长度。 clear all;t=linspace(0, 2*pi,50);
9、r=10;x=r*cos(t);y=r*sin(t); a=r*cos(0.50*pi), sin(0.50*pi);b=r*cos(0.90*pi), sin(0.90*pi);c=r*cos(1.25*pi), sin(1.25*pi);d=r*cos(1.80*pi), sin(1.80*pi); plot(x, y, b, a(1), a(2), .k, b(1), b(2), .k, c(1), c(2), .k, d(1), d(2), .k); axis imagetext(a(1), a(2), A);text(b(1), b(2), B);text(c(1), c(2), C
10、);text(d(1), d(2), D); line(a(1), b(1), a(2), b(2), color, r); t=(a+b)/2; text(t(1), t(2), AB);line(b(1), c(1), b(2), c(2), color, r); t=(b+c)/2; text(t(1), t(2), BC);line(c(1), d(1), c(2), d(2), color, r); t=(c+d)/2; text(t(1), t(2), CD);line(d(1), a(1), d(2), a(2), color, r); t=(d+a)/2; text(t(1),
11、 t(2), DA);line(a(1), c(1), a(2), c(2), color, r); t=(a+c)/2; text(t(1), t(2), AC);line(b(1), d(1), b(2), d(2), color, r); t=(b+d)/2; text(t(1), t(2), BD); ab=sqrt(a(1)-b(1).2+(a(2)-b(2).2);fprintf(ab = %fn, ab);bc=sqrt(b(1)-c(1).2+(b(2)-c(2).2);fprintf(bc = %fn, bc);cd=sqrt(c(1)-d(1).2+(c(2)-d(2).2
12、);fprintf(cd = %fn, cd);ad=sqrt(a(1)-d(1).2+(a(2)-d(2).2);fprintf(ad = %fn, ad);ac=sqrt(a(1)-c(1).2+(a(2)-c(2).2);fprintf(ac = %fn, ac);bd=sqrt(b(1)-d(1).2+(b(2)-d(2).2);fprintf(bd = %fn, bd); 必考 10.试写一函数 regPolygon(n),其功能为画出一个圆心在 (0, 0)、半径为 1 的圆,并在圆内画出一个内接正 n 边形,其中一顶点位于 (0, 1)。例如 regPolygon(8) 可以画出
13、如下之正八边型:10. function regpoly(n) vertices=1; for i=1:n step=2*pi/n; vertices=vertices, exp(i*step*sqrt(-1);endplot(vertices, -o); axis image% 画外接圆hold on theta=linspace(0, 2*pi);plot(cos(theta), sin(theta), -r);hold offaxis image 11.请用 surf 指令来画出下列函数的曲面图: z = x*exp(-x2-y2) 其中 x 在 -2, 2 间共等切分为 21 点,y
14、在 -1, 1 间共等切分为 21 点,所以此曲面共有 21*21=441 个点。 请以曲面的斜率来设定曲面的颜色。 请以曲面的曲率来设定曲面的颜色。 11.x = linspace(-2, 2, 21); % 在 x 轴 -2,2 之间取 21 点 y = linspace(-1, 1, 21); % 在 y 轴 -1,1 之间取 21 点 xx, yy = meshgrid(x, y); % xx 和 yy 都是 2121 的矩阵 zz = xx.*exp(-xx.2-yy.2); % 计算函数值,zz 也是 2121 的矩阵subplot(1,3,1)surf(xx, yy, zz);
15、axis image subplot(1,3,2)surf(xx, yy, zz, gradient(zz); axis image subplot(1,3,3)surf(xx, yy, zz, del2(zz); axis image 12.试写一函数 regStar(n),其功能为画出一个圆心在 (0, 0)、半径为 1 的圆,并在圆内画出一个内接正 n 星形,其中一顶点位于 (0, 1)。12.解:function regStar(n) vertices=1; for i=1:n step=2*pi*floor(n/2)/n; vertices=vertices, exp(i*step*
16、sqrt(-1);end plot(vertices, -o); % 画外接圆hold ontheta=linspace(0, 2*pi); plot(cos(theta), sin(theta), -r);hold offaxis image 13.利用matlab函数功能,编写function文件要求利用matlab数值绘图功能画出衰减振荡曲线及其它的包络线。的取值范围是,数值采样间隔点为pi/50,在图中用红色是线段绘出,用蓝色虚线绘出,且两函数作在同一张图上,并说明其调用方式。 38.function y=test(t);y0=exp(-t/3); y=exp(-t/3).*sin(3
17、*t); figure;plot(t,y,-r) hold on;plot(t,y0,:b);plot(t,-y0,:b); hold off;调用t=0:pi/50:4*pi;y=test(t)14.有一正弦衰减数据y=cos(x).*exp(-x/5),其中x=0:pi/5:4*pi,利用matlab三次样条插值函数进行插值,要求每两个数据点间插入3个数,并作出拟合后曲线。 14. x0=0:pi/5:4*pi; y0=cos(x0).*exp(-x0/5); x=0:pi/20:4*pi; y=spline(x0,y0,x); plot(x0,y0,or,x,y,b) title(曲线拟
18、合);xlabel(x);ylabel(y);15.利用matlab数值绘图功能,画出所表示的三维曲面。的取值范围是,要求去除当x,y均等于0时,函数z的不连续点,数值坐标采样间隔为0.2。15.clear all;x=-6:0.2:6; y=x;X Y=meshgrid(x,y); R=sqrt(X.2+Y.2)+eps; Z=sin(R)./R; surf(X,Y,Z); (mesh(X,Y,Z) colormap(cool) xlabel(x),ylabel(y),zlabel(z) 16.利用matlab指令计算表达式的梯度并利用数值绘图功能绘出梯度图。(x,y的取值范围-3 3采样间
19、隔0.1) 16. v = -3:0.1:3; x,y = meshgrid(v); z=30*(x.2-y.3).*exp(-x.2-y.2); px,py = gradient(z,.1,.1); contour(x,y,z) hold on quiver(x,y,px,py) hold off17.有一周期为3的正弦波上叠加了方差为0.2的正态分布的随机噪声的信号,利用matlab循环结构编制一个三点线性滑动平均的程序去除噪声。(提示:用0.2*randn(1,n)产生方差为0.2的正态分布的随机噪声;三点线性滑动平均就是依次取每三个相邻数的平均值作为新的数据,如x1(2)=(x(1)+
20、x(2)+x(3)/3,x1(3)=( x(2)+x(3)+x(4)/3)。 17. t=0:pi/50:3*pi; n=length(t); y=sin(t)+0.2*randn(1,n); ya(1)=y(1); for i=2:n-1 ya(i)=sum(y(i-1:i+1)/3; end ya(n)=y(n); plot(t,y,c,t,ya,r,linewidth,2) 18.分段函数,x取样区间0 4,区间内采样500个点,要求利用逻辑关系运算对函数y=sin(x)逐段解析计算,并绘图。(给出绘图指令即可)。18.t=linspace(0,4*pi,500);y=cos(t); z
21、1=(t2*pi).*y; w=(tpi/3&t7*pi/3&t x0=0:pi/5:4*pi; y0=sin(x0).*exp(-x0/10); x=0:pi/20:4*pi; y=spline(x0,y0,x); plot(x0,y0,or,x,y,b) 20.计算表达式的梯度并利用matlab数值绘图功能绘图。(x,y的取值范围-2 2采样间隔0.2) 20. v = -2:0.2:2; x,y = meshgrid(v); z=10*(x.3-y.5).*exp(-x.2-y.2); px,py = gradient(z,.2,.2); contour(x,y,z) hold on q
22、uiver(x,y,px,py) hold off21.分段函数,x取样区间0 3,区间内采样300个点,要求利用逻辑关系运算对函数y=sin(x)逐段解析计算,并绘图。(给出绘图指令即可)。21.t=linspace(0,3*pi,500);y=sin(t); z1=(t2*pi).*y; w=(tpi/3&t7*pi/3&t t=0:0.5:10; y1=exp(-0.1*t); y2=exp(-0.2*t); y3=exp(-0.5*t); plot(t,y1,-ob,t,y2,:*r,t,y3,-.g) title(ityrm=e-itat) title(ityrm=e-itat,FontSize,12) text(t(6),y1(6),leftarrowitarm=0.1,FontSize,11) text(t(6),y2(6),leftarrowitarm=0.2,FontSize,11) text(t(6),y3(6),leftarrowitarm=0.5,FontSize,11) title(ityrm=e-itat,FontSize,12) legend(a=0.1,a=0.2,a=0.5)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1