矩阵零空间的帮助很小

时间:2011-06-05 14:40:28

标签: math matlab

这需要一些关于Matlab的知识,我没有。我只是想知道是否有人可以指出我正确的方向并给我一些指针:)

我必须编写一个matlab代码来查找matles的Null空格 A和B,其中B = A ^ T x A.然后是AX = b1的一般解 BX = b2,其中b1 =列[1 2 3 4 5],b2 =列[1 2 3 4 5 6 7 8]。 我担心的是我真的不知道如何处理这段代码。 这是我到目前为止所做的,我认为我没有走上正轨。我有一个特定的矩阵如下。 行用分号分隔。

A = [ 1   2   3   4   5   6   7   8;
      1   2^2 3^2 4^2 5^2 6^2 7^2 8^2;
      1   2^3 3^3 4^3 5^3 6^3 7^3 8^3;
      1   2^4 3^4 4^4 5^4 6^4 7^4 8^4;
      6   8   1   1   7   9   0   7 ]
B = A’A (this is how transpose is written) 
C = null(A)
D = null(B)

我觉得某个地方应该有一个rref - 我只是没有到达任何地方。请指出我正确的方向。


好的所以我现在更新了它....我的用户名从jona变了,我不知道为什么

A = [ 1 2 3 4 5 6 7 8;
1 2^2 3^2 4^2 5^2 6^2 7^2 8^2;
1 2^3 3^3 4^3 5^3 6^3 7^3 8^3;
1 2^4 3^4 4^4 5^4 6^4 7^4 8^4;
6 8 1 1 7 9 0 7 ] 

B = A’*A (this is how transpose is written)

null(A)

null(B)

b1=[1; 2; 3; 4; 5 ];

b2=[1; 2; 3; 4; 5; 6; 7; 8 ];

end

rref(A,b1)

rref(B,b2)

end

然而,我仍然觉得这不对:(

@Chris A.我知道零空间是Ax = 0的解决方案。但是我很困惑如何使用它找到使用b1和b2的一般解决方案。你有可能向我解释这种联系吗?我没有那本书。

2 个答案:

答案 0 :(得分:2)

在MATLAB中,arithmetic operations需要明确,即a(b+c)应写为a*(b+c)

您是否尝试过将B写为

B=A'*A;

此外,您似乎使用了不同的字符进行转置...当您使用或者'时,您正在使用{{1}},single right quotation的unicode字符apostrophe的unicode字符。

答案 1 :(得分:1)

好的,所以底线是零空间是所有向量x的集合,使得A * x = 0。你说对了。 C是零空间中向量的标准正交基。这意味着如果你有一个特定的解决方案(我们称之为v),那么A * v = b1那么解决方案的空间就是向量v加上零空间中向量的任意组合。

对于A的情况,C的大小(第二维)会告诉您空格的维度。 C中的每个向量都将是零空间中的向量。

要获得v,您可以v = A \ b1。您可以在C C * c之间编写任意向量组合,其中小c是一个列空间大小的列向量。

因此,一般解决方案是v + C * c,其中c是任何向量,它是零空间的维度。要看到这解决了系统,只需将其重新插入

即可
A * (v + C * c) = 
A * v + A * C * c =
b1 + 0 * c = 
b1

编辑:找到A'*A * x = b2的解决方案完全相同,只是在上面的讨论中看到A的任何地方,将其替换为A'*A以及您看到的任何地方{{1}用b1替换它。 b2A * x = b1的解决方案是不同的问题。