如何在MATLAB中使用最小二乘逼近?

Jak*_*kob 5 math matlab linear-algebra least-squares

对于线性代数中的家庭作业,我使用MATLAB的\运算符(这是推荐的方法)解决了以下等式:

A = [0.2 0.25; 0.4 0.5; 0.4 0.25];
y = [0.9 1.7 1.2]';
x = A \ y

产生以下答案:

x =
1.7000
2.0800

对于赋值的下一部分,我应该使用最小二乘近似来求解相同的等式(然后将其与先前值进行比较以查看近似的精确度).

如何在MATLAB中找到这样做的方法?

以前的工作:我找到了函数lsqlin,它似乎能够解决上述类型的方程,但我不明白哪个参数提供它,也不知道它的顺序.

Han*_*rén 6

mldivide,(" \ ")实际上也是这样做的.根据文件:

如果A是m×n的m-by-n矩阵,B是具有m个分量的列向量,或者是具有多个这样的列的矩阵,那么X = A\B是最小二乘意义下的解决方案. - 或超定方程组AX = B.换句话说,X最小化范数(A*X-B),矢量AX-B的长度.A的等级k由具有列旋转的QR分解确定(参见细节算法).计算的解X每列最多具有k个非零元素.如果k <n,这通常与x = pinv(A)*B不同,它返回最小二乘解.

所以,你在第一次任务中所做的就是用LSE解决这个问题.