main(){"> main(){" />
欢迎来到天天文库
浏览记录
ID:56716203
大小:284.00 KB
页数:5页
时间:2020-07-05
《实验四非线性方程求根.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《数值分析》课程设计实验报告实验四非线性方程求根一、问题提出设方程有三个实根现采用下面六种不同计算格式,求f(x)=0的根或1、2、3、4、5、6、二、实验步骤#include"stdio.h"#includemain(){floatx0=1.8793;printf("初值是%f",x0);/*输出x0*/floatx1,x2,x3;x1=x0;inti;for(i=1;i<21;i++){x2=(3*x1+1)/(x1*x1);//第一种迭代方式//x2=(x1*x1*x1-1)/3;//第二种迭代方式//x2=pow(3*x1+1,1.0/3);//第三种迭代
2、方式//x2=1/(x1*x1-3);//第四种迭代方式//x2=sqrt(3+1/x1);//第五种迭代方式//x2=x1-(1/3.0)*((x1*x1*x1-3*x1-1)/(x1*x1-1));//第六种迭代方式x3=x2-x1;printf("第%d次迭代值为%f,相邻两次迭代值差值为%f",i,x2,x3);/*输出x2*/x1=x2;if(x3<0)x3=-x3;if(x3<0.000001)//误差精度break;}}当迭代格式为时,实验结果为由相邻两次迭代值差值结果可知,迭代过程处于发散状态。当迭代格式为,实验结果为由相邻两次迭代值差值结果可知,迭代过程前8次处
3、于发散状态,第8次之后处于收敛状态,并且经过16次迭代,得到非线性方程的一个根。当迭代格式为,实验结果为由相邻两次迭代值差值结果可知,迭代过程为收敛的,经过5次迭代后,得到非线性方程的一个根。当迭代格式为,实验结果为由相邻两次迭代值差值结果可知,迭代过程前4次处于发散状态,第4次之后处于收敛状态,并且经过11次迭代,得到非线性方程的一个根。当迭代格式为,实验结果为由相邻两次迭代值差值结果可知,迭代过程为收敛的,经过3次迭代后,得到非线性方程的一个根。当迭代格式为,实验结果为由相邻两次迭代值差值结果可知,迭代过程为收敛的,经过2次迭代后,得到非线性方程的一个根。三、实验结论本实验通过不
4、动点迭代法,完成非线性方程根值求解。对于f(x),如果其迭代式满足不动点存在的两个条件,则在其要求的区间内存在不动点,那么对于其所要求的区间上的所有点此迭代式都收敛。即此时初值的选取对于迭代收敛没有影响。初值的不同对于迭代式的敛散性和收敛阶没有影响,只是对于达到所要求误差的达到次数有一定的影响。分析迭代收敛和发散的原因如图所示:收敛情况发散情况
此文档下载收益归作者所有