几种插值算法在洪水预报预警发布水资源综合服务系统中的应用.docx
- 文档编号:12073500
- 上传时间:2023-06-04
- 格式:DOCX
- 页数:13
- 大小:355.10KB
几种插值算法在洪水预报预警发布水资源综合服务系统中的应用.docx
《几种插值算法在洪水预报预警发布水资源综合服务系统中的应用.docx》由会员分享,可在线阅读,更多相关《几种插值算法在洪水预报预警发布水资源综合服务系统中的应用.docx(13页珍藏版)》请在冰点文库上搜索。
几种插值算法在洪水预报预警发布水资源综合服务系统中的应用
几种插值算法
在洪水预报、预警发布、水资源综合信息服务中的应用
陈兵1,韩曦1,李会会2
(1.北京北科博研科技有限公司,北京100053;
2.北京金水科技发展有限公司,北京100053)
摘要:
插值算法在工程领域有非常重要的作用,工程测量数据不可能无穷表达对象的所有特征值,因此需要由特征点及连线代表趋势特征,比如只能用小时或者分钟点水位代表水位流量特征。
而实际应用过程中我们要求的数据或要求展示的效果也苛刻,因此在实际应用中采用插值算法,来近似的表达某些特征值用于工程计算。
本文重点描述几种插值算法在洪水预报、预警发布、水资源综合信息服务领域的应用,并起到非常关键的作用。
关键词:
直线插值(线性插值),一元三点,一元多点,拉格朗日,插值插值算法,洪水预报,预警发布,水资源综合信息服务
1引言
插值法又称“内插法”,是利用函数f(x)在某区间中插入若干点的函数值,作出适当的特定函数,在这些点上取已知值,在区间的其他点上用这特定函数的值作为函数f(x)的近似值,这种方法称为插值法。
如果这特定函数是多项式,就称它为插值多项式。
插值法是函数逼近的一种重要方法,是数值计算的基本课题。
本文介绍的内容有:
直线插值,一元三点,一元多点。
在做工程领域,往往得到一堆离散的数据,现在想用数学公式模拟这堆离散数据。
怎么办,数学家们提出了插值问题。
插值问题的提法是这样的给定一堆数据点(x0,y0),(x1,y1),(x2,y2)...(xn,yn),要求一个函数y=f(x),要求该函数经过上面所有的数据点。
在洪水预报、预警发布、水资源综合信息服务领域的应用中,插值被广泛的应用,如水位流量关系曲线、相关图、API预报模型、动态临界雨量模型、趋势分析、图形操作等应用,都需要插值算法的支持。
相关图实例
2插值算法
2.1直线插值
直线插值是一种使用线性多项式进行曲线拟合的方法,多使用在数量分析和计算机制图方面,是内插法的最简单形式。
两个已知点之间的直线内插法:
如果两已知点(x0,y0)(x1,y1),那么根据(y-y0)/(x-x0)=(y1-y0)/(x1-x0)解方程得:
y=y0+(x-x0)*(y1-y0)/(x1-x0)经过扩展,可以计算n个已知点的情况。
在实际应用过程中,我们通常输入系列值,通过程序自动找到最接近的两点,然后通过直线插值查找到适合的数据,如下水文流量关系曲线中,经常用直线插值,下面是JAVA示例代码:
//x[],y[]是线性点的系列值,t是要插入的点(如水文或流量)
publicstaticdoubleinterL(doublex[],doubley[],doublet)
{
doubleiv=0;
intn=x.length;
intp=1;
for(inti=1;i { if(t<=x[i])break;//查找到接近X的值 p++; } iv=(t*y[p]-x[p-1]*y[p]+x[p]*y[p-1]-y[p-1]*t)/(x[p]-x[p-1]); returniv; } 2.2拉格朗日 在数值分析中,拉格朗日插值法是以法国十八世纪数学家约瑟夫·拉格朗日命名的一种多项式插值方法。 许多实际问题中都用函数来表示某种内在联系或规律,而不少函数都只能通过实验和观测来了解。 如对实践中的某个物理量进行观测,在若干个不同的地方得到相应的观测值,拉格朗日插值法可以找到一个多项式,其恰好在各个观测的点取到观测到的值。 这样的多项式称为拉格朗日(插值)多项式。 数学上来说,拉格朗日插值法可以给出一个恰好穿过二维平面上若干个已知点的多项式函数。 拉格朗日中值定理又称拉氏定理,是罗尔中值定理的推广,同时也是柯西中值定理的特殊情形。 如果函数f(x)在(a,b)上可导,[a,b]上连续,则必有一ξ∈(a,b),使得 f'(ξ)*(b-a)=f(b)-f(a)拉格朗日中值定理的几何意义。 在(a,b)上可导,[a,b]上连续是拉格朗日中值定理成立的充分条件。 这个定理表达了: 1.在满足定理条件的前提下,函数f(x)上必有【一点的切线】与【f(x)在x=a,b处对应的两点((a,f(a))和(b,f(b))点的连线平行)。 f'(ξ)=[f(b)-f(a)]/(b-a),等号后为x=a,b对应两点的连线斜率,等号前为f(x)上一点的导数的值,也就是f(x)上一点的斜率,两斜率相等,两线平行。 这是几何上的理解方式。 拉格朗日中值定理的几何意义 2.我们将f(x)函数求导,得到f'(x),众所周知f'(x)函数记录的其实就是【f(x)函数在每一个瞬间的变化状态】。 即,在x=x1这一瞬间f(x)进行了程度为f'(x1)的变化,在x=x2这一瞬间f(x)进行了程度为f'(x2)的变化……。 函数由f(a)变化到f(b)的过程,其实就是f'(x)函数在(a,b)区间中记录的变化状态的依次累加,就是对f'(x)函数在(a,b)区间的值进行积分的过程。 那么,将这一过程中所有的变化状态的值一起取一个平均,这个平均值的数值一定在f'(x)的某一点上出现过(即f'(ξ)),因为f(x)连续,则其导数也连续。 这个平均值乘上变化的区间(a到b)的长度就等于这个变化的变化量【】。 即所谓的必有一,使f'(ξ)*(b-a)=f(b)-f(a)。 即,【a,b区间上f(x)函数的变化量】=【a,b区间内f(x)函数变化状态的平均值乘以区间长度】。 这是代数理解方式。 //x[],y[]是线性点的系列值,t是要插入的点(如水文或流量) publicstaticdoublegetValueLagrange(doublex[],doubley[],doublet) {intn=x.length; inti,j,k,m; doublez,s; //初值 z=0; //特例处理 if(n<1){returnz;} if(n==1){ z=y[0]; returnz; } if(n==2){ z=(y[0]*(t-x[1])-y[1]*(t-x[0]))/(x[0]-x[1]); returnz; } //开始插值 i=0; while(i i=i+1; } k=i-4; if(k<0) k=0; m=i+3; if(m>n-1) m=n-1; for(i=k;i<=m;i++){ s=1; for(j=k;j<=m;j++){ if(j! =i){ //拉格朗日(Lagrange)插值公式 s=s*(t-x[j])/(x[i]-x[j]); } } z=z+s*y[i]; } //返回结果 returnz; } 2.3一元三点 利用拉格朗日(Lagrange)插值公式,选取最靠近插值点的3个节点代入公式,因此对于一条曲线就有多个插值公式,采用分段插值的方法,将该曲线使用范围内的每一组对应值插算出来。 选取节点应从小到大顺序选取,曲线的两个端点必须选入,其间可随曲线曲率变化而定,端点附近与曲率变化较大处选密一些,反之可选稀一些,选取节点数量应满足计算精度的要求且等差为佳。 节点不得少于3个。 存在的问题: 由于项次的有限性,造成了接点前后公式的非连续性,使接点插值不同一,节点间使用的插值公式不同一,给插值带来一定的困难。 //x[],y[]是线性点的系列值,t是要插入的点(如水文或流量) staticdoubleinterp3(doublex[],doubley[],doublet) {doublev=0; intp=0; intn=x.length; for(inti=1;i { if(t<=x[i])break;//查找到接近X的值 p++; } if(p>0&&p p--; v=(t-x[p+1])/(x[p]-x[p+1])*(t-x[p+2])/(x[p]-x[p+2])*y[p]; v+=(t-x[p])/(x[p+1]-x[p])*(t-x[p+2])/(x[p+1]-x[p+2])*y[p+1]; v+=(t-x[p])/(x[p+2]-x[p])*(t-x[p+1])/(x[p+2]-x[p+1])*y[p+2]; returnv; } 2.4一元多点 在一元三点插值中,由于项次的有限性,造成了节点前后公式的非连续性,使节点插值不统一,节点间使用的插值公式不统一,给插值带来一定的困难。 因此通过一元多点(改进型一元三点插值)有效解决该问题,是曲线更加连续。 对于节点间的插值,同时采用两边的公式计算,即使用所需要的插值的区间两边的节点,再添加更前面的一个节点拟合一条二次多项式,然后同样方法对添加了后面的一个节点也拟合一条二次多项式,分别用这两个公式计算插算值,然后平均,这样区间的插值就统一了,不会出现跳跃点,而且可以减小单一公式带来的误差。 同样这样的修正方法适用于许多水文水力计算中的一元三点插值公式,避免节点前后公式的非连续性。 //x[],y[]是线性点的系列值,t是要插入的点(如水文或流量) staticdoubleimproveInterp3(doublex[],doubley[],doublet){ doublev0=0,v=0,v1=0; intp=0,p0=0,p1=0; intn=x.length; for(inti=1;i if(t<=x[i])break;//查找到接近X的值 p++;} if(p>0&&p p--; v=(t-x[p+1])/(x[p]-x[p+1])*(t-x[p+2])/(x[p]-x[p+2])*y[p]; v+=(t-x[p])/(x[p+1]-x[p])*(t-x[p+2])/(x[p+1]-x[p+2])*y[p+1]; v+=(t-x[p])/(x[p+2]-x[p])*(t-x[p+1])/(x[p+2]-x[p+1])*y[p+2]; p0=p-1; if(p0<0)p0=0; v0=(t-x[p0+1])/(x[p0]-x[p0+1])*(t-x[p0+2])/(x[p0]-x[p0+2])*y[p0]; v0+=(t-x[p0])/(x[p0+1]-x[p0])*(t-x[p0+2])/(x[p0+1]-x[p0+2])*y[p0+1]; v0+=(t-x[p0])/(x[p0+2]-x[p0])*(t-x[p0+1])/(x[p0+2]-x[p0+1])*y[p0+2]; p1=p+1; if(p1>=n-3)p1=n-3; v1=(t-x[p1+1])/(x[p1]-x[p1+1])*(t-x[p1+2])/(x[p1]-x[p1+2])*y[p1]; v1+=(t-x[p1])/(x[p1+1]-x[p1])*(t-x[p1+2])/(x[p1+1]-x[p1+2])*y[p1+1]; v1+=(t-x[p1])/(x[p1+2]-x[p1])*(t-x[p1+1])/(x[p1+2]-x[p1+1])*y[p1+2]; return(v0+v1+v1)/3; } 3插值算法应用示例 2.1在水位流量曲线的应用 在洪水预报中,通过水位推流量或者通过预报的流量推水位被经常用到。 实际过程中,一般通过实测的水文和流量特征值制作水文流量关系曲线,在实际应用过程中,水位流量受到下游洪水顶托、泥沙等多种因素影响,实际上是变化的,因此采用近似的综合线或者多条线代表水位关系曲线,如下图所示: 水文关系曲线 通过设定相关的插值方式,插值方式包括(无插值、直线插值、一元三点、一元多点),拖转曲线上的相关点,曲线及影响到的表格数据联动。 拖动效果如下图所示: 利用插值点拖动效果 实际在预报、预警过程中,采用上面的算法进行计算,一般采用直线插值计算水位流量关系。 2.2在API预报模型的应用 P~Pa~R模型是三参数相关模型,API模型以流域降雨产流的物理机理为基础,以主要影响因素作参变量,建立降雨量P与产流量R之间定量的相关关系。 常用的参变数有前期影响雨量Pa(反映前期土湿)、季节(或用月份、周次,反映洪水发生时间)和降雨历时(或降雨强度)等,也有采用雨型、暴雨中心位置等因素。 单位过程线一般简称单位线,是谢尔曼(L.K.Sherman)于1932年提出的,由地面径流和壤中流(总称直接径流)形成单位线。 该单位线在我国洪水预报的汇流计算中应用广泛,效果较好。 P+Pa~R两参数相关模型在P~Pa~R三参数相关模型基础上将P+Pa的和作为降雨径流相关图的纵坐标,以R为横坐标建立其相关关系。 使用时,首先计算洪水起涨时的土壤含水量Pa值,再把时段雨量序列变成累积雨量序列,用累积雨量查出累积净雨,最后由累积净雨转化成时段净雨量序列。 图附1-1P+Pa-R关系曲线示意图 Pa由前期雨量计算,也称前期影响雨量,是反映土壤湿度的参数。 其计算公式为: 当上时段有雨量,即 时 (1) 当上时段无雨时 (2) 式中K——土壤含水量衰减系数; Pa,t、Pa,t-1——本时段和上时段的前期影响雨量; Pt-1——上时段降雨量。 用Im表示土壤最大初损量,以mm计。 通常Im=60~100mm。 当计算的Pa,t>Im时,则以Im作Pa值计算,即认为此后的降雨不再补充初损量,全部形成径流。 马良坪API方案 马良坪控制面积 2.3在相关图预报模型的应用 根据河段上、下游断面相应水位(流量)间的定量关系,或流域降雨同下游断面相应水位(流量)之间的关系而建立的相关图称为相关图预报方案。 典型的相关图如: 洛清江两站洪峰水位预报图 说明: 1.暴雨中心位置在上游时用上游线(暴雨中心位置分析),在下游或全流域用中、下线。 2.利用流域平均降水量(采用两江起涨水位前1~2时段(△=3h)到流域内最大雨率止。 平均采用加权计算)和(第二象限)暴雨中心位置线。 然后水平移动到第一象限,依据两江起涨水位值,内插到起涨水位等值线中,其垂直对应的洪峰水位值为预报的两江站洪峰水位。 3.流域最大雨率到两江洪峰出现平均时间为6h. 2.4在动态临界雨量预警模型的应用 一般情况下,灾害的原因是由于局地暴雨形成洪水,导致河水急速上涨,水位超过河岸高度形成漫滩,上滩洪水对农田和房屋造成安全威胁,因此,通常可以将河水漫滩的水位定为警戒水位。 根据上滩水位,结合实测河流断面估算出相应的流量,即为上滩流量,也可以称为警戒流量。 由于径流是由降雨产生的,从达到上滩流量的时间往前推,在一定时间之内的累计降雨量称为警戒临界雨量。 临界警戒指标确定流程示意图 山洪的大小除了于降雨总量、降雨强度有关外,还和流域土壤饱和度或前期影响雨量指数(API)密切相关。 因此,在建立山洪警戒临界雨量指标时,应考虑山洪防治区中小流域土壤饱和情况,给出不同初始土壤含水量条件下的警戒临界雨量。 基于动态临界警戒雨量的山洪预警方法示意图 不同饱和度下临界警戒雨量示意图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 几种插值 算法 洪水 预报 预警 发布 水资源 综合 服务 系统 中的 应用