AX = 0并引入误差矩阵

时间:2013-06-27 10:57:26

标签: matlab

我有一个10行5列的矩阵,我称之为A 我想让AX = 0并确定包含5个未知参数的X.

我做的是

null(A)

但它似乎正在考虑我作为线性代数所做的事情。

我想介绍另一个包含错误矩阵的矩阵。这会给我一个先验的: AX + E = 0 因为结果确实不准确,但我仍然希望找到未知矢量(X)的最接近参数并得到误差矩阵。

你能帮帮我吗?

1 个答案:

答案 0 :(得分:1)

你可以对A ^ T进行特征值分解。

[Q, D] = eigen(A^T)

并获取对应于最小特征值的特征向量。 这是从Q矩阵的右侧获取y个向量。 y是X的列号。

然后E = -AX

====编辑=====

行。实际上你想要最小化E.但是因为E是一个矩阵,我假设你想要最小化E中所有元素的平方和。

那是:

||E||_F^2 = ||-AX||_F^2 = trace(X^T(A^TA)X)

你可以对A ^ TA进行特征分解

[Q, D] = eigen(A^TA)

QA^TA = DQ    =>   D =  QA^TAQ^T

为了使其更小,X应该是Qs的列,对应于D对角线中的最小特征值。

如果有一个特征值等于0,那么AX可以是0而E = 0