q**j 发帖数: 10612 | 1 【 以下文字转载自 Mathematics 讨论区 】
发信人: qqzj (小车车), 信区: Mathematics
标 题: 能帮忙化简一个矩阵乘法么?
发信站: BBS 未名空间站 (Fri Dec 2 12:16:25 2011, 美东)
要化简 MX。这里M是一个n by n matrix.
X = kron(I_n, a)
kron是kronecker product 函数,
I_n是n by n identity matrix
a是一个 1 by m 矩阵。
请问这个东西能化简一些么?多谢了。 |
o****o 发帖数: 8077 | 2 for ur case
m %*% ( inxn %x% a ) = m %x% a
where m is your M matrix, a is your a vector, and inxn is your nxn identity
matrix
【在 q**j 的大作中提到】 : 【 以下文字转载自 Mathematics 讨论区 】 : 发信人: qqzj (小车车), 信区: Mathematics : 标 题: 能帮忙化简一个矩阵乘法么? : 发信站: BBS 未名空间站 (Fri Dec 2 12:16:25 2011, 美东) : 要化简 MX。这里M是一个n by n matrix. : X = kron(I_n, a) : kron是kronecker product 函数, : I_n是n by n identity matrix : a是一个 1 by m 矩阵。 : 请问这个东西能化简一些么?多谢了。
|
q**j 发帖数: 10612 | 3 thanks. got it.
identity
【在 o****o 的大作中提到】 : for ur case : m %*% ( inxn %x% a ) = m %x% a : where m is your M matrix, a is your a vector, and inxn is your nxn identity : matrix
|
o****o 发帖数: 8077 | 4 no problem.
you do save a lot of time
> m<-matrix(rnorm(1000^2), ncol=1000)
> ident<-diag(rep(1, 1000))
> a<-rnorm(50)
>
> system.time(ia<-ident%x%a)
用户 系统 流逝
0.95 0.14 1.09
> rm(ia); gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 122044 3.3 350000 9.4 350000 9.4
Vcells 2079203 15.9 85942660 655.7 102081249 778.9
> system.time(res<-m%*%(ident%x%t(a)))
用户 系统 流逝
12.40 0.40 12.85
> rm(res);gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 122048 3.3 350000 9.4 350000 9.4
Vcells 2079203 15.9 90303866 689.0 102081249 778.9
> system.time(m%x%a)
用户 系统 流逝
1.03 0.12 1.17
>
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 122057 3.3 350000 9.4 350000 9.4
Vcells 2079222 15.9 85942731 655.7 102081249 778.9
>
【在 q**j 的大作中提到】 : thanks. got it. : : identity
|
o****o 发帖数: 8077 | 5 兄弟,给点包子不?
虽然不难,好歹也要演算一下的嘛
【在 q**j 的大作中提到】 : thanks. got it. : : identity
|
q**j 发帖数: 10612 | 6 实在不好意思。我自己先想出来了,然后你才回答的。下次快点。不过如果你能帮忙给
些insight包子就在路上了。M × kron(I_n, a)到底是个什么样的东西。其实这个M是
residual maker: I - X(x'x)^-1 X'。我还是没有感谢理解。
【在 o****o 的大作中提到】 : 兄弟,给点包子不? : 虽然不难,好歹也要演算一下的嘛
|