如何在matlab中找到矩阵方程的参数?

时间:2009-12-10 04:24:06

标签: matlab

我有以下矩阵方程式:

[M] = [A][R] + [B][L] 

其中: AB = 2 by 2 matrices

MRL和= 2 x矩阵。

要估算AB的一个特定值,我有9个[M][R]的不同数据, [L]。假设这9个数据是一组的,我有数百个组数据。

我需要找到与特定群组数据相关的AB的值。

有人有或者知道matlab如何获得的东西 只需将[A][B][M]数据输入到matlab中,每个组的[R][L]值为

}。

2 个答案:

答案 0 :(得分:2)

我设置问题的方式出了点问题。无论M,R和L的值是多少,你的等式都会有无限多的解。

无论M,R和L的值如何,一个解是[A] = [0],[B] = [0],[C] = [M]。实际上,如果设置[C] = [M],则[A]和[B]可以是[A] [R] = [0]和[B] [L] = [0]的任何矩阵,并且有无数的。

评论后修改

好的,我在下面仔细阅读了你的评论。我认为你提出问题的原始方式有点误导。在您的新配方中,您有9个实例

Xm = a Xr + bYr + cXp + dYp

这通常根据9x4矩阵乘以四矢量给出9矢量:

y = X b

其中y是包含Xm的9x1向量,X是包含9行Xr,Yr,Xp和Yp值的9x4矩阵,b是我们想要解决的未知数。

如果所有方程都是线性无关的,那么系统就会过度确定,因此无法得到精确解,只能得到最佳解。要在Matlab中进行线性最小二乘拟合,命令为:

b = X\y

b将是包含a,b,c和d的1x4向量,其是对解的最小二乘近似。请参阅此matlab reference

答案 1 :(得分:0)

你不能选择不同大小的基质。这个等式对我来说毫无意义。

更新:

更新的等式是有道理的。

听起来像是最小二乘拟合问题。您将输入数据并获得系数基质的最佳估计值。我必须更多地了解数据的确切性质,分组等,但我建议你开始阅读MATLAB的最小二乘拟合函数。

通过提出模型开始最小二乘拟合。假设您有三个独立变量(x,y,z)和一个因变量(v):

alt text
(来源:equationsheet.com

您现在需要解决四个系数。你将有n组点,其中n> 4,所以你需要做一个最小二乘拟合。

如果你将你的点代入等式,你将得到一个矩阵方程:

alt text

如果你通过alt text的转置预乘双方 ,你将有一个方形矩阵,你可以反转并求解系数。

这个公式也允许更高阶的多项式。