水力学中常用的基本计算方法
- 格式:doc
- 大小:88.00 KB
- 文档页数:7
水力学中常用的基本计算方法
水力学中经常会遇到一些高次方程,微分方程的求解问题。
多年来,求解复杂高次方程的基本方法便是试算法,或查图表法,对于简单的微分方程尚可以用积分求解,而边界条件较为复杂的微分方程的求解就存在着较大的困难,但随着计算数学的发展及计算机的广泛使用,一门新的水力学分支《计算水力学》应运而生,但用计算机解决水力学问题,还需要了解一些一般的计算方法。
在水力学课程中常用的有以下几种,现分述于后。
一、高次方程式的求解方法:
(一)二分法
1、二分法的基本内容:在区间[X1,X2]上有一单调连续函
数F(x)=0,则可绘出F(x)~X关系曲线。
如果在两端点处函数值异号即F(x1)·F(x2)<0,(见图(一)),则方程F (x)=0
,在区间[X1,X2]之间有实根存在,其根的范围大致
如下:取
22
1 3x
x x +
=
1°若F(x2)·F(x3)>0,
则解ξ∈[X1,X3]
2°若F(x2)·F(x3)<0,
则解ξ∈[X3,X2]
3°若F(x2)·F(x3)=0,
则解ξ=X3
对情况1°,可以令x2=x3,重复计算。
对情况2°,可以令x1=x3,重复计算。
当规定误差ε之后,只要|x 1-x 2|≤ε,则x 1(或x 2)就是方程F(x)=0的根。
显然,二分法的理论依据就是高等数学中的连续函数介值定理。
它的优点是思路清晰,计算简单,其收敛速度与公比为2
1的
等比级数相同;它的局限性在于只能求实根,而不能求重根。
2、二分法的程序框图(以求解明渠均匀流正常水深为例)
最后必须说明,二分法要求x 2值必须足够大,要保证F 1·F 2
<0,否则计算得不到正确结果。
为了避免x 2值不够大,产生计算错误,在程序中加入了判别条件F 1·F 2>0。
也可以给定x J 及步长△x ,让计算机选择x 2(x 2=x 1+△x)。
(二)牛顿法,
1、牛顿法的基本内容:设有连续函数F(x)=0,则可以绘出F(x)~x 关系曲线,选取初值x o ,过点(x o ·F(x o ))作一切线,其斜率为辅F '(x o ),切线与x 轴的交点是x 1,
则有:
)
()('
1o o o x F x F x x -
=
再过(x 1,F(x 1)作切线,如此类推得到牛顿法的一个迭代序列:x n+l =x n -F(x n )/F '(x n ),令x n =x n +1,重复计算,直至满足给定的精度要求,即|x n+1-x n |≤,从而得到方程F(x)=0的根。
牛顿法具有平方收敛速度,比较快,但计算工作量大,每次运算除计算函数值外,还要计算微商值。
对于牛顿法来讲,
只要F(x)在零点附近存在连续的二阶微商,ξ是F(x)的一重零点,且初值x o 充分接近于ξ,那么牛顿迭代就一定收敛。
2、牛顿迭代法的程序图框可以参看临界水深计算程序。
(三)迭代法
1、迭代法的基本内容:设有一方程F (x )=0,可以写成等
价形式x=φ(x),再做迭代式x n+1=φ(x n ),只要给定初始值x o ,用式子
进行反复运算,就可以得到了个序列{x n }。
如果序列{x n }收敛,并假设ξ=∞lim n x n +1=∞lim n φ(x n )=φ(ξ)也就是说ξ是方程F(x)=0的根。
一般可以根据问题的性质人为地规定精度ε,认为当|x n +1-x n |≤ε时,x n +1或x n 就是方程的根。
从上面可以看出,迭代法的实质就是把方程F(x)=0的根问题转化为求迭代序列{x n }的极限问题,是求
两曲线的交点问题,交点处的横坐标正好就是方程的解。
但是,用计算机进行迭代计算,最关键的问题就是要构造出正确的迭代计算公式;如果构造的迭代计算公式不适当,或者初值给的不合适,则都可能导致计算不收敛或者发生计算错误。
例如,泄水建筑物下游收缩水深的计算,其基本数学公式是:
2
2
22c
c o h g q
h E ϕ+
=
x n+1=φ(x n ) x n =x n +1
若进行迭代计算选用如下公式:
()
122c o c h E g q
h -=
ϕ
(h c 1为初值)
则只要初值h c 1∈[0,E o ],则计算结果均收敛于正确解。
如若选用迭代公式,2
1
2
22
2c o c h g q
E h ϕ-
=。
只要初值h c 1>0,则计算均
收敛,但收敛于下游一个较大的淹没水深,并非正确解,发生计算错误。
在非棱柱体明渠水面线计算中,同样存在这一问题。
可见迭代公式选择的重要性。
迭代公式的收敛性可以用下述定理描述:把方程F(x)=0改写成x=φ(x),如果φ(x)满足lipschitz 条件:即对任意的x 1和x 2,都有|φ(x 1)-φ(x 2)|≤L|x 1-x 2|,其中L 为一与x 1和x 2均无关的正常数(简称李氏常数);若L <1,则迭代收敛,收敛的准确解为ξ,其收敛速度为:|x n -ξ|≤
o
n
x x L
L
--11
高次方程的解往往不是一个,因此构造出迭代公式,并判定其收敛之后,尚要根据问题的背景及实际情况对收敛解进行分析讨论,确认为是真解方可,否则,尚需修改初值或重新构造迭代公式。
2、迭代法的程序框图可以参看水跃水力计算程序。
本程序集中迭代法应用较多,主要原因是迭代法思路简单明了,收敛较快,程序也短。
二、插值法和数据拟合法
插值法和数据拟合法都是根据给定的数据表(如水位流量资料),设法寻找一个解析形式的函数φ(x),来近似地代替这些数据间的函数关系f(x)。
但插值法和数据拟合法之间又有不同之处。
插值法要求求得的插值函数y=φ(x)在插值结点阵
字库x 1上都满足y i =φ(x i ),即要求插值函数曲线通过所有的插值结点(x i ,y i ),但一般的实验数据中总是有观测误差存在,因此曲线y=φ(x)通过所有的实验点会使曲线保留全部的观测误差的影响,这是我们所不希塑的。
数据拟合法则克服了这点不足,它不要求曲线φ(x)通过所有的点(x i ,y i ),仅要求曲线和数据之间存在着较高的相关系数即可。
关于插值法和数据拟合法的具体内容可参看有关方面的书籍。
本程序集中,插值法及数据拟合法均有应用,例如,实例二中,上游水位与过水断面面积之间的关系就是应用分段线性插值得到它的分段函数表达式的;再如,较多的查图或者查表计算问题,我们都是应用数据拟合法求出它的函数式,应用的程序是熊运章教授的EDPS 程序,分析得出的拟合曲线其相关系数均在0.99以上。
三、数值积分法
1、数值积分法的基本内容:在区间[a 、b]上定义的黎曼可积函数f(x),由于f(x)可能以表格形式给出,也可能f(x)的原函数无法用初等函数描述,因此直接积分存在着困难,但我们可以通过插值先构造一个多项式P(x)去逼近被积函数f(x),并以P(x)在区间[a 、b]上积分去代替f(x)在区间[a 、b]上的积分,即
()()⎰⎰
∙=
∙b
a
b
a
dx x P dx x f ,其中P(x)是比较容易积分的代数多项
式。
最常用的P(x)函数有如下两种形式:
(1)P(x)为一条过两端点的直线,其函数形式是:
()()()a f b
a b x b f a
b a x x P --+
--=
,从右图可以看出,这实质上是用
直角梯形面积去代替边梯形的面积,故称为梯形求积公式
(2)P(x)为一条过两端点及其中点的抛物线,它的函数形式是:
()()()()()()()()⎥⎦
⎤⎢⎣⎡⎪⎭⎫ ⎝⎛
+--+⎪⎭⎫ ⎝⎛+∙-∙--∙-⎪⎭⎫ ⎝⎛+--=
b f b a x a x b a f b x a x a f b x b a x a b x P 22222
2
从右图可以看出,这实质上是以抛物线围成的曲边梯形面积代替原f(x)所围成的曲边梯形面积,故称之为抛物线求积公式,也称辛浦生公式。
为了提高精度,常将区间[a ,b]分为足够多的N 等分,然后求各个小部分的和。
2、数积积分的程序框图可以看棱柱体明渠水面线计算程序。
四、直接差分法
直接差分法是以偏差商代替偏导数,把基本的微分方程化为差分方程,在自变量域s ~t 平面上建立差分网格,根据问题的初始条件及边界条件,求得各网格结点上的近似解。
直接差分法的差分网格形式有好几种,不尽相同,各种形式所要求的步长也不一样,再者,差分方程还存在着相客性,收敛性,稳定性问题,比较复杂,读者可参考有关方面的专著。
直接差分法的程序例子可以看清华大学《水力学》下册。
五、有限单元法
有限单元法的基本思想是将微分方程的定解问题(包括边值和初值问题)通过变分途径化为求泛函数的极值问题;然后将求解区域分割为许多小单元,通过区域剖分和分片插值,把求泛函数极值的问
题又转化为代数方程组的求解问题,解此代数方程组就
可以得到问题的解答。
关于代数方程组的解法,对于线性代数方程组常见的有高斯消去法,LU分解法,迭代法等,对于非线性方程组常见的有牛顿迭代法等。
多有现成程序可供利用。
有限单元法的程序例子可以参看清华《水力学》下册。