非线性方程的简单迭代法和Steffensen迭代法_第1页
非线性方程的简单迭代法和Steffensen迭代法_第2页
非线性方程的简单迭代法和Steffensen迭代法_第3页
非线性方程的简单迭代法和Steffensen迭代法_第4页
非线性方程的简单迭代法和Steffensen迭代法_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数值计算方法实验报告实验名称:实验1 非线性方程的简单迭代法和Steffensen迭代法 实验题目:分别用简单迭代法和Steffensen迭代法求方程 x3+4x2-10=0在 1, 2 内的一个实根.实验目的:理解并掌握简单迭代法和Steffensen迭代法 基础理论:简单迭代法和Steffensen迭代法1).简单迭代法的原理:将一元非线性方程:f(x)=0 改写成等价方程:x=r(x) ,对此,从某个初始值x0开始,对应式x=r(x) 构成迭代公式 xk+1=r(xk),k=0,1,. ,这样就可以确定序列 xk (k=0,1,2)。如果 xk 有极限 limk®¥x

2、k=x* ,由式 xk+1=r(xk),k=0,1,. 两边取极限可得*x=r(x) ,可知 *x*为方程f(x)=0的近似解。2)Steffensen迭代法的原理:通过把改进的Aitken方法应用于根据不动点迭代所得到的线性收敛序列,将收敛速度加速到二阶。ìïy=r(x)kkïïízk=r(yk)ï2()y-xkk ïxk+1=xk-ïzk-2yk+xkîy(x)=x- r(x)-x2r(r(x)-2r(x)+x 实验环境:操作系统:Windows 7;实验平台:Turbo C+实验过程:写出算法编写程

3、序调试运行程序计算结果1)简单迭代法的算法:Input:初始近似值x0,精度要求del,最大迭代次数N Output:近似解x或失败信息1. n12. While n3. xf(x0);4. if | x-x0|<del then5. | return x; £N do;6. end7. nn+1;8. X0x;9. End10. return False;/ 超出最大迭代次数2)Steffensen迭代法的算法:Input : 区间端点a,b;精度要求del;最大迭代次数Output:近似解或失败信息1. n12. while n £N do;3. yf(x0);4

4、. zf(y);5. xx0(y-x0)2z-2y+x0;6. If |x-x0|<del then;7. | return x;8. end9. nn+1;10. x0x;11. end12. return False;实验结果a,用简单迭代法计算的结果结果约为1.365230 Nb.用Steffensen迭代法计算的结果: 近似解为:1.365230给出程序:1,简单迭代法的程序(C+)#include "stdio.h"#include "math.h"#define phi(x) 0.5*sqrt(10-x*x*x)void main()i

5、nt n=1,N;float x,x0,del;printf("x0="); scanf("%f",&x0); printf("ndel=:"); scanf("%f",&del); printf("nN="); scanf("%d",&N);printf("nk x(k)");printf("n %2d %f ",0,x0);while (n<N) x=phi(x0);if(fabs(x-x0)<d

6、el)printf("n n%d次迭代后未达到精度要求.n",N); 2,Steffensen迭代法的程序(C+)#include "stdio.h"#include "math.h"#define phi(x) 0.5*sqrt(10-x*x*x);void main()int n=1,N;float x,x0,del,y,z,a,b;printf("x0="); scanf("%f",&x0); printf("ndel=:"); scanf("%f&q

7、uot;,&del); printf("n n=近似解 = %f n",x); return; printf("n %2d %f ",n,x0); n=n+1; x0=x;printf("na="); scanf("%f",&a); printf("nb="); scanf("%f",&b); printf("nN="); scanf("%d",&N); printf("nk x(k)");printf("n %2d %f ",0,x0);while (n<N) y=phi(x0);z=phi(y);x=x0-(y-x0)*(y-x0)/(z-2*y+x0);if(fabs(x-x0)<del)printf("n n%d次迭代后未达到精度要求.n",N); printf("n n=近似解 = %f n",x); return; printf("n %2d %f ",n,x0); n=n+1; x0=x;结

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论