《数值计算方法》实验报告
实验名称:实验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