欢迎来到天天文库
浏览记录
ID:59194910
大小:70.54 KB
页数:4页
时间:2020-09-10
《数值分析上机习题.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、习题二1题目20.(上机题)Newton迭代法(1)给定初值及容许误差,编制Newton法解方程根的通用程序。(2)给定方程,易知其有三个根,,。①由Newton方法的局部收敛性可知存在,当时,Newton迭代序列收敛于根。试确定尽可能大的。②试取若干初始值,观察当,,,,时Newton序列是否收敛以及收敛于哪一个根。(3)通过本上机题,你明白了什么?2程序代码2.1Newton法解方程通用程序doubleNewtonIteration(doublex0,doubleeps)//Newtoniterationmethod{doublex1,x2;
2、x1=x0;x2=x1-f(x1)/df(x1);while(fabs(x1-x2)>=eps){x1=x2;x2=x1-f(x1)/df(x1);}returnx1;}2.2求解尽可能大doubleMaximalDeviateRange()//Determinethemaxrangeforconvergence.{doublestep=1e-5;//steplengthintcnt=1;//stepcountdoubledelta;cout<<"**********************NewtonIteration(eps=1e*5)***
3、*******************"<4、。通过本次上机编程时间并通过多次的调试从运行结果很好的验证了教材上牛顿迭代法具有局部收敛性这一重要性质。对于不同的初值,迭代序列会收敛于不同的根,所以在某个区间内求根对于初值的选取有很大的关系。产生上述结果的原因是区间不满足大范围收敛的条件。2完整代码#include#include#includeusingnamespacestd;doubleeps=1e-5;doublef(doublex)//FunctionF(x){return(x*x*x)/3-x;}doubledf(doublex5、)//DerivativeoffunctionF(x){return(x*x)-1;}doubleNewtonIteration(doublex0,doubleeps)//Newtoniterationmethod{doublex1,x2;x1=x0;x2=x1-f(x1)/df(x1);while(fabs(x1-x2)>=eps){x1=x2;x2=x1-f(x1)/df(x1);}returnx1;}doubleMaximalDeviateRange()//Determinethemaxrangeforconvergence.{double6、step=1e-5;//steplengthintcnt=1;//stepcountdoubledelta;cout<<"**********************NewtonIteration(eps=1e*5)**********************"<7、8、2);Calculate(-delta/2);Calculate(delta/2);Calculate((1+delta)/2);Cal
4、。通过本次上机编程时间并通过多次的调试从运行结果很好的验证了教材上牛顿迭代法具有局部收敛性这一重要性质。对于不同的初值,迭代序列会收敛于不同的根,所以在某个区间内求根对于初值的选取有很大的关系。产生上述结果的原因是区间不满足大范围收敛的条件。2完整代码#include#include#includeusingnamespacestd;doubleeps=1e-5;doublef(doublex)//FunctionF(x){return(x*x*x)/3-x;}doubledf(doublex
5、)//DerivativeoffunctionF(x){return(x*x)-1;}doubleNewtonIteration(doublex0,doubleeps)//Newtoniterationmethod{doublex1,x2;x1=x0;x2=x1-f(x1)/df(x1);while(fabs(x1-x2)>=eps){x1=x2;x2=x1-f(x1)/df(x1);}returnx1;}doubleMaximalDeviateRange()//Determinethemaxrangeforconvergence.{double
6、step=1e-5;//steplengthintcnt=1;//stepcountdoubledelta;cout<<"**********************NewtonIteration(eps=1e*5)**********************"<7、8、2);Calculate(-delta/2);Calculate(delta/2);Calculate((1+delta)/2);Cal
7、8、2);Calculate(-delta/2);Calculate(delta/2);Calculate((1+delta)/2);Cal
8、2);Calculate(-delta/2);Calculate(delta/2);Calculate((1+delta)/2);Cal
此文档下载收益归作者所有