MATLAB答案Word文档格式.docx
《MATLAB答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《MATLAB答案Word文档格式.docx(46页珍藏版)》请在冰点文库上搜索。
![MATLAB答案Word文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/6/8ef6bdb7-4def-49fe-8ade-ad269b744dcc/8ef6bdb7-4def-49fe-8ade-ad269b744dcc1.gif)
f2=
0.0630
x2_index=
65
x(x2_index)
1.2500
%Page20,ex5
z=magic(10)
z=
929918156774515840
9880714167355576441
4818820225456637047
8587192136062697128
869325296168755234
17247683904249263365
2358289914830323966
7961395972931384572
10129496783537444653
111810077843643502759
sum(z)
505505505505505505505505505505
sum(diag(z))
505
z(:
2)/sqrt(3)
57.1577
46.1880
46.7654
50.2295
53.6936
13.8564
2.8868
3.4641
6.9282
10.3923
z(8,:
)=z(8,:
)+z(3,:
)
83871011151198387101115119
%Page40ex1
先在编辑器窗口写下列M函数,保存为eg2_1.m
function[xbar,s]=ex2_1(x)
n=length(x);
xbar=sum(x)/n;
s=sqrt((sum(x.^2)-n*xbar^2)/(n-1));
例如
x=[81706551766690876177];
[xbar,s]=ex2_1(x)
xbar=
72.4000
s=
12.1124
%Page40ex2
s=log
(1);
n=0;
whiles<
=100
n=n+1;
s=s+log(1+n);
end
m=n
计算结果m=37
%Page40ex3
clear;
F
(1)=1;
F
(2)=1;
k=2;
x=0;
e=1e-8;
a=(1+sqrt(5))/2;
whileabs(x-a)>
e
k=k+1;
F(k)=F(k-1)+F(k-2);
x=F(k)/F(k-1);
end
a,x,k
计算至k=21可满足精度
%Page40ex4
tic;
s=0;
fori=1:
1000000
s=s+sqrt(3)/2^i;
s,toc
i=1;
whilei<
=1000000
i=i+1;
i=1:
1000000;
s=sqrt(3)*sum(1./2.^i);
%Page40ex5
t=0:
24;
c=[15141414141516182022232528...
313231292725242220181716];
plot(t,c)
%Page40ex6
%
(1)
x=-2:
0.1:
y=x.^2.*sin(x.^2-x-2);
plot(x,y)
y=inline('
x^2*sin(x^2-x-2)'
);
fplot(y,[-22])
%
(2)参数方法
t=linspace(0,2*pi,100);
x=2*cos(t);
y=3*sin(t);
plot(x,y)
%(3)
x=-3:
3;
y=x;
[x,y]=meshgrid(x,y);
z=x.^2+y.^2;
surf(x,y,z)
%(4)
y=-3:
13;
z=x.^4+3*x.^2+y.^2-2*x-2*y-2*x.^2.*y+6;
%(5)
t=linspace(0,2*pi);
x=sin(t);
y=cos(t);
z=cos(2*t);
plot3(x,y,z)
%(6)
theta=linspace(0,2*pi,50);
fai=linspace(0,pi/2,20);
[theta,fai]=meshgrid(theta,fai);
x=2*sin(fai).*cos(theta);
y=2*sin(fai).*sin(theta);
z=2*cos(fai);
%(7)
x=linspace(0,pi,100);
y1=sin(x);
y2=sin(x).*sin(10*x);
y3=-sin(x);
plot(x,y1,x,y2,x,y3)
%page41,ex7
x=-1.5:
1.5;
y=1.1*(x>
1.1)+x.*(x<
=1.1).*(x>
=-1.1)-1.1*(x<
-1.1);
%page41,ex8
分别使用whichtrapz,typetrapz,dirC:
\MATLAB7\toolbox\matlab\datafun\
%page41,ex9
close;
a=0.5457;
b=0.7575;
p=a*exp(-0.75*y.^2-3.75*x.^2-1.5*x).*(x+y>
1);
p=p+b*exp(-y.^2-6*x.^2).*(x+y>
-1).*(x+y<
=1);
p=p+a*exp(-0.75*y.^2-3.75*x.^2+1.5*x).*(x+y<
=-1);
mesh(x,y,p)
%page41,ex10
lookforlyapunov
helplyap
A=[123;
456;
780];
C=[2-5-22;
-5-24-56;
-22-56-16];
X=lyap(A,C)
X=
1.0000-1.0000-0.0000
-1.00002.00001.0000
-0.00001.00007.0000
%Chapter3
%Exercise1
a=[1,2,3];
b=[2,4,3];
a./b,a.\b,a/b,a\b
0.50000.50001.0000
221
0.6552%一元方程组x[2,4,3]=[1,2,3]的近似解
000
0.66671.33331.0000
%矩阵方程[1,2,3][x11,x12,x13;
x21,x22,x23;
x31,x32,x33]=[2,4,3]的特解
%Exercise2
(1)
A=[41-1;
32-6;
1-53];
b=[9;
-2;
1];
rank(A),rank([A,b])%[A,b]为增广矩阵
3
3%可见方程组唯一解
x=A\b
x=
2.3830
1.4894
2.0213
%Exercise2
(2)
A=[4-33;
b=[-1;
rank(A),rank([A,b])
-0.4706
-0.2941
0
%Exercise2(3)
A=[41;
32;
1-5];
b=[1;
1;
2
3%可见方程组无解
0.3311
-0.1219%最小二乘近似解
%Exercise2(4)
a=[2,1,-1,1;
1,2,1,-1;
1,1,2,1];
b=[123]'
;
%注意b的写法
rank(a),rank([a,b])
3%rank(a)==rank([a,b])<
4说明有无穷多解
a\b
1
0%一个特解
%Exercise3
b=[1,2,3]'
ksi=null(a),x0=a\b
ksi=
-0.6255
0.6255
-0.2085
0.4170
x0=
%通解x=k*ksi+x0
另一种解法
rref([a,b])
1.0000001.50001.0000
01.00000-1.50000
001.00000.50001.0000
%前4列分别对应x1-x4,通解x=k*[-1.5,1.5,-0.5,1]'
+[1,0,1,0]'
%Exercise4
%一年后城市=上年城市×
99%+上年农村×
5%;
%一年后农村=上年城市×
1%+上年农村×
95%
x0=[0.20.8]'
a=[0.990.05;
0.010.95];
x1=a*x0,x2=a^2*x0,x10=a^10*x0
x=x0;
1000,x=a*x;
end,x
0.8333
0.1667
x0=[0.70.3]'
0.1667%注意结果不受x0改变的影响
[v,e]=eig(a)
v=
0.9806-0.7071
0.19610.7071
e=
1.00000
00.9400
v(:
1)./x
1.1767
1.1767
%v(:
1)与x成比例,说明x也是最大特征值1对应的特征向量
%Exercise5
%用到公式(3.11)(3.12)
B=[6,2,1;
2.25,1,0.2;
3,0.2,1.8];
x=[25520]'
C=B/diag(x)%第1列除以x
(1),以此类推
C=
0.24000.40000.0500
0.09000.20000.0100
0.12000.04000.0900
A=eye(3,3)-C
A=
0.7600-0.4000-0.0500
-0.09000.8000-0.0100
-
%Exercise1
(1)
p=[111];
x=roots(p)
polyval(p,x)%验算,结果应为零
%Exercise1
(2)
roots([30-402-1])
%Exercise1(3)
p=zeros(1,24);
p([1171822])=[5-68-5];
%这样比直接写24个系数简短。
%Exercise1(4)
p1=[23];
p2=conv(p1,p1);
p3=conv(p1,p2);
p3(end)=p3(end)-4;
%原p3最后一个分量-4
x=roots(p3)
polyval(p3,x)%验算,结果应为零
%Exercise2
fun=inline('
x*log(sqrt(x^2-1)+x)-sqrt(x^2-1)-0.5*x'
fzero(fun,2)%注意定义域,初值须大于1
x^4-2^x'
fplot(fun,[-22]);
gridon;
fzero(fun,-1),fzero(fun,1),fminbnd(fun,0.5,1.5)
x*sin(1/x)'
'
x'
fplot(fun,[-0.10.1]);
x=zeros(1,10);
10,x(i)=fzero(fun,(i-0.5)*0.01);
end;
x=[x,-x]
[9*x
(1)^2+36*x
(2)^2+4*x(3)^2-36;
x
(1)^2-2*x
(2)^2-20*x(3);
16*x
(1)-x
(1)^3-2*x
(2)^2-16*x(3)^2]'
[a,b,c]=fsolve(fun,[000])
%Exercise6
fun=@(x)[x
(1)-0.7*sin(x
(1))-0.2*cos(x
(2)),x
(2)-0.7*cos(x
(1))+0.2*sin(x
(2))];
[a,b,c]=fsolve(fun,[0.50.5])%初值0<
x
(1)<
1,0<
x
(2)<
1
%Exercise7
close;
t=0:
pi/100:
2*pi;
x1=2+sqrt(5)*cos(t);
y1=3-2*x1+sqrt(5)*sin(t);
x2=3+sqrt
(2)*cos(t);
y2=6*sin(t);
plot(x1,y1,x2,y2);
gridon;
%作图发现4个解的大致位置,然后分别求解
y1=fsolve('
[(x
(1)-2)^2+(x
(2)-3+2*x
(1))^2-5,2*(x
(1)-3)^2+(x
(2)/3)^2-4]'
[1.5,2])
y2=fsolve('
[1.8,-2])
y3=fsolve('
[3.5,-5])
y4=fsolve('
[4,-4])
%Exercise8
(1)
str='
x.^2.*sin(x.^2-x-2)'
%注意数组点运算
fun=inline(str);
%作图观察
x
(1)=-2;
x(3)=fminbnd(fun,-1,-0.5);
x(5)=fminbnd(fun,1,2);
fun2=inline(['
-'
str]);
x
(2)=fminbnd(fun2,-2,-1);
x(4)=fminbnd(fun2,-0.5,0.5);
x(6)=2
feval(fun,x)
%答案:
以上x
(1)(3)(5)是局部极小,x
(2)(4)(6)是局部极大,从最后一句知道x
(1)全局最小,x
(2)最大。
%Exercise8
(2)
3*x.^5-20*x.^3+10'
fplot(fun,[-33]);
%作图观察
x
(1)=-3;
x(3)=fminsearch(fun,2.5);
fun2=inline('
-(3*x.^5-20*x.^3+10)'
x
(2)=fminsearch(fun2,-2.5);
x(4)=3;
%Exercise8(3)
abs(x^3-x^2-x-2)'
fplot(fun,[03]);
fminbnd(fun,1.5,2.5)
-abs(x^3-x^2-x-2)'
fminbnd(fun2,0.5,1.5)
%Exercise9
y=-7:
z=y.^3/9+3*x.^2.*y+9*x.^2+y.^2+x.*y+9;
mesh(x,y,z);
%作图观察,可看到[00]附近极小值,[0-5]附近极大值
x
(2)^3/9+3*x
(1)^2*x
(2)+9*x
(1)^2+x
(2)^2+x
(1)*x
(2)+9'
x=fminsearch(fun,[00])%求极小值
-(x
(2)^3/9+3*x
(1)^2*x
(2)+9*x
(1)^2+x
(2)^2+x
(1)*x
(2)+9)'
x=fminsearch(fun2,[0-5])%求极大值
%Exercise10
%第
(1)小题
p2=polyfit(t,c,2)
%第
(2)小题
p3=polyfit(t,c,3)
%第(3)小题非线性拟合法
a
(1)*exp(a
(2)*(t-14).^2)'
a'
t'
a=lsqcurvefit(fun,[00],t,c)%初值可以试探,这里用a=0,b=0试探
f=feval(fun,a,t)
norm(f-c)%误差向量的范数,反映拟合效果
plot(t,c,'
o'
t,f)%作图检验
%第(3)小题线性化拟合方法
%先作对数变换lnf=lna+b*(t-14)^2
z=log(c);
x=(t-14).^2;
p1=polyfit(x,z,1);
a=[exp(p1
(2)),p1
(1)]
f1=feval(fun,a,t)
norm(f1-c)%拟合效果
t,f1)%作图检验
%第(4)小题
b
(1)*sin(pi/12*t+b
(2))+20'
b'
%原题修改为f(x)+20,结果较合理
b=lsqcurvefit(fun2,[00],t,c)%初值可以试探,这里用a=0,b=0试探
figure
f2=feval(fun2,b,t)
norm(f2-c)%拟合效果
t,f2)%作图检验
%Exercise11
(1-x)*sqrt(10.52+x)-3.06*x*sqrt(1+x)*sqrt(5)'
x=fzero(fun,0,1)
%Exercise12
r=5.04/12/100;
N=20*12;
x=7500*180%房屋总价格
y=x*0.3%首付款额
x0=x-y%贷款总额
a=(1+r)^N*r*x0/((1+r)^N-1)%月付还款额
%以下组合贷款
r1=4.05/12/100;
x1=10*10000;
%公积金贷款
a1=(1+r1)^N*r1*x1/((1+r1)^N-1)
x2=x0-x1%商业贷款
a2=(1+r)^N*r*x2/((1+r)^N-1)
a=a1+a2
%Exercise13
%列方程th*R^2+(pi-2*th)*r^2-R*r*sin(th)=pi*r^2/2
%化简得sin(2*th)-2*th*cos(2*th)=pi/2
%以下Matlab计算
fun=inline('
sin(2*th)-2*th*cos(2*th)-pi/2'
th'
th=fsolve(fun,pi/4)
R=20*cos(th)
%Exercise14
%先在Editor窗口写M函数保存
functionx=secant(fname,x0,x1,e)
whileabs(x0-x1)>
e,
x=x1-(x1-x0)*feval(fname,x1)/(feval(fname,x1)-feval(fname,x0));
x0=x1;
x1=x;
%再在指令窗口
x*log(sqrt(x^2-1)+x)-sq