教学要求:熟练掌握Matlab软件的基本命令和操作,会作二维、三维几何图形,能够用Matlab软件解决微积分、线性代数与解析几何中的计算问题。 补充命令
vpa(x,n) 显示x的n位有效数字,教材102页
fplot(‘f(x)’,[a,b]) 函数作图命令,画出f(x)在区间[a,b]上的图形 在下面的题目中m为你的学号的后3位(1-9班)或4位(10班以上) 1.1 计算limmxsinmxmxsinmx与 limx0xx3x3 syms x
limit((902*x-sin(902*x))/x^3) ans =
366935404/3
limit((902*x-sin(902*x))/x^3,inf)//inf的意思 ans = 0 1.2 yecosxmx,求y'' 1000syms x
diff(exp(x)*cos(902*x/1000),2)//diff及其后的2的意思 ans =
(46599*cos((451*x)/500)*exp(x))/250000 - (451*sin((451*x)/500)*exp(x))/250 1.3 计算
e0011x2y2dxdy
dblquad(@(x,y) exp(x.^2+y.^2),0,1,0,1)//双重积分 ans = 2.1394
x4dx 1.4 计算2m4x2 syms x
int(x^4/(902^2+4*x^2))//不定积分 ans =
(91733851*atan(x/451))/4 - (203401*x)/4 + x^3/12 1.5 yexcosmx,求y(10)//高阶导数
syms x
diff(exp(x)*cos(902*x),10) ans =
-356485076957717053044344387763*cos(902*x)*exp(x)-3952323024277642494822005884*sin(902*x)*exp(x) 1.6 给出mx在x0的泰勒展式(最高次幂为4).
1000.0syms x
taylor(sqrt(902/1000+x),5,x)//泰勒展式 ans =
-(9765625*451^(1/2)*500^(1/2)*x^4)/82743933602 +(15625*451^(1/2)*500^(1/2)*x^3)/91733851
-(125*451^(1/2)*500^(1/2)*x^2)/406802 + (451^(1/2)*500^(1/2)*x)/902 +(451^(1/2)*500^(1/2))/500 1.7 Fibonacci数列{xn}的定义是x11,x21,xnxn1xn2(n3,4,)用循环语句编
程给出该数列的前20项(要求将结果用向量的形式给出)。//已知数列的递推公式求数列的项 x=[1,1];
for n=3:20//3比20默认步长为多少??写50时为什么会出错 x(n)=x(n-1)+x(n-2); end x x=
Columns 1 through 10
1 1 2 3 5 8 13 21 34 55 Columns 11 through 20
89 144 233 377 610 987 1597 2584 4181 6765
211A0201.8 对矩阵,求该矩阵的逆矩阵,特征值,特征向量,行列式,
m411000计算A,并求矩阵P,D(D是对角矩阵),使得APDP。
A=[-2,1,1;0,2,0;-4,1,902/1000];inv(A)
ans =
0.4107 0.0223 -0.4554 0 0.5000 0 1.8215 -0.4554 -0.9107 eig(A) ans =
-0.5490 + 1.3764i -0.5490 - 1.3764i 2.0000 det(A) ans =
614.3920 [P,D]=eig(A)
P = %特征向量
0.3245 - 0.3078i 0.3245 + 0.3078i 0.2425 0 0 0.9701 0.8944 0.8944 0.0000 D =
-0.5490 + 1.3764i 0 0 0 -0.5490 - 1.3764i 0 0 0 2.0000 P*D^6*inv(P) %A^6的值 ans =
15.3661 12.1585 + 0.0000i -5.8531 0 64.0000 0 23.4124 -5.8531 + 0.0000i -1.6196
1.9 作出如下函数的图形(注:先用M文件定义函数,再用fplot进行函数作图):
12x0x2
f(x)2(1x)1x12m文件:
function y=fenduan(x)
if x<=1/2 y=2*x
else x<=1 y=2-2*x
end end
执行函数:fplot('fenduan',[0,1]); grid on
title('第1.9题图') 得下图:
第1.9题图10.90.80.70.60.50.40.30.20.1000.10.20.30.40.50.60.70.80.91 //为什么实际画出来的图只有半边??
1.10 在同一坐标系下作出下面两条空间曲线(要求两条曲线用不同的颜色表示)
xcostx2cost(1)ysint (2)y2sint
ztztt=-10:0.01:10; x1=cos(t); y1=sin(t); z1=t;
plot3(x1,y1,z1); hold on
x2=cos(2*t); y2=sin(2*t); z2=t;
plot3(x2,y2,z2,'m');//曲线颜色的表示方法 grid on
title('第1.10题图') 得下图:
第1.10题图1050-5-1010.50-0.5-1-1-0.50.501
4221341.11 已知A305,B203,在MATLAB命令窗口中建立A、B矩阵并15m3211对其进行以下操作:
(1) 计算矩阵A的行列式的值det(A)
(2) 分别计算下列各式:2AB,A*B,A.*B,AB1,A1B,A2,AT 解:A=[4,-2,2;-3,0,5;1,5*902,3]; B=[1,3,4;-2,0,3;2,-1,1];
det(A) ans =
-117288 2*A-B ans =
7 -7 0 -4 0 7 0 9021 5 A*B ans =
12 10 12
7 -14 -7 -9013 0 13537 A.*B ans =
4 -6 8
6 0 15 2 -4510 3 A*inv(B)//B 的逆矩阵 ans =
1.0e+003 *
-0.0000 0 0.0020 0.0000 0.0016 0.0001 1.0311 -0.9016 -1.4167 inv(A)*B ans =
0.3463 0.5767 0.5383 mn nj nmj mj mjku n 0.0005 -0.0006 -0.0005 -0.1922 0.3460 0.9230 A*A ans =
24 9012 4
-7 22556 9 -13523 13528 22561 A' ans =
4 -3 1
-2 0 4510 2 5 3
1e1.12 已知f(x)2(x)222分别在下列条件下画出f(x)的图形:
(1)m/600,分别为0,1,1(在同一坐标系上作图);//在同一张纸上画出不同u的正态分布曲线
(2)0,分别为1,2,4,m/100(在同一坐标系上作图). (1)x=-5:0.1:5;
h=inline('1/sqrt(2*pi)/s*exp(-(x-mu).^2/(2*s^2))');
y1=h(0,902/600,x);y2=h(-1,902/600,x);y3=h(1,902/600,x); plot(x,y1,'b',x,y2,'m',x,y3,'y') [ ][ -0
[grid on
title('第1.12题')
第1.12题0.35y1 :u=0y2 :u=-1y3 :u=1 0.30.250.20.150.10.050 -5-4-3-2-1012345
(2) z1=h(0,1,x);z2=h(0,2,x);z3=h(0,4,x); z4=h(0,902/100,x);
plot(x,z1,x,z2,'y',x,z3,'m',x,z4, 'g') grid on
title('第1.12题')
z1=h(0,1,x);z2=h(0,2,x);z3=h(0,4,x); z4=h(0,902/100,x);
第1.12题0.40.350.30.250.20.150.10.050 -5z1 :s=1z2 :s=2z3 :s=4z4 :s=9.02 -4-3-2-1012345
24
1.13 作出zmxy的函数图形。//meshgrid 点阵作图法
x=-10:0.2:10;y=x;
[X Y]=meshgrid(x,y);Z=902*X.^2+Y.^4; mesh(X,Y,Z); title('第1.13题')
第1.13题4x 101210864201050-5-10-10-55010
1.14对于方程x5
mx0.10,先画出左边的函数在合适的区间上的图形,借助于软件200中的方程求根的命令求出所有的实根,找出函数的单调区间,结合高等数学的知识说明函数为什么在这些区间上是单调的,以及该方程确实只有你求出的这些实根。最后写出你做此题的体会。 解:作图程序:(注:x范围的选择是经过试探而得到的)
x=-1.7:0.02:1.7;y=x.^5-902/200*x-0.1;
plot(x,y);grid on; title('第1.14题')
第1.14题86420-2-4-6-8-2-1.5-1-0.500.511.52
由图形观察,在x=-1.5,x=0,x=1.5附近各有一个实根 solve('x^5-902/200*x-0.1') ans =
-1.4516870267499636199995749888894 -0.022172950190557703188753959027919 1.4627751059480654637229232196174
1.4573364935933870280941533926624*i + 0.0055424354962279297327028641499658 0.0055424354962279297327028641499658 - 1.4573364935933870280941533926624*i 三个实根的近似值分别为:-1.4517,-0.0222,1.4628
由图形可以看出,函数在区间(,1)单调上升,在区间(1,1)单调下降,在区间(1,)单调上升。 syms x
diff('x^5-902/200*x-0.1',x)
结果为5*x^4-4.51
solve('5*x^4-902/200') ans =
-(451^(1/4)*500^(3/4))/500 (451^(1/4)*500^(3/4))/500 -(451^(1/4)*500^(3/4)*i)/500 (451^(1/4)*500^(3/4)*i)/500 vpa(ans) ans =
-0.97454440927373918149075795211629 0.97454440927373918149075795211629 -0.97454440927373918149075795211629*i 0.97454440927373918149075795211629*i 得到两个实根:-0.9745与0.9745
可以验证导函数在(,0.9745)内为正,函数单调上升 导函数在(0.9745,0.9745)内为负,函数单调下降 导函数在(0.9745,)内为正,函数单调上升 根据函数的单调性,最多有3个实根。
1.15 求ex3mx20的所有根。(先画图后求解)(要求贴图)
作图命令:(注:x范围的选择是经过试探而得到的) x=-5:0.001:15;y=exp(x)-3*902*x.^2; plot(x,y);grid on; title('第1.15题图') 得到下图
3x 10第1.15题图2.521.510.50-0.5-5051015进一步细化
x=-0.05:0.0001:0.05;y=exp(x)-3*902*x.^2; plot(x,y);grid on; title('第1.15题图')
x=10:0.001:15;y=exp(x)-3*902*x.^2; plot(x,y);grid on; title('第1.15题图')
第1.15题图210-1-2-3-4-5-6-0.05-0.04-0.03-0.02-0.0100.010.020.030.040.053x 10第1.15题图2.521.510.50-0.51010.51111.51212.51313.51414.515
可看出解在-0.02,0.02,13附近,进一步求得 fzero('exp(x)-3*902*x^2',0.02) ans =
0.0194 Fz
ero('exp(x)-3*902*x^2',-0.02) ans =
-0.0190
fzero('exp(x)-3*902*x^2',13) ans =
13.0391
]-0第二次练习
教学要求:要求学生掌握迭代、混沌的判断方法,以及利用迭代思想解决实际问题。
mx(x)/2n1nx2.1 设,数列{xn}是否收敛?若收敛,其值为多少?精确到8位有效nx31数字。
解:程序代码如下(m=902):
f=inline('(x+902/x)/2');//inline 命令有什么用 x0=3;
for i=1:20; x0=f(x0);
fprintf('%g %8f\\n',i,x0);//%g %8f\\n end
1 151.833333 2 78.887029 3 45.160551 4 32.566867 5 30.131864 6 30.033476 7 30.033315 8 30.033315 9 30.033315 ……
19 30.033315 20 30.033315
由运行结果可以看出,,数列{xn}收敛,其值为30.03315。
x1xm2,f2(x)2.2 求出分式线性函数f1(x)的不动点,再编程判断它们的迭代序xmxm列是否收敛。 解:取m=1000. (1)程序如下:
f=inline('(x-1)/(x+1000)'); x0=2; For i=1:20; x0=f(x0);
fprintf('%g,%g\\n',i,x0); end 运行结果:
1,0.000998004 11,-0.001001 2,-0.000999001 12,-0.001001 3,-0.001001 13,-0.001001 4,-0.001001 14,-0.001001
5,-0.001001 15,-0.001001 6,-0.001001 16,-0.001001 7,-0.001001
=
\\=- 17,-0.001001
8,-0.001001 18,-0.001001 9,-0.001001 19,-0.0010011 10,-0.001001 20,-0.001001
由运行结果可以看出,,分式线性函数收敛,其值为-0.001001。易见函数的不动点为-0.001001(吸引点)。 (2)程序如下:
f=inline('(x+1000000)/(x+1000)'); x0=2; for i=1:20;
x0=f(x0);
fprintf('%g,%g\\n',i,x0); end 运行结果:
1,998.006 11,618.332 2,500.999 12,618.302 3,666.557 13,618.314 4,600.439 14,618.309 5,625.204 15,618.311 6,615.692 16,618.31
\\7,619.311 17,618.311 8,617.929 18,618.31 9,618.456 19,618.31 10,618.255 20,618.31
由运行结果可以看出,,分式线性函数收敛,其值为618.31。易见函数的不动点为618.31(吸引点)。
2.3 下面函数的迭代是否会产生混沌?(56页练习7(1))
2x01f(x)x2
2(1x)12x1解:程序如下:
f=inline('1-2*abs(x-1/2)'); x=[]; y=[]; x(1)=rand();
y(1)=0;x(2)=x(1);y(2)=f(x(1)); for i=1:100; x(1+2*i)=y(2*i); x(2+2*i)=x(1+2*i); y(2+2*i)=f(x(2+2*i)); end
plot(x,y,'r'); hold on; syms x;
ezplot(x,[0,1/2]); ezplot(f(x),[0,1]); axis([0,1/2,0,1]); hold off 运
行
结
果
:
1 - 2 abs(x - 1/2)10.90.80.70.60.50.40.30.20.1000.050.10.150.20.25x0.30.350.40.450.5
2.4 函数f(x)x(1x)(0x1)称为Logistic映射,试从“蜘蛛网”图观察它取初值
为x00.5产生的迭代序列的收敛性,将观察记录填人下表,若出现循环,
请指出它的周期.(56页练习8 )’;
序列收敛情况 3.3 T=2 3.5 T=4 3.56 T=8 3.568 T=9 3.6 混沌 3.84 混沌 解:当=3.3时,程序代码如下: f=inline('3.3*x*(1-x)'); x=[]; y=[]; x(1)=0.5;
y(1)=0;x(2)=x(1);y(2)=f(x(1)); for i=1:1000; x(1+2*i)=y(2*i); x(2+2*i)=x(1+2*i); y(1+2*i)=x(1+2*i); y(2+2*i)=f(x(2+2*i)); end
plot (x,y,'r'); hold on; syms x;
ezplot(x,[0,1]); ezplot(f(x),[0,1]); axis([0,1,0,1]); hold off运行结果:
-(33 x (x - 1))/1010.90.80.70.60.50.40.30.20.1000.10.20.30.40.5x0.60.70.80.91
当=3.5时,上述程序稍加修改,得:
-(7 x (x - 1))/210.90.80.70.60.50.40.30.20.1000.10.20.30.40.5x0.60.70.80.91
当=3.56时,得:
-(89 x (x - 1))/2510.90.80.70.60.50.40.30.20.1000.10.20.30.40.5x0.60.70.80.91
当=3.568时,得:
-(446 x (x - 1))/12510.90.80.70.60.50.40.30.20.1000.10.20.30.40.5x0.60.70.80.91
当=3.6时,得:
-(18 x (x - 1))/510.90.80.70.60.50.40.30.20.1000.10.20.30.40.5x0.60.70.80.91
-(96 x (x - 1))/2510.90.80.70.60.50.40.30.20.1000.10.20.30.40.5x0.60.70.80.91当=3.84时,得
2.5 对于Martin迭代,取参数a,b,c为其它的值会得到什么图形?参考下表(取自63页练
习13)
a m -m -m m/1000 m/1000 m/100 -m/10
b m -m m/1000 m/1000 m m/10 17 c m m -m 0.5 -m -10 4 \\\\解:取m=10000;迭代次数Nfunction Martin(a,b,c,N) =20000;
在M-文件里面输入代码:
f=@(x,y)(y-sign(x)*sqrt(abs(b*x-c))); g=@(x)(a-x); m=[0;0]; for n=1:N
m(:,n+1)=[f(m(1,n),m(2,n)),g(m(1,n))]; end
plot(m(1,:),m(2,:),'kx'); axis equal
在命令窗口中执行Martin(10000,10000,10000,20000),得:
2500020000150001000050000-5000-2-1.5-1-0.500.511.52x 10
执行Martin(-10000,-10000,10000,20000),得:
50000-5000-10000-15000-20000-25000-2-1.5-1-0.500.511.52x 10
执行Martin(-10000,10,-10000,20000),得:
0-2000-4000-6000-8000-10000-12000-10000-8000-6000-4000-200002000
执行Martin(10,10,0.5,20000),得:
302520151050-5-10-20-100102030
执行Martin(10,10000,-10000,20000),得:
40003000200010000-1000-2000-3000-4000-5000-4000-3000-2000-1000010002000300040005000
执行Martin(100,1000,-10,20000),得:
5004003002001000-100-200-300-400-500-600-400-2000200400600800
执行Martin(-1000,17,4,20000),得:
0-200-400-600-800-1000-1200-1200-1000-800-600-400-2000200
2.6 能否找到分式函数
axb(其中a,b,c,d,e是整数),使它产生的迭代序列(迭代
cx2dxe的初始值也是整数)收敛到3m(对于3m为整数的学号,请改为求310m)。如果迭代收敛,那么迭代的初值与收敛的速度有什么关系.写出你做此题的体会. 提示:教材54页练习4的一些分析。 若分式线性函数f(x)因此
axb的迭代收敛到指定的数2,则2为f(x)的不动点,cxd2化简得:(2cb)(da)20。
a2b c2d若a,b,c,d为整数,易见b2c,da。
取满足这种条件的不同的a,b,c,d以及迭代初值进行编。 解:
axbaxb33902902迭代收敛到指定的数,则为的不动点,所以
cx2dxecx2dxe3
902=
a3902bc(902)d902e323,解得a=e,d=0,b=902c
取m=902;根据上述提示,取:a=e=1,b=902,c=1,d=0,程序如下:
f=inline('(x+902)/(x^2+1)');
x0=1;
for i=1:100; x0=f(x0);
fprintf('%g %g\\n',i,x0); end
结果如下
1 451.5
2 0.00663958 3 901.967 4 0.002217413 5 901.998 6 0.0022173 7 901.998 8 0.0022173 9 901.998 10 0.0022173
11 901.998 12 0.0022173 13 901.998 14 0.0022173 15 901.998 16 0.0022173 17 901.998 ……
95 901.998 96 0.0022173 97 901.998 98 0.0022173 99 901.998 100 0.002217
初值为-1,结果为 1 450.5
2 0.00666416 3 901.967 4 0.00221742 5 901.998 6 0.0022173 7 901.998 8 0.0022173 9 901.998 10 0.0022173 11 901.998 12 0.0022173 13 901.998 14 0.0022173 15 901.998 16 0.0022173 17 901.998 18 0.0022173 19 901.998 ……
95 901.998 96 0.0022173 97 901.998 98 0.0022173 99 901.998 100 0.0022173
初值为1000,结果为 1 0.001902 2 901.999
3 0.0022173 4 901.998 5 0.0022173 6 901.998 7 0.0022173 8 901.998 9 0.0022173 10 901.998 11 0.0022173 12 901.998 13 0.0022173 14 901.998 15 0.0022173 16 901.998 17 0.0022173 18 901.998 19 0.0022173 20 901.998 ……
93 0.0022173 94 901.998 95 0.0022173 96 901.998 97 0.0022173 98 901.998 99 0.0022173 100 901.998
第三次练习
教学要求:理解线性映射的思想,会用线性映射和特征值的思想方法解决诸如天气等实际问题。 3.1 对A42(0)(0)TT(x,x)(1,2),,求出{xn}的通项. 1213>> syms n
>> A=sym('[4,2;1,3]');x=[1;2];[P,D]=eig(A) %没有sym下面的矩阵就会显示为小数
P = [ -1, 2] [ 1, 1] D = [ 2, 0] [ 0, 5]
>> An=P*D^n*inv(P) An =
[ 2^n/3 + (2*5^n)/3, (2*5^n)/3 - (2*2^n)/3]
[ 5^n/3 - 2^n/3, (2*2^n)/3 + 5^n/3] >> xn=An*x xn =
2*5^n - 2^n 2^n + 5^n
0.40.21(0)(0)TT3.2 B对于练习1中的B,(x1,x2)(1,2),求出{xn}的通项. A100.10.3>> syms n
>> A=sym('[2/5,1/5;1/10,3/10]'); x=[1;2];[P,D]=eig(A) P = [ -1, 2] [ 1, 1] D =
[ 1/5, 0] [ 0, 1/2]
>> An=P*D^n*inv(P) An =
[ (2*(1/2)^n)/3 + (1/5)^n/3, (2*(1/2)^n)/3 - (2*(1/5)^n)/3] [ (1/2)^n/3 - (1/5)^n/3, (1/2)^n/3 + (2*(1/5)^n)/3] xn =
2*(1/2)^n - (1/5)^n (1/2)^n + (1/5)^n
(n)x23.3 对随机给出的(x,x),观察数列{(n)}.该数列有极限吗?
x1(0)1(0)T2>> A=[4,2;1,3]; a=[];
x=2*rand(2,1)-1; for i=1:20
a(i,1:2)=x;
x=A*x; end for i=1:20
if a(i,1)==0
else t=a(i,2)/a(i,1);
fprintf('%g,%g\\n',i,t); end
end
(n)x2结论:在迭代17次后,发现数列{(n)}存在极限为0.5
x13.4 对120页中的例子,继续计算xn,yn(n1,2,).观察{xn},{yn}及m(xn)的极限是否
存在. (120页练习9)
>> A=[2.1,3.4,-1.2,2.3;0.8,-0.3,4.1,2.8;2.3,7.9,-1.5,1.4;3.5,7.2,1.7,-9.0]; x0=[1;2;3;4]; x=A*x0; for i=1:1:100 a=max(x); b=min(x);
m=a*(abs(a)>abs(b))+b*(abs(a)<=abs(b)); y=x/m; x=A*y; end
x %也可以用fprintf(‘%g\\n’,x1),不能把x1,y一起输出 y m
程序输出: x1 =
0.9819 3.2889 -1.2890 -11.2213 y =
-0.0875 -0.2931 0.1149
1.0000 m =
-11.2213
结论:{xn},{yn}及m(xn)的极限都存在.
3.5 求出A的所有特征值与特征向量,并与上一题的结论作对比. (121页练习10) >> A=[2.1,3.4,-1.2,2.3;0.8,-0.3,4.1,2.8;2.3,7.9,-1.5,1.4;3.5,7.2,1.7,-9.0]; [P,D]=eig(A) P =
-0.3779 -0.8848 -0.0832 -0.3908 -0.5367 0.3575 -0.2786 0.4777 -0.6473 0.2988 0.1092 -0.7442 -0.3874 -0.0015 0.9505 0.2555
D =
7.2300 0 0 0 0 1.1352 0 0 0 0 -11.2213 0 0 0 0 -5.8439
结论:A的绝对值最大特征值等于上面的m(xn)的极限相等,为什么呢?
还有,P的第三列也就是-11.2213对应的特征向量和上题求解到的y也有系数关系,两者都是-11.2213的特征向量。 3.6 设p(0)(0.5,0.25,0.25)T,对问题2求出若干天之后的天气状态,并找出其特点(取
4位有效数字). (122页练习12) >> A2=[3/4,1/2,1/4;1/8,1/4,1/2;1/8,1/4,1/4]; P=[0.5;0.25;0.25]; for i=1:1:20
P(:,i+1)=A2*P(:,i); end P P =
Columns 1 through 10
0.5000 0.5625 0.5938 0.6035 0.6069 0.6081 0.6085
0.6086 0.6087 0.6087
0.2500 0.2500 0.2266 0.2207 0.2185 0.2178 0.2175
0.2174 0.2174 0.2174
0.2500 0.1875 0.1797 0.1758 0.1746 0.1741 0.1740
0.1739 0.1739 0.1739
Columns 11 through 20
0.6087 0.6087 0.6087 0.6087 0.6087 0.6087 0.6087 0.6087 0.6087 0.6087
0.2174 0.2174 0.2174 0.2174 0.2174 0.2174 0.2174
0.2174 0.2174 0.2174
0.1739 0.1739 0.1739 0.1739 0.1739 0.1739 0.1739
0.1739 0.1739 0.1739
Column 21
0.6087 0.2174 0.1739
结论:9天后,天气状态趋于稳定P*=(0.6087,0.2174,0.1739)T
3.7 对于问题2,求出矩阵A2的特征值与特征向量,并将特征向量与上一题中的结论作对比. (122页练习14)
>> A2=[3/4,1/2,1/4;1/8,1/4,1/2;1/8,1/4,1/4]; [P,D]=eig(A2) P =
-0.9094 -0.8069 0.3437 -0.3248 0.5116 -0.8133 -0.2598 0.2953 0.4695 D =
1.0000 0 0 0 0.3415 0 0 0 -0.0915
分析:事实上,q=k(-0.9094, -0.3248, -0.2598)T均为特征向量,而上题中P*的3个分量
之和为1,可令k(-0.9094, -0.3248, -0.2598)T=1,得k=-0.6696.有q=(0.6087, 0.2174, 0.1739),与P*一致。
3.8对问题
1,设p1,p2为A1的两个线性无关的特征向量,若
11p(0)(,)T,具体求出上述的u,v,将p(0)表示成p1,p2的线性组合,求p(k)的
22(k)具体表达式,并求k时p的极限,与已知结论作比较. (123页练习16)
>> A=[3/4,7/18;1/4,11/18]; [P,D]=eig(A); syms k pk;
a=solve(‘u*P(1,1)+v*P(1,2)-1/2’,’u*P(2,1)+v*P(2,2)-1/2’,’u’,’v’); pk=a.u*D(1,1).^k*P(:,1)+a.v*D(2,2).^k*P(:,2) pk =
-5/46*(13/36)^k+14/23 5/46*(13/36)^k+9/23 或者:
p0=[1/2;1/2];
[P,D]=eig(sym(A)); B=inv(sym(P))*p0 B = 5/46 9/23 syms k
pk=B(1,1)*D(1,1).^k*P(:,1)+B(2,1)*D(2,2).^k*P(:,2) pk =
-5/46*(13/36)^k+14/23 5/46*(13/36)^k+9/23 >> vpa(limit(pk,k,100),10) ans =
.6086956522 .3913043478
结论:和用练习12中用迭代的方法求得的结果是一样的。
第四次练习
教学要求:会利用软件求勾股数,并且能够分析勾股数之间的关系。会解简单的近似计算问题。
4.1 求满足cb2,c1000的所有勾股数,能否类似于(11.8),把它们用一个公式表示出来?
解法程序1:for b=1:998
a=sqrt((b+2)^2-b^2); if(a==floor(a))
fprintf('a=%i,b=%i,c=%i\\n',a,b,b+2) end
end
运行结果: a=4,b=3,c=5 a=6,b=8,c=10 a=8,b=15,c=17 a=10,b=24,c=26 a=12,b=35,c=37 a=14,b=48,c=50 a=16,b=63,c=65 a=18,b=80,c=82 a=20,b=99,c=101 a=22,b=120,c=122 a=24,b=143,c=145 a=26,b=168,c=170 a=28,b=195,c=197 a=30,b=224,c=226 a=32,b=255,c=257 a=34,b=288,c=290 a=36,b=323,c=325 a=38,b=360,c=362
a=40,b=399,c=401 a=42,b=440,c=442 a=44,b=483,c=485 a=46,b=528,c=530 a=48,b=575,c=577 a=50,b=624,c=626 a=52,b=675,c=677 a=54,b=728,c=730 a=56,b=783,c=785 a=58,b=840,c=842 a=60,b=899,c=901 a=62,b=960,c=962 解法程序2:>> n=0;
m=[];
for a=1:100
for c=a+1:1000
b=sqrt(c^2-a^2);
if (b==floor(b))&(b>a)&((c-b)==2) n=n+1; m(:,l)=[a,b,c]; end end end m
勾股数cb2,c1000的解是:
{a,b,c}{2(u1),u22u,u22u2}
以下是推导过程:
2由ab(b2),有a4b4
222显然4(4b4),4a,从而a是2的倍数.设a2(u1),代入上式得到:
2bu22u
因为cb2,从而cu2u2.
4.2 将上一题中cb2改为cb4,5,6,7,分别找出所有的勾股数.将它们与
cb1,2时的结果进行比较,然后用公式表达其结果。
(1)cb4时通项:{a,b,c}{4(u1),2(u2u),2(u2u2)} a=8,b=6,c=10 a=12,b=16,c=20 a=16,b=30,c=34 a=20,b=48,c=52 a=24,b=70,c=74 a=28,b=96,c=100
222a=32,b=126,c=130 a=36,b=160,c=164 a=40,b=198,c=202 a=44,b=240,c=244 a=48,b=286,c=290 a=52,b=336,c=340 a=56,b=390,c=394 a=60,b=448,c=452 a=64,b=510,c=514 a=68,b=576,c=580 a=72,b=646,c=650 a=76,b=720,c=724 a=80,b=798,c=802 a=84,b=880,c=884 a=88,b=966,c=970
(2)cb5时通项:{a,b,c}{5(2u1),5(2u2u),5(2u2u1)} a=15,b=20,c=25 a=25,b=60,c=65 a=35,b=120,c=125 a=45,b=200,c=205 a=55,b=300,c=305 a=65,b=420,c=425 a=75,b=560,c=565 a=85,b=720,c=725 a=95,b=900,c=905
(3)cb6时通项{a,b,c}{6(u1),3(u2u),3(u2u2)} a=12,b=9,c=15 a=18,b=24,c=30 a=24,b=45,c=51 a=30,b=72,c=78 a=36,b=105,c=111 a=42,b=144,c=150 a=48,b=189,c=195 a=54,b=240,c=246
2222a=60,b=297,c=303 a=66,b=360,c=366 a=72,b=429,c=435 a=78,b=504,c=510 a=84,b=585,c=591 a=90,b=672,c=678 a=96,b=765,c=771 a=102,b=864,c=870 a=108,b=969,c=975
(4)cb7时通项{a,b,c}{7(2u1),7(2u2u),7(2u2u1)} a=21,b=28,c=35 a=35,b=84,c=91 a=49,b=168,c=175 a=63,b=280,c=287 a=77,b=420,c=427 a=91,b=588,c=595 a=105,b=784,c=791
综上:当c-b=k为奇数时,通项{a,b,c}{k(2u1),k(2u2u),k(2u2u1)} 当c-b=k为偶数时,通项{a,b,c}{k(u1),k(u2u)/2,k(u2u2)/2} 4.3 对c1000,cbk(k200),对哪些k存在本原勾股数?(140页练习12) 程序:for k=1:200
for b=1:999
a=sqrt((b+k)^2-b^2);
if((a==floor(a))&gcd(gcd(a,b),(b+k))==1) fprintf('%i,',k); break; end end end
运行结果:1,2,8,9,18,25,32,49,50,72,81,98,121,128,162,169,200, 4.4 设方程(11.15)的解构成数列{pn},{qn},观察数列{pn},{qn},
222222{pnqn},{pn2qn},{pnqn}.你能得到哪些等式?试根据这些等式推导出关于pn,qn的递推关系式. (142页练习20)
解:1000以内解构成的数列 {pn},{qn}, {pnqn}, {pn2qn}, {pnqn}如下:
n 1 2 3 4 5 6
pn 2 7 26 97 362 1351 qn 1 4 15 56 209 780 pnqn 3 11 41 153 571 2131 pn2qn 4 15 56 209 780 2911 pnqn 1 3 11 41 153 571 我们发现这些解的关系似乎是:
pn1qn1=pnqn qn=pn12qn1
有以下结论:
因为qn=pn12qn1,所以qnpn1qn1qnpn12qn1。
pn2pn13qn1 (4.1) qnpn12qn1可以看成一个线性映射,令
23Xn(xn,yn)T,A12
(4.1)可写成:XnAXn1
4.5 选取100m对随机的a,b,根据(a,b)1的概率求出的近似值。(取自130页练习7) 提示:(1)最大公约数的命令:gcd(a,b)
(2)randint(1,1,[u,v])产生一个在[u,v]区间上的随机整数
程序:
>> m=90200;s=0; for i=1:m
a=randint(1,2,[1,10^9]); if gcd(a(1),a(2))==1; s=s+1; end end
pi=sqrt(6*m/s) pi =
3.1431
4.6 用求定积分的Monte Carlo法近似计算。(102页练习16) 提示:Monte Carlo法近似计算的一个例子。
对于第一象限的正方形
10x1,0y1,内画出四分之
一个圆
0.80.60.40.20.20.40.60.81. 4nc4nc投n次点,落在扇形内的次数为nc,则. ,因此n4n向该正方形区域内随即投点,则点落在扇形区域内的概率为程序如下
n=100000;nc=0; for i=1:n
x=rand;y=rand; if(x^2+y^2<=1) nc=nc+1; end end
pi=4*nc/n 解:程序:
a=0;b=1;m=1000; H=1;s=0; for i=1:m
xi=rand(); yi=H*rand(); if yi 3.1480 综合题 一、方程求根探究 设方程4x4x0 1.用matlab命令求该方程的所有根; 423x3x 2.用迭代法求它的所有根,设迭代函数为f(x) 4x221)验证取该迭代函数的正确性; 2)分别取初值为-1.1,-1,-0.9,….,0.9,1,1.1,观察迭代结果,是否得到了原方程的根; 3)总结出使得迭代序列收敛到每个根时,初值的范围,比如要使迭代序列收敛到0(方程的一个根)初值应该在什么集合中选取,找出每个根的这样的初值集合。寻找的方法,可以是理论分析方法或数值实验方法。 解答: 1. 用solve命令即可求出所有解; 2. 1)提示:验证原方程与f(x)x同解,以及验证迭代函数在不动点附近的导数 绝对值是否小于1 2)代码: f=inline('(3*x^3-x)/(4*x^2-2)'); x0=input('x0='); for i=1:20; x0=f(x0); fprintf('%g %g\\n',i,x0); end 结果:初值取-1.1,-1,-0.9,-0.8,0.7时收敛到-1,初值取-0.7,0.8,0.9,1,1.1时收敛到1,初值取-0.6,-0.5,。。。,0.5,0.6时收敛到0; 3)在(,22),(21/7,21/7),(22,)中分别取初值,最后分别收敛到-1,1,0;在(21/7,2/2)内有无穷多个收敛到-1的初值小开区间,也有无穷多个收敛到0的小开区间,它们相互交替着;这种状态反射到 (2/2,21/7)内,即:在(2/2,21/7)内有无穷多个收敛到1的 初值小开区间,也有无穷多个收敛到0的小开区间,它们也是相互交替着,这些小区间与(21/7,2/2)内小开区间对应。 二、1.三次曲线 (a)对k=0及其邻近的k的正值和负值,把f(x)xkx的图形画在一个公共屏幕上。 k的值是怎样影响到图形的形状的? (b)求f(x),它是一个二次函数。求该二次函数的判别式,对什么样的k值,该判别 式为正?为零?为负?对什么k值f有两个零点?一个或没有零点?现在请说明k的值对f 图形的形状有什么影响。 (c)对其他的k值做实验。当k会发生什么情形?当k呢? 解答: (a) x=-3:0.01:3; y1=x.^3-0.6*x; y2=x.^3-0.3*x; y3=x.^3; y4=x.^3+0.3*x; y5=x.^3+3*x; plot(x,y1,'y',x,y2,'m',x,y3,x,y4,'r',x,y5,'g') grid on title('综合题第二、1题') 得下图 3综合题第二、1题403020100-10-20-30-40 -3y1 :k=-0.6y2 :k=-0.3y3 :k=0y4 :k=0.3y5 :k=3 -2-10123 可见k值不影响凹凸性,但单调性、单调区间以及极值随k值发生改变;k在0附 近,小于0时,函数在某[-a,a]区间上单调递减,该区间长度随着k值增大而减小,k大于等于0时,函数单调增加。 (b) f(x)3xk;判别式12k,k为负、零、正时判别式分别为正、零、负; 故k<0时,f(x)有两个零点,k=0时f(x)有一个零点,k>0时f(x)没有零点。 以上说明原函数f(x)的驻点个数随着k值符号而变化,当k由负变正时,驻点由两个变成一个再到没有驻点,相应的单调区间由三个变成一个,单增单减单增,变为单增。 (c) k值越小单减区间长度越大,当k时,f(x)单减区间变为无穷大对称区间,图形近乎垂直直线;当k时,单增区间变为无穷大对称区间,图形近乎垂直直线。 2.四次曲线 (a)对k=-4及其邻近的k值,把f(x)xkx6x,1x4的图形画在一个公共屏幕上。k的值是怎样影响到图形的形状的? (b)求f(x),它是一个二次函数。求该二次函数的判别式,对什么样的k值,该判别式为 正?为零?为负?对什么k值f有两个零点?一个或没有零点?现在请说明k的值对f 图形的形状有什么影响。 解答: (a)x=-1:0.01:4; y1=x.^4-5*x.^3+6*x.^2; y2=x.^4-4.5*x.^3+6*x.^2; y3=x.^4-4*x.^3+6*x.^2; y4=x.^4-3.5*x.^3+6*x.^2; y5=x.^4-2.5*x.^3+6*x.^2; y6=x.^4+4*x.^3+6*x.^2; 4322plot(x,y1,'y',x,y2,'m',x,y3) hold on plot(x,y4,'r',x,y5,'g',x,y6,'k') grid on title('综合题第二、2题') 得下图: 综合题第二、2题7006005004003002001000-100 -1y1 :y=-5y2 :y=-4.5y3 :y=-4y4 :y=-3.5y5 :k=-2.5y6 :k=4 -0.500.511.522.533.54 由图可以看出,在x<1时,图形受k值影响不大,x>1时k值对图形的影响比较显著,通过改变k值画图发现:在-4附近,k小于-4时,曲线在某[a,b](a>0)区间内是上凸的,在其他区间内上凹;k大于-4时,上面的凸区间不存在,也就是曲线总是上凹的。 (b) f(x)12x6kx12,判别式36k57636(k4),当k4时, 2222|k|4时判别式大于0,|k|4时判别式小于0;判别式为0,也就是|k|4时f(x)有两个零点,k4时f(x)有一个零点|k|4时f(x)没有零点。由二阶导数与凹凸性的关系可知,在k=-4附近,(a)中关于曲线凹凸的判断基本上是正确的 三、对于级数 1,通过下面的步骤探索它的行为 32nsinnn11,当你试图求limsk时,发生了什么? 32knsinnn1k1. 对于其部分和数列sk解答:用命令sk=symsum(1/n^3/(sin(n))^2,1,k)及limit(sk,k,inf)得不到结果,命令 symsum(1/n^3/(sin(n))^2,1,inf)也得不到结果。这表明极限可能并不存在。 2. 画出部分和数列的前100个点(k,sk),它们是否显示出收敛?你估计极限是多少? 解答:前100个点(k,sk)图形如下 54.543.532.521.510102030405060708090100 上图似乎显示着sk的极限存在,并且极限值约为4.8左右 3. 接着画出部分和数列的前200个点(k,sk),用你自己的话论述部分和数列的行为。 54.543.532.521.51020406080100120140160180200 此图可以更加确定,部分和数列sk的极限是存在的,结论跟2中的一样 4. 画出前400个点(k,sk),当k=355时发生了什么?计算数355/113,通过你的计算解 释当k=355时发生了什么。你猜测对k的什么值同一现象可能还会出现,并通过实验加以验证。 302520151050050100150200250300350400 解答: 此图否定了2与3的推断,因为部分和数列在k=355时发生了跳跃;355/113=3.141592920353983近似等于圆周率(约为3.141592653589793),也就是355113,而sin113=0,因此sin335的值很小,对应于部分和sk,在k=355时由于分母很小因而得到一个很大的加项,于是图形上的点发生了跳跃。我们可以通过观察或计算的倍数来获得sk的比较大的加项,由于710=355*2226,因此sk在k=710时也会发生跳跃;我们也可直接由命令(1:500)*pi观察1500以内的数哪些接近的倍数(此略)。 另外,由的各种分数表示(近似)可知,以上的部分和sk在k=22时也会发生跳跃,因为22355。同上,当k=44,66,88,110,132等等时,sk也会发生跳7113跃,但由于误差扩大,跳跃幅度相对应该比较小。 四、通过本课程学习,谈谈你开设对这门课的认识,对教学以及上机实验提出自己的和建议。 因篇幅问题不能全部显示,请点此查看更多更全内容