数学建模数据之简单处理技巧(Mathematica)总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数学建模数据之简单处理技巧
人们在生产实践与科学研究中经常会得到一系列的数据,然后通过这些数据得到某种内在规律,这就叫数据处理(Adjustment of Data )。科学家开发了许多方法来处理这个问题,最初由Gauss 发展起来,用于彗星轨道(Orbits of Comets )的计算以及三角测量术中。主要方法有:最小二乘平方法、平均误差及误差延伸法则、直接测量的处理、以及一个函数用较简单函数表示的问题。数据拟合(Fit )就是其中的一种。
假设已经得到数据列data1 = { y1, y2, y3,…,yn}, 现在需要寻找此数据列所满足的规律。Mathematica 系统提供了拟合命令Fit ,使用的格式如下,例如:
f[x] = Fit[ data1, { 1, x, x 2, x 3 }, x ] 表示用最小误差平方法去拟合数据data1,而且指明用32,,,1x x x 构成的函数基,线性表出拟合函数f[x]。此处,得到的拟合函数f[x] 按x = j, f[ j ] = yj (data1中第j 个数据)处理数据;
一般地,假设有2维数据 data2 = { { x 1, y 1 }, { x 2, y 2 }, … }, 则命令
Fit[ data2, { 1, f 1[x], f 2[x], … }, x ]
表示用最小误差平方法去拟合数据data2,而且指明用一元函数列{ 1, f 1[x], f 2[x], …}去线性表出拟合函数F[x]。
假设有3维数据 data3 = { { x 1, y 1, z 1 }, { x 2, y 2, z 2 }, … } }, 则命令
f[x, y] = Fit[ data3, {1,f 1[x,y],f 2[x,y],…},{x,y} ]
表示用最小误差平方法去拟合数据data3,而且指明用2元函数列{ 1, f 1[x, y], f 2[x, y], …}去线性表出拟合函数f[x, y]。
数据拟合典型例子
d = { { 1, 1}, { 2, -2 }, { 3, 3 }, { 4, -4 }, { 5, 5 }, { 6, 6 }}; g1 = ListPlot[ d, PlotStyl
e -> { Hue[ 0 ], PointSize[ .03 ] } ] f1 = Fit[ d, { 1, x, x^2, x^3, x^4 }, x ]; Print[“f1 = ”, f1]
g2 = Plot[ f1, { x, 1, 10 }, PlotStyle -> Hue[ .6 ] ] f2 = Fit[ d, { 1, x, x^2, x^3, x^4, x^5}, x ]; Print[“f2 = ”, f2]
g3 = Plot[ f2, { x, 1, 10 }, PlotStyle ->{ GrayLevel[ 0 ], Dashing[ { .03 } ] } ] Show[ g1, g2, g3 ] 得到结果:
图1-1-52
f1=-3.33333+8.12169x -5.30556x 2+1.2037x 3-0.0833333x 4
图1-1-53
f2=180.-380.x+281.5x2-94.1667x3+14.5x4-0.833333x5
图1-1-54
图1-1-55
例1数据拟合示例。
要从(0,0)到(2000,2000)修一条公路,问:如何选址?当必须经过某一指定点时,又如何选址?
解:假设测点选择合理,即山坡表面是充分光滑的曲面,测点之间无山沟与山谷。
第一步,将数据送到data,画图模拟:Mathematica命令如下:
data = { 省略 };
ListPlot3D[data,ViewPoint->{*,*,*},AxesLabel->{x,y,z}]。
例如,可以选视点ViewPoint->{-1,-1,2}或{-1,1,2}画图做参考。
第二步,画三角剖分面构成的拟合曲面。打开子程序包
< TriangularSurfacePlot[data] 表示为data画一个由三角剖分面构成的拟合曲面(图像略)。 第三步,拟合。 ff = Fit[ data, { 1, x, x^2, x^3, x^4, y,y^2, y^3, y^4, x*y, x*y^2, x*y^3, x*y^4, x^2*y, x^2*y^2,x^2*y^3, x^2*y^4, x^3*y, x^3*y^2, x^3*y^3, x^3*y^4, x^4*y, x^4*y^2, x^4*y^3, x^4*y^4},{ x, y }] 程序执行后,得到一个拟合函数ff。再画ff 的图,效果更好。 Plot3D[ff,{x,0,2000},{y,0,2000}] (图像略)。 例2估计水箱流量(美国大学生MCM1991-A题) 某些州的用水管理机构需估计公众用水速度(单位:加仑/小时)和每日总用水量的数据。许多地方没有测量流入或流出市政水箱流量的设备,而只能测量水箱中的水位(误差不超过0.5%)。当水箱水位某最低水位L时,水泵抽水灌入水箱,直到水位达到最高水位H为止。但是,也无法测量水泵的流量。因此,在水泵开动时,无法立即将水箱中的水位和用水量联系起来。这种情形一天发生一次或两次,每次约为2小时。 估计所有时刻,包括水泵抽水期间流出水箱的流量f(t),并估计一天总用水量。下表给出某天某小镇的真实数据: 表中给出距开始测量的时间及即时水位。水箱是高40英尺、直径57英尺的正圆柱。通常水位低于L=27英尺时,水泵开始抽水,高于H=35.5英尺时,水泵停止工作。 参考解答: