数值分析实验报告2.docx
《数值分析实验报告2.docx》由会员分享,可在线阅读,更多相关《数值分析实验报告2.docx(54页珍藏版)》请在冰点文库上搜索。
数值分析实验报告2
数值分析实验报告
(第二章)
实验题目:
分别用二分法、牛顿迭代法、割线法、史蒂芬森迭代法求方程
f(x)-(?
+1)Cx-l)'=0
的根兀=1|,观察不同初始值下的收敛性,并给出结论。
问题分析:
题目有以下几点要求:
1.不同的迭代法计算根,并比较收敛性。
2.选定不同的初始值,比较收敛性。
实验原理:
各个迭代法简述
二分法:
取有根区间⑷刖的重点旳,确定新的有根区间
为也川区间长度的一版。
对压缩了的有根区间力
重复以上过程,又得到新的
有根区间
I叫"』,其区间长度为旧1力11的一半,如此反复,……,可得一系列有
根区间,区间收敛到一个点即为根。
牛顿迭代法:
不动点迭代法的一种特例,具有局部二次收敛的特性。
迭代格式为
心)
If苛"7%.
割线法:
是牛顿法的改进,具有超线性收敛的特性,收敛阶为1.618.迭代格式为
史蒂芬森迭代法:
采用不动点迭代进行预估校正。
至少是平方收敛的。
迭代格式为
X产必」
(儿-兀況
Y—Y—
片+157-2v+X
这里卩⑴可采用牛顿迭代法的迭代函数。
实验内容:
1.写出该问题的fo)函数
代码如下:
functionpy=f(x)symsk;
y=(kA2+1)*(k-1)A5;
yy=diff(y,k);
py
(1)=subs(y,k,x);
py
(2)=subs(yy,k,x);
end
2.分别写出各个迭代法的迭代函数代码如下:
二分法:
y=[t,i+1,m];
end
牛顿迭代法:
functiony=dichotomie(a,b,e)
function
i=2;
y=Newtonlterative(x,e)
m
(1)=a;
i=2;
whileabs(a-b)>e
en=2*e;
t=(a+b)/2;
m
(1)=x;
s1=f(a);
whileabs(en)>=e
s2=f(b);
s=f(x);
s3=f(t);
t=x-s
(1)/s
(2);
ifs1
(1)*s3
(1)<=0
en=t-x;
b=t;
x=t;
else
m(i)=t;
a=t;
i=i+1;
end
end
m(i)=t;
y=[x,i+1,m];
i=i+1;
end
end
牛顿割线法:
i=3;
p=Stephensonlterative(x,e)
m
(1)=x1,m
(2)=x2;
i=2;
whileabs(x2-x1)>=e
m
(2)=x;
s1=f(x1);
en=2*e;
s2=f(x2);
whileabs(en)>=e
y=fai(x);
t=x2-(x2-x1)*s2
(1)/(s2
(1)-s1(
z=fai(y);
1));
t=x-(y-x)A2/(z-2*y+x);
x1=x2;
en=t-x;
x2=t;
x=t;
m(i)=t;
m(i)=t;
i=i+1;
i=i+1;
end
end
y=[x2,i+1,m];
p=[x,i+1,m];
end
end
史蒂芬森迭代法:
3.因为妙(刘经常被使用,故可以写一个妙(刃函数。
代码如下:
functiony=fai(x)
s=f(x);
y=x-s
(1)/s
(2);
end
4.可以绘制不同的图形来比较不同迭代法的收敛性和不同初值下的收敛性。
代码如下:
clearall%相同初始值,不同迭代法下的收敛x1=dichotomie(0,3,1e-10);
x2=Newtonlterative(0,1e-10);
x3=Secant(0,2,1e-10);
x4=Stephensonlterative(0,1e-10);
[x1
(2),x2
(2),x3
(2),x4
(2)]
'二分法’);
'牛顿迭代法’);
figure,subplot(2,2,1),plot(x1(3:
x1
(2))),title(subplot(2,2,2),plot(x2(3:
x2
(2))),title(
subplot(2,2,3),plot(x3(3:
x3
(2))),title(
'牛顿割线法’);
subplot(2,2,4),plot(x4(3:
x4
(2))),title(
'史蒂芬森迭代法’);
figure,
subplot(2,2,1),plot((x1(4:
x1
(2)-1)-x1
(1))./(x1(3:
x1
(2)-2)-x1
(1))),tit
le('二分法’);
subplot(2,2,2),plot((x2(4:
x2
(2)-1)-x2
(1))./(x2(3:
x2
(2)-2)-x2
(1))),tit
le('牛顿迭代法’);
subplot(2,2,3),plot((x3(4:
x3
(2)-1)-x3
(1))./(x3(3:
x3
(2)-2)-x3
(1))),tit
le('牛顿割线法’);
subplot(2,2,4),plot((x4(4:
x4
(2)-1)-x4
(1))./(x4(3:
x4
(2)-2)-x4
(1))),tit
le('史蒂芬森迭代法’);
%不同初始值,相同迭代法下的收敛性
x5=dichotomie(-1,1,1e-10);
x6=dichotomie(-2,3,1e-10);
x7=dichotomie(0,4,1e-10);
x8=dichotomie(-4,4,1e-10);
x9=Newtonlterative(-2,1e-10);
x10=Newtonlterative(-4,1e-10);
x11=Newtonlterative(4,1e-10);
x12=Newtonlterative(6,1e-10);
figure,
subplot(1,2,1).
Plot(1:
x1
(2)-2,x1(3:
x1
(2)),1:
x5
(2)-2,x5(3:
x5
(2)),1:
x6
(2)-2,x6(3:
x6
(2)
),1:
x7
(2)-2,x7(3:
x7
(2)),1:
x8
(2)-2,x8(3:
x8
(2))),title(
'二分法’);
subplot(1,2,2).
Plot(1:
x2
(2)-2,x2(3:
x2
(2)),1:
x9
(2)-2,x9(3:
x9
(2)),1:
x10
(2)-2,x10(3:
x10
(2)),1:
x11
(2)-2,x11(3:
x11
(2)),1:
x12
(2)-2,x12(3:
x12
(2))),title(
'牛顿迭
代法’);
x13=Secant(-1,1,1e-10);x14=Secant(-4,5,1e-10);x15=Secant(0,7,1e-10);
x16=Secant(-8,2,1e-10);
x17=Stephensoniterative(-1,1e-10);
x18=Stephensoniterative(-4,1e-10);
x19=Stephensoniterative(4,1e-10);
x20=Stephensonlterative(6,1e-10);
figure,subplot(1,2,1).
plot(1:
x3
(2)-2,x3(3:
x3
(2)),1:
x13
(2)-2,x13(3:
x13
(2)),1:
x14
(2)-2,x14(3:
x14
(2)),1:
x15
(2)-2,x15(3:
x15
(2)),1:
x16
(2)-2,x16(3:
x16
(2))),title(
顿割线法’);
subplot(1,2,2).
Plot(1:
x4
(2)-2,x4(3:
x4
(2)),1:
x17
(2)-2,x17(3:
x17
(2)),1:
x18
(2)-2,x18(3:
x18
(2)),1:
x19
(2)-2,x19(3:
x19
(2)),1:
x20
(2)-2,x20(3:
x20
(2))),title(
帝分森迭代法’);
实验结果:
1.各个迭代值分布
牛顿迭代法
0.5
50
100
牛顿割线法
史蒂芬森迭代法
1.5
1
0.5
2
4
6
0
图1.1不同迭代法下的得到的迭代值
迭代值的情况如下:
二分法
牛顿迭代法
牛顿割线法
史蒂分森迭代法
0
0
0
0
1.5000000000
0.2000000000
2.
.3555555556
0.7500000000
0.3704918032
0.3333333333
0.9816165283
1.1250000000
0.5076442076
0.3807196801
0.9999460003
0.9375000000
0.6146189447
0.4982833419
0.9999999995
1.
.6973869098
0.5704996333
0.9843750000
0.7615538091
0.6393806244
1.
.8115411186
0.6942785879
0.9960937500
0.8506763857
0.7411692653
1.
.8814482123
0.7802715997
0.9990234375
0.9057297400
0.8132927871
牛顿迭代法初值选为,
当二分法的初始区间选为1163],误差限为1X10"
,史蒂芬森
误差限为1X10-牛顿割线法初始点为|{62],误差限为1X10
迭代情况如图所示。
迭代次数分别为
迭代法初始点选为卩,误差限为1X10
38次,100次,140次,9次。
故而,史蒂芬森迭代法速度最快,效果最好。
2.收敛情况
5
-10
0.8
-
0.7
■.~
'1'
1
1
1
'1
0.6
1
.1.
1
■',!
■
1
1
'1
J
0.5
1.
1
1
1
0.4
-
牛顿迭代法
0
-5
0
50
9
x10
010203040
二分法
100
-2
1
0.4
1
1
1-1
1
0.2
0
-0.2
-0.4
牛顿割线法
史蒂芬森迭代法
1
0
-1
3040
12345
01020
图1.2
不同迭代法下迭代值得收敛情况
牛顿迭代法和牛顿割线法相近,史蒂芬森迭代法收敛
二分法收敛效果较差,次数高于1,效果最好3.不同初值的收敛情况
二分法
牛顿迭代法
-4
0
'[|I'
♦h■
6
■
*
il
1
II
5
k
'5
s_a:
5■———•
4
—1
3
J
-
2
d
■1
1
0
f
1
1
■,1
■
■
-1
—
-2
-
-3
r
r
D
-4
t
1
0
-1
-2
-3
10
20
30
40
0
50
100
150
图1.3二分法,牛顿迭代法下不同初值的收敛情况
牛顿割线法
-8
0
8
6
4
2
0
-2
-4
-6
20
40
60
80
图1.4牛顿割线法,史蒂芬森迭代法下不同初值的收敛情况
1.二分法的五个初始区间分别为I10JJ4-IJbl-2,3]40,4],|-4/|;
2.牛顿迭代法的五个初始值分别为d-2,-4A6|;
3.牛顿割线法的五个初始区间分别为10.2M-tlhl-4,5h[07|4-&2];
4.史蒂芬森迭代法的五个初始值分别为购;
由图可知,它们最终均达到收敛。
收敛性分析及结论:
1.二分法收敛较慢且不能求解崇根,但算法简单;此处牛顿法具有了平方收敛;从迭代次数上看,牛顿割线法较牛顿法的多,所以收敛性较差,是超线性收敛;史蒂芬森迭代法收敛效果最好。
2.因为牛顿迭代法是局部的二次收敛,所以要注重初值的选取,本次实验中选
择的初值均得到了收敛,效果比较好。
牛顿割线法也应注意初值的选取。
(第三章)
实验题目:
1.区间作等距划分:
2
梵卜=~1+比血*h三—、技三0丄+・山
Zn
以也结点对函数心-
5进行插值逼近。
(1)
分别取/1=1530.2075用牛顿插值对/(X)进行逼近,并在同一坐标系下做
出函数的图形,进行比较。
写出插值函数对『(刃的逼近程度与节点个数的
关系,并分析原因;
(2)
试用三次样条插值对fd)进行逼近,在同一坐标下画出图形,观察样条插
值函数对fO)的逼近程度与节点个数的关系;
(3)
2.已知一组数据如下,求其拟合曲线.
整体插值有何局限性?
如何避免?
表2.1数据表
3478
106.42108.2109.5110109.93110.49110.59110.6110.76111111.2
2
求以上数据形如yWKu+s兀+切丫的拟合曲线及其平方误差;
h
(2)
(3)
求以上数据形如=G[八的拟合曲线及其平方误差;通过观察
(1)
(2)的结果,写出你对数据拟合的认识.
问题分析:
题目除上述要求之外还有以下几点:
1.明确整体插值和分段插值的不同。
牛顿插值多项式属于整体插值,三次样条插值属于低次分段插值。
2.将结果在同一坐标下绘制出。
但是为了方便分析节点个数对于插值效果的影响,也可以单独绘制。
3.第二题中为了确定各个参数的大小,可以进行适当变换,转化为线性,运用最小二乘法,得到拟合。
实验原理:
牛顿插值多项式:
对于给定的插值节点心%…5"”
构造次数
不超过n的插值多项式
=尬0+知0;-心)+幻&-丸0)0-尢1)+…+%(龙-%)(咒-勺)_
使其满足插值条件
勺)=儿=兀£)f=
tt!
这样得到的插值多项式"3
称为Mwttm插值多项式。
系数("为差商,可以通
过构造差商表得到。
三次样条插值:
三次样条插值函数S(x)在每个小区间
上为三次多
项式;在全进(乩町上存在二阶连续导数;其次符合插值条件。
Matlab
中存在内
置的三次样条插值函数,命令为卸im—
实验内容:
第一题:
1.牛顿插值函数的构造
代码如下:
function
f=Newton(xO,yO)
%牛顿多项式插值函数symsx;
SZ=size(xO,2);
a
(1)=y0
(1);
y(:
1)=y0:
forj=2:
SZ
nx1=1;
fori=1:
SZ-j+1;
nx2=nx1+j-1;
y(i,j)=(y(i,j-1)-y(i+1,j-1))/(x0(nx1)-x0(nx2));
nx1=nx1+1;
endendf=y(1,1);
forj=2:
SZ
ff=y(1,j);
fori=1:
j-1
ff=ff*(x-x0(i));
end
f=f+ff;
endend
2.牛顿和三次样条插值情况及比较:
代码如下:
clearallclc;
symsx;
fx=1/(5+x^2);
%牛顿多项式插值x0=-1:
0.01:
1;
y0=subs(fx,x0);
n1=[1,5,10,20,25];
n2=[5,55,60,62,67];
h1=2./n1;
h2=2./n2;
x1=-1:
h1
(1):
1;y1=subs(fx,x1);f仁Newton(x1,y1);y01=subs(f1,x0);
x2=-1:
h1
(2):
1;y2=subs(fx,x2);f2=Newton(x2,y2);y02=subs(f2,x0);
x3=-1:
h1(3):
1;y3=subs(fx,x3);f3=Newton(x3,y3);y03=subs(f3,x0);
x4=-1:
h1(4):
1;y4=subs(fx,x4);f4=Newton(x4,y4);y04=subs(f4,x0);
x5=-1:
h1(5):
1;y5=subs(fx,x5);f5=Newton(x5,y5);y05=subs(f5,x0);
figure,
Plot(x0,y0,x0,y01,x0,y02,x0,y03,x0,y04,x0,y05),title(
'所有结果’);
x6=-1:
h2
(1):
1;y6=subs(fx,x6);f6=Newton(x6,y6);y06=subs(f6,x0);
x7=-1:
h2
(2):
1;y7=subs(fx,x7);f7=Newton(x7,y7);y07=subs(f7,x0);
x8=-1:
h2(3):
1;y8=subs(fx,x8);f8=Newton(x8,y8);y08=subs(f8,x0);
x9=-1:
h2(4):
1;y9=subs(fx,x9);f9=Newton(x9,y9);y09=subs(f9,x0);
x10=-1:
h2(5):
1;y10=subs(fx,x10);f10=Newton(x10,y10);
y010=subs(f10,x0);
figure,
Plot(x0,y0,x0,y06,x0,y07,x0,y08,x0,y09,x0,y010),title(
'龙格现象’);
%三次样条插值spline自带命令
x0=-5:
0.01:
5;
y0=subs(fx,x0);
figure,
subplot(2,3,1),plot(x0,y0),title(
'精确图’);
y11=spline(x1,y1,x0);subplot(2,3,2),plot(x0,y11),title(
'n=1'
);
y12=spline(x2,y2,x0);subplot(2,3,3),plot(x0,y12),title(
'n=5'
);
y13=spline(x3,y3,x0);subplot(2,3,4),plot(x0,y13),title(
'n=10'
);
y14=spline(x4,y4,x0);subplot(2,3,5),plot(x0,y14),title(
'n=20'
);
y15=spline(x5,y5,x0);subplot(2,3,6),plot(x0,y15),title(
'n=25'
);
figure,
'所有结果’);
Plot(x0,y0,x0,y11,x0,y12,x0,y13,x0,y14,x0,y15),title(
第二题:
代码如下:
clearall;clc;
x=[23478101114161819];
y=[106.42108.2109.5110109.93110.49110.59110.6110.76111111.2];
%Agenda1
A=[(x.*x)'x'ones(11,1)];
A1=A'*A;
y1=A'*y:
c1=A1\y1x1=2:
0.1:
19;
y1=poIyval(c1,x1);
plot(x,y.
'k*'
x1,y1,'r'),gtext('曲线一'),holdon
y01=polyval(c1,x);
deIta1_2=sum((y-y01)A2)%Agenda2xx=-1./x;
yy=log(y);
B=[ones(11,1)xx'];
B1=B'*B;
yy1=B'*yy:
c2=B1\yy1;
symss;
a=exp(c2
(1));b=c2
(2);
[ab]f=a*exp(-b/s);
x2=x1;
y2=subs(f,x2);
plot(x2,y2.
'b'),gtext('曲线二’);
y02=subs(f,x);
delta2_2=sum((y-y02)A2)
实验结果:
第一题:
1.牛顿插值结果
所有结果
图2.1不同节点数的牛顿插值多项式综合图
龙格现象
图2.2龙格现象
由图可知,
2.三次样条插值结果
精确图
0.2
0-5
n=1
0.15
0.1
0.05
0
5
-5
0
5
0.8
05
n=5
0.6
0.4
0.2
0
5
0
-5
0.8
0.8
0.6
0.6
--
0.4
0.4
■■
1
0.2
0
1I
0.2
0
?
!
n=10
n=20
n=25
0.8
0.6
0.4
0.2
0
5
-5
0
5
-5
0
5
图2.3不同节点下的三次样条插值结果
图2.4不同节点数的三次样条的综合图
由图可知,牛顿插值多项式在《较小的时候如(5.1070.25]差值效果良好,当
卩变大时如160,62,65/67,100,200}就出现了龙格现象,三次样条在各个子区间内为三次多项式,拟合效果好.
第二题
1.第一问的多项式拟合得到的拟合曲线为
y(x)=106.2927+0.6264艾-0.0205xf
平方误差为坷=2.7796第二问的拟合曲线为
0.0003
V
y(x)=llL4940e
平方误差为
6^=0.47192.拟合曲线如图所示
112
L
11LL
1t
I
曲线一
+■
■
七L■
*
一
-
曲线二
-
-'
■
1
1
-
=-
r
rfrr
rc
r
111
110
109
108
107
8101214161820
106
246
112
111
+■
七一
*7
110
109
108
107
曲线一
8101214161820
图2.5拟合情况
从图中可以看出曲线二大体符合黑点的分布情况,拟合效果较好。
结论:
整体插值随着节点个数的增多,多项式的次数也在升高。
高次多项式的插值会出现龙格现象,震荡剧烈,逼近效果不理想。
但是当节点很多时,低次插值的精度又不够,所以为了避免这一局限性采用分段低次插值。
其中三次样条插值有良好的收敛性和光滑性,效果较好。
数据