APP下载

优化二分法计算天然河道水面曲线

2018-09-10黄膺翰李占松

人民黄河 2018年8期
关键词:数值计算

黄膺翰 李占松

摘要:天然河道水面曲线的求解计算量大,计算过程冗长。为减小计算量,缩短计算时间,将割线法和线性插值法与二分法相结合,推导出能使计算快速收敛的优化二分法。通过工程实例计算将该方法与传统二分法、改进二分法进行了对比。结果表明,优化二分法在计算次数和计算时间上均有明显优势,大大减少了程序的计算次数,缩短了计算时间。

关键词:天然河道;水面曲线;优化二分法;数值计算;非线性方程

中图分类号:TV133.1

文献标志码:A

doi:10.3969/j.issn.1000-1379.2018.08.026

天然河道水面曲线计算是根据河道地形、纵断面及河道糙率,推求河段各断面在一定流量下的水位,并绘制相应流量的水面曲线。当河流较长,断面数量成百上千时,计算量非常大。為了减小计算量,本文将割线法和线性插值法与传统二分法相结合,提出了优化二分法,并将其与现行的传统二分法、文献中的改进二分法进行了对比分析。

1 研究概要

传统天然水面曲线计算理论主要基于恒定流能量方程与谢才公式。在求解上主要为图解法、试算法、二分法及迭代法和牛顿一拉普森(Newton-Raphson)切线法等。考虑到传统算法存在的问题,国内外学者进行过众多研究,如:针对试算法存在的误差积累问题,金菊良等3提出了加速遗传算法(Accelerating GeneticAlgorithm,简称AGA),杨录峰等将粒子群算法应用于天然河道水面曲线的计算中:针对计算资料不齐全及断面之间距离过长的河段,张校正提出了“推算法”与“比降法”配合使用的计算方法:针对动能变化较大的山区河流,漆昌银提出了考虑动能变化的天然水面曲线计算方法:针对如何选取计算参数和河道分段,李满刚提出了若干建议:针对流量模数的计算,杨远东等提出了合理的选用方法。

在优化天然河道水面曲线求解方法,减少程序计算次数和缩短运行时间的问题上,研究成果较少,仅王国栋等提出了基于线性插值的求解非线性方程二分法改进,其基本思想是在每进行一次平分隔根区间后,紧接着进行一次线性插值。如图1所示,设[d,c]为初始计算区间,dc如中点b'对应于函数的点e及函数值与点e异号的端点cz,直线ae交横坐标轴于点a'。后视点a'对应的函数值分正号、负号两种情况处理,将计算区间由[d,c]收敛为[d,a'][见图1(a)]或[a',b'][见图1(b)]。该方法虽然在一定程度上加快了计算区间的收敛速度,减少了计算次数,却增长了每次计算的时间。从本文实例计算的结果来看,该算法计算次数约为传统二分法计算次数的23%,计算时间却为传统二分法的97%,即该算法并未明显缩短程序的计算时间。因此,为了进一步改进求解方法,本文提出了优化二分法。

2 优化二分法

2.1 方法介绍

优化二分法是将线性插值求解和割线法与二分法相结合形成的一种快速收敛的非线性方程数值求解方法。在此仅以增函数、插值后函数值(图2中点b'纵坐标值)为正的情况进行介绍,减函数、插值后函数值为负的情况与之类似。

2.1.1 基本原理

如图2所示,设a、b两点坐标分别为(X1,Y1)、(x2,Y2),a'、b'两点坐标分别为(x1',y1')、(X2',y2'),初始区间为(X1,x2)。做以下辅助线:①连接a、b两点,则直线a6与横坐标轴交于点e:②过点e做横坐标轴垂线,交函数于点b';③连接并延长bb',使其与横坐标轴交于点厂;④根据a'、b'的横坐标x1'、x2'大小及位置,收敛计算区间,则初始区间可由(x1,x2)收敛为(x1',X2')[见图2(a)]或(X1,x2')[见图2(b)]或(x1,x1')[见图2(c)]。再经过重复计算即可解得满足精度要求的数值解。

2.1.2 计算公式推导

直线ab的斜率k为

直线bb'的斜率k'为

点b'横坐标x2'为

点a'横坐标x1'为

由式(1)~式(4)可得点e坐标为(x2—y2/k,0),点a'坐标为(x2—y2/k',0)。

2.2 计算步骤

计算步骤如下:①选择初始区间(X1,y1);②分别将x1、x2代人函数计算相应函数值Y1、Y2;③将x2、Y2、x1、Y1代人式(1)算得k;④将x2、Y2、k代人式(3)算得x'2,并将X'2代人函数算得相应函数值Y'2;⑤查看Y'2是否满足精度要求,若满足则结束计算,否则取X'2为计算区间右端,继续下列步骤;⑥查看Y'2是否与y2同号,若同号,则将x'2、Y'2、X2、Y2代人式(2)算得k',否则将x'2、y'2、x1、Y1代人式(2)算得k',此时式(2)应为k'=y'2-Y1/x'2-x1⑦将x2、y2、k代人式(4)算得x1';⑧比较x1与x'1大小,若x'1x1,则将x'1代人函数,计算出相应函数值y'1;⑨查看Y'2是否满足精度要求,若满足则结束计算,否则取x'2为计算区间右端,继续下列步骤;⑩若y'1与Y'2异号,则计算区间收敛为(x'1,X'2)[见图2(a)],若y'1与Y'2同号,则计算区间收敛为(x1,x'1][见图2(c)]。返回步骤②继续计算。

3 实例计算

3.1 计算次数对比

某天然河段长634.65m,共设8个断面,各断面资料从5组到8组不等,插值方法为线性插值。河段计算流量为3756m3/s,初始断面水深13m,粗糙系数取0.034,不考虑局部水头损失,水面曲线见图3。

通过VB编程,将优化二分法应用于该天然河段计算其水面曲线,并用传统二分法及文献中的算法作相同计算进行对比,计算结果见表1。

从计算次数上来看,在计算河道断面8时,优化二分法计算次数约为传统二分法的14%,约为文献算法的51%。与另外两种方法相比,优化二分法收敛速度明显加快,计算次数明显减少。

3.2 计算时间对比

由于仅有8个断面,程序计算时间过短,VB程序无法进行时间测量,因此利用循环程序分别将优化二分法、传统二分法以及文献的计算方法进行多次运算,运算时间见表2。

从计算时间上来看,优化二分法计算时间约为传统二分法的75%,约为文献算法的77%,优化二分法使程序的计算时间得到了一定程度的缩短。

3.3 结果分析

从表1、表2的数据来看,优化二分法加快了试算的收敛速度,显著减少了计算次数,明显缩短了程序的计算时间。该方法计算简便,易应用于电脑程序计算,为天然河道水面曲线的计算、调试提供了便利。

4 结语

天然河道水面曲线计算是水力学计算的重要内容,也是工程设计中的基本课题。基于区间不等分的思想,通过将插值法和割线法应用于二分法,提出了优化二分法,并将该方法应用于天然河道水面曲线计算,同时通过工程实例将该方法与传统二分法、文献中的改进二分法进行了比较。结果表明,该方法加快了计算区间的收敛速度,减少了计算次数,缩短了计算时间,为天然河道水面曲线的计算、调试提供了便利。作为一种快速收敛的非线性方程数值解法,优化二分法还可应用于模型参数率定、网格显式求解等。

猜你喜欢

数值计算
期权定价理论方法研究
“流动与传热数值计算基础”教学方式思考
阵列感应测井在直井和斜井中的对比
浅谈MATLAB在数学建模中的应用
数值模拟两层有限大小地层中多电极电流场分布
平衡流量计流动特性数值计算分析
MATLAB软件可视化效果和数值计算在高等数学学习中的应用
方形散流器喉部对送风气流均匀性的影响分析