这需要一些关于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的一般解决方案。你有可能向我解释这种联系吗?我没有那本书。
答案 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
替换它。 b2
和A * x = b1
的解决方案是不同的问题。