有没有办法找到R中矩阵的行和列空间的基?
一位同事向我提出了这个问题,希望我能给出答案。对于R来说,我是个新手,而且我的第一门线性代数课程只上了一半,几个小时的搜索并没有给出答案。这里的任何帮助都将不胜感激 我知道这个问题相当模糊,也不详细,但这正是它向我提出的方式。如果有人问我,我会尽量补充任何细节 这也是我在这里的第一个问题,所以如果我没有正确地提出问题,我很抱歉。请随意评论我,我是来学习的。您可以使用rref(A)函数定义pracma包中的行和空空间。行空间将是前导为1的列,null/col空间将是列数减去行空间。因此,编写rref(as.matrix(A))代码,然后编写一些代码,在简化的矩阵中查找轴心列并计算列数。剩下的是简单的算术 记住矩阵的重要性: 创建R4中有3个向量的矩阵,只有两个线性独立:有没有办法找到R中矩阵的行和列空间的基?,r,linear-algebra,R,Linear Algebra,一位同事向我提出了这个问题,希望我能给出答案。对于R来说,我是个新手,而且我的第一门线性代数课程只上了一半,几个小时的搜索并没有给出答案。这里的任何帮助都将不胜感激 我知道这个问题相当模糊,也不详细,但这正是它向我提出的方式。如果有人问我,我会尽量补充任何细节 这也是我在这里的第一个问题,所以如果我没有正确地提出问题,我很抱歉。请随意评论我,我是来学习的。您可以使用rref(A)函数定义pracma包中的行和空空间。行空间将是前导为1的列,null/col空间将是列数减去行空间。因此,编写rre
> v1 <- c(3,5,11,-1)
> v2 <- c(45,-2,5,23)
> v3 <- v1 -2*v2
>
> (M <- cbind(v1,v2,v3))
v1 v2 v3
[1,] 3 45 -87
[2,] 5 -2 9
[3,] 11 5 1
[4,] -1 23 -47
为位于R4中的列空间生成一个基,所有Mx=b的结果(b)
:
> (Col_sp <- t(rref(t(M))[apply(rref(t(M)), 1, function(x) !all(x==0)),]))
v1 v2
[1,] 1.0000000 0.0000000
[2,] 0.0000000 1.0000000
[3,] 0.2034632 2.0779221
[4,] 0.4891775 -0.4935065
> (Row_sp <- rref(M)[apply(rref(M), 1, function(x) !all(x==0)),])
v1 v2 v3
[1,] 1 0 1
[2,] 0 1 -2
这两个向量满足条件tr(M)x=0吗
> round(t(M)%*%Left_Null,10)
[,1] [,2]
v1 0 0
v2 0 0
v3 0 0
检查
这两个子空间真的是正交的吗
> round(t(Col_sp) %*% Left_Null, 10)
[,1] [,2]
v1 0 0
v2 0 0
> round(Row_sp %*% Right_Null,10)
[,1]
[1,] 0
[2,] 0
检查
为生活在R3或解决方案(x)中的行空间生成基础,以Mx=b
:
> (Row_sp <- rref(M)[apply(rref(M), 1, function(x) !all(x==0)),])
v1 v2 v3
[1,] 1 0 1
[2,] 0 1 -2
Mx=0是否满足要求
> round(M %*% Right_Null, 10)
[,1]
[1,] 0
[2,] 0
[3,] 0
[4,] 0
检查
最后两个子空间是正交的吗
> round(t(Col_sp) %*% Left_Null, 10)
[,1] [,2]
v1 0 0
v2 0 0
> round(Row_sp %*% Right_Null,10)
[,1]
[1,] 0
[2,] 0
检查 函数的作用很大。现在我有了我的rref矩阵,我很难将列空间与矩阵的其余部分分开。我知道前导为1的列是列空间的一部分,其他列是null空间的一部分。因此,如果在5列矩阵中,列1、2和4具有前导1,则这是列空间的基础。我现在的问题是如何用R代码确定并显示它。你可以求列的向量和。类似于:AI刚刚检查过,空{MASS}将在手动滚动解决方案之外工作。从空值中可以找到其他属性。