1 / 32
文档名称:

非线性方程求解.ppt

格式:ppt   大小:2,933KB   页数:32页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

非线性方程求解.ppt

上传人:文库新人 2022/1/30 文件大小:2.86 MB

下载得到文件列表

非线性方程求解.ppt

相关文档

文档介绍

文档介绍:非线性方程求解
第1页,本讲稿共32页
化工实际问题的提出
求解非线性方程是化工设计及模拟计算中必须解决的一个问题。与线性方程相比,非线性方程问题无论是从理论上还是从计算公式上,都要比线性方程复杂的多。对于一般的非线性)f(b)<0,则f(x)在[a,b]上至少有一零点,这是微积分中的介值定理,也是使用对分法的前提条件。计算中通过对分区间,逐步缩小区间范围的步骤搜索零点的位置。
如果我们所要求解的方程从物理意义上来讲确实存在实根,但又不满足f(a)f(b)<0,这时,我们必须通过改变a和b的值来满足二分法的应用条件。






总目录



第6页,本讲稿共32页

计算f(x)=0的一般计算步骤如下:
1、输入求根区间[a,b]和误差控制量ε,定义函数f(x)。
2、判断: 如果f(a)f(b)<0则转下,否则,重新输入a和b的值。
3、计算中点 x=(a+b)/2以及f(x)的值
分情况处理
(1)|f(x)|<ε:停止计算x*=x,转向步骤4
(2)f(a)f(x)<0:修正区间[a,x]→[a,b],重复3
(3)f(x)f(b)<0:修正区间[x,b]→[a,b],重复3
4、输出近似根x*。
右图给出对分法的示意图。
x3=(x0+x2)/2
x2= (x0+x1)/2
x0 x3 x1 x1






总目录



第7页,本讲稿共32页

Private Sub Command1_Click()
Dim x1, x2, x, y1, y2, y, eer
80 x1 = InputBox("x1")
x2 = InputBox("x2")
eer=inputbox(“eer”)
y1 = f(x1)
y2 = f(x2)
If y1 * y2 < 0 Then
GoTo 100
Else
Print "please repeat input x1 and x2"
GoTo 80
End If
100 x = (x1 + x2) / 2
y = f(x)
If Abs(y) <= Then
Print "the function root is "; x
Print "y="; y
Else
If y1 * y < 0 Then
x2 = x
y2 = y
GoTo 100
Else
x1 = x
y1 = y
GoTo 100
End If
End If
End Sub
Public Function f(x)
Dim y
y = x ^ 3 + x ^ 2 - 1
f = y
End Function






总目录



第8页,本讲稿共32页

用对分法求 在区间[1,2]之间的根。
解: (1) f(1)= -,f(2)=,由介值定理可得有根区间[a,b]=[1,2]。
(2) 计算x2=(1+2)/2=,f()= -,有根区间[a,b]=[,2]。
(3) 计算x3=(+2)/2=,f()=,有根区间[a,b]=[,]。
一直做到|f(xn)|<ε(计算前给定的精度)或|a-b|<ε时停止。详细计算结果见表4-1。
对分法的算法简单,然而,若f(x)在[a,b]上有几个零点时,如不作特殊处理只能算出其中一个零点;另一方面,即使f(x)在[a,b]上有零点,也未必有f(a)f(b)<0。这就限制了对分法的使用范围。对分法只能计算方程f(x)=0的实根。


对于多个零点的方程,我们可以通过将给定的区间[a,b]进行细分,然后在细分后的区间内用二分法分别求解,从而得到多个零点。例如求方程在0-30内的所有根。需要对二分