数值分析上机题matlab版东南大学Word下载.docx
《数值分析上机题matlab版东南大学Word下载.docx》由会员分享,可在线阅读,更多相关《数值分析上机题matlab版东南大学Word下载.docx(32页珍藏版)》请在冰豆网上搜索。
AccurateCalculation0.749900
Caculatefromlargetosmall0.749852
Caculatefromsmalltolarge0.749900
10^6
ThevalueofSnusingdifferentalgorithms(N=1000000)
AccurateCalculation0.749999
Caculatefromsmalltolarge0.749999
四、结果分析
有效位数
n
顺序
100
10000
1000000
从大到小
6
3
从小到大
5
可以得出,算法对误差的传播又一定的影响,在计算时选一种好的算法可以使结果更为精确。
从以上的结果可以看到从大到小的顺序导致大数吃小数的现象,容易产生较大的误差,求和运算从小数到大数算所得到的结果才比较准确。
第二章
(1)给定初值
及容许误差
,编制牛顿法解方程f(x)=0的通用程序。
(2)给定方程
易知其有三个根
a)由牛顿方法的局部收敛性可知存在
当
时,Newton迭代序列收敛于根x2*。
试确定尽可能大的
b)试取若干初始值,观察当
时Newton序列的收敛性以及收敛于哪一个根。
(3)通过本上机题,你明白了什么?
文件search.m
%%寻找最大的delta值%%
%%
flag=1;
k=1;
x0=0;
whileflag==1
delta=k*10^-6;
x0=delta;
k=k+1;
m=0;
flag1=1;
whileflag1==1&
&
m<
=10^3
x1=x0-fx(x0)/dfx(x0);
ifabs(x1-x0)<
10^-6flag1=0;
end
m=m+1;
x0=x1;
end
ifflag1==1||abs(x0)>
=10^-6flag=0;
Themaximundeltais%f\n'
delta);
文件fx.m
%%定义函数f(x)
functionFx=fx(x)
Fx=x^3/3-x;
文件dfx.m
%%定义导函数df(x)
functionFx=dfx(x)
Fx=x^2-1;
文件Newton.m
%%Newton法求方程的根%%
ef=10^-6;
%给定容许误差10^-6
k=0;
x0=input('
PleaseinputinitialvalueXo:
kXk'
0%f\n'
x0);
whileflag==1&
k<
ef
flag=0;
%d%f\n'
k,x0);
end
1.运行search.m文件
结果为:
Themaximumdeltais0.774597
即得最大的δ为0.774597,Newton迭代序列收敛于根
=0的最大区间为(-0.774597,0.774597)。
2.运行Newton.m文件
在区间
上各输入若干个数,计算结果如下:
区间
上取-1000,-100,-50,-30,-10,-8,-7,-5,-3,-1.5
13-1.732051
-30
kXk
0-30.000000
1-20.022247
2-13.381544
3-8.971129
4-6.056000
5-4.150503
6-2.937524
7-2.215046
8-1.854714
9-1.743236
10-1.732158
11-1.732051
12-1.732051
-10
0-10.000000
1-6.734007
2-4.590570
3-3.212840
4-2.371653
5-1.922981
6-1.757175
7-1.732580
8-1.732051
9-1.732051
-10000
0-10000.000000
1-6666.666733
2-4444.444589
3-2962.963209
4-1975.309031
5-1316.873025
6-877.915856
7-585.277997
8-390.186470
9-260.126022
10-173.419911
11-115.617118
12-77.083845
13-51.397880
14-34.278229
15-22.871618
16-15.276949
17-10.228459
18-6.884780
19-4.688772
20-3.274807
21-2.407714
22-1.939750
23-1.761259
24-1.732762
25-1.732051
26-1.732051
-100
0-100.000000
1-66.673334
2-44.458891
3-29.654263
4-19.792016
5-13.228447
6-8.869651
7-5.989231
8-4.107324
9-2.910755
10-2.200189
11-1.848687
12-1.742235
13-1.732139
14-1.732051
15-1.732051
-50
0-50.000000
1-33.346672
2-22.251125
3-14.864105
4-9.954458
5-6.703960
6-4.571013
7-3.200520
8-2.364515
9-1.919703
10-1.756405
11-1.732548
-3
0-3.000000
1-2.250000
2-1.869231
3-1.745810
4-1.732212
5-1.732051
6-1.732051
-1.5
0-1.500000
1-1.800000
2-1.735714
3-1.732062
4-1.732051
-8
0-8.000000
1-5.417989
2-3.739379
3-2.684934
4-2.078246
5-1.802928
6-1.736023
7-1.732064
-7
0-7.000000
1-4.763889
2-3.322318
3-2.435533
4-1.952915
5-1.764630
6-1.732931
7-1.732051
-5
0-5.000000
1-3.472222
2-2.524180
3-1.996068
4-1.776618
5-1.733674
6-1.732053
结果显示,以上初值迭代序列均收敛于-1.732051,即根
即区间(-1,-0.774597)上取-0.774598,-0.8,-0.85,-0.9,-0.99,计算结果如下:
-0.774598
0-0.774598
10.774605
2-0.774645
30.774884
4-0.776324
50.785049
6-0.840641
71.350187
81.993830
91.775963
101.733628
111.732053
121.732051
131.732051
-0.8
0-0.800000
10.948148
2-5.625370
3-3.872625
4-2.766197
5-2.121367
6-1.818292
7-1.737822
8-1.732079
10-1.732051
0.85
00.850000
1-1.475375
2-1.819444
3-1.737969
4-1.732081
-0.9
0-0.900000
12.557895
22.012915
31.781662
41.734049
51.732054
61.732051
71.732051
-0.99
0-0.990000
132.505829
221.691081
314.491521
49.707238
56.540906
64.464966
73.133840
82.326075
91.902303
101.752478
111.732403
计算结果显示,迭代序列局部收敛于-1.732051,即根
,局部收敛于1.730251,即根
即区间(-0.774597,0.774597)上,由search.m的运行过程表明,在整个区间上均收敛于0,即根
0.774598
00.774598
1-0.774605
20.774645
3-0.774884
40.776324
5-0.785049
60.840641
7-1.350187
8-1.993830
9-1.775963
10-1.733628
11-1.732053
0.8
00.800000
1-0.948148
25.625370
33.872625
42.766197
52.121367
61.818292
71.737822
81.732079
91.732051
101.732051
0.9
00.900000
1-2.557895
2-2.012915
3-1.781662
4-1.734049
5-1.732054
0.99
00.990000
1-32.505829
2-21.691081
3-14.491521
4-9.707238
5-6.540906
6-4.464966
7-3.133840
8-2.326075
9-1.902303
10-1.752478
11-1.732403
即区间(0.774597,1)上取0.774598,0.8,0.85,0.9,0.99,计算结果如下:
4
04.000000
12.844444
22.163724
31.834281
41.740007
51.732105
03.000000
12.250000
21.869231
31.745810
41.732212
51.732051
1.5
01.500000
11.800000
21.735714
31.732062
41.732051
上取100,60,20,10,7,6,4,3,1.5,计算结果如下:
62.213605
71.854126
81.743136
91.732156
111.732051
10
010.000000
16.734007
24.590570
33.212840
42.371653
51.922981
61.757175
71.732580
81.732051
7
07.000000
14.763889
23.322318
32.435533
41.952915
51.764630
61.732931
06.000000
14.114286
22.915068
32.202578
41.849650
51.742392
61.732142
100
0100.000000
166.673334
244.458891
329.654263
419.792016
513.228447
68.869651
75.989231
84.107324
92.910755
102.200189
111.848687
121.742235
131.732139
141.732051
151.732051
60
060.000000
140.011114
226.690749
317.818845
411.916762
58.000848
65.418546
73.739736
82.685151
92.078360
101.802967
111.736027
121.732064
20
020.000000
113.366750
28.961323
36.049547
44.146328
]
结果显示,以上初值迭代序列均收敛于1.732051,即根
综上所述:
(-∞,-1)区间收敛于-1.73205,(-1,δ)区间局部收敛于1.73205,局部收敛于-1.73205,(-δ,δ)区间收敛于0,(δ,1)区间类似于(-1,δ)区间,(1,∞)收敛于1.73205。
通过本上机题,明白了对于多根方程,Newton法求方程根时,迭代序列收敛于某一个根有一定的区间限制,在一个区间上,可能会局部收敛于不同的根。
第三章
列主元Gauss消去法对于某电路的分析,归结为求解线性方程组
其中
(1)编制解n阶线性方程组
的列主元高斯消去法的通用程序;
(2)用所编程序线性方程组
,并打印出解向量,保留5位有效数;
%%列主元Gauss消去法求解线性方程组%%
%%参数输入
n=input('
PleaseinputtheorderofmatrixA:
n='
%输入线性方程组阶数n
b=zeros(1,n);
A=input('
InputmatrixA(suchasa2ordermatrix:
[12;
3,4]):
b(1,:
)=input('
Inputthecolumnvectorb:
%输入行向量b
b=b'
;
C=[A,b];
%得到增广矩阵
%%列主元消去得上三角矩阵
fori=1:
n-1[maximum,index]=max(abs(C(i:
n,i)));
index=index+i-1;
T=C(index,:
C(index,:
)=C(i,:
C(i,:
)=T;
fork=i+1:
n%%列主元消去
ifC(k,i)~=0
C(k,:
)=C(k,:
)-C(k,i)/C(i,i)*C(i,:
%%回代求解%%
x=zeros(n,1);
x(n)=C(n,n+1)/C(n,n);
fori=n-1:
-1:
1
x(i)=(C(i,n+1)-C(i,i+1:
n)*x(i+1:
n,1))/C(i,i);
A=C(1:
n,1:
n);
%消元后得到的上三角矩阵
Theupperteianguularmatrixis:
fork=1:
n
fprintf('
%f'
A(k,:
));
\n'
Solutionoftheequations:
%.5g\n'
x);
%以5位有效数字输出结果
n=4
3,4])[1