数值计算实验介绍.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
线性方程的数值解法 一、课题名称:二分法求解非线性方程 二、引言: 目的:求方程f(x)=0的根 二分法所使用的方法主要是介值定理,它的基本思想是逐步缩小根存在的区间,搜索根所在的位置 许多实际算法表现为某种无穷递推过程的阶段,实现这类算法,不但需要建立计算公式,还需要解决精度控制问题,而我们下面介绍的二分法就是用来解决这一类问题,它是电子计算机上一种常用的算法。 三、算法: 首先,满足f(a)f(b)0,给定ε(根的容许误差)或δ(|f(x)|的容许误差)。 1、对分【a,b】,取x=(a+b)/2,计算f(); 2、若|b-a|ε,或|f()|δ,则取ζ=,停机; 3、判断根所在新区间 若f(a)f()≤0,则【】=【a,】 若f(a)f()0 ,则【】=【,b】 =(b-a)/2 4、转向1,重复上述步骤。 四、结构程序设计(求的根) program main implicit none real :: a=1.0000 real :: b=1.5000 real,parameter :: c=0.0050 real x,y0,y do while( b-a=c) y0=a**3-a-1 x=(a+b)/2 y=x**3-x-1 if( y*y00) then a=x else b=x end if write (*,*)x,y end do stop end 五、结果及讨论分析 1、结果: 2、误差分析: 第k次二分后,则在二分过程中可以获得一个近似根的序列,该序列以根为极限 在实际计算时,人们不可能也没有必要完成这种无穷过程,因为计算结果允许带有一点的误差。由于 只要二分足够多次(即k充分大),便有 这里ε为预定精度,数值计算中的近似是正常的,计算误差是不可避免的。 3、收敛性分析: 对于二分法,只要能够保证在给定的区间内有根,使能够收敛的,当时收敛的速度和给定的区间有关,而且总体上来说速度比较慢。牛顿法(程序见附),收敛速度要比二分法快,但是最终其收敛的结果与初值的选取有关,初值不同,收敛的结果也可能不一样,也就是结果可能不时预期需要得结果。 4、算法评价: 就二分法来说,它的优点有程序简单、方法可靠、收敛;缺点有无法解决多根、复根、一个切点的问题。 附: 1、简单迭代结构程序设计(求的根): program main implicit none real::x0 integer::k real::x1 integer,parameter::N=9 real,external::f k=0 x0=1.5 do while(k=N) write(*,*)k,x0 x0=f(x0) k=k+1 end do function f(x) real::x,f f=(x+1)**(real(1)/real(3)) return end 2、牛顿迭代结构程序设计(求): program main implicit none real::x0,x1,x2 real,parameter ::a=0.000005 integer k integer,parameter :: n=20 read(*,*)x0 x1=2*x0 if(x1/=0) then do k=0,n write (*,*)k,x0 x2=x0-(x0**2-115)/x1 if(abs(x2-x0)a) then exit else if(k/=n) then x0=x2 end if end do else write(*,*)cuowu end if stop end 3、埃特金算法结构流程图(求x=在x=0.5附近的根): program main implicit none real x0,x1,x2 real,parameter ::a=0.0000005 integer k integer,parameter :: n=20 read(*,*)x0 do k=0,n x1=exp(-x0) x2=exp(-x1) x2=x2-(x2-x1)**2/(x2-2*x1+x0) write (*,*)k,x1,x2,x0 if(abs(x2-x0)a) then exit else if(k/=n) then x0=x2 end if end do stop end 线性方程组的迭代法 一、课题名称:雅可比迭代法求解线性方程组 二、引言: 雅可比迭代的目的是利用此方法计算出线性方程组符合一定精度的解,它的基本思想是将联立方程组的求解,归结为重复计算一组彼此独立的线性表达式, 雅可比迭代的意义:在科学计算与工程

文档评论(0)

武神赵子龙 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档