1、4. 常见的数学建模方法 (1) - 数据拟合(曲线拟合)法 在建立数学模型时 ,实际问题有时仅给出一组数据 . 处理这类问题的 较简单易行的方法是通过数据拟合法求得 “ 最佳 ” 的近似函数式 - 经验公式 . 从几何上看就是找一条 “ 最佳 ” 的曲线 , 使之和给定的数据点靠得最近 , 即进行 曲线拟合 . 根据一组数据来确定其经验公式 , 一般可 分为三步进行 :( 1)决定经验公式的形式 . 根据所描绘的系统固有的特点 ,参照 已知数据的图形和特点或者它应服从的规律来决定经验公式的形式. 这一步是关键的一步 . ( 2)决定经验公式中的待定参数 . 一般可用线性情况下的 最小二 乘法
2、 .它误差较小 ,适用于测定数据比较精确的情况 .在使用 最小二 乘法 时 ,如遇到数学模型是非线性经验公式时其中参数的待定 ,通 常是尝试能否经适当的变量替换 ,将之化为线性模型来计算 . ( 3)进行模型检验 .求得确定的经验公式后 ,将实际测定值与用公式算出的理论值进行比较 . 线性模型下的最小二乘法法则是:如果一组数据为:( xi , yi ) , ( i = 0, n ) , 它服从 线性函数 y = kx + b 模型 , 则在决定经验公式的形式时 , 大致思路是 :a) 利用所研究系统的有关问题在理论上已有的结论 , 来 确定经验公式的形式 .b) 在无现成理论情况下 , 最简单
3、的处理手段是用描图的方法 , 将数据点连成光滑曲线 , 把它与已知函数曲线进行比较 ,找出与之比较接近的曲线 .c) 如要考虑所建立的模型必要的逻辑性与理论价值 ,可利用合适的数学方法 , 对所研究系统的有关问题进行 定量化的机理分析 ,导出较为严密的数学公式 .实例 1. 找出基于下列数据的铜棒长度 l 与温度 t 之间关系的经验公式 .温度 t ( 0C ) 20 40 50 60对应长度 l (mm)1000.2 1000.65 1000.90 1001.05建模过程 : 利用已有的物理学固体热胀冷缩定律 : l = l0(1+at) 作为该组数据应服 从的数学模型,如记 l - 100
4、0 = l , l0 1000 = b, al0 = k , 则有 l = b + kt . 可以算得: 根据最小二乘法公式,可得: l = 999.804( 1 + 0.0000212t ) . 最后检验该模型 (经验公式 ):t l (测定值 ) l*(计算值 ) v = l - l* v220 1000.22 1000.228 +0.008 0.00006440 1000.65 1000.652 +0.002 0.0000450 1000.9 1000.864 -0.036 0.00129660 1001.05 1001.074 +0.024 0.000576残差的平方和为 : v2 =
5、 0.00194 , 这个结果应该说是较好的 .实例 2. 找出基于下列数据的油的粘度 y 与温度 x 之间关系的经验公式 .建模过程 : 无现成机理明确的公式 ,使用描点比较法 : 可以认为该光滑曲线相似于一条双曲线 , 故设其数学模型为 y = axb ( b 0 ) . 为了将它化为线性模型 , 两边取对数,再作变量替换 : Y = lny , X = lnx ,即得线性模型: Y = A + bX , 其中 A = lna , 而 ( X , Y ) 的数据为 : ( ln x i , ln y i ) , ( i = 1 , , 8 ) .用 最小二乘法 算得: a = 17.246
6、3 , b = - 0.6048 . 由此最后可得到油的粘度 y 与温度 x 之间依赖关系的数学模型为 : 检验该模型 (经验公式 ) : y = 17.2463 x - 0.6048 . i y (测定值 ) y* (计算值 ) v = y -y* v21 4.24 4.28 +0.04 0.00162 2.92 2.82 -0.10 0.013 2.20 2.20 0 04 1.81 1.85 +0.04 0.00165 1.61 1.62 +0.01 0.00016 1.43 1.45 +0.02 0.00047 1.32 1.32 0 08 1.25 1.22 -0.03 0.0009
7、残差的平方和为 : v2 = 0.0146 , 这个结果应该说也是较好的 .说明 : 该例中的 变量替换 方法运用 ,使得线性模型的最小二乘法公式应用范围大 大扩大 . 常见的 非线性模型的变换方式 如下表所列 :曲线 变换 变换后的线性表示式幂函数 y = axb x =lnx, y =lnyy = lna +bx指数函数 y = aebx x =x , y = lnyy = lna +bx双曲函数 y = x/ (ax+b) x =1/x, y = 1/yy = a + bx对数函数 y = a + blnx x = lnx, y = yy = a + bx指数函数 y = aeb/x x
8、 =1/x, y =lnyy = lna +bxS型函数 y = 1 / ( a+be-x )x =e-x, y =1/yy = a + bx实例 . 找出基于下列数据的美国马萨诸塞州生产量、劳动力和投资之间变化的经济增长模型(道格拉斯 Douglas 生产函数模型 )实例 3. 某研究所为了研究三种肥料氮 , 磷 , 钾对于土豆和生菜的作用 , 分别对每种作物进行了三组试验 . 实验数据如下列表格所示 , 其中 ha 表示公顷 , t 表示吨 , kg 表示千克 . 试建立反映施肥量与产量关系的数学模型 . 氮施肥量 (公斤 /公顷 )与土豆产量(吨 /公顷)关系的实验数据施肥量0 34 6
9、7 101 135 202 259 336 404 471产量 15.1821.3625.7232.2934.0339.4543.1543.4640.8330.75施肥量 0 49 98 147 196 294 391 489 587 685产量 6.39 9.48 12.46 14.33 17.10 21.94 22.64 21.34 22.07 24.53磷施肥量 (公斤 /公顷 )与土豆产量(吨 /公顷)关系的实验数据钾施肥量 (公斤 /公顷 )与土豆产量(吨 /公顷)关系的实验数据施肥量 0 47 93 140 186 279 372 465 558 651产量 18.98 27.35
10、 34.86 38.52 38.44 37.73 38.43 43.87 42.77 46.22氮施肥量 (公斤 /公顷 )与生菜产量(吨 /公顷)关系的实验数据施肥量 0 28 56 84 112 168 224 280 336 392产量 11.02 12.70 14.56 16.27 17.75 22.59 21.63 19.34 16.12 14.11磷施肥量 (公斤 /公顷 )与生菜产量(吨 /公顷)关系的实验数据施肥量 0 24 49 73 98 147 196 245 294 342产量 33.46 32.47 36.06 37.96 41.04 40.09 41.26 42.1
11、7 40.36 42.73钾施肥量 (公斤 /公顷 )与生菜产量(吨 /公顷)关系的实验数据施肥量 0 47 93 140 186 279 372 465 558 651产量 15.75 16.76 16.89 16.24 17.56 19.20 17.97 15.84 20.11 19.401. 磷施肥量 x 关于土豆产量 y 的情况 . 描点图为:可选择 作为经验公式 . 为了运用线性模型的最小二乘 法公式 , 令 最终的数学模型是 : 根据这个模型 , 可以得到土豆的最高极限产量是 43吨 . 这个结论从定性角度看 , 与农业资料的结论是一致的 , 即在一定的范围内磷施肥量可以使土豆产量
12、增长 , 但 过多地施磷肥对土豆产量不起作用 . 在这一点上 , 该模型是经得起实际检验的 .得 y = a + bx . 由此可算得 : a = 0.0232 , b = 0.0073 .2 .磷施肥量 x 关于生菜产量 y 的情况 . 描点图为: 由描点图可知 , 在模型建立中应注意以下两个因素 :1) 当磷肥施肥量为零时 , 生菜产量并非为零 , 这说明土壤中原来就含有一定量的磷肥成分 ; (2) 实验数据说明 ,磷肥施肥量再多不会引起产量明显下降 , 而使生菜产量趋于一个渐近值 , 即极限产量 . 考虑到上面一些分析 ,可采用双曲线模型 : 这里 a 为生菜极限产量数 . 为了利用线性
13、模型的 最小二乘法 , 令 X = 1 / (1 + x ) , Y = y , k = y0 a , 化为线性函数模型 : Y = a + kX . 根据最小二乘法计算公式和统计数据 , 先算得 a 和 k , 然后再算出 y0 . X 1 1/50 1/99 1/148 1/197 1/295 1/392 1/490 1/588 1/686Y 6.39 9.48 12.46 14.33 17.1 21.94 22.64 21.34 22.07 24.53相应的统计数据为 : 在建立曲线拟合法的数学模型时 ,如果能尽量做一些定量化的机理分析 , 然后运用数学手段推导出合理的数学模型 , 则建
14、模的效果会 更好一些 .实例 4. 利用例 3的资料 , 建立土豆产量 y 和 生菜产量 y 依赖于氮施肥量 x 的数学 模型 , 并由此求出氮和磷的最佳施肥数量 . ( 氮肥价格 350 元 / 吨 , 土豆价格 0.8元 / 公斤 , 生菜价格 0.2元 /公斤 )建模假设 : 根据所给的数据和实际经验 , 当施肥量合适时 , 土豆产量和生菜产量随氮施肥量的增加而增加 , 但是氮施肥量的过量会造成土豆产量和生菜产量的下降 . 如设 xm 为达到土豆或生菜最高产量时的施肥量 , 现在 假定 边际产量 yx 与 xm x 成正比 ( Nicklas 和 Miller理论 ) . 模型建立: 模
15、型求解 : y = ax2 + bx + c 其中 c = y(0) = 15.18 ( 或 11.02 ). 令 x = x , y = ( y - c ) / x , 可以化为线性模型: y = ax + b . 根据所给数据 , 运用线性模型的最小二乘法公式 , 得土豆产量 y 依赖于氮施肥 量 x 的数学模型 : y = - 0.00034x2 + 0.197x + 15.18 ;生菜产量 y 依赖于氮施肥量 x 的数学模型 : y = - 0.00024x2 + 0.101x + 11.02.模型分析与模型决策 : 当下列关系 y(x0) = Tx / Ty ( Tx ,Ty 分别为
16、氮肥和生产作物的价格 ) 成立时 , 投入一吨肥料得到的效益最大 , 此时的施肥量即为最佳施肥量 ; 这是因为:利润 S(x) = 土豆收益 - 氮肥支出 = y(x)Ty - xTx , 当 S(x) = 0 时,利润最大 , 即 : y(x)Ty - Tx = 0 ,解得 y(x0) = Tx / Ty 。 由土豆产量 y 依赖于氮施肥量 x 的数学模型 0.197 0.00068x0= 350 / 0.8 对土豆的最佳氮施肥量 x0 = 290.57 kg / ha . 由生菜产量 y 依赖于氮施肥量 x 的数学模型 0.101 0.00048x = 350 / 0.2 对生菜的最佳氮施
17、肥量 x0 = 203.57 kg / ha .实例 5. 利用例 3 的资料 , 建立生菜产量 y 依赖于磷施肥量 x 的数 学模型 .建模假设 : 经过查阅农业资料 , 有关文献中的米采利希理论认为 , 只增加某种养分时 , 引起产量的增加与该种养分供应充足时达到的最高产量和现在产量之差相关 . 现在 , 假定边际产量 dy / dx 与 ym y 成正比 ( ym : 极限产量 ) 模型建立 : 模型求解: 这是一个 非线性模型 , 无论使用怎样的变换 , 都不能化为 线性模型 . 这样的模型 , 称为 本质非线性模型 . 在实例 7 之后,我们再来看如何用已知数据来算得 ym 和 k
18、.实例 6. 建立赛艇比赛成绩的模型 ( McMahon 模型 ) 赛艇是一种靠桨手划桨前进的小船 , 分单人艇 , 双人艇 , 四人艇 , 八人艇四 种 . T.A.McMahon 比较了各种赛艇 1964 1970 年四次 2000米 比赛的最好成绩数据表后 , 认为比赛成绩与桨手数量之间存在着某种关系 , 并建立了一个数学模型来解释这种关系 .艇种1964年成绩(分钟)1966年成绩(分钟)1968年成绩(分钟)1970年成绩(分钟 )平均成绩单人 7 16 7 25 7 28 7 17 7 21双人 6 87 6 92 6 95 6 77 6 88四人 6 33 6 42 6 48 6
19、 13 6 32八人 5 87 5 92 5 82 5 73 5 84建模目的 : 寻求桨手数 n 与比赛成绩 t 之间的函数关系 t = t( n ) . 建模假定 : ( 1)艇的几何形状相同,艇长 :艇宽 = l:b = constant, 艇重 w0 与桨手数 n 成正比;( 2) 艇速 v = constant, 阻力 f 与 sv2 成正比, s 为艇浸没部分面积;( 3)桨手体重 w 相同,划桨功率 p 不变,且 p 与 w 成正比。建模过程: 总功率与阻力和速度的乘积成正比: 。假设( 2)由此可得:浸没部分面积应与艇的特征尺寸的平方成正比: 另一方面,艇的排水体积应与艇的特征
20、尺寸的立方成正比: 故可得: 艇和桨手的总重 w = w0 + nw 根据 阿基米德定律 :上面的 由于 比赛成绩 t( 时间)与 v 成反比,所以 根据以上 机理分析 ,可以认为有 经验公式 : 令 X = ln n , Y = ln t , A = ln a , 得 Y = A + bX .由实际数据代入 最小二乘法公式 可得:假设( 3)实例 7. 人口 Logistic 模型 根据下面一组统计数据( t i , x i ) ( i = 1 , 2 , , n ) :寻求人口数 x 随时间 t 变化的具体数学模型。建模过程: 模型求解: 年份1820(t=0)1830(t=1)1840(
21、t=2)1850(t=3)1860(t=4)1870(t=5)1880(t=6)1890(t=7)1900(t=8)1910(t=9)1920(t=10)1930(t=11)人口数9.6(十万)12.9 17.1 23.2 31.4 38.6 50.2 62.9 76 92.0 106.5 123.2建模假定 ( 1)人口 x ( t ) 关于时间 t 的增长率与人类生存空间容 纳度成正比。( 2)人口基数 x0 是已知的。这是一个 本质非线性模型 , 无论使用怎样的变换 , 都不能化为 线性模型 . 为了用所给的统计数字通过 线性模型 的 最小二乘法 公式算出 r0 和 xm , 可以利用建
22、模过程中的式 (*) 在单位时间下的近似表示式 : 令 可得 : 其中 ( X , Y ) 的统计数字为 : 由最小二乘法 , a = 0.31 , b = - 0.001574 . 故人口的具体 Logistic 模型 为 :X 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76 92 106.5 123.2Y 0.343 0.326 0.357 0.354 0.223 0.305 0.253 0.208 0.21 0.156 0.1568这个模型求解前是:它的近似表示式是: 可用已知数据算得和 yi 的拟合数据来算得 ym 和 k .本例处理 本质非线性模型 的方法,也可用于实例 5 . 实例 5 中所建立的模型也 是 一个 本质非线性模型 :