MatLab练习题.docx
《MatLab练习题.docx》由会员分享,可在线阅读,更多相关《MatLab练习题.docx(10页珍藏版)》请在冰豆网上搜索。
![MatLab练习题.docx](https://file1.bdocx.com/fileroot1/2022-11/30/1922ec49-c879-4231-a690-a03be8ecbfaf/1922ec49-c879-4231-a690-a03be8ecbfaf1.gif)
MatLab练习题
MatLab练习题
1.请在MATLAB中直接输入下列常数,看它们的值是多少:
a.i
b.j
c.eps
d.inf
e.nan
f.pi
g.realmax
h.realmin
答:
>>i=0+1.0000i
>>j=0+1.0000i
>>eps=2.2204e-016
>>inf=Inf
>>nan=NaN
>>pi=3.1416
>>realmax=1.7977e+308
>>realmin=2.2251e-308
2.试写一函数regPolygon(n),其功能为画出一个圆心在(0,0)、半径为1的圆,并在圆内画出一个内接正n边形,其中一顶点位于(0,1)。
例如regPolygon(8)可以画出如下之正八边型:
答:
%circle
%plotpolygon
angle=0:
0.01:
2*pi;
X=sin(angle);
Y=cos(angle);
fork=1:
n
plot([cos(2*pi*(k-1)/n),cos(2*pi*(k)/n)],[sin(2*pi*(k-1)/n),sin(2*pi*(k)/n)],'r-');
holdon
end
%plotcircler=1
plot(X,Y,'Linewidth',2)
gridon
axisequal
3.一条参数式的曲线可由下列方程式表示:
x=sin(t),y=1-cos(t)+t/10
当t由0变化到4*pi时,请写一个MATLAB的脚本plotParam.m,画出此曲线在XY平面的轨迹。
答:
>>t=linspace(0,4*pi);
x=sin(t);
y=1-cos(t)+t/10;
plot(x,y,'-o');
4.当一个小圆轮沿着一条曲线行进时,轮缘任一点的轨迹就会产生变化丰富的摆线。
假设小圆轮的半径r=2。
a.当小圆轮绕着一个大圆(半径R=5)的外部滚动时,请画此「圆轮摆线」或「外花瓣线」。
b.重复上小题,但改成在大圆的内部滚动,请画出此「内花瓣线」。
提示:
下图显示在不同的R和r值,所产生的圆轮摆线。
答:
R=5;%大圆半徑
r=2;%小圆半徑
n=r/gcd(r,R);%圈数
t=linspace(0,n*2*pi,1000);
c=R*exp(i*t);
%內花瓣线
c1=(R-r)*exp(i*t)+r*exp(i*(-R*t/r+t));
%外花瓣线
c2=(R+r)*exp(i*t)+r*exp(i*(pi+R*t/r+t));
plot(real(c),imag(c),real(c1),imag(c1),real(c2),imag(c2));
axisimage
title('內花瓣线(绿色)和外花瓣线(红色)');
5.一个空间中的椭球可以表示成下列方程式:
(x/a)2+(y/b)2+(z/c)2=1请使用任何你可以想到的方法,画出三维空间中的一个平滑的椭球,其中a=3,b=4,c=8。
(但不能使用ellipsoid指令。
)
答:
a=sqrt(9);b=sqrt(16);c=sqrt(64)
t=linspace(-b,b)
r=a*sqrt(1-t.^2/b^2)
[x,y,z]=cylinder(r)
z=(z-.5)*2*b;
mesh(x,y,z);axisequal
6.请用ez开头的绘图指令(例如ezmesh、ezsurf、ezmeshc、ezsurfc、ezplot3、ezcontour等),画出一个你认为最炫的立体图形。
答:
ezsurf('x*exp(-x^2-y^2)')
7.画出下列方程式的曲面图及等高线图:
z=sin(x/2)cos(y)
其中,x的21个值均匀分布在[-2*pi,2*pi]范围,y的31值均匀分布在[-1.5*pi,1.5*pi]。
请使用subplot(2,1,1)和subplot(2,1,2)将产生的曲面图和等高线图在同一个窗口上,产生的图形应类似下图:
答:
>>x=linspace(-2*pi,2*pi,21);
y=linspace(-1.5*pi,1.5*pi,31);
[xx,yy]=meshgrid(x,y);
zz=sin(xx/2).*cos(yy);
subplot(1,2,1)
surf(xx,yy,zz);axisimage
subplot(1,2,2)
contour(xx,yy,zz);axisimage
9.假设一曲线资料点为
x=0:
2:
4*pi;
y=sin(x).*exp(-x/5);
试将x的间距调成0.1,并用下列方法进行内插:
a.线性内插法(method='linear')。
b.Spline内插法(method='spline')。
c.三次多项式内插法(method='cubic')。
d.多项式拟合法:
直接利用6次多项式去通过7个资料点。
答:
>>x=0:
2:
4*pi;
y=sin(x).*exp(-x/5);
x1=0:
0.1:
4*pi;
y1=interp1(x,y,x1,'linear');
y2=interp1(x,y,x1,'spline');
y3=interp1(x,y,x1,'cubic');
p=polyfit(x,y,6);
y4=polyval(p,x1);
subplot(2,2,1)
plot(x1,y1,'.-');
subplot(2,2,2)
plot(x1,y2,'.-');
subplot(2,2,3)
plot(x1,y3,'.-');
subplot(2,2,4)
plot(x,y,'^',x1,y4,'-r.');
title('多项式拟合');
xlabel('x轴');
ylabel('y轴');
text(1.8,0.8,'六次多项式拟合曲线');
text(2.3,0.6,'采样点');
legend('七个采样点','拟合曲线')
10.求下列函数的极小点:
1)
;
2)
;
3)
.
第1),2)题的初始点可任意选取,
第3)题的初始点取为
.
答:
第1)题
(1)编写m文件fun1.m:
functionf=fun1(x)
f=x
(1)^2+4*x
(2)^2+2*x
(1)+18*x
(2);
主程序如下:
x0=[-1,1];
x=fminunc('fun1',x0);
y=fun1(x)
运行结果:
y=-21.2500
第2)题
(2)编写m文件fun2.m:
functionf=fun2(x)
f=x
(1)^2+1.5*x
(2)^2-2*x
(1)*x
(2)+x
(1)-2*x
(2);
主程序如下:
x0=[-1,-1];
x=fminunc('fun2',x0);
y=fun2(x)
运行结果:
y=-0.7500
第3)题
(3)编写m文件fun3.m:
functionf=fun3(x)
f=(x
(1)-1)^4+2*x
(2)^2;
主程序如下:
x0=[0,1];
x=fminunc('fun3',x0);
y=fun3(x)
运行结果:
y=3.5793e-005