当前位置:文档之家› 超定方程的最小二乘法

超定方程的最小二乘法

独立方程个数大于独立的未知参数的个数的方程,称为超定方程,在matlab里面有三种方法求解,一是用伪逆法求解,x=pinv(A)*b,二是用左除法求解,x=A\b,三是用最小二乘法求解,x=lsqnonneg(A,b)(3)矩阵求逆行数和列数相等的矩阵称为方阵,只有方阵有逆矩阵。

方阵的求逆函数为:B=inv(A) 该函数返回方阵A的逆阵。

如果A不是方阵或接近奇异的,则会给出警告信息。

在实际应用中,很少显式的使用矩阵的逆。

在MATLAB中不是使用逆阵x=inv(A)*B来求线性方程组Ax=B的解,而是使用矩阵除法运算x=A\B来求解。

因为MATLAB设计求逆函数inv时,采用的是高斯消去法,而设计除法解线性方程组时,并不求逆,而是直接采用高斯消去法求解,有效的减小了残差,并提高了求解的速度。

因此,MATLAB推荐尽量使用除法运算,少用求逆运算。

(4)除法运算在线性代数中,只有矩阵的逆的定义,而没有矩阵除法的运算。

而在MA TLAB中,定义了矩阵的除法运算。

矩阵除法的运算在MA TLAB中是一个十分有用的运算。

根据实际问题的需要,定义了两种除法命令:左除和右除。

矩阵左除:C=A\B或C=mldivide(A,B) 矩阵右除;C=A/B或C=mrdivide(A,B) 通常矩阵左除不等于右除,如果A是方阵,A\B等效于A的逆阵左乘矩阵B。

也就是inv(A)*B。

如果A是一个n*n矩阵,B是一个n维列向量,或是有若干这样的列的矩阵,则A\B就是采用高斯消去法求得的方程AX=B的解。

如果A接近奇异的,MA TLAB 将会给出警告信息。

如果A是一个m*n矩阵,其中m不等于n,B是一个m维列向量,或是由若干这样的列的矩阵,则X=A\B是不定或超定方程组AX=B的最小二乘解。

通过QR分解确定矩阵A的秩k,方程组的解X每一列最多只有k个非零元素。

如果k<n,方程的解是不唯一的,用矩阵除法求得的最小二乘解是这种类型解中范数最小的。

相关主题