非线性方程的简单迭代法和Steffensen迭代法 下载本文

内容发布更新时间 : 2024/6/28 14:26:57星期一 下面是文章的全部内容请认真阅读。

《数值计算方法》实验报告

实验名称:实验1 非线性方程的简单迭代法和Steffensen迭代法 实验题目:分别用简单迭代法和Steffensen迭代法求方程

x3?4x2?10?0 在 [1, 2] 内的一个实根.

实验目的:理解并掌握简单迭代法和Steffensen迭代法 基础理论:简单迭代法和Steffensen迭代法 1).简单迭代法的原理:将一元非线性方程:

f(x)?0 改写

成等价方程:x??(x) ,对此,从某个初始值x0开始,对应式x??(x) 构成迭代公式 xk?1??(xk),k?0,1,... ,这样就可以确定序列

?xk? (k=0,1,2…)。如果 ?xk? 有极限

* 为方程

*x?xlimk ,由式 xk?1??(xk),k?0,1,... 两边取极限可得 k??x??(x) ,可知

**xf(x)?0的近似解。

2)Steffensen迭代法的原理:

通过把改进的Aitken方法应用于根据不动点迭代所得到的线性收敛序列,将收敛速度加速到二阶。

??y??(x)kk???zk??(yk)?2??y?xkk ?xk?1?xk??zk?2yk?xk?

?(x)?x?

??(x)?x?2?(?(x)?2?(x)?x

实验环境:操作系统:Windows 7; 实验平台:Turbo C++

实验过程:写出算法→编写程序→调试运行程序→计算结果 1)简单迭代法的算法:

Input:初始近似值x0,精度要求del,最大迭代次数N Output:近似解x或失败信息

1. n←1 2. While n3. x←f(x0);

4. if | x-x0|

?N do;

6. end 7. n←n+1; 8. X0←x; 9. End

10. return False;

// 超出最大迭代次数

2)Steffensen迭代法的算法:

Input : 区间端点a,b;精度要求del;最大迭代次数Output:近似解或失败信息

1. n←1 2. while n ?N do;

3. y←f(x0); 4. z←f(y); 5. x←x0-

?y?x0?2z?2y?x0;

6. If |x-x0|

实验结果

a,用简单迭代法计算的结果 结果约为1.365230

N