- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
线性方程组的迭代法
一、课题名称:雅可比迭代法求解线性方程组
二、引言:
雅可比迭代的目的是利用此方法计算出线性方程组符合一定精度的解,它的基本思想是将联立方程组的求解,归结为重复计算一组彼此独立的线性表达式,
雅可比迭代的意义:在科学计算与工程
您可能关注的文档
最近下载
- 机械制图-形位公差培训讲义.pptx VIP
- 11.21 峥嵘岁月 课件-2024-2025学年高中音乐人音版(2019) 必修 音乐鉴赏.pptx VIP
- 08D800-7 民用建筑电气设计与施工-室外布线.docx VIP
- 16MR204城市道路-透水人行道铺设图集.docx VIP
- 肿瘤的诊断课件.ppt VIP
- DB1309T122-2022《海水池塘对虾养殖技术规范》.docx VIP
- 110kV变电站防雷接地施工方案.doc VIP
- 《电路分析基础》习题解析汇总(卢飒第二版) 第1--11章.docx VIP
- —机械制图与形位公差 识图与公差.ppt VIP
- 十足股份鲜食认证测试卷.doc
文档评论(0)