数值计算二分法简单迭代法Newton迭代法弦截法解读Word文档格式.docx

上传人:b****2 文档编号:15387067 上传时间:2022-10-29 格式:DOCX 页数:17 大小:199.15KB
下载 相关 举报
数值计算二分法简单迭代法Newton迭代法弦截法解读Word文档格式.docx_第1页
第1页 / 共17页
数值计算二分法简单迭代法Newton迭代法弦截法解读Word文档格式.docx_第2页
第2页 / 共17页
数值计算二分法简单迭代法Newton迭代法弦截法解读Word文档格式.docx_第3页
第3页 / 共17页
数值计算二分法简单迭代法Newton迭代法弦截法解读Word文档格式.docx_第4页
第4页 / 共17页
数值计算二分法简单迭代法Newton迭代法弦截法解读Word文档格式.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

数值计算二分法简单迭代法Newton迭代法弦截法解读Word文档格式.docx

《数值计算二分法简单迭代法Newton迭代法弦截法解读Word文档格式.docx》由会员分享,可在线阅读,更多相关《数值计算二分法简单迭代法Newton迭代法弦截法解读Word文档格式.docx(17页珍藏版)》请在冰豆网上搜索。

数值计算二分法简单迭代法Newton迭代法弦截法解读Word文档格式.docx

3判断|x1-x0|是否满足精度要求,如不满足则重复上述步骤。

4•输出x1,即为方程的近似解。

开始

2.3Newton迭代法

设r是n的根,选取•作为r的初始近似值,过点也』氐丈做曲线

S的切线L,L的方程为L—「也"

八1丘一Z;

求出L与x轴交点的

2.计算

JC少1—=———=

的切线,并求该切线与x轴交点的横坐标=「,称•一为r的二次近似

-迪

值。

重复以上过程,得r的近似值序列,其中,称为r的..

次近似值步骤:

1.计算原函数的导数f'

(x);

构造牛顿迭代公式

若f'

(x0)=0,退出计算,否则继续向下迭代。

3.若|x1-x0|满足精度要求,xi即为方程的近似解。

yes

输出

/

x1

/

L

(、结束

2.4弦截法

思想:

为加速收敛,改用两个端点都在变动的弦,用差商替代牛顿迭代公式的导数f'

(x)

1.构造双点弦法的公式

2计算x2=x1-f(x1)(x1-x0)/f(x1)-f(x0);

3•判断f(x2)是否满足精度要求,若没有则按照上述步骤继续迭代,否则输出x2.x2即为方程的近似解。

 

第3章测试结果及分析

测试结果

函数图像

函数Y=x5-3x3+x-1

分法俵1-1,1-2,1-3)

[-16-1.3]

k

xk

-1.45

5

-1.50156

10

-1.50493

1

-1.525

6

-1.50391

11

-1.505

2

-1.4875

7

-1.50508

12

-1.50504

3

-1.50625

8

-1.50449

13

-1.50506

4

-1.49688

9

-1.50479

14

-1.50507

表1-1

区间[-12-0.9]

-1.05

-0.998437

-1.00005

-0.975

-1.00078

-0.999976

-1.0125

-0.999609

-1.00001

-0.99375

-1.0002

-0.999994

-1.00312

-0.999902

-1

表1-2

区间[1.5,1.8]

1.65

1.69102

1.69029

1.725

1.69043

15

1.6875

1.69014

16

1.70625

1.69028

17

1.69687

1.69036

18

1.69219

1.69032

1.68984

1.6903

表1-3

简单迭代法(表2-1.2-2.2-3)

初值-1.5

-1.5

-1.50435

-1.50217

-1.50453

-1.50497

-1.50287

-1.50466

1.50499

-1.50341

-1.50476

-1.50501

-1.50381

-1.50483

-1.50412

-1.50489

-1.50505

表2-1

初值-1

x

初值1.6结果x=1.69028

1.6

1.68862

1.69023

1.65669

1.68927

1.69025

1.66987

1.68967

1.69027

1.6779

1.68991

1.68278

1.69006

19

1.68573

1.69015

20

1.68753

1.6902

表2-3

牛顿迭代法(表3-1.3-2,3-3)

初值-1.5结果x=-1.50507

-1.50471

表3-1

初值-1结果x=-1.50507

表3-2

1.69024

1.68602

1.68893

1.68985

表3-3

双点弦法(表4-1.4-2,4-3)

区间卜1.6,-1.3]结果x=-1.50507

f(xk)

0.03125

-1.50667

0.0784566

-1.66149

0.376502

-0.010079

-1.47175

-1.56322

0.000440988

-1.492

0.186801

2.30387e-006

表4-1

区间[-12-0.9]结果x=-1

-1.01393

0.0415678

0.000607777

-0.999999

-3.11969e-006

2.11001e-010

表4-2

区间[1.5,1.8]结果X=1.69028

1.64403

-0.676455

1.68071

-0.151106

1.69126

0.0157988

-0.000313515

-6.3006e-007

表4-3

从测试结果可以看出二分法和简单迭代法的收敛速度远大于牛顿迭代和弦

截法的收敛速度。

二分法和简单迭代法的公式易于构造和计算,牛顿迭代法虽然

收敛高,但要求导数,计算的复杂度高!

双点弦法随稍慢于牛顿跌代法,可以用

差商代替牛顿迭代法中的导数,降低了计算的复杂度!

附录:

源程序清单

#include<

iostream>

math.h>

usingnamespacestd;

〃定义寻根步长

〃解的区间

//方程近似解

//根的个数

//精度要求

doublefoot=0.3;

inta=-8,b=8;

double*rn=newdouble[5];

double*r=newdouble[5];

intm=0;

intx_count;

doubleprecision=0.000001;

//函数的表达式(xA5-3xA3+x-1)doublef(doublex){

//根据函数图像确定根的区间和迭代初值

return(pow(x,5)-3*pow(x,3)+x-1);

}voidinit(){

r[0]=-1.5;

r[1]=-1;

r[2]=1.6;

rn[0]=-1.6;

rn[1]=-1.2;

rn[2]=1.5;

}

//寻找根的区间

voidsearch(){〃若没有给出区间和初值,进行逐步搜索有根区间

for(inti=0;

i*foot-8<

8;

i++){

if(f(i*foot-8)*f((i+1)*foot-8)v0){

rn[m]=i*foot-8;

m++;

//=====================二分法==========================doubleDichotomy(doublea,doubleb){

doublemid=0;

inti=0;

while(fabs(b-a)>

precision){

mid=(a+b)/2;

if(f⑻*f(mid)<

=0)b=mid;

//判断与端点函数值得符号

elsea=mid;

cout<

<

mid<

endl;

r[x_count++]=mid;

returnmid;

//返回最终结果

//================简单迭代法=========================

//构造迭代公式doublefitera(doublex){

doubleresult=0;

doublexx=3*pow(x,3)-x+1;

if(xx<

=0){

XX=-xx;

returnpow(xx,1.0/5.0)*(-1);

else

returnpow(xx,1.0/5.0);

//简单迭代

doubleitera(doublex0){

x0<

endl;

doublex1=fitera(x0);

while(fabs(x1-x0)>

x0=x1;

x1=fitera(x0);

//没有到达精度要

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

当前位置:首页 > 医药卫生 > 基础医学

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

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