maab程序题复习Word格式文档下载.docx
《maab程序题复习Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《maab程序题复习Word格式文档下载.docx(11页珍藏版)》请在冰豆网上搜索。
surf(X,Y,Z);
(mesh(X,Y,Z))
colormap(cool)
xlabel('
x'
),ylabel('
y'
),zlabel('
z'
Title(‘z=sin(sqrt(x^2+y^2)/sqrt(x^2+y^2));
3.利用matlab数值绘图功能,绘制t在区间[-2pi2pi]时函数y=sin(t)/t的图形,采样间隔为pi/10,要求利用逻辑运算求出x=0时函数近似极限,并修补图形缺口。
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]),
t'
);
subplot(1,2,2),plot(tt,yy),axis([-7,7,-0.5,1.2])
4.编制一个解数论问题的函数文件:
取任意整数,若是偶数,则用2除,否则乘3加1,重复此过程,直到整数变为1。
4.functionc=collatz(n)
c=n;
whilen>
1
ifrem(n,2)==0
n=n/2;
else
n=3*n+1;
end
c=[cn];
end
5.有一周期为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:
n=length(t);
y=sin(t)+0.1*randn(1,n);
ya
(1)=y
(1);
fori=2:
n-1
ya(i)=sum(y(i-1:
i+1))/3;
ya(n)=y(n);
plot(t,y,'
c'
t,ya,'
r'
'
linewidth'
2)
6.有一组测量数据如下表所示,数据具有y=x2的变化趋势,用最小二乘法求解y。
并要求图示之。
x
1
1.5
2
2.5
3
3.5
4
4.5
5
y
-1.4
2.7
5.9
8.4
12.2
16.6
18.8
26.2
6.>
>
x=[11.522.533.544.55]'
>
y=[-1.42.735.98.412.216.618.826.2]'
e=[ones(size(x))x.^2]
c=e\y
x1=[1:
0.1:
5]'
y1=[ones(size(x1)),x1.^2]*c;
plot(x,y,'
ro'
holdon;
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)
mesh(x,y,z)'
subplot(2,2,3),surf(x,y,z)
surf(x,y,z)'
subplot(2,2,4),surf(x,y,z),shadinginterp
surf(x,y,z),shadinginterp'
8.利用matlab绘图功能,分别以条形图、阶梯图、杆图和填充图形式绘制曲线y=2sin(x),要求作在同一张图上,并标注标题。
8.解:
x=0:
y=2*sin(x);
subplot(2,2,1);
bar(x,y,'
g'
title('
'
)'
axis([07–22]);
subplot(2,2,2);
stairs(x,y,'
axis([07–22]);
subplot(2,2,3);
stem(x,y,'
subplot(2,2,4);
fill(x,y,'
必考9.使用MATLAB画一个圆心在原点、半径等于10的圆,并在圆周上依逆时钟方向取任意四点A、B、C、D,将线段AB、AC、AD、BC、BD、CD用直线画出。
计算线段AB、AC、AD、BC、BD、CD的长度。
clearall;
t=linspace(0,2*pi,50);
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,'
a
(1),a
(2),'
.k'
b
(1),b
(2),'
c
(1),c
(2),'
d
(1),d
(2),'
axisimage
text(a
(1),a
(2),'
A'
text(b
(1),b
(2),'
B'
text(c
(1),c
(2),'
C'
text(d
(1),d
(2),'
D'
line([a
(1),b
(1)],[a
(2),b
(2)],'
color'
'
t=(a+b)/2;
text(t
(1),t
(2),'
AB'
line([b
(1),c
(1)],[b
(2),c
(2)],'
t=(b+c)/2;
BC'
line([c
(1),d
(1)],[c
(2),d
(2)],'
t=(c+d)/2;
CD'
line([d
(1),a
(1)],[d
(2),a
(2)],'
t=(d+a)/2;
DA'
line([a
(1),c
(1)],[a
(2),c
(2)],'
t=(a+c)/2;
AC'
line([b
(1),d
(1)],[b
(2),d
(2)],'
t=(b+d)/2;
BD'
ab=sqrt((a
(1)-b
(1)).^2+(a
(2)-b
(2)).^2);
fprintf('
ab=%f\n'
ab);
bc=sqrt((b
(1)-c
(1)).^2+(b
(2)-c
(2)).^2);
bc=%f\n'
bc);
cd=sqrt((c
(1)-d
(1)).^2+(c
(2)-d
(2)).^2);
cd=%f\n'
cd);
ad=sqrt((a
(1)-d
(1)).^2+(a
(2)-d
(2)).^2);
ad=%f\n'
ad);
ac=sqrt((a
(1)-c
(1)).^2+(a
(2)-c
(2)).^2);
ac=%f\n'
ac);
bd=sqrt((b
(1)-d
(1)).^2+(b
(2)-d
(2)).^2);
bd=%f\n'
bd);
必考10.试写一函数regPolygon(n),其功能为画出一个圆心在(0,0)、半径为1的圆,并在圆内画出一个内接正n边形,其中一顶点位于(0,1)。
例如regPolygon(8)可以画出如下之正八边型:
10.>
functionregpoly(n)
vertices=[1];
fori=1:
n
step=2*pi/n;
vertices=[vertices,exp(i*step*sqrt(-1))];
end
plot(vertices,'
-o'
%画外接圆
holdon
theta=linspace(0,2*pi);
plot(cos(theta),sin(theta),'
holdoff
axisimage
11.请用surf指令来画出下列函数的曲面图:
z=x*exp(-x2-y2)其中x在[-2,2]间共等切分为21点,y在[-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都是21×
21的矩阵
zz=xx.*exp(-xx.^2-yy.^2);
%计算函数值,zz也是21×
21的矩阵
subplot(1,3,1)
surf(xx,yy,zz);
axisimage
subplot(1,3,2)
surf(xx,yy,zz,gradient(zz));
subplot(1,3,3)
surf(xx,yy,zz,del2(zz));
12.试写一函数regStar(n),其功能为画出一个圆心在(0,0)、半径为1的圆,并在圆内画出一个内接正n星形,其中一顶点位于(0,1)。
12.解:
functionregStar(n)
n
step=2*pi*floor(n/2)/n;
end
holdon
13.利用matlab函数功能,编写function文件要求利用matlab数值绘图功能画出衰减振荡曲线
用蓝色虚线绘出,且两函数作在同一张图上,并说明其调用方式。
38.
functiony=test(t);
调用t=0:
y=test(t)
14.有一正弦衰减数据y=cos(x).*exp(-x/5),其中x=0:
pi/5:
4*pi,利用matlab三次样条插值函数进行插值,要求每两个数据点间插入3个数,并作出拟合后曲线。
14.>
x0=0:
y0=cos(x0).*exp(-x0/5);
x=0:
pi/20:
y=spline(x0,y0,x);
plot(x0,y0,'
or'
x,y,'
title(‘曲线拟合’);
xlabel(‘x’);
ylabel(‘y’);
15.利用matlab数值绘图功能,画出
,要求去除当x,y均等于0时,函数z的不连续点,数值坐标采样间隔为0.2。
15.clearall;
x=-6:
0.2:
6;
(mesh(X,Y,Z))
16.利用matlab指令计算表达式
的梯度并利用数值绘图功能绘出梯度图。
(x,y的取值范围[-33]采样间隔0.1)
16.>
v=-3:
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)
holdon
quiver(x,y,px,py)
holdoff
17.有一周期为3?
的正弦波上叠加了方差为0.2的正态分布的随机噪声的信号,利用matlab循环结构编制一个三点线性滑动平均的程序去除噪声。
①用0.2*randn(1,n)产生方差为0.2的正态分布的随机噪声;
17.t=0:
3*pi;
y=sin(t)+0.2*randn(1,n);
18.分段函数
x取样区间[04
],区间内采样500个点,要求利用逻辑关系运算对函数y=sin(x)逐段解析计算,并绘图。
(给出绘图指令即可)。
18.t=linspace(0,4*pi,500);
y=cos(t);
z1=((t<
pi)|(t>
2*pi)).*y;
w=(t>
pi/3&
t<
2*pi/3)+(t>
7*pi/3&
8*pi/3);
w_n=~w;
z2=w*cos(pi/5)+w_n.*z1;
plot(t,z2,'
-b'
),axis([010-11])
19.有一正弦衰减数据y=sin(x).*exp(-x/10),其中x=0:
4*pi,用三次样条法进行插值。
19.>
y0=sin(x0).*exp(-x0/10);
20.计算表达式
的梯度并利用matlab数值绘图功能绘图。
(x,y的取值范围[-22]采样间隔0.2)
20.>
v=-2:
2;
z=10*(x.^3-y.^5).*exp(-x.^2-y.^2);
[px,py]=gradient(z,.2,.2);
quiver(x,y,px,py)
21.分段函数
x取样区间[03
],区间内采样300个点,要求利用逻辑关系运算对函数y=sin(x)逐段解析计算,并绘图。
21.t=linspace(0,3*pi,500);
y=sin(t);
z2=w*sin(pi/3)+w_n.*z1;
22.有一组测量数据满足
,t的变化范围为0~10,用不同的线型和标记点画出a=0.1、a=0.2和a=0.5三种情况下的曲线。
并在结果图中添加标题
,并用箭头线标识出各曲线a的取值并添加标题
和图例框。
22.>
t=0:
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'
\ity\rm=e^{-\itat}'
FontSize'
12)
text(t(6),y1(6),'
\leftarrow\ita\rm=0.1'
11)
text(t(6),y2(6),'
\leftarrow\ita\rm=0.2'
11)
text(t(6),y3(6),'
\leftarrow\ita\rm=0.5'
12)
legend('
a=0.1'
a=0.2'
a=0.5'