首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >矩阵中的r个独立列

矩阵中的r个独立列
EN

Stack Overflow用户
提问于 2013-02-19 02:57:11
回答 2查看 4.6K关注 0票数 0

我正在尝试寻找独立的列来解线性方程组。下面是我的简化示例:

代码语言:javascript
复制
> mat = matrix(c(1,0,0,0,-1,1,0,0,0,-1,1,0,0,0,-1,0,-1,0,0,1,0,0,1,-1), nrow=4, ncol=6, dimnames=list(c("A", "B", "C", "D"), paste("v", 1:6, sep="")))
> mat
  v1 v2 v3 v4 v5 v6
A  1 -1  0  0 -1  0
B  0  1 -1  0  0  0
C  0  0  1 -1  0  1
D  0  0  0  0  1 -1

矩阵是满秩的:

代码语言:javascript
复制
qr(mat)$rank

我知道列v4和v6是独立的.

通过重新排列纸上的线性方程,我看到

v1、v2、v3、v4、v5、v6 = v4、v4-v6、v4-v6、v4、v4、v6、v6

因此,我可以从v4和v6的任意值中找到一个位于零空间的向量,方法是将v4和v6与下面的向量相乘:

代码语言:javascript
复制
v4 * [1,1,1,1,0,0] + v6 * [0,-1,-1,0,1,1]

我的第二个问题是:如何找到这些向量,即如何求解v4和v6的矩阵?例如

代码语言:javascript
复制
qr.solve(mat, cbind(c(0,0,0,0), c(0,0,0,0)))

给出了两个长度为6且只有零的向量。

任何帮助都是非常感谢的,非常感谢!

-H-

EN

回答 2

Stack Overflow用户

发布于 2013-02-19 03:05:20

使用透视信息查找一组独立的列:

代码语言:javascript
复制
q <- qr(mat)

mmat <- mat[,q$pivot[seq(q$rank)]]

mmat
##   v1 v2 v3 v5
## A  1 -1  0 -1
## B  0  1 -1  0
## C  0  0  1  0
## D  0  0  0  1

qr(mmat)$rank
## [1] 4

为什么这是可行的?pivot的含义在由?qr.Q提出的QR.Auxiliaries {base}中给出。特别是:

代码语言:javascript
复制
qr.R returns R. This may be pivoted, e.g., if a <- qr(x) then x[, a$pivot] = QR.
The number of rows of R is either nrow(X) or ncol(X) (and may depend on whether
complete is TRUE or FALSE).

为了数值稳定性,旋转是为了减少绝对值而对特征值进行排序。这也意味着任何0特征值都在最后,超出了q$pivot中的q$rank (在当前示例中不存在,其中Q是4x4正交矩阵)。

QR.Auxiliaries {base}中的最后几行显示了这种关系:

代码语言:javascript
复制
pivI <- sort.list(a$pivot) # the inverse permutation
stopifnot(
 all.equal(x[, a$pivot], qr.Q(a) %*% qr.R(a)),          # TRUE
 all.equal(x           , qr.Q(a) %*% qr.R(a)[, pivI]))  # TRUE too!
票数 3
EN

Stack Overflow用户

发布于 2013-02-19 03:05:19

如果从v4和v6开始,那么在第1行和第2行中还需要2个非零值,因此需要选择v1和v2或v3。这些都是具有最大排名的可能的基础选择。

代码语言:javascript
复制
> qr(mat[, c(1,2,4,6)])$rank
[1] 4
> qr(mat[, c(1,2,3,5)])$rank
[1] 4
> qr(mat[, c(1,3,4,6)])$rank
[1] 4

“独立列”并不是唯一确定的。可能存在必须依赖的列集,例如,彼此是标量倍数的列集,但这里不是这种情况。

另一方面,这将是排名不足的:

代码语言:javascript
复制
> qr(mat[, c(1,2,3,4)])$rank
[1] 3
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14943422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档