《Matlab实验报告七最小二乘拟合曲线拟合》由会员分享,可在线阅读,更多相关《Matlab实验报告七最小二乘拟合曲线拟合(5页珍藏版)》请在金锄头文库上搜索。
1、数学与信息科学系实验报告实验名称插值与拟合II所属课程数学软件与实验实验类型综合型实验专 业信息与计算科学班级学号姓名指导教师实验概述【实验目的】让我们了解在mat lab环境卞曲线拟合问题的思想,掌握最小二乘多项式拟合法和曲线拟合法, 区分插值于拟合的不同之处。【实验原理】1. a=polyfit(x,y,m):作多项式拟合。2. y=polyval (a, x):可用以计算多项式在x处的值y。3. x = lsqcurvefit ( fun, ,xO, xdata, ydata):用以求含参量 x (向量)的向 量值函数。4. x二lsqnonlin (fun, xO, options):
2、用以求含参量x (向量)的向量值函 数。【实验环境】MatlabR2010b二、实验内容1.问题一某年美国旧车价格的调查资料如下表,其中掐表示轿车的使用年数,力表示相应的平均价格。 试分析用什么形式的曲线来拟合上述的数据,并预测使用4. 5年后轿车的平均价格大致为多少? 表1Xi1231567S910Yi26151913149410877655384842902262041 分析问题本题的特点是根据题中给出的一组数据,用曲线拟合法(沪polyfit(x,y,in) 来作出一条曲线能很好地反映出整体趋势,并用y=polyval (a, x)求出x在 4.5处的值。2. 问題求解x=l:10;y=
3、2615 1943 1494 1087 765 538 484 290 226 204;A=polyfit(x,yz 2)z=polyval(A,x);disp(*4.5年后轿车的平均价格为zl; *)zl=polyval (A, 4.5)plot (xzyz冷3. 结果A =1. 0e+003 *0.0361-0. 65083. 15234.5年后轿车的平均价格为zl;zl 二955.7047L11LLIL25002000-+-1500-1000-一500-七辛-nrrrrrrrr9108#4.结论及分析经过实验验证,结果正确,实验无误。问题二 增加生产、发展经济所依靠的主要因素有增加投资、
4、增加劳动力以及技术革新等, 在研究国民经济产值与这些因素的数量关系时,由于技术水平不像资金、劳动力那样容易定量化, 作为初步的模型,可认为技术水平不变,只讨论产值和资金、劳动力之间的关系。在科学技术发 展不快时,如资本主义经济发展的前期,这种模型是有意义的。用0, K, Z分别表示产值、资金、劳动力,要寻求的数量关系0(K,厶)。经过简化假设与分析,在经济学中,推导出一个著名的Cobb-Douglas生产函数:QK.L) = aKalf Ova,0vl(*)式中久04要由经济统计数据确定。现有美国马萨诸塞州1900-1926年上述三个经济指数的统计数据,如下表,试用数据拟合的方法,求出式(*)
5、中的参数a、队a 19001.051. 011.0519011. 181. 06 1. 08tQKL1914 2.013.241.651915 2.003.241.6219021.291. 161. 1819162. 093.611.8619031.301.221.2219171.964. 101.9319011.301.271. 1719182. 204. 361.9619051.421. 371. 3019192. 124.771.9519061.501.441. 3919202. 164. 751.9019071.521.531.4719212. 084.541. 5819081.461
6、.571. 3119222. 244.541. 6719091.602. 051.4319232. 564.581.8219101.692.511. 5819242. 344.581. 6019111.812. 631. 5919252. 454.581. 6119121.932. 741.6619262. 584.541. 6419131.952. 821.68提示:由于(*)式对参数a, 曰是非线性的,因此,可以有两种方式进行拟合,一是直 接使用MATLAB软件中的曲线或曲面拟合命令。另一个是将非线性函数转化成线性函数的形式,使 用线性函数拟合1分析问题本题的特点是根据给岀的数据用x =
7、lsqcurvefit ( fun, ,xO,xdata,ydata) 求方程中的参数。2 .问题求解1) 编写 M 文件 curvefun 1. mfunction Q=curvefunl(x,KLdata)Q=x(1)*(KLdata(lz:) Ax(2) *(KLdata(2,:) .Ax(3)2) 输入命令KLda*ta= 1 04 1.06 1.16 1.22 1.27 1.37 1.441.531.572.052.512.632.742.823.243.24 3.61 4.10 4.36 4.77 4.754544544.584.584.584.54 f1.05081.181.22
8、 1.17 1.30 1.39 1.47 1.311431581.591.661.681.651.621.861.93 1.96 1.951.90 1.58 l.i57 1.82 160 1.61 1.64;Qda匕a= 1.05 1.181.29 1.30 1.30 1.42 1.501521.461.601.691.811.931.952.012.00 2.09 1.96 2.20 2.12 2.162082.242.562.342.452.58;x0=0.2 0.3 0.3;x=lsqcurvefit(1curvefunl1,xO,KLdata,Qdata)Q=curvefunl(x,K
9、Ldata)3 .结果Q =Columns 1 through 91. 23921. 24571. 28401. 30861. 34021. 36931.38921.41851.4567Columns 10 through 181.62911. 76591.80291.82721.84871.97551.98022.04502. 1584Columns 19 through 272.21612.31142.31462.32092. 30452. 28862. 32652. 32472. 3098X = 1.22460.4612-0. 12774.结论及分析经过实验验证,结果正确,实验无误。三、实验小结通过本次实验我发现matlab的用处很广范,能解决生活中的很多问题,预测一 些还未发生的事情,越来越感觉这门课用处很大,也渐渐地喜欢这门课了。#