最小二乘法的拟合

2024-05-17 20:50

1. 最小二乘法的拟合

对给定数据点集合,在取定的函数类中,求,使误差的平方和最小,。从几何意义上讲,就是寻求与给定点集的距离平方和为最小的曲线y=p(x)。函数p(x)称为拟合函数或最小二乘解,求拟合函数p(x)的方法称为曲线拟合的最小二乘法。 最小二乘法的矩阵形式最小二乘法的矩阵形式为:其中 为 的矩阵, 为 的列向量, 为 的列向量。如果 (方程的个数大于未知量的个数),这个方程系统称为矛盾方程组(Over Determined System),如果 (方程的个数小于未知量的个数),这个系统就是Under Determined System。正常来看,这个方程是没有解的,但在数值计算领域,我们通常是计算 ,解出其中的 。比较直观的做法是求解 ,但通常比较低效。其中一种常见的解法是对 进行QR分解( ),其中 是 正交矩阵(Orthonormal Matrix), 是 上三角矩阵(Upper Triangular Matrix),则有  用MATLAB命令  x=R\(Q\b)可解得 。 最小二乘法的Matlab实现① 一次函数线性拟合使用polyfit(x,y,1)②多项式函数线性拟合使用 polyfit(x,y,n),n为次数拟合曲线x=[0.5,1.0,1.5,2.0,2.5,3.0],y=[1.75,2.45,3.81,4.80,7.00,8.60]。解:MATLAB程序如下:x=[0.5,1.0,1.5,2.0,2.5,3.0];y=[1.75,2.45,3.81,4.80,7.00,8.60];p=polyfit(x,y,2)x1=0.5:0.5:3.0;y1=polyval(p,x1);plot(x,y,'*r',x1,y1,'-b')计算结果为:p =0.5614 0.8287 1.1560即所得多项式为y=0.5614x^2+0.8287x+1.15560③非线性函数使用lsqcurvefit(fun,x0,x,y) a=nlinfit(x,y,fun,b0)最小二乘法在交通运输学中的运用交通发生预测的目的是建立分区产生的交通量与分区土地利用、社会经济特征等变量之间的定量关系,推算规划年各分区所产生的交通量。因为一次出行有两个端点,所以我们要分别分析一个区生成的交通和吸引的交通。交通发生预测通常有两种方法:回归分析法和聚类分析法。 回归分析法是根据对因变量与一个或多个自变量的统计分析,建立因变量和自变量的关系,最简单的情况就是一元回归分析,一般式为:Y=α+βX式中Y是因变量,X是自变量,α和β是回归系数。若用上述公式预测小区的交通生成,则以下标 i 标记所有变量;如果用它研究分区交通吸引,则以下标 j 标记所有变量。而运用公式的过程中需要利用最小二乘法来求解,上述公式中的回归系数根据最小二乘法可得:其中,式中的X拔是规划年的自变量值,Y拔是规划年分区交通生成(或吸引)预测值。

最小二乘法的拟合

2. 最小二乘法拟合

a=2  -3794.2

3. 最小二乘法的线性拟合

题中所给数据可表示为y(x),即x=1、2、3、...、19,y(1)=0.898、y(2)=2.38、...、y(19)=81.8(见题);令Δ(x)=ae^(bx)-y(x)①,方差D=∑(x=1→19)[Δ(x)]^2②;②式分别对a、b求偏导,ðD/ða=2∑(x=1→19)Δ(x)e^(bx)③;ðD/ðb=2a∑(x=1→19)xΔ(x)e^(bx)④;令ðD/ða=0、ðD/ðb=0,则③、④变为:a∑(x=1→19)e^(2bx)=∑(x=1→19)y(x)e^(bx)⑤;a∑(x=1→19)xe^(2bx)=∑(x=1→19)xy(x)e^(bx)⑥;联立⑤、⑥即可求得a、b;⑤、⑥为超越方程,求解析解很困难,采用数值解法得:a≈0.23688176、b≈0.30897789,均方差=√D≈8.6553、最大偏差(绝对值)≈5.34(发生在x=17时)。

最小二乘法的线性拟合

4. 在什么情况下用最小二乘拟合方法

模型已知, 而待求解的参数无法精确求出, 并且给的条件(或者是观测值)比参数个数多时, 可以考虑使用.


比如通常的线性最小二乘问题: 模型y=ax+b, 待求解的参数是a,b.

已知 x=1 时 y=2, x=2 时 y=4.1, x=3 时 y=5.9, 即是说给了三组条件, 多于参数个数, 那么就用最小二乘拟合.
如果只给了两组条件, 那就是联立方程求解的问题了.

另外, 最小二乘拟合通常是用在观测有误差的情况中(比如用于察看统计数据的规律). 概率论有证明, 在一定条件下, 最小二乘拟合得到的是期望上最好的结果.

5. matlab数据最小二乘法拟合

数据拟合可以用matlab最小二乘法lsqcurvefit拟合函数求出。求解方法:
t=[。。。];
y=[。。。];
func=@(a,t)t./(a(1)+a(2)*t); %自定义函数,a(1)——α,a(2)——β
a0=[0.74313 0.39223];  %初值
a = lsqcurvefit(func,a0,t,y); %求拟合系数
求解结果
α=0.13925,β=0.083681

matlab数据最小二乘法拟合

6. 最小二乘法拟合曲线

曲线函数求出来之后就只可带横坐标算纵坐标了对应描点连线就可以了,编辑框 把编辑框的句柄传入onpaint中就可以绘图了。
help polyfit。
POLYFIT Fit polynomial to data。
POLYFIT(X,Y,N) finds the coefficients of a polynomial P(X) of。
degree N that fits the data, P(X(I))~=Y(I), in a least-squares sense。
The structure S contains the Cholesky factor of the Vandermonde。
matrix (R), the degrees of freedom (df),and the norm of the。
residuals (normr) as fields。

工程设计
所得到的数据往往是一张关于离散数据点的表 ,没有解析式来描述 x-y关系。根据所给定的这些离散数据点绘制的曲线,称为不规则曲线,通常用曲线拟合的方法解决这类问题。
所谓曲线拟合方法是由给定的离散数据点,建立数据关系(数学模型),求出一系列微小的直线段把这些插值点连接成曲线,只要插值点的间隔选择得当,就可以形成一条光滑的曲线。

7. 怎样用matlab作数据的最小二乘拟合?

用polyfit()语句可以,
polyfit(x,y,拟合次数n);
x,y是你的数据,n是你要进行几次拟合,填1的话为一次也就是最小二乘法拟合
你可以这样写
x=[ 0.25 0.5 0.75 1 1.5 2 2.5 3 3.5 4 4.5 5 6 7 8 9 10 11 12 13 14 15 16];
y=[30 68 75 82 82 77 68 68 58 51 50 41 38 35 28 25 18 15 12 10 7 7 4];
p=polyfit(x,y,1);
plot(x,y,'b',x,polyval(p,x),'r');  %如果作图的话,蓝线为原数据,红线为拟合数据。
先画散点图大致确定曲线类型。然后用polyfit,polyval函数(这两个是多项式拟合的),比如指数型,取对数就可以用。函数用法百度下就好。

怎样用matlab作数据的最小二乘拟合?

8. 已知数据,求用MATLAB进行最小二乘法拟合

该问题可以通过nlinfit()非线性回归拟合函数来求得图示函数的系数。经拟合得到
函数式:ξ=a1*exp(a2/C)
式中:a1=0.83557,a2=21.6769
决定系数R^2=0.89075
由于数据偏少,其拟合精度不是太理想。
运行结果

最新文章
热门文章
推荐阅读