首页 理论教育 最小二乘法在MATLAB中的实现-实用数学方法

最小二乘法在MATLAB中的实现-实用数学方法

时间:2023-11-17 理论教育 版权反馈
【摘要】:,x m},即用m次多项式拟合给定数,MATLAB中有现成的函数例1 某乡镇企业1990—1996年的生产利润如表5.2.1所示,试预测1997年和1998年的利润。编写程序如下:2. 类型2数据拟合MATLAB提供了求非线性最小二乘拟合的函数:lsqcurvefit和lsqnonlin。例2 用下面一组实验数据:满足函数关系式c (t )=a +be-0.02kt,试用数据拟合方法确定函数中的待定参数a,b,k.该问题即最优化问题:解法一 编写M文件 curvefun1.m。解法二 用命令lsqnonlin结论:拟合得到a=0.006 3,b=-0.003 4,k=0.254 2。

最小二乘法在MATLAB中的实现-实用数学方法

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。

可以看出,两个命令的计算结果是相同的。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈