C语言程序设计循环结构之科学计算

C语言程序设计循环结构之科学计算

ID:39320048

大小:262.76 KB

页数:18页

时间:2019-06-30

C语言程序设计循环结构之科学计算_第1页
C语言程序设计循环结构之科学计算_第2页
C语言程序设计循环结构之科学计算_第3页
C语言程序设计循环结构之科学计算_第4页
C语言程序设计循环结构之科学计算_第5页
资源描述:

《C语言程序设计循环结构之科学计算》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第八讲循环结构的经典算法之二 程序设计举例(本节示例需重点掌握)教学重点:1.用普通迭代法求一元非线性方程的近似实根r2.用二分法求一元非线性方程在某区间上的近似实根r3.用牛顿切线法(又叫Newton迭代法)求一元非线性方程在某区间上的近似实根r4.用矩形法求一元函数在某区间上的积分近似值S5.用梯形法求一元函数在某区间上的积分近似值S6.加密、解密算法所谓非线性方程,就是因变量与自变量之间的关系不是线性的关系,这类方程很多,例如平方关系、对数关系、指数关系、三角函数关系等等。5.9循环应用举例1.用普通迭代法求方程的近似实根r5.9循环应用举例1.用普通迭

2、代法求方程的近似实根r普通迭代法的基本思想:求一元非线性方程f(x)=0的实根。(1)、将方程f(x)=0化为它的等价方程:x=g(x),g(x)称为迭代函数。(2)、设定一个x的初值x0;(3)、用x=g(x)求出x的下一个值x1;(4)、再将x1代入上述公式,求出x的下一个值x2;(5)、如此继续下去,直到前后两次求出的x值满足要求;迭代法也称辗转法,是一种不断用变量的旧值递推新值的过程。5.9循环应用举例1.用普通迭代法求方程的近似实根r例1:编写程序,用普通迭代法求方程f(x)=x+sin(1.2x)-2.15=0在区间[0,5]上的近似实根r,迭代初

3、值自选,精确到0.0001。〔提示:必须把方程f(x)=0化成其等价方程x=g(x)〕#include#includemain(){doublex,x0;x0=2.5;/*迭代初值自选*/do{x=x0;x0=2.15-sin(1.2*x);/*转化后的等价方程x=g(x)*/}while(fabs(x-x0)>=1e-4);printf("%.4f",x0);}5.9循环应用举例2.用二分法求一元非线性方程在某区间上的近似实根r原理:对于方程f(x)=0,解方程即要求f(x)的所有零点,(1)先输入a、b的值,求f(a)

4、和f(b);(2)如果f(a)和f(b)同号,说明在区间[a,b]内无实根,返回步骤(1),重新输入a和b的值;如果f(a)和f(b)异号,说明在区间[a,b]内一定有一个零点,即实根。(3)求f[(a+b)/2],现在假设f(a)<0,f(b)>0,(a0,则在区间(a,(a+b)/2)内有零点,令b=(a+b)/2,从(3)开始继续使用中

5、点函数值判断。这样就可以不断接近零点,通过每次把f(x)的零点所在小区间收缩一半的方法,使区间的两个端点逐步迫近函数的零点,以求得零点的近似值,这种方法叫做二分法。例2:编写程序,用二分法求一元非线性方程f(x)=2x+sinx-2.15=0在区间(0,5)上的近似实根r,精确到0.0001。#include#includemain(){floata,b,x0,fa,fb,f0;do{scanf("%f,%f",&a,&b);fa=2*a+sin(a)-2.15;fb=2*b+sin(b)-2.15;}while(fa*fb>

6、0);do{x0=(a+b)/2;f0=2*x0+sin(x0)-2.15;if(fa*f0<0){b=x0;fb=f0;}else{a=x0;fa=f0;}}while(fabs(f0)>=1e-4);printf("%.4f",x0);}5.9循环应用举例3.用牛顿切线法求方程在某区间的近似实根rNewton切线法又叫Newton迭代法。此方法使用函数f(x)的泰勒级数的前面几项来寻找方程f(x)=0的根。5.9循环应用举例3.用牛顿切线法求方程在某区间的近似实根r先任意设定一个与真实的根r接近的值x0,作为第一次近似根,由x0求出f(x0),过点(x

7、0,f(x0))做f(x)的切线,切线交x轴于x1;把x1作为第二次近似根,再由x1求出f(x1),过点(x1,f(x1))做f(x)的切线,切线交x轴于x2;把x2作为第三次近似根,再由x2求出f(x2),再做切线。……如此继续下去,直到满足要求,得真实的根r的近似值。从图中可以看出:切线的斜率f'(x(n))=f(x(n))/(x(n)-x(n+1))因此得:x(n+1)=x(n)-f(x(n))/f'(x(n)),称为牛顿迭代公式。例3:编写程序,用Newton迭代法求方程f(x)=2x+cosx-2.6=0在区间[0,4]上的近似实根r,迭代初值自选,

8、精确到0.0001。提示:牛顿切线法的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。