第2章城市供水量的预测模型——插值与拟合算法2.1城市供水量的预测问题2.1.1实际问题与背景为了节约能源和水源,某供水公司需要根据日供水量记录估计未来一时间段(未来1天 或1周)的用水量,以便安排未来(该时间段)的生产调度计划.现有某城市7年(2000年 1月1日〜2006年12月31 口)用水量的历史记录,如表2. 1. 1表2. 1.2 2000-2006年1月城市的总用水量(万吨/日)年份2000200120022003200420052006用水量4032. 414186. 02544296. 98664374. 8524435. 23444505. 42744517. 6993所示.如何充分地利用这些数据建立数学模型,来预测2007年1月份城市的用水量,以 制定相应的供水计划和生产调度计划.表2. 1. 1某城市7年日常用水量历史记录(万吨/日)日期2000010120000102 2006123020061231日用水量122. 1790128. 2410 150. 40168148. 2064利用这些数据,可以采用时间序列、灰色预测等方法建立数学模型来预测2007年1月份 该城市的用水量.如果能建立该城市的日用水量随时间变化的函数关系,则用该函数来进行 预测非常方便.但是,这一函数关系的解析表达式是没办法求出来的,那么,能否根据历史 数据求出该函数的近似函数呢?根据未知函数的已有数据信息求出其近似函数的常用方法有 插值法和数据拟合.本章将详细介绍插值法和数据拟合,并用这两种方法对该城市的供水量 进行预测.2.2求未知函数近似表达式的插值法2.2.1求函数近似表达式的必要性一般地,在某个实际问题中,虽然可以断定所考虑的函数f(x)在区间[a,。
]上存在且连 续,但却难以找到它的解析表达式,只能通过实验和观测得到该函数在有限个点上的函数值 (即一张函数表).显然,要利用这张函数表来分析函数的性态,甚至直接求出其他一些点上 的函数值是非常困难的.在有些情况下,虽然可以给出函数f(x)的解析表达式,但由于结 构相当复杂,使用起来也很不方便.面对这些情况,希望根据所得函数表(或结构复杂的解 析表达式),构造某个简单函数x)作为未知函数f(x)的近似.插值法是解决此类问题的一 种常用的经典方法,它不仅广泛地应用于生产实际和科学研究中,而且也是进一步学习数值 计算的基础.定义2. 1设函数y = f(x)在区间[a,Z?]±连续,且在n. + l个不同的点a < x0 xn < b 上分别取值%,义,…,月,在一个性质优良、便于计算的函数类中中,求一简单函数 ",使光)=义 @ = 0』,…〃) (2. 2. 1)而在其他点X x i (i=0, 1, 2, •••, n)上作为f(x)的近似.区间[a,/?]称为插值区间,点x0,Xp---,x称为插值节点,式(2.2. 1)称为f(x)的插值条件,函数类中称为插值函数类,©(X)称为函数在节点x0,%!,•••,%„处的插值函数,求插值函数。
X)的方法称为插值法.插值函数类中的取法不同,所求得的插值函数X)逼近f(x)的效果就不同,它的选择 取决于使用上的需要.常用的有代数多项式、三角多项式和有理函数等.当选用代数多项式 作为插值函数时,相应的插值问题就称为多项式插值.这里主要介绍多项式插值.在多项式插值中,求得一个次数不超过n的代数多项式4 (.*) = %+a/ anxn (2. 2. 2)使 = .@ = 0,1,,•••,〃) (2.2.3)成立,其中%,%,•••,与为实数.满足插值条件(2. 2. 3)的多项式(2. 2. 2),称为函数f(x)的K次插值多项式.n次插值多项式P (%)的几何意义:过曲线y = /(.r)上的〃.+ 1个点(耳,必)(,=1,•••/)作一条〃次代数曲线y = 4(")作为曲线y = /(x)的近似,如图2-1所2.2.2插值多项式的存在唯一性由插值条件(2.2.3)知,% (%)的系数《(,=0,1, • • • 〃)满足线性方程组小+时+…相=%0 + Q/1 H F anx^ = yY、%+冉+…+勾土':=义由线性代数知,线性方程组(2.2.4)11v =1的系数行列式是〃 + 1阶范德蒙(Vandermonde)行列式,且n z-1=nn3f1=1 j=0因为x0 x, • • • xH是区间[a,b]±.的不同点,上式右端乘积中的每一个因子.% —Xj N 0 ,于是系数行列式不等于0,即方程组(2.2.4)的解存在且唯一.从而得出插值多项式的存在 唯一性定理.定理2. 1若插值节点Xo.Xi, • • • X”互不相同,则满足插值条件(2. 2. 3)的n次插值多项式(2. 2. 2 )存在且唯一.2. 3求插值多项式的拉格朗日(Lagrange)法在2. 2节,插值多项式存在唯一性的证明过程不仅指出了满足差值条件的K次插值多项 式是存在唯一性的,而且也提供了插值多项式的一种求法,即通过解线性方程组(2.2.4)来 确定其系数"但是,当未知数个数很多时,这种做法的计算量大,不便于实际应用.Lagrange基于用简单插值问题的插值函数表示一般的插值函数的思想,给出一种求插值函数的简便方 法,即Lagrange插值法.2.3.1 Lagrange插值基函数先考虑简单的插值问题:对节点气.。
0,1,…〃)中任意一点改(0< Z: <〃)作一个k次多项式lk(x),使它在该点上取值为1,而在其余点%; @ = 0,1/ T/ + 1,•••,〃)上取值为零, 即满足插值条件1 i = k "3)= <八.j (2.3. 1)0 i.k式(2.3.1)表明〃个点也.(,= 0,l,Sl,k+l,…〃)都是〃次多项式/J")的零点,故可设lk(x) = Ak(X - Xo )(x - %!) • • • (x - xk_x )(x - xk+i) • • • (x - , 其中 Ak 为待定系数,由条件43)= 1 可得 a%2故“(x) = (x 一工…"一、)(x 一知).急7) (2.3.2)W …(L - L-1)(L - L+1)…(xk~xn)对应于每一节点xk(O
• • •(X — Lt)(x — L+i ) • • • (x — x“)(L 一工0). • .(L 一L—1)(L 一L+1). . .(L — %)(2. 3. 4)令〃 =1 , 由式(2. 3.4)即得两点插值公式r /、 X 一工1匕(x) = Vo +J1气一X]x-x0邑一气(2. 3. 5)A ⑴=% + —~—(X -工0 )也一X2. 3. 6)这是一个线性函数,用线性函数L(x)近似代替函数f(X),在几何上就是通过曲线y = f(x)上两点(x0, y0),(x,, y,)作一直线y = Li(x)近似代替曲线y = f (x),如图2-2所示,故两点图2-2 线性插值的几何直观图令〃 =2, 由式(2.3.4)可得常用的三点插值公式L,(x) = y° )(xf)(xf )(xf)+必(xf) (2.3.7)■ (x一X1)(X°—L) (X, -XO)(X] -x2) ■ (x2 -x0)(x2 -%!)这是一个二次函数,用二次函数L(x)近似代替函数f(x),在几何上就是通过曲线y = f (x)上的三点(% %),(%],叫),(%2,力)作一抛物线y =右⑴,近似地代替曲线v = /(-r),如图2-3所示,故三点插值又称二次插值,或抛物线插值.图2-3二次插值的几何直观图例2.1已知7100-10,7121 -11,7144 = 12 ,分别用线性插值和抛物线插值求V115的值.解因为115在100和121之间,故取节点气=100,也=121,相应地有无 =1°,M =11,于是,由线性插值公式(2.3.5)可得[八 x—121 x —100L ⑴=10 X + 11X 1 100-121 121-100故用线性插值求得的近似值为/.. .. . „ 115 — 121 115 — 100 . „ ..V115 «L(115)=10x + llx « 10.714;1 100-121 121-100同理,用抛物线插值公式(2.3.7)所求得的近似值为,— / 、 (115 — 121)(115—144) (115 — 100)(115 — 144)V115 (115 = 10x 」+ llx* '一' ' (100-121)(144-121) (121-100)(121-144)门 *(115 — 100)(115 —121)X (144-100)(144-121)»10.732将所得的两个近似值与VT15的精确值10.7328••-相比较,可以看出抛物线插值的精确度更好.为了便于在计算机上执行,我们常将Lagrange插值多项式(2.3.4)改写成如下对 称形式( 、(2. 3.8)k=07=0X-X.则可用二重循环来完成L,,(x)值的计算,先通过内循环,即先固定*,令,从0到〃(j丰k)累乘求得z,(x)=n)=0( 、X — XjX, -X., \ k j 7;然后再通过外循环,即令*从0到〃,累加得出插值结果2.3.3插值余项在插值区间[a,b]上用插值多项式P(x)近似代替f(.r),除了在插值节点x上没有误差以外,在其他点上一般都有误差.若记&⑴=f⑴一月⑴,则RQ)就是用P„ (x)近似代替f(.r)时所产生的截断误差,称虬(%)为插值多项式Pn (x)的余项.关于插值多项式的误差有定理2. 2的估计式.定理2. 2设 f(x)在区间[a,b]±.有直到〃+ 1阶导数,%石,为区间[a,b]上 〃 +1个互异的节点,4(x)为满足条件:Pn(x;) = f (x;)(i = 0,1,• • •,«)的"次插值多项式,则对于任何x e [a,b]有RS」"用⑴ (2.3.9)其中 。