中南大学matlab课后习题7.docx
《中南大学matlab课后习题7.docx》由会员分享,可在线阅读,更多相关《中南大学matlab课后习题7.docx(52页珍藏版)》请在冰豆网上搜索。
![中南大学matlab课后习题7.docx](https://file1.bdocx.com/fileroot1/2023-1/10/eb5f2369-28a2-40f4-9974-56ff0aa8a30c/eb5f2369-28a2-40f4-9974-56ff0aa8a30c1.gif)
中南大学matlab课后习题7
第一章
思考练习
1.
与一般的Windows程序一样,启动MATLAB系统有3种常见方法:
(1)使用Windows“开始”菜单。
(2)运行MATLAB系统启动程序matlab.exe。
(3)利用快捷方式。
要退出MATLAB系统,也有3种常见方法:
(2)在MATLAB命令窗口输入Exit或Quit命令。
(3)单击MATLAB主窗口的“关闭”按钮。
2.matlab用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案
3.可以在第一个物理行之后加上三个小黑点并按回车键,然后再下一个物理行输入其他部分。
4.help命令会显示当前帮助系统中的所有项目,即搜索路径中所有的目录名称,只显示那些与关键字中完全匹配的结果。
Lookfor命令对搜索范围内的M文件经行搜索,条件比较宽泛。
第二章
(1) w=sqrt
(2)*(1+0.34245*10^(-6)
(2)a=3.5
b=5
c=9.8
x=(2*pi*a+(b+c)/(pi+a*b*c)-exp
(2))/(tan(b+c)+a)
(3)a=3.32
b=7.9
y=2*pi*a^2*((1-pi/4)*b-(0.8333-pi/4)*a)
(4)t=[2,1-3i;5,-0.65]
Z=0.5*exp(2*t)*log(t+sqrt(1+t.*t))
2.A=[-1,5,-4;0,7,8;3,61,7];
B=[8,3,-1;2,5,3;-3,2,0];
(1)
A+6*BA^2-B+eye
(2)
A*BA.*BB.*A
(3)
A/BB\A
(4)
[A,B][A([1,3],:
);B^2]
3.
(1)A=[23,10,-0.778,0;41,-45,65,5;32,5,0,32;6,-9.54,54,3.14];
K=find(A>10&A<25);
A(K)
(2)A=[23,10,-0.778,0;41,-45,65,5;32,5,0,32;6,-9.54,54,3.14];
B=A(1:
3,:
)C=A(:
1:
2)D=A(2:
4,3:
4)E=B*C
(3)E5.A=[-29,6,18;20,5,12;-8,8,5];
[V,D]=eig(A)
A*V=V*D
第三章
1.f=input('输入一个数:
','s');
f(end:
-1:
1)
2.
(1)if语句
score=input('请输入成绩:
');
ifscore>=90&&score<=100
disp('A');
elseifscore>=80&&score<=89
disp('B');
elseifscore>=70&&score<=79
disp('C');
elseifscore>=60&&score<=69;
disp('D');
elseifscore<60&&score>=0;
disp('E');
else
disp('出错');
End
(2)用switch语句
score=input('请输入成绩:
');
switchfix(score/10)
case{9,10}
disp('A');
case{8}
disp('B');
case{7}
disp('C');
case{6}
disp('D');
case{0,1,2,3,4,5}
disp('E');
otherwise
disp('出错');
End
3.b=max(a)
c=min(a)
b=0
c=0
fori=1:
20
ifa(i)>b
b=a(i);
end
ifa(i)c=a(i);
End
4.a=[-3:
0.1:
3];
b=((exp(0.3.*a)-exp(-0.3.*a))./2)
c=sin(a+0.3)
fori=1:
61
y=(exp(0.3*a(i))-exp(-0.3*a(i)))/2*sin(a(i)+0.3)+log((0.3+a(i))/2)
End
5.
(1)A=0;
n=100
fori=1:
n
A=1/n/n+A;
End
(2)A=1;
n=10000;
fori=1:
n
A=(2*n*n*2)/((2*n-1)*(2*n+1))*A;
end
6.A=rand(5,6)
n=input('ÇëÊäÈëÒ»¸ön');
ifn>5
n=5
A(n,n)
else
A(n)
7.f1.m代码:
functionm=f1(n)
m=n+10*log(n^2+5);
f2.m代码:
functionm=f2(n)
m=0;
fori=1:
n
m=m+i*(i+1);
end
在命令文件p3_11.m中调用f1.m和f2.m
p3_11.m代码如下:
y1=f1(40)/(f1(30)+f1(20));
y2=f2(40)/(f2(30)+f2(20));
y1
y2
8.
函数文件factor1.m代码如下:
functionf=factor1(k)
ifk==1
f=1;
else
f=factor1(k-1)+k;
end
函数文件factor2.m代码:
functionf=factor2(k)
ifk==1
f=1;
else
f=factor2(k-1)+^2;
end
函数文件factor3.m代码:
functionf=factor3(k)
ifk==1
f=1;
else
f=factor3(k-1)+1/k;
end
思考练习
2.N=[1,2,3,4,5]
A=N.*2
B=N./4
C=1./N
D=1./(N./2)./(N./2)/4
3.B=0
fori=1:
20
A(i)=fix((99-10+1)*rand
(1)+10);
B=A(i)+B;
end
B=B/20
fori=1:
20
ifA(i)
A(i)
end
第4章.
1.
(1).x=-12:
0.001:
12;
y=x-x.^3/6;
plot(x,y);
xlabel('x轴');
ylabel('y轴');
title('Y=X-X^3/3!
');
(2)t=0:
0.01:
2*pi;
x=8.*cos(t);
y=4*sqrt
(2).*sin(t);
plot(x,y)
2.t=-pi:
pi/10:
pi;
y=1./(1+exp(-t));
subplot(2,2,1);bar(t,y,'b');
title('bar(t,y,''b'')');axis([-5,5,-3,3]);
subplot(2,2,2);stairs(t,y,'k');
title('stairs(t,y,''k'')');axis([-5,5,-3,3]);
subplot(2,2,3);stem(t,y,'m');
title('stem(t,y,''m'')');axis([-5,5,-3,3]);
subplot(2,2,4);loglog(t,y,'g');
title('loglog(t,y,''g'')');axis([-5,5,-3,3]);
3.
(1)t=0:
pi/100:
2*pi;
y=5*cos(t)+4;
polar(t,y,'-*')
(2)t=-pi/3:
pi/100:
pi/3;
r=5*sin(t).^2./cos(t);
polar(t,r,'-*')
4.
(1)t=0:
pi/100:
2*pi;
x=exp(-t/20).*cos(t);
y=exp(-t/20).*sin(t);
z=t;
plot3(x,y,z)
(2)[x,y]=meshgrid(-5:
5);
z=ones(11);
surf(x,y,z);shadinginterp;
5.[x,y,z]=sphere(50);
m=moviein(100);
fori=1:
100
surf(i*x,i*y,i*z);
shadinginterp
colormap(hot);
axisequal
axis([-100,100,-100,100,-100,100])
axisoff
m(:
i)=getframe;
End
思考练习
2.
(1)x=1:
0.1:
10
a=exp((x.^2)/2)
y=a.*1/2/pi
plot(x,y)
(2)t=-pi:
0.1:
2*pi
X=t.*sin(t)
Y=t.*cos(t)
plot(X,Y)
3.t=0:
0.00005:
pi;
x=sin(3*t).*cos(t);
y1=2*x-0.5;
y2=sin(3*t).*sin(t);
plot(x,y2,x,y1);
holdon
k=find(abs(y2-y1)<1e-4);
x1=x(k);
y3=2*x1-0.5;
plot(x1,y3,'rp')
4.x=-pi*6:
0.1:
pi*6
y=sin(1./x)
plot(x,y)
fplot('sin(1./x)',[-pi*6,pi*6],1e-4)
5.
(1)x=1:
0.1:
10
y=12./x
polar(x,y)
(2)x=-pi/6:
0.1:
pi/6
y=3*sin(x).*cos(x)./(sin(x).^3+cos(x).^3)
polar(x,y)
6.
(1)[u,v]=meshgrid(-pi:
pi/100:
pi);
x=3*u.*sin(v);
y=2*u.*cos(v);
z=4*u.*u;
mesh(x,y,z);
(2)[x,y]=meshgrid(-3:
6/100:
3);
z=-5./(1+x.*x+y.*y);
mesh(x,y,z)
第五章
1.A=randn(10,5)
(1)X=mean(A)
Y=std(A,0,1)
(2)max(max(A))
min(min(A))
(3)B=sum(A,2)
sum(B)
(4)sort(A);
sort(A,2,'descend')
2.
(1)t=0:
15:
90;
x1=[0,0.2588,0.5000,0.7071,0.8660,0.9659,1.0000];
a1=0:
1:
90;
y1=interp1(t,x1,a1,'spline')
x2=[0,0.2679,0.5774,1.0000,1.7320,3.7320,NaN];
a2=0:
1:
75;
y2=interp1(t,x2,a2,'spline')
p1=polyfit(t,x1,5);
Z1=polyval(p1,a1)
p2=polyfit(t,x2,5);
z2=polyval(p2,a2)
(2)X=[149162536496481100];
Y=1:
10;
X1=1:
100;
Y1=interp1(X,Y,X1,'cubic')
3.
4.P=[2,-3,5,13];
Q=[1,5,8];
p=polyder(P)
p1=polyder(P,Q)
[p,q]=polyder(P,Q)
5.P1=[1,2,4,0,5];
P2=[1,0];
P3=[1,2,3];
1)P4=conv(P2,P3)
P4=[0,1,2,3,0];
P=P1+P4
2)x=roots(P)
3)A=[-1,1.2,-1.4;0.75,2,3.5;0,5,2.5];
Y=polyval(P,A)
4)Z=polyvalm(P,A)
第六章
1.
(1)>>A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6];B=[0.95,0.67,0.52]';x=A\B
(2)>>A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6];B=[0.95,0.67,0.53]';x=A\B
(3)>>cond(A)
2.
(1)建立函数文件funx.m,命令如下;
Functionfx=funx(x)
fx=x^41+x^3+1;
调用fzero函数求根,命令如下;
>>z=fzero(@funx,-1)
(2)建立函数文件sin.m,命令如下;
Functionfx=sin(x)
fx=x-(sin(x))/x;
调用fzero函数求根,命令如下;
>>z=fzero(@sin,0.5)
(3)建立函数文件myfun.m,命令如下;
functionq=myfun(p)
x=p
(1);
y=p
(2);
z=p(3);
q
(1)=sin(x)+y^2+log(z)-7;
q
(2)=3*x+2^y-z^3+1;
q(3)=x+y+z-5;
调用fsolve函数求根,命令如下;
>>options=optimset('Display','off');x=fsolve(@myfun,[1,1,1]',options)
3.
(1)建立函数文件funt.m,命令如下;
functionyp=funt(t,y)
yp=-y*(1.2+sin(10*t));
求微分方程,程序如下:
>>t0=0;tf=5;y0=1;[t,y]=ode23(@funt,[t0,tf],y0)
(2)建立函数文件funr.m,命令如下;
functionyp=funr(t,y)
yp=cos(t)-(y)/(1+t^2);
求微分方程,程序如下:
>>t0=0;tf=5;y0=1;[t,y]=ode23(@funr,[t0,tf],y0)
4.
建立函数文件mymax.m命令如下:
functionfx=mymax(x)
fx=-1*(1+x^2)/(1+x^4);
求最大值,程序如下:
>>[x,y]=fminbnd(@mymax,0,2)
5.
编写目标函数M文件fop.m,命令如下:
functionf=fop(x)
f=-1*(x
(1)^(1/2)+x
(2)^(1/2)+x(3)^(1/2)+x(4)^(1/2));
设定约束条件,并调用fmincon函数求解此约束最优化问题,程序如下:
>>x0=[200,200,200,200];
A=[1,0,0,0;1.21,1,0,0;1.331,1.21,1,0;1.4641,1.331,1.21,1];
b=[400,440,484,532.4];
Ib=[0,0,0,0];
options=optimset('Display','off');
[x,y]=fmincon(@fop,x0,A,b,[],[],Ib,[],[],options)
思考练习
1,
(1)矩阵求逆:
>>A=[2,3,5;3,7,4;1,-7,1];b=[10,3,5]';x=inv(A)*b
矩阵除法:
>>A=[2,3,5;3,7,4;1,-7,1];b=[10,3,5]';x=A\b
矩阵分解:
>>A=[2,3,5;3,7,4;1,-7,1];b=[10,3,5]';[L,U]=lu(A);x=U\(L\b)
(2)矩阵求逆:
>>A=[6,5,-2,5;9,-1,4,-1;3,4,2,-2;3,-9,0,2];b=[-4,13,1,11]';x=inv(A)*b
矩阵除法:
>>A=[6,5,-2,5;9,-1,4,-1;3,4,2,-2;3,-9,0,2];b=[-4,13,1,11]';x=A\b
矩阵分解:
>>A=[6,5,-2,5;9,-1,4,-1;3,4,2,-2;3,-9,0,2];b=[-4,13,1,11]';[L,U]=lu(A);x=U\(L\b)
2.
(1)建立函数文件fun1.m,命令如下:
functionfx=fun1(x)
fx=3*x+sin(x)-exp(x);
调用fzero函数求根,命令如下;
>>y=fzero(@fun1,1.5)
(2)建立函数文件fun2.m,命令如下:
functionfx=fun2(x)
fx=1-(1/x)+5;
调用fzero函数求根,命令如下;
>>y=fzero(@fun2,1)
(3)建立函数文件myfun3.m,命令如下;
functionq=fun3(p)
x=p
(1);
y=p
(2);
q
(1)=x^2+y^2-9;
q
(2)=x+y-1;
调用fsolve函数求根,命令如下;
>>options=optimset('Display','off');x=fsolve(@fun3,[1,1]',options)
3.
(1)建立函数文件fun5.m,命令如下:
functionydot=fun5(t,y)
ydot
(1)=(2-3*y
(2)-2*t*y
(1))/(1+t^2);
ydot
(2)=y
(1);
ydot=ydot';
求解微分方程,命令如下:
>>t0=0;tf=5;x0=[0,1];[t,y]=ode45(@fun5,[t0,tf],x0);[t,y]
(2)
(1)建立函数文件fun5.m,命令如下:
functionydot=fun6(t,y)
ydot
(1)=cos(t)+(5*y
(1)*cos(2*t))/(t+1)^2-y
(2)-y(3)/(3+sin(t));
ydot
(2)=y
(1);
ydot(3)=y
(2);
ydot=ydot';
求解微分方程,命令如下:
>>t0=0;tf=5;x0=[0,1];[t,y]=ode45(@fun5,[t0,tf],x0);[t,y]
4.
建立函数文件max.m命令如下:
functionfx=max(x)
fx=-1*(sin(x)+cos(x^2));
求最大值,程序如下:
>>[x,y]=fminbnd(@mymax,0,pi)
5.
编写目标函数M文件fop.m,命令如下:
functionf=topm(x)
f=-1*x*(3-2*x)^2;
设定约束条件,并调用fmincon函数求解此约束最优化问题,程序如下:
>>x0=[0];A=[1];b=[1.5];Ib=[0];options=optimset('Display','off');[x,y]=fmincon(@top,x0,A,b,[],[],Ib,[],[],options)
第七章
1.functionf=f1(x)
f=sin(x)./x;
functionf=f2(x)
f=[1./((x-0.3).^2+0.01)-1./((x-0.9).^2+0.04)-6];
[I,n]=quad(@f1,0,2)
[S,n]=quad(@f2,0,1)
2.f=inline('exp(-x.^2-y.^2)','x','y');
I1=dblquad(f,0,1,0,1)
f=inline('abs(cos(x+y))','x','y');
I2=dblquad(f,0,pi,0,pi)
3.X=0.3:
0.2:
1.5;
Y=[0.3895,0.6598,0.9147,1.1611,1.3971,1.6212,1.8325];
trapz(X,Y)
4.x=0:
pi/5:
2*pi;
forn=1:
3
n
DX=diff(sin(x),n)
end
5.f=inline('sin(x)./(x+cos(2.*x))');
g=inline('[cos(x).*(x+cos(2.*x))-sin(x).*(1-2.*sin(2.*x))]./(x+cos(2.*x)).^2');
x=0:
0.01:
2*pi;
p=polyfit(x,f(x),5);
dp=polyder(p);
dpx=polyval(dp,x);
dx=diff(f([x,2*pi+0.01]))/0.01;
gx=g(x);
plot(x,dpx,x,dx,'-',x,gx,':
')
思考练习
1.求解定积分的数值方法有梯形法、辛普森法、高斯法等,基本思想是将整个积分区间分成n个子区间,而每个小的子区间上的定积分的值可近似求得。
任意函数在x点的导数是通过极限定义的,若去掉步长趋近于0的极限过程,引进向前差分向后差分的记号,当步长充分小时,导数等于差分与步长的商,即差商。
2.formatlong
fx=inline('1./(1+x.^2)');
[I,n]=quad(fx,-10000,10000,1e-10)
[I,n]=quadl(fx,-10000,10000,1e-10)
x=-10000:
10000;
y=1./(1+x.^2);
trapz(x,y)
formatshort
3.formatlong
f1=inline('log(1+x)./(1+x.^2)');
f2=inline('sqrt(cos(t.^2)+4.*sin(4.*t.^2)+1)');
[I,n]=quad(f1,0,1)
[I,n]=quad(f2,0,2*pi)
4.fxyz=inline('4.*x.*z.*exp(-z.^2.*y-x.^2)','x','y','z');
triplequad(fxyz,0,pi,0,pi,0,1)
5.f=inline('sin(x)');
g=inline('cos(x)');
x=-pi:
0.01:
pi;
p=polyfit(x,f(x),5);
dp=polyder(p);
dpx=polyval(dp,x);
dx=diff(f([x,pi+0.01]))/0.01;
gx=g(x);
plot(x,dpx,x,dx,'.',x,gx,'-')
第八章
因式分解x^4-y^4
>>symsabxy;
>>A=x^4-y^4;
>>factor(A)
ans=
(x-y)*(x+y)*(x^2+y^2)
因式分解5135
>>x=sym('5135');
>>B=factor(x)
B=
5*13*79
求极限
1>>symsx;
>>f=x-2/x^2-4;