- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1元非线性方程的数值解法
实习题目:一元非线性方程的数值解法
【实习目的】
1 通过实习进一步掌握牛顿迭代法和弦截法的基本思想;
2 通过实习进一步掌握牛顿迭代法和弦截法的计算步骤,并能灵活应用;
3 通过上机调试运行,对方程求根的牛顿迭代法和弦截法程序进行改进,逐步培养解决实际问题的编程能力;
【实习要求】
1 熟悉Turbo C 的编译环境;
2 实习前复习牛顿迭代法和弦截法的基本思想和过程;
3 实习前复习牛顿迭代法和弦截法的计算步骤。
【实习设备】
1 硬件设备:单机或网络环境下的微型计算机一台;
2 软件设备:DOS3.3以上操作系统,Turbo C 2.0编译器。
【实习内容】
1)实习一 牛顿迭代法
(1)用牛顿迭代法求方程在x=2.0附近的一个实根,精度要求为。
要求设置一个最大迭代次数N , 如果迭代次数超过预先设定的最大次数N , 但仍然达不到精度要求时,则认为方法失败,并给出失败信息。
成功的情况下,要求输出的格式为如下形式:
i=1 x1=2.000 000
… …
… …
失败的情况下,要求输出的格式为如下形式:
After % d repeate , no solved
程序为:
# includestdio.h
# includemath.h
# define N 10
# define k 0.000001
double f(double x)
{
return exp(x)-x-3;
}
double g(double x)
{
return exp(x)-1;
}
void main()
{ int i;
double x2,x1=2.0;
for(i=1;i=N;i++)
{
printf(When i=%d,x=%.6f\n,i,x1);
x2=x1-f(x1)/g(x1);
if(fabs(x2-x1)k)
x1=x2;
else
{
printf(When i=%d,x=%.6f\n,i,x2);
break;
}
}
if(iN) printf(After %d repeate,no solved and if you want to obtain the more accurate value,please use another means!,N);
}
运行结果截图为:
(2)思考题
① 牛顿迭代法的基本思想是什么?
牛顿迭代法是以微分为基础的,微分就是用直线来代替曲线,由于曲线不规则,那么研究直线代替曲线后,剩下的差值是不是高阶无穷小,如果是高阶无穷小,那么这个差值就可以扔到不管了,只用直线就可以了,这就是微分的意义。
牛顿法是牛顿在17世纪提出的一种求解方程f(x)=0.多数方程不存在求根公式,从而求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要。
牛顿迭代法是取x0之后,在这个基础上,找到比x0更接近的方程的跟,一步一步迭代,从而找到更接近方程根的近似跟。方法使用函数f(x)的泰勒级数的前面几项来寻找方程f(x) = 0的根。牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程f(x) = 0的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根。另外该方法广泛用于计算机编程中。
设r是f(x)=0的根,选取x0作为r初始近似值,过点(x0,f(x0))做曲线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次近似值。上式称为牛顿迭代公式。
② 若将题中的 ,将其取更大一点的值 ,迭代次数是否会发生变化?
迭代次数会发生变化。
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 。
④ 方程无解的情况下,要求输出方程无解的信息。
⑤ 方程有解的情况下,请写出程序运行的结果。
程序编写为:
#includestdio.h
#includemath.h
#de
文档评论(0)