欢迎来到天天文库
浏览记录
ID:14157408
大小:137.05 KB
页数:8页
时间:2018-07-26
《非线性方程的简单迭代法和steffensen迭代法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《数值计算方法》实验报告实验名称:实验1非线性方程的简单迭代法和Steffensen迭代法实验题目:分别用简单迭代法和Steffensen迭代法求方程在[1,2]内的一个实根.实验目的:理解并掌握简单迭代法和Steffensen迭代法基础理论:简单迭代法和Steffensen迭代法1).简单迭代法的原理:将一元非线性方程:改写成等价方程:,对此,从某个初始值x0开始,对应式构成迭代公式,这样就可以确定序列(k=0,1,2…)。如果有极限,由式两边取极限可得,可知为方程的近似解。2)Steffensen迭代法的原理:通过把改进的Aitk
2、en方法应用于根据不动点迭代所得到的线性收敛序列,将收敛速度加速到二阶。实验环境:操作系统:Windows7;实验平台:TurboC++实验过程:写出算法→编写程序→调试运行程序→计算结果1)简单迭代法的算法:Input:初始近似值x0,精度要求del,最大迭代次数NOutput:近似解x或失败信息1.n←12.WhilenNdo;3.x←f(x0);4.if
3、x-x0
4、5、returnx;1.end2.n←n+1;3.X0←x;4.End5.returnFalse;//超出最大迭代次数1)Steffensen迭代法6、的算法:Input:区间端点a,b;精度要求del;最大迭代次数NOutput:近似解或失败信息1.n←12.whilenNdo;3.y←f(x0);4.z←f(y);5.x←x0-;6.If7、x-x08、9、returnx;8.end9.n←n+1;10.x0←x;11.end12.returnFalse;实验结果a,用简单迭代法计算的结果结果约为1.365230b.用Steffensen迭代法计算的结果:近似解为:1.365230给出程序:1,简单迭代法的程序(C++)#include"stdio.h"#incl10、ude"math.h"#definephi(x)0.5*sqrt(10-x*x*x)voidmain(){intn=1,N;floatx,x0,del;printf("x0=");scanf("%f",&x0);printf("del=:");scanf("%f",&del);printf("N=");scanf("%d",&N);printf("kx(k)");printf("%2d%f",0,x0);while(n11、f",x);return;}printf("%2d%f",n,x0);n=n+1;x0=x;}printf("%d次迭代后未达到精度要求.",N);}2,Steffensen迭代法的程序(C++)#include"stdio.h"#include"math.h"#definephi(x)0.5*sqrt(10-x*x*x);voidmain(){intn=1,N;floatx,x0,del,y,z,a,b;printf("x0=");scanf("%f",&x0);printf("del=:");scanf("12、%f",&del);printf("a=");scanf("%f",&a);printf("b=");scanf("%f",&b);printf("N=");scanf("%d",&N);printf("kx(k)");printf("%2d%f",0,x0);while(n13、,n,x0);n=n+1;x0=x;}printf("%d次迭代后未达到精度要求.",N);}结果分析:1.用简单迭代法和Steffensen迭代法都能求出非线性方程的近似解,且用简单迭代法和Steffensen迭代法求出的近似解基本一样。2.用Steffensen迭代法来求解时迭代的次数少很多,可见Steffensen迭代法加速了收敛速度。
5、returnx;1.end2.n←n+1;3.X0←x;4.End5.returnFalse;//超出最大迭代次数1)Steffensen迭代法
6、的算法:Input:区间端点a,b;精度要求del;最大迭代次数NOutput:近似解或失败信息1.n←12.whilenNdo;3.y←f(x0);4.z←f(y);5.x←x0-;6.If
7、x-x0
8、9、returnx;8.end9.n←n+1;10.x0←x;11.end12.returnFalse;实验结果a,用简单迭代法计算的结果结果约为1.365230b.用Steffensen迭代法计算的结果:近似解为:1.365230给出程序:1,简单迭代法的程序(C++)#include"stdio.h"#incl10、ude"math.h"#definephi(x)0.5*sqrt(10-x*x*x)voidmain(){intn=1,N;floatx,x0,del;printf("x0=");scanf("%f",&x0);printf("del=:");scanf("%f",&del);printf("N=");scanf("%d",&N);printf("kx(k)");printf("%2d%f",0,x0);while(n11、f",x);return;}printf("%2d%f",n,x0);n=n+1;x0=x;}printf("%d次迭代后未达到精度要求.",N);}2,Steffensen迭代法的程序(C++)#include"stdio.h"#include"math.h"#definephi(x)0.5*sqrt(10-x*x*x);voidmain(){intn=1,N;floatx,x0,del,y,z,a,b;printf("x0=");scanf("%f",&x0);printf("del=:");scanf("12、%f",&del);printf("a=");scanf("%f",&a);printf("b=");scanf("%f",&b);printf("N=");scanf("%d",&N);printf("kx(k)");printf("%2d%f",0,x0);while(n13、,n,x0);n=n+1;x0=x;}printf("%d次迭代后未达到精度要求.",N);}结果分析:1.用简单迭代法和Steffensen迭代法都能求出非线性方程的近似解,且用简单迭代法和Steffensen迭代法求出的近似解基本一样。2.用Steffensen迭代法来求解时迭代的次数少很多,可见Steffensen迭代法加速了收敛速度。
9、returnx;8.end9.n←n+1;10.x0←x;11.end12.returnFalse;实验结果a,用简单迭代法计算的结果结果约为1.365230b.用Steffensen迭代法计算的结果:近似解为:1.365230给出程序:1,简单迭代法的程序(C++)#include"stdio.h"#incl
10、ude"math.h"#definephi(x)0.5*sqrt(10-x*x*x)voidmain(){intn=1,N;floatx,x0,del;printf("x0=");scanf("%f",&x0);printf("del=:");scanf("%f",&del);printf("N=");scanf("%d",&N);printf("kx(k)");printf("%2d%f",0,x0);while(n11、f",x);return;}printf("%2d%f",n,x0);n=n+1;x0=x;}printf("%d次迭代后未达到精度要求.",N);}2,Steffensen迭代法的程序(C++)#include"stdio.h"#include"math.h"#definephi(x)0.5*sqrt(10-x*x*x);voidmain(){intn=1,N;floatx,x0,del,y,z,a,b;printf("x0=");scanf("%f",&x0);printf("del=:");scanf("12、%f",&del);printf("a=");scanf("%f",&a);printf("b=");scanf("%f",&b);printf("N=");scanf("%d",&N);printf("kx(k)");printf("%2d%f",0,x0);while(n13、,n,x0);n=n+1;x0=x;}printf("%d次迭代后未达到精度要求.",N);}结果分析:1.用简单迭代法和Steffensen迭代法都能求出非线性方程的近似解,且用简单迭代法和Steffensen迭代法求出的近似解基本一样。2.用Steffensen迭代法来求解时迭代的次数少很多,可见Steffensen迭代法加速了收敛速度。
11、f",x);return;}printf("%2d%f",n,x0);n=n+1;x0=x;}printf("%d次迭代后未达到精度要求.",N);}2,Steffensen迭代法的程序(C++)#include"stdio.h"#include"math.h"#definephi(x)0.5*sqrt(10-x*x*x);voidmain(){intn=1,N;floatx,x0,del,y,z,a,b;printf("x0=");scanf("%f",&x0);printf("del=:");scanf("
12、%f",&del);printf("a=");scanf("%f",&a);printf("b=");scanf("%f",&b);printf("N=");scanf("%d",&N);printf("kx(k)");printf("%2d%f",0,x0);while(n13、,n,x0);n=n+1;x0=x;}printf("%d次迭代后未达到精度要求.",N);}结果分析:1.用简单迭代法和Steffensen迭代法都能求出非线性方程的近似解,且用简单迭代法和Steffensen迭代法求出的近似解基本一样。2.用Steffensen迭代法来求解时迭代的次数少很多,可见Steffensen迭代法加速了收敛速度。
13、,n,x0);n=n+1;x0=x;}printf("%d次迭代后未达到精度要求.",N);}结果分析:1.用简单迭代法和Steffensen迭代法都能求出非线性方程的近似解,且用简单迭代法和Steffensen迭代法求出的近似解基本一样。2.用Steffensen迭代法来求解时迭代的次数少很多,可见Steffensen迭代法加速了收敛速度。
此文档下载收益归作者所有