第二章作业Word格式.docx

上传人:b****8 文档编号:22518855 上传时间:2023-02-04 格式:DOCX 页数:15 大小:485.07KB
下载 相关 举报
第二章作业Word格式.docx_第1页
第1页 / 共15页
第二章作业Word格式.docx_第2页
第2页 / 共15页
第二章作业Word格式.docx_第3页
第3页 / 共15页
第二章作业Word格式.docx_第4页
第4页 / 共15页
第二章作业Word格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

第二章作业Word格式.docx

《第二章作业Word格式.docx》由会员分享,可在线阅读,更多相关《第二章作业Word格式.docx(15页珍藏版)》请在冰豆网上搜索。

第二章作业Word格式.docx

(注:

各种方法均以精确到小数点后10位为标准)

1、二分法

设函数

,显然f(h)关于h单调递减。

易求f(1.5)>

0,f(2.5)<

0,所以零点必在区间[1.5,2.5]内。

MATLAB代码如下:

clc;

clear;

%theindependentvaribleheight

low=1.5;

high=2.5;

%theinitiallowerandupperbounds

es=0.5*10^-10;

%theprincipleof10significantdigits

mid=(high+low)/2;

%theestimateofzeropointvalue

temp=high;

f(h)=30-pi*h^2*(3-h/3);

i=0;

while(abs(temp-mid)>

es)

iff(mid)==0

break;

elseiff(mid)*f(low)<

high=mid;

elselow=mid;

end

i=i+1;

%thenumberofiterations

temp=mid;

%storethelastestimatedvalue

mid=(high+low)/2;

fprintf('

%.10f\n'

mid);

end

共迭代34次,最终计算值为2.0269057283,与标准值吻合。

在while循环中的第1行加入以下代码,可以作出每次迭代后的取值区间:

line([low,high],[f(mid),f(mid)]);

图形形象地反映出迭代过程,如下所示:

横坐标是每次迭代的估计值的取值区间,纵坐标是取值区间中点对应的f(h)函数值)

第5次迭代

第4次迭代

第3次迭代

第2次迭代

第1次迭代

初始区间

2、试位法

试位法也利用了迭代思想,不过估计值的取值不是在区间中点,而是函数图像在区间上的两个端点连线与x轴的交点。

low=1;

high=3;

poi=high-f(high)*(low-high)/(f(low)-f(high));

whileabs(temp-poi)>

es

iff(poi)==0

elseiff(poi)*f(low)<

high=poi;

elselow=poi;

temp=poi;

poi=high-f(high)*(low-high)/(f(low)-f(high));

disp(vpa(poi,11));

经过10次迭代,最终计算值为2.0269057283,与标准值吻合。

为了形象地展现迭代过程,首先画出f(h)的图如下

 

然后在程序的while循环中加入以下代码:

line([low,high],[f(low),f(high)],'

color'

'

r'

);

得到的图像如下

局部放大图如下:

图像中红色的斜线是每次迭代时函数在区间上的端点的连线)

可见,在本例中,零点附近的函数图像是很接近直线的,在第一次迭代后更是如此;

所以这种情况下,试位法的收敛速度(10次迭代)远优于二分法(34次迭代)。

3、不动点迭代

不动点迭代方法首先将方程

变换为

的形式,首先选取一个初始点x0,然后通过

的方法不断逼近真值。

有多种变换形式,但是不是所有的变换方式都能收敛。

下面分别取一种收敛和发散的变换方法来计算:

(1)方式1:

将方程变换为

,取初值3,代码如下:

f(h)=((90+pi*h^3)/9/pi)^(1/2);

x=3;

%theinitialestimatedvalue

temp=4;

whileabs(temp-x)>

iff(x)==0

else

temp=x;

x=f(x);

vx=vpa(x,11);

disp(vx)

迭代次数26次,最终计算结果为2.0269057283,与标准值吻合。

函数

和h的图像如下:

(2)方式2:

将方程变换为h

f(h)=(9*h^2-90/pi)^(1/3);

x=5;

这种变换方式在所要求的值2.0269057283处不收敛,而是收敛在方程的另一零点8.6139066566处,所以不管怎么变换初始点的取值,都不能得到所要的结果。

具体的关于收敛性的判断准则在第3次上机作业中已描述,此处不再赘述。

4、Newton-Raphson方法

Newton-Raphson方法主要使用了泰勒级数的前两项近似来求根。

,令

,则

,即将函数图像在当前点的切线与x轴的交点作为下一个迭代点。

计算程序如下:

df(h)=diff(f);

%derivedfunctionoff(h)

x=x-f(x)/df(x);

vpa(x,11)

该方法只迭代了5次,便得到最终值2.0269057283,收敛速度远优于之前的各种方法。

下面用line函数画出迭代过程示意图:

line([temp,x],[f(temp),0],'

holdon

line([temp,temp],[0,f(temp)],'

第2次迭代的局部放大图如下:

第3,4,5次迭代

之后的迭代图像太密,就不一一画出了。

从图像中也可明显看出,在本例中,Newton-Raphson方法的收敛速度非常快,主要还是因为用泰勒级数前两项近似原函数具有很高的精度。

5、割线法

割线法的思想类似于Newton-Raphson方法,不过使用了差分来估计斜率,其迭代方法为

计算代码如下:

x1=4;

x2=3;

%theinitialestimateofzeropointvalue

whileabs(x1-x2)>

iff(x2)==0

temp=x2;

%storex2

x2=x2-f(x2)*(x2-x1)/(f(x2)-f(x1));

x1=temp;

vpoi=vpa(x2,11);

disp(vpoi);

迭代次数为5次,迭代次数也很快,最终值为2.0269057283,与标准值吻合。

小结:

1.对于二分法和试位法,均属于划界法,但是试位法的收敛速度还是明显要快于二分法,结合前面的图形和分析,这是因为在根附近的位置,函数图像接近于直线,此时使用试位法可以很快地收敛到真值附近,而二分法并不考虑区间端点对应的函数值。

即若函数在所求值附近的二阶导数越越接近于0,函数图像在所求值附近就越接近直线,收敛也就更快。

2.不动点迭代法的收敛性与收敛时的优劣性与所选取的变换方式相关。

对于是否收敛可根据不动点定理判断,而不同的变换方法可能有不同的收敛速度,一般单调收敛优于振荡收敛,在不同的方法中可择优选取。

3.Newton-Raphson方法在单根附近是二次收敛的,误差大致与前一次迭代的误差平方成正比,所有收敛速度远优于前面三种方法。

4.割线法使用了差分代替了Newton-Raphson方法中的导数,所以收敛速度稍弱于Newton-Raphson方法,但是还是很快。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 销售营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1