计算方法方程的近似解法实验报告张琳.docVIP

计算方法方程的近似解法实验报告张琳.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算方法方程的近似解法实验报告张琳

《数值分析》实验报告 题目名称: 方程的近似解法 学 号: 姓 名: 张琳 _____ 任课教师:__于延_________ 第三章 方程的近似解法 实验目的: 编写用迭代法、牛顿法、对分区间法、弦线法解非线性方程的程序; 2、实验分析: 计算方法分析: §3.1 二分法 二分法或称对分法是求方程近似解的一种简单直观的方法。 问题:设函数((x)在[a, b]上连续,且((a) ((b)0,则((x)=0在[a, b]内至少有一零点,[a, b]称有根区间,若((x)=0在[a, b]内有唯一根x*,求满足精度(要求的近似根。 二分法的基本思想:计算中通过对分区间、缩小区间范围的步骤搜索零点的位置。 二分法的计算过程如下: (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,b]([a1,b1] ( [a1,b1] (…( [ak,bk] (… 其中[ak,bk]的长度是[ak-1,bk-1]的一半, lin(bk-ak)=0, limxk=x* 实际计算时,可按精度(要求结束二分法过程: (1) 当(bk+1-ak+1((时,有(x*-xk((,计算结束 (2) 要(x*-xk((, 只需 即 k+1 所以 作k+1次二分法,计算结束。 实现代码: #include stdio.h #include math.h #include iostream 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满足精度( 要求的近似根。 迭代法思想方法: 将((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-xk(( 时取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)) 例 用迭代法求 的解 实现代码: #includemath.h #includeiostream using namespace std; #define E 2.71828 float fun(float x) { return (1.0/2)*log(4-x); } int main() {

文档评论(0)

panguoxiang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档