1.类型1数据拟合(多项式拟合)
如果取{r1 (x),…,rm +1(x)}={1,x,…,x m},即用m次多项式拟合给定数,MATLAB中有现成的函数
例1 某乡镇企业1990—1996年的生产利润如表5.2.1所示,试预测1997年和1998年的利润。
表5.2.1 乡镇企业的生产利润表
解 作已知数据的散点图,有
x0=[1990 1991 1992 1993 1994 1995 1996];
y0=[70 122 144 152 174 196 202];
plot(x0,y0,'*')
发现,该乡镇企业的年生产利润几乎直线上升。因此,可以用y=a1 x+a0作为拟合函
数来预测该乡镇企业未来的年利润。
编写程序如下:
2. 类型2数据拟合
MATLAB提供了求非线性最小二乘拟合的函数:lsqcurvefit和lsqnonlin。这两个命令都要先建立M文件fun.m,在其中定义函数f(x),但两者定义f(x)的方式是不同的。(www.xing528.com)
格式:a = lsqcurvefit('fun',a0,x,y)
其中:x和y是将要拟合的(已知)数据向量;fun为将要拟合的函数f(x,a)=f(x,a1,a2,…,am)的数学表达式构成的函数M文件的文件名。
格式:a=lsqnonlin('fun',a0)
其中:fun为函数F(x,y,a)=f(x,a)-y 的数学表达式构成的函数M文件的文件名;x和y是将要拟合的(已知)数据向量。
例2 用下面一组实验数据:
满足函数关系式c (t )=a +be-0.02kt,试用数据拟合方法确定函数中的待定参数a,b,k.
该问题即最优化问题:
解法一 (1)编写M文件 curvefun1.m。
(4)结论:得到a=0.006 3, b=-0.003 4, k=0.254 2。
解法二 用命令lsqnonlin
(4)结论:拟合得到a=0.006 3,b=-0.003 4,k=0.254 2。
可以看出,两个命令的计算结果是相同的。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。