*-
第一次练习
教学要求:熟练掌握Matlab软件的基本命令和操作,会作二维、三维几何图形,能够用Matlab软件解决微积分、线性代数与解析几何中的计算问题。
补充命令
vpa(x,n) 显示x的n位有效数字,教材102页
fplot(‘f(x)’,[a,b]) 函数作图命令,画出f(x)在区间[a,b]上的图形
在下面的题目中为你的学号的后3位(1-9班)或4位(10班以上)
1.1 计算与
syms x
limit((902*x-sin(902*x))/x^3)
ans =
366935404/3
limit((902*x-sin(902*x))/x^3,inf)
ans =
0
1.2 ,求
syms x
diff(exp(x)*cos(902*x/1000),2)
ans =
(46599*cos((451*x)/500)*exp(x))/250000 - (451*sin((451*x)/500)*exp(x))/250
1.3 计算
dblquad(@(x,y) exp(x.^2+y.^2),0,1,0,1)
ans =
2.1394
1.4 计算
syms x
int(x^4/(902^2+4*x^2))
ans =
(91733851*atan(x/451))/4 - (203401*x)/4 + x^3/12
1.5
syms x
diff(exp(x)*cos(902*x),10)
ans =
-356485076957717053044344387763*cos(902*x)*exp(x)-3952323024277642494822005884*sin(902*x)*exp(x)
1.6 给出在的泰勒展式(最高次幂为4).
syms 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数列的定义是用循环语句编程给出该数列的前20项(要求将结果用向量的形式给出)。
x=[1,1];
for n=3:20
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
1.8 对矩阵,求该矩阵的逆矩阵,特征值,特征向量,行列式,计算,并求矩阵(是对角矩阵),使得。
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 =
4.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进行函数作图):
m文件:
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.10 在同一坐标系下作出下面两条空间曲线(要求两条曲线用不同的颜色表示)
(1) (2)
t=-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.11 已知,在MATLAB命令窗口中建立A、B矩阵并对其进行以下操作:
(1) 计算矩阵A的行列式的值
(2) 分别计算下列各式:
解: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)
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
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
1.12 已知分别在下列条件下画出的图形:
(1),分别为(在同一坐标系上作图);
(2),分别为(在同一坐标系上作图).
(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)
grid on
title(第1.12题)
(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.13 作出的函数图形。
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.14对于方程,先画出左边的函数在合适的区间上的图形,借助于软件中的方程求根的命令求出所有的实根,找出函数的单调区间,结合高等数学的知识说明函数为什么在这些区间上是单调的,以及该方程确实只有你求出的这些实根。最后写出你做此题的体会。
解:作图程序:(注:x范围的选择是经过试探而得到的)
x=-1.7:0.02:1.7;y=x.^5-902/200*x-0.1;
plot(x,y);grid on; title(第1.14题)
由图形观察,在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
由图形可以看出,函数在区间单调上升,在区间单调下降,在区间单调上升。
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
可以验证导函数在内为正,函数单调上升
导函数在内为负,函数单调下降
导函数在内为正,函数单调上升
根据函数的单调性,最多有3个实根。
1.15 求的所有根。(先画图后求解)(要求贴图)
作图命令:(注:x范围的选择是经过试探而得到的)
x=-5:0.001:15;y=exp(x)-3*902*x.^2;
plot(x,y);grid on;
title(第1.15题图)
得到下图
进一步细化
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题图)
可看出解在-0.02,0.02,13附近,进一步求得
fzero(exp(x)-3*902*x^2,0.02)
ans =
0.0194
fzero(exp(x)-3*902*x^2,-0.02)
ans =
-0.0190
fzero(exp(x)-3*902*x^2,13)
ans =
13.0391
第二次练习
教学要求:要求学生掌握迭代、混沌的判断方法,以及利用迭代思想解决实际问题。
2.1 设,数列是否收敛?若收敛,其值为多少?精确到8位有效数字。
解:程序代码如下(m=902):
f=inline((x+902/x)/2);
x0=3;
for i=1:20;
x0=f(x0);
fprintf(%g %8f\n,i,x0);
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
由运行结果可以看出,,数列收敛,其值为30.03315。
2.2 求出分式线性函数的不动点,再编程判断它们的迭代序列是否收敛。
解:取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.001001
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))
解:程序如下:
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
运行结果:
2.4 函数称为Logistic映射,试从“蜘蛛网”图观察它取初值为产生的迭代序列的收敛性,将观察记录填人下表,若出现循环,请指出它的周期.(56页练习8)
3.3
3.5
3.56
3.568
3.6
3.84
序列收敛情况
T=2
T=4
T=8
T=9
混沌
混沌
解:当=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运行结果:
当=3.5时,上述程序稍加修改,得:
当=3.56时,得:
当=3.568时,得:
当=3.6时,得:
当=3.84时,得:
2.5 对于Martin迭代,取参数为其它的值会得到什么图形?参考下表(取自63页练习13)
m
m
m
-m
-m
m
-m
m/1000
-m
m/1000
m/1000
0.5
m/1000
m
-m
m/100
m/10
-10
-m/10
17
4
解:取m=10000;迭代次数N=20000;
在M-文件里面输入代码:
function Martin(a,b,c,N)
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),得:
执行Martin(-10000,-10000,10000,20000),得:
执行Martin(-10000,10,-10000,20000),得:
执行Martin(10,10,0.5,20000),得:
执行Martin(10,10000,-10000,20000),得:
执行Martin(100,1000,-10,20000),得:
执行Martin(-1000,17,4,20000),得:
2.6 能否找到分式函数(其中是整数),使它产生的迭代序列(迭代的初始值也是整数)收敛到(对于为整数的学号,请改为求)。如果迭代收敛,那么迭代的初值与收敛的速度有什么关系.写出你做此题的体会.
提示:教材54页练习4的一些分析。
若分式线性函数的迭代收敛到指定的数,则为的不动点,因此
化简得:。
若为整数,易见。
取满足这种条件的不同的以及迭代初值进行编。
解:迭代收敛到指定的数,则为的不动点,所以
=,解得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 对,,求出的通项.
>> 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
3.2 对于练习1中的,,求出的通项.
>> 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
3.3 对随机给出的,观察数列.该数列有极限吗?
>> 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
结论:在迭代17次后,发现数列存在极限为0.5
3.4 对120页中的例子,继续计算.观察及的极限是否存在. (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
结论:及的极限都存在.
3.5 求出的所有特征值与特征向量,并与上一题的结论作对比. (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的绝对值最大特征值等于上面的的极限相等,为什么呢?
还有,P的第三列也就是-11.2213对应的特征向量和上题求解到的y也有系数关系,两者都是-11.2213的特征向量。
3.6 设,对问题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,求出矩阵的特征值与特征向量,并将特征向量与上一题中的结论作对比. (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,设为的两个线性无关的特征向量,若
,具体求出上述的,将表示成的线性组合,求的具体表达式,并求时的极限,与已知结论作比较. (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 求满足,的所有勾股数,能否类似于(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=
展开阅读全文