用MATLAB作线性和非线性最小二乘法拟合.pdf
新乡学院新乡学院数学与信息科学系实验报告数学与信息科学系实验报告实验名称实验名称插值与拟合所属课程所属课程数学软件与实验实验类型实验类型综合型实验专专业业信息与计算科学班班级级2011 级 1 班学学号号姓姓名名李欢丽指导教师指导教师朱耀生老师一、实验概述一、实验概述【实验目的】【实验目的】学会用 MATLAB 作线性和非线性最小二乘法拟合.【实验原理】【实验原理】1.用polyfit作线性最小二乘法拟合:a=polyfit(x,y,m),a表示输出的拟合多现实的系数a1,a2,an(数组),x,y 指输出同长度的数组 x,y,m 指拟合多项式的次数。2,用lsqcorvefit作非线性最小二乘法拟合x=lsqcurvefit(fun,x0,xdatd,ydata)fun是 一 个 事 先 建 立 的 定 义 函 数f(x,xdata)的 M 文件,自变量是 x,xdata.x0 迭代初值。Xdata,ydata 已知数据点。【实验环境】【实验环境】MatlabR2010b二、实验内容二、实验内容1 1问题一问题一某年美国旧车价格的调查资料如下表,其中xi表示轿车的使用年数,yi表示相应的平均价格。试分析用什么形式的曲线来拟合上述的数据,并预测使用 4.5 年后轿车的平均价格大致为多少?表 1xiyi1234576565387484829092261020426151943149410871.1.分析问题分析问题用 polyfit 作线性最小二乘法拟合2.2.问题求解问题求解x1=1:10;y=2615 1943 1494 1087 765 538 484 290 226 204;A=polyfit(x1,y,2);z1=polyval(A,x1);plot(x1,z1)x=4.5;z=polyval(A,x)1300025002000150010005000123456789103.3.结果结果z=955.70474.4.结论及分析结论及分析经多次试验可知分析无误问题二问题二增加生产、发展经济所依靠的主要因素有增加投资、增加劳动力以及技术革新等,在研究国民经济产值与这些因素的数量关系时,由于技术水平不像资金、劳动力那样容易定量化,作为初步的模型,可认为技术水平不变,只讨论产值和资金、劳动力之间的关系。在科学技术发展不快时,如资本主义经济发展的前期,这种模型是有意义的。用Q,K,L分别表示产值、资金、劳动力,要寻求的数量关系Q(K,L)。经过简化假设与分析,在经济学中,推导出一个著名的Cobb-Douglas 生产函数:Q(K,L)aKL0,1(*)式中,a要由经济统计数据确定。现有美国马萨诸塞州 19001926 年上述三个经济指数的统计数据,如下表,试用数据拟合的方法,求出式(*)中的参数,a。表 2 t Q K L t Q K L1900 1.05 1.04 1.05 1914 2.01 3.24 1.651901 1.18 1.06 1.08 1915 2.00 3.24 1.621902 1.29 1.16 1.18 1916 2.09 3.61 1.861903 1.30 1.22 1.22 1917 1.96 4.10 1.931904 1.30 1.27 1.17 1918 2.20 4.36 1.961905 1.42 1.37 1.30 1919 2.12 4.77 1.951906 1.50 1.44 1.39 1920 2.16 4.75 1.901907 1.52 1.53 1.47 1921 2.08 4.54 1.581908 1.46 1.57 1.31 1922 2.24 4.54 1.671909 1.60 2.05 1.43 1923 2.56 4.58 1.821910 1.69 2.51 1.58 1924 2.34 4.58 1.6021911 1.81 2.63 1.59 1925 2.45 4.58 1.611912 1.93 2.74 1.66 1926 2.58 4.54 1.641913 1.95 2.82 1.68提示:由于(*)式对参数,,a是非线性的,因此,可以有两种方式进行拟合,一是直接使用 MATLAB 软件中的曲线或曲面拟合命令。另一个是将非线性函数转化成线性函数的形式,使用线性函数拟合1.1.分析问题分析问题用 lsqcorvefit 作非线性最小二乘法拟合2.2.问题求解问题求解a=1.04 1.06 1.16 1.22 1.27 1.37 1.44 1.53 1.57 2.05 2.512.63.2.74 2.82 3.24 3.24 3.61 4.1 4.36 4.77 4.75 4.54 4.544.58.4.58 4.58 4.54;1.05 1.08 1.18 1.22 1.17 1.3 1.39 1.471.31.1.43 1.58 1.59 1.66 1.68 1.65 1.62 1.86 1.93 1.96 1.951.9.1.58 1.67 1.82 1.6 1.61 1.64;z=1.05 1.18 1.29 1.3 1.3 1.42 1.5 1.52 1.46 1.6 1.69 1.81.1.931.95 2.01 2.00 2.09 1.96 2.2 2.12 2.16 2.08 2.242.56.2.34 2.45 2.58;x0=0.1 0.1 0.2;x=lsqcurvefit(fun3,x0,a,z)m=linspace(0,2.7,27);n=linspace(0,2.7,27);M,N=meshgrid(m,n);z=x(1)*(M.x(2).*(N.x(3);surf(M,N,z);3.3.结果结果332.521.510.50322100134.4.结论及分析结论及分析经多次试验可知分析无误三、实验小结三、实验小结通过实验掌握拟合函数,非线性拟合函数对于三维曲面函数拟合有点困难。4