数学建模曲线拟合
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
曲线拟合
摘要
根究已有数据研究y关于x的关系,对于不同的要求得到不同的结果。
问题一中目标为使的各个观察值同按直线关系所预期的值的偏差平方和为最小,利用MATLAB中t
lsqcurvefi函数在最小二乘法原理下拟合出所求直线。
问题二目标为使绝对偏差总和为最小,使用MATLAB中的f minsearch函数,在题目约束条件内求的最优答案,以此方法同样求得问题三中最大偏差为最小时的直线。
问题四拟合的曲线为二阶多项式,方法同前三问类似。
问题五为求得最佳的曲线,将之前的一次曲线换成多次曲线进行拟合得到新的结果。经试验发现高阶多项式的阶数越高拟和效果最好。
关键词:函数拟合最小二乘法线性规划
一、问题的重述
已知一个量y依赖于另一个量x,现收集有数据如下:
x0.0 0.5 1.0 1.5 1.9 2.5 3.0 3.5 4.0 4.5
y 1.0 0.9 0.7 1.5 2.0 2.4 3.2 2.0 2.7 3.5
x 5.0 5.5 6.0 6.6 7.0 7.6 8.5 9.0 10.0
y 1.0 4.0 7.6 2.7 5.7 4.6 6.0 6.8 12.3
(1)求拟合以上数据的直线a
=。目标为使y的各个观察值同按直线关系
y+
bx
所预期的值的偏差平方和为最小。
(2)求拟合以上数据的直线a
=,目标为使y的各个观察值同按直线关系
bx
y+
所预期的值的绝对偏差总和为最小。
(3)求拟合以上数据的直线,目标为使y的各个观察值同按直线关系所预期的值的最大偏差为最小。
(4)求拟合以上数据的曲线a
+
=2,实现(1)(2)(3)三种目标。
y+
cx
bx
(5)试一试其它的曲线,可否找出最好的?
二、问题的分析
对于问题一,利用MATLAB中的最小二乘法对数据进行拟合得到直线,目标为使各个观察值同按直线关系所预期的值的偏差平方和为最小。
对于问题二、三、四均利用MATLAB中的fminsearch函数,在题目要求的约束条件下找到最佳答案。
对于问题五,改变多项式最高次次数,拟合后计算残差,和二次多项式比较,再增加次数后拟合,和原多项式比较残差,进而找到最好的曲线。
三、基本假设
1.表中数据真实可信,每个点都具有意义。
四、模型的建立与求解
1.问题一
对给定数据点(){}),,1,0(,m i Y X i i =,在取定的函数类Φ 中,求()Φ∈x p ,使误差的平方和2E 最小,()[]2
2∑-=i i Y X p E 。从几何意义上讲,就是寻求与给
定点 (){}),,1,0(,m i Y X i i =的距离平方和为最小的曲线()x p y =。函数()x p 称为拟合函数或最小二乘解,求拟合函数()x p 的方法称为曲线拟合的最小二乘法。直接利用MATLAB 中t lsqcurvefi 的函数进行曲线拟合,得到目标函数如下:
x y ⋅+-=8117.00264.0
函数图像如下:
2.问题二
利用MATLAB 中的f minsearch 函数,在题目要求的约束条件使y 的各个观察值同按直线关系所预期的值的绝对偏差总和为最小下进行曲线拟合,得到目标函数如下:
x y ⋅+=6666.05001.0
函数图像如下:
3.问题三
利用MATLAB中的f minsearch函数,在题目要求的约束条件使y的各个观察值同按直线关系所预期的值的最大偏差为最小下进行曲线拟合,得到目标函数如下:
.8790
1-
.1
=1300
x
y⋅
+
函数图像如下:
4.问题四
(1)问题一
同问题一相似,只是拟合的曲线为二阶多项式,利用MATLAB中t
lsqcurvefi的
函数进行曲线拟合,得到目标函数如下:
2
y⋅
x
⋅
=
+
.1x
0963
3833
.0
.0-
1096
函数图像如下:
(2)问题二
同问题二相似,只是拟合的曲线为二阶多项式,利用MATLAB中的f minsearch 函数,在题目要求的约束条件使y的各个观察值同按直线关系所预期的值的最大偏差为最小下进行曲线拟合,得到目标函数如下:
2
y⋅
+
+
=
x
⋅
.0x
0397
9755
.0
2902
.0
函数图像如下:
(2)问题三
同问题三求解过程相似,只是拟合的曲线为二阶多项式,利用MATLAB 中的
fminsearch 函数,在题目要求的约束条件使y 的各个观察值同按直线关系所预期
的值的最大偏差为最小下进行曲线拟合,得到目标函数如下:
20994.00909.0-7672.1x x y ⋅+⋅=
函数图像如下:
5.问题五
选择更高阶多项式进行曲线拟合,利用MATLAB 中t lsqcurvefi 的函数进行曲线拟合,得到目标函数。比较方差,方差越小,得到结果越稳定,即认为曲线拟合越好,方差结果如下表所示:
可以得到函数阶数越高,曲线拟合越好。
各阶多项式函数图像如下: 三阶:
阶数 1 2 3 4
5
方差 2.6884 2.0577 1.7127
1.5049
1.4336