您好,欢迎访问三七文档
曲线拟合摘要根究已有数据研究y关于x的关系,对于不同的要求得到不同的结果。问题一中目标为使的各个观察值同按直线关系所预期的值的偏差平方和为最小,利用MATLAB中tlsqcurvefi函数在最小二乘法原理下拟合出所求直线。问题二目标为使绝对偏差总和为最小,使用MATLAB中的fminsearch函数,在题目约束条件内求的最优答案,以此方法同样求得问题三中最大偏差为最小时的直线。问题四拟合的曲线为二阶多项式,方法同前三问类似。问题五为求得最佳的曲线,将之前的一次曲线换成多次曲线进行拟合得到新的结果。经试验发现高阶多项式的阶数越高拟和效果最好。关键词:函数拟合最小二乘法线性规划一、问题的重述已知一个量y依赖于另一个量x,现收集有数据如下:x0.00.51.01.51.92.53.03.54.04.5y1.00.90.71.52.02.43.22.02.73.5x5.05.56.06.67.07.68.59.010.0y1.04.07.62.75.74.66.06.812.3(1)求拟合以上数据的直线abxy。目标为使y的各个观察值同按直线关系所预期的值的偏差平方和为最小。(2)求拟合以上数据的直线abxy,目标为使y的各个观察值同按直线关系所预期的值的绝对偏差总和为最小。(3)求拟合以上数据的直线,目标为使y的各个观察值同按直线关系所预期的值的最大偏差为最小。(4)求拟合以上数据的曲线abxcxy2,实现(1)(2)(3)三种目标。(5)试一试其它的曲线,可否找出最好的?二、问题的分析对于问题一,利用MATLAB中的最小二乘法对数据进行拟合得到直线,目标为使各个观察值同按直线关系所预期的值的偏差平方和为最小。对于问题二、三、四均利用MATLAB中的fminsearch函数,在题目要求的约束条件下找到最佳答案。对于问题五,改变多项式最高次次数,拟合后计算残差,和二次多项式比较,再增加次数后拟合,和原多项式比较残差,进而找到最好的曲线。三、基本假设1.表中数据真实可信,每个点都具有意义。四、模型的建立与求解1.问题一对给定数据点),,1,0(,miYXii,在取定的函数类中,求xp,使误差的平方和2E最小,22iiYXpE。从几何意义上讲,就是寻求与给定点),,1,0(,miYXii的距离平方和为最小的曲线xpy。函数xp称为拟合函数或最小二乘解,求拟合函数xp的方法称为曲线拟合的最小二乘法。直接利用MATLAB中tlsqcurvefi的函数进行曲线拟合,得到目标函数如下:xy8117.00264.0函数图像如下:2.问题二利用MATLAB中的fminsearch函数,在题目要求的约束条件使y的各个观察值同按直线关系所预期的值的绝对偏差总和为最小下进行曲线拟合,得到目标函数如下:xy6666.05001.0函数图像如下:3.问题三利用MATLAB中的fminsearch函数,在题目要求的约束条件使y的各个观察值同按直线关系所预期的值的最大偏差为最小下进行曲线拟合,得到目标函数如下:xy1300.1.87901-函数图像如下:4.问题四(1)问题一同问题一相似,只是拟合的曲线为二阶多项式,利用MATLAB中tlsqcurvefi的函数进行曲线拟合,得到目标函数如下:20963.01096.0-3833.1xxy函数图像如下:(2)问题二同问题二相似,只是拟合的曲线为二阶多项式,利用MATLAB中的fminsearch函数,在题目要求的约束条件使y的各个观察值同按直线关系所预期的值的最大偏差为最小下进行曲线拟合,得到目标函数如下:20397.02902.09755.0xxy函数图像如下:(2)问题三同问题三求解过程相似,只是拟合的曲线为二阶多项式,利用MATLAB中的fminsearch函数,在题目要求的约束条件使y的各个观察值同按直线关系所预期的值的最大偏差为最小下进行曲线拟合,得到目标函数如下:20994.00909.0-7672.1xxy函数图像如下:5.问题五选择更高阶多项式进行曲线拟合,利用MATLAB中tlsqcurvefi的函数进行曲线拟合,得到目标函数。比较方差,方差越小,得到结果越稳定,即认为曲线拟合越好,方差结果如下表所示:可以得到函数阶数越高,曲线拟合越好。各阶多项式函数图像如下:三阶:阶数12345方差2.68842.05771.71271.50491.4336四阶:五阶:五、模型的评价对于问题五中的模型,由于我们只选择了最高为五阶的高阶多项式多项式进行曲线拟合,还需要选择更多的函数进行拟合,并进行检验,找到最好的曲线。六、附录%1fun1=@(a,x)a(1).*x+a(2);a=lsqcurvefit(fun1,[0,0],x,y)xi=0:0.1:10;yi=a(1).*xi+a(2);plot(x,y,'*',xi,yi)a=0.8117-0.0264%2symspqfa0=a;[a,fval]=fminsearch('fun2',a0)xi=0:0.1:10;yi=a(2)+a(1).*xi;plot(x,y,'*',xi,yi)%fuction2functionf=fun2(a)x=[0;0.500000000000000;1;1.50000000000000;1.90000000000000;2.50000000000000;3;3.50000000000000;4;4.50000000000000;0;5;5.50000000000000;6;6.60000000000000;7;7.60000000000000;8.50000000000000;9;10;];y=[1;0.900000000000000;0.700000000000000;1.50000000000000;2;2.40000000000000;3.20000000000000;2;2.70000000000000;3.50000000000000;0;1;4;7.60000000000000;2.70000000000000;5.70000000000000;4.60000000000000;6;6.80000000000000;12.3000000000000;];f=sum(abs(a(1).*x+a(2)-y));a=0.66660.5001fval=19.4000%3symspqf[a,fval]=fminsearch('fun3',a0)xi=0:0.1:10;yi=a(2)+a(1).*xi;plot(x,y,'*',xi,yi)%function3functionf=fun3(a)x=[0;0.500000000000000;1;1.50000000000000;1.90000000000000;2.50000000000000;3;3.50000000000000;4;4.50000000000000;0;5;5.50000000000000;6;6.60000000000000;7;7.60000000000000;8.50000000000000;9;10;];y=[1;0.900000000000000;0.700000000000000;1.50000000000000;2;2.40000000000000;3.20000000000000;2;2.70000000000000;3.50000000000000;0;1;4;7.60000000000000;2.70000000000000;5.70000000000000;4.60000000000000;6;6.80000000000000;12.3000000000000;];f=max(abs(a(1)*x+a(2)-y));a=1.1300-1.8790fval=2.8790%4-1fun4_1=@(a,x)a(1).*x.^2+a(2).*x+a(3);a=lsqcurvefit(fun4_1,[0,0,0],x,y);xi=0:0.1:10;yi=a(1).*xi.^2+a(2).*xi+a(3);plot(x,y,'*',xi,yi)a=0.0953-0.10961.3833%4-2symspqfa0=a;[a,fval]=fminsearch('fun4_2',a0)xi=0:0.1:10;yi=a(1).*xi.^2+a(2).*xi+a(3);plot(x,y,'*',xi,yi)a=0.03970.29020.9755fval=a=0.0264-0.29711.40020.3003%4-3symspqf[a,fval]=fminsearch('fun4_3',a0)xi=0:0.1:10;yi=a(1).*xi.^2+a(2).*xi+a(3);plot(x,y,'*',xi,yi)a=0.0994-0.09091.7672fval=2.7986%5fun4_1=@(a,x)a(1).*x.^3+a(2).*x.^2+a(3).*x+a(4);a=lsqcurvefit(fun4_1,[0,0,0,0],x,y)xi=0:0.1:10;yi=a(1).*xi.^3+a(2).*xi.^2+a(3).*xi+a(4);plot(x,y,'*',xi,yi)a=0.0264-0.29711.40020.3003%squxi=xyi=a(1).*xi.^3+a(2).*xi.^2+a(3).*xi+a(4)squ=sum((yi-y).^2)/19squ=1.6226二次:squ=1.9494四次:squ=1.4257五次:squ=1.3581
本文标题:数学建模曲线拟合
链接地址:https://www.777doc.com/doc-6879542 .html