如何在Matlab中求解矩阵?

时间:2015-06-15 15:50:26

标签: matlab matrix least-squares

我如何在matlab中解析eq1,其中eq2eq3以及eq4 eq5 最小二乘意义

所以我希望将eq6最小化为输出。

1 个答案:

答案 0 :(得分:1)

重写数量以最小化为

||Xa - b||^2

=(Frobenius规范的定义)

Tr{(Xa - b) (Xa - b)'}

=(展开矩阵 - 产品表达式)

Tr{Xaa'X' - ba'X' - Xab' + bb'}

=(跟踪运算符的线性)

Tr{Xaa'X'} - Tr{ba'X'} - Tr{Xab'} + Tr{bb'}

=(矩阵的转置轨迹=矩阵的轨迹)

Tr{Xaa'X'} - 2 Tr{ba'X'} + Tr{bb'}

其中'表示转置​​运算符(因为所涉及的所有矩阵都是实数,转置和共轭转置是相同的)。 现在,如果您参考Matrix Cookbook的第2.5节,您就会找到

  • Tr{Xaa'X'}的导数为2Xaa'(见公式111),
  • Tr{ba'X'}的导数是ba'(见公式104),
  • Tr{bb'}的衍生物为0(因为此表达式不依赖X)。

(对矩阵X进行微分)。

因此,最小化兴趣量的矩阵满足

2Xaa' = 2ba'
Xaa' = ba'

因此,您可以使用MATLAB的矩阵右除运算符/来计算X

X = b * a' / (a * a');