资源描述:
《一元非线性方程的数值解法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实习题目:一元非线性方程的数值解法【实习目的】1通过实习进一步掌握牛顿迭代法和弦截法的基本思想;2通过实习进一步掌握牛顿迭代法和弦截法的计算步骤,并能灵活应用;3通过上机调试运行,对方程求根的牛顿迭代法和弦截法程序进行改进,逐步培养解决实际问题的编程能力;【实习要求】1熟悉TurboC的编译环境;2实习前复习牛顿迭代法和弦截法的基本思想和过程;3实习前复习牛顿迭代法和弦截法的计算步骤。【实习设备】1硬件设备:单机或网络环境下的微型计算机一台;2软件设备:DOS3.3以上操作系统,TurboC2.0编译
2、器。【实习内容】1)实习一牛顿迭代法(1)用牛顿迭代法求方程在x=2.0附近的一个实根,精度要求为。要求设置一个最大迭代次数N,如果迭代次数超过预先设定的最大次数N,但仍然达不到精度要求时,则认为方法失败,并给出失败信息。成功的情况下,要求输出的格式为如下形式:i=1x1=2.000000…………失败的情况下,要求输出的格式为如下形式:After%drepeate,nosolved程序为:#include#include#defineN10#definek0.0000
3、01doublef(doublex){returnexp(x)-x-3;}doubleg(doublex){returnexp(x)-1;}voidmain(){inti;doublex2,x1=2.0;for(i=1;i<=N;i++){printf("Wheni=%d,x=%.6f",i,x1);x2=x1-f(x1)/g(x1);if(fabs(x2-x1)>k)x1=x2;else{printf("Wheni=%d,x=%.6f",i,x2);break;}}if(i>N)printf
4、("After%drepeate,nosolvedandifyouwanttoobtainthemoreaccuratevalue,pleaseuseanothermeans!",N);}运行结果截图为:(2)思考题①牛顿迭代法的基本思想是什么?牛顿迭代法是以微分为基础的,微分就是用直线来代替曲线,由于曲线不规则,那么研究直线代替曲线后,剩下的差值是不是高阶无穷小,如果是高阶无穷小,那么这个差值就可以扔到不管了,只用直线就可以了,这就是微分的意义。牛顿法是牛顿在17世纪提出的一种求解方程f(x)=0.
5、多数方程不存在求根公式,从而求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要。牛顿迭代法是取x0之后,在这个基础上,找到比x0更接近的方程的跟,一步一步迭代,从而找到更接近方程根的近似跟。方法使用函数f(x)的泰勒级数的前面几项来寻找方程f(x)=0的根。牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程f(x)=0的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根。另外该方法广泛用于计算机编程中。设r是f(x)=0的根,选取x0作为r初始近似值,过点(x0,f(x0))
6、做曲线y=f(x)的切线L,L的方程为y=f(x0)+f'(x0)(x-x0),求出L与x轴交点的横坐标x1=x0-f(x0)/f'(x0),称x1为r的一次近似值,过点(x1,f(x1))做曲线y=f(x)的切线,并求该切线与x轴的横坐标x2=x1-f(x1)/f'(x1)称x2为r的二次近似值,重复以上过程,得r的近似值序列{Xn},其中Xn+1=Xn-f(Xn)/f'(Xn),称为r的n+1次近似值。上式称为牛顿迭代公式。②若将题中的,将其取更大一点的值,迭代次数是否会发生变化?迭代次数会发生变
7、化。2)实习二弦截法(1)用弦截法求方程的一个实根,初始近似值分别去0.5和10.6,精度要求为。(2)要求:①推导求出x的式子x=f(x)。②程序中要求设置一个最大迭代次数N。③对于输入的初始近似值x0,x1要求加以判断,即如果f(x0)f(x1)<0,则继续使用弦截法求方程的根;否则重新选取x0,x1,直到f(x0)f(x1)<0。④方程无解的情况下,要求输出方程无解的信息。⑤方程有解的情况下,请写出程序运行的结果。程序编写为:#include#include#d
8、efineeps0.00001floatf(floatx){returnx*exp(x)-1;}voidmain(){floatx0,x1,x2;inti;printf("inputx0,x1=");scanf("%f,%f",&x0,&x1);for(i=1;i<=100;i++){x2=x1-(f(x1)*(x1-x0))/(f(x1)-f(x0));if(fabs(x2-x1)9、
10、fabs(f(x2))