




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数值分析实验报告题目名称: 方程的近似解法 学 号: 42120825 姓 名: 张琳 _ 任课教师:_于延_ 第三章 方程的近似解法1、 实验目的:编写用迭代法、牛顿法、对分区间法、弦线法解非线性方程的程序;2、实验分析:计算方法分析:3.1 二分法二分法或称对分法是求方程近似解的一种简单直观的方法。问题:设函数(x)在a, b上连续,且(a) (b)0,则(x)=0在a, b内至少有一零点,a, b称有根区间,若(x)=0在a, b内有唯一根x*,求满足精度e要求的近似根。二分法的基本思想:计算中通过对分区间、缩小区间范围的步骤搜索零点的位置。二分法的计算过程如下:(1)把a,b二等分,分点x0=(a+b)/2,若(x0)=0, 则实根x*=x0,计算结束,否则若(x0) (a)0, 则x*(a,x0), 取a1=a,b1=x0, 否则x*(x0,b), 取a1=x0,b1=b,得有根区a1,b1, 其长度是原a,b的一半。(2) 重复上述步骤,把a1,b1二等分,分点x1=(a1+b1)/2,若(x1)0, 又的得有根区a2,b2, 其长度是a1,b1的一半。(3)如此反复下去,若(xk)0, 则可的一列有根区间:a,ba1,b1 a1,b1 ak,bk 其中ak,bk的长度是ak-1,bk-1的一半, lin(bk-ak)=0, limxk=x*实际计算时,可按精度e要求结束二分法过程:(1) 当bk+1-ak+1e时,有x*-xke,计算结束(2) 要x*-xk所以 作k+1次二分法,计算结束。实现代码:#include #include math.h#include using namespace std;double f(double x)return pow(x,3)-1.8*pow(x,2)+0.15*x+0.65; void average(int n,double a,double b)double x=(a+b)/2; printf(n%4d: %8.6f,%8.6f %8.6f %c %8.6f,n,a,b,x,f(x)0?+:-,b-a);int main()double a,b,x;int n=0;a=0.5; b=1.25;printf(n N a,b x f(x) |b-a|); average(n+,a,b);while(fabs(b-a)1e-2)x=(a+b)/2.0;if(f(x)*f(a)0) a=x;if(f(x)*f(b)0) b=x;average(n+,a,b);coutendl方程的近似值为x*=(a+b)/2;system(pause);return 0;3.2 迭代法(逐次逼近法)问题:若(x)=0在a, b内有一根x*,求(x)=0满足精度e 要求的近似根。迭代法思想方法:将(x)=0转换成等价形式:x=g(x), (g(x)称迭代函数)给定初值x0,构造迭代序列: xx+1=g(xx) , k=0.1.2. limx k+1=limg(xk)=a时迭代法收敛(否则发散), 则a就是方程(x)=0的根。k k在计算中, 当xk+1-xke 时取a=xk+1为方程的根。迭代法的实现过程如下:(1)选取初值x0,并确定方程f(x)=0的等价形式x=(x);(2)计算x1=(x0);(3)如果|x1-x0|则停止计算;否则用x1代替x0,重复步骤(2)和(3)的过程;几何意义(1) 将求(x)=0的根转换成求:y=x, y=g(x) 的交点P*(x, g(x)(2) 构造点列:Pk (xk,g(xk) 逼近交点P*(x, g(x) 例 用迭代法求 的解实现代码:#include#includeusing namespace std;#define E 2.71828float fun(float x)return (1.0/2)*log(4-x);int main()float x0 = 1;float x1,x2;int i = 2;/double bj;x1=fun(x0);coutx0=x0endl;coutx1=x1endl;dox2 = fun(x1);coutxi=x2endl;i+;if(x1 = x2)coutx*=x2endl;break;x1 = x2;while(1);system(pause);return 0;3.3 牛顿迭代法牛顿迭代法对方程(x)=0, 可构造多种迭代公式xk+1=g(xk), 牛顿迭代法是借助于对函数(x) 作一阶泰勒展开而构造的一种迭代格式。将(x)在(x)=0在近似根x k作一阶泰勒展开: (x)=0可近似表示成: 设其根为x k+1, 有: 当(x k)0,有: (牛顿迭代公式)用此迭代公式求方程的近似根的方法称为牛顿迭代法。牛顿法的实现过程如下:(1)解非线性方程f(x)=0的Newton法是把非线性化的一种近似方法,把f(x)在点x0附近展开成Taylor级数;(2)取其线性部分作为非线性方程f(x)=0的近似方程;(3)再把在附近张开成Taylor级数,也取其线性部分作为f(x)=0的近似方程;(4)对于n=0,1,2,Nmax,求xn+1,并计算f(xn+1),若或|xn+1-xn|(容许误差),则停止计算;牛顿法的几何意义作y=(x)在x0点的切线与x轴的交点x1,再作y=(x)在x1点的切线与x轴的交点x2,,这样逐步逼近方程的根x*。如图:牛顿切线法示意图所以牛顿迭代法也称切线法。例 用牛顿法求 的解实现代码:#include #include #include #define E 2.71828double fun1(double x)/原函数return pow(E,2*x)+x-4;double fun2(double x)/一阶导函数return pow(E,2*x)*2+1;int main()int count =1;double x0,x1;x0 = 1.0;x1=x0-fun1(x0)/fun2(x0);printf(x1 = %fn,x1);while (fabs(fun1(x1)1e-8)/允许范围误差内,否则终止迭代count+;x0 = x1;x1=x0-fun1(x0)/fun2(x0);printf(x%d = %fn,count,x1);printf(迭代%d次得到方程的近似根为%f:n,count,x1);system(pause);return 0;3.4 弦截法(割线法)为避免导数的计算,在牛顿迭代公式中:用差商:代替导数(xk),就得到弦截法迭代公式: 对应的迭代法称为弦截法。弦截法的实现过程如下:(1)选定初始值x0,x1,并计算f(x0),f(x1)。(2)按迭代公式xn+1=xn-f(xn)/f(x1)-f(xn-1)(xn-xn-1);计算x2,再求出f(x2);(3)判别:如果飞f(x2)0,则迭代停止;否则用(x2,f(x2)和(x1,f(x1)分别替代(x1,f(x1)和(x0,f(x0),重复步骤2和3直至相邻两次迭代值之差在容许范围。弦截法的几何意义过两点P0(x0, (x0)和P1(x1, (x1)的做一条割线(弦),该割线与轴的交点就是生成的迭代点x2,再做过P1(x1, (x1)和P2(x2, (x2)的一条割线,该割线与x轴的交点是x3,继续做下去得到方程(x)=0的根, 如图2.4所示弦截法示意图事实上,差商:是割线的斜率。弦截法迭代与牛顿迭代法比较:(1)都是线性迭代法;(2)牛顿迭代法计算xk+1时,只用到前一步的xk,称单点迭代法,而弦截法迭代,要用到前两步的xk, xk-1, 称多点迭代法,(3)用弦截法迭代求根,每次只需计算一次函数值,而用牛顿迭代法每次要计算一次函数值和一次导数值。(4)弦截法收敛速度稍慢于牛顿迭代法。收敛的阶为1.618例 用弦截法求 的解实现代码:#include #include #include math.h#include using namespace std;#define E 2.71828double fun(double x)return pow(E,2*x)+x-4;int main()double x0,x1,x2;int count =2;x0 = 0.5;x1 = 1;x2=x1-fun(x1)*(x1-x0)/(fun(x1)-fun(x0);coutx0=x0endl;coutx1=x1endl;coutx2=x21e-8)/允许范围误差内,否则终止迭代count+;x0 = x1;x1=x2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030中国牙科消毒托盘行业发展趋势分析与未来投资战略咨询研究报告
- 2025年中国智能玩具照相机行业市场发展前景及发展趋势与投资战略研究报告
- 2025年中国电子元件制造行业市场深度评估及投资战略规划报告
- 2021-2026年中国海蟹养殖行业市场供需格局及投资规划建议报告
- 2018-2024年中国香荆芥酚市场竞争格局分析及投资方向研究报告
- 2021-2026年中国电镀工业市场深度评估及行业投资前景咨询报告
- 2025年中国绿色肥料行业市场全景分析及前景机遇研判报告
- 分队拓展活动方案
- 募捐馈赠活动方案
- 初中拾垃圾活动方案
- 2025年毕节市大方富民村镇银行招聘题库带答案分析
- 惠州市城乡规划管理技术规定(2020年)
- (高清版)TDT 1055-2019 第三次全国国土调查技术规程
- 23秋国家开放大学《视觉设计基础》形考任务1-5参考答案
- 大健康产业商业计划书
- GB∕T 7528-2019 橡胶和塑料软管及软管组合件 术语
- 常州市机械行业安管考试题库
- FANUC机器人R-2000iA机械单元维护手册
- 槽边排风罩的设计计算
- 超星尔雅学习通《国际金融》2020章节测试含答案(上)
- 危险性较大的分部分项工程清单
评论
0/150
提交评论