楼主: ckj1860
5808 6

R里面怎么算矩阵或者向量的乘方? [推广有奖]

  • 0关注
  • 0粉丝

已卖:16份资源

硕士生

27%

还不是VIP/贵宾

-

威望
0
论坛币
539 个
通用积分
30.6722
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
7167 点
帖子
36
精华
0
在线时间
257 小时
注册时间
2009-9-16
最后登录
2024-10-29

楼主
ckj1860 发表于 2009-11-15 13:39:32 |AI写论文
4论坛币
如题,比如:A是个2*2的矩阵,怎么算A的K次方,因为题目要求不能用循环,所以想问问各位大大谁知道有什么命令可以实现啊。
谢谢了

关键词:不能用 矩阵 向量 乘方

回帖推荐

frederic7 发表于7楼  查看完整内容

a=matrix(c(1,2,3,5),2) > a [,1] [,2] [1,] 1 3 [2,] 2 5 b=eigen(a) > b $values [1] 6.1622777 -0.1622777 $vectors [,1] [,2] [1,] -0.5024547 -0.9324647 [2,] -0.8646035 0.3612610 > lam=b$values > lam [1] 6.1622777 -0.1622777 > vec=b$vectors > vec [,1] [,2] [1,] -0.5024547 -0.9324647 [2,] -0.8646035 0.3612610 > n次方就是 ...

king64 发表于3楼  查看完整内容

> matpow

beatuxlee 发表于2楼  查看完整内容

递归方法算不算没用循环? 上面的代码加个递归函数 Ak

本帖被以下文库推荐

咪咪爱

沙发
beatuxlee 发表于 2009-11-16 18:43:14
递归方法算不算没用循环? 上面的代码加个递归函数

Ak <- function(x, n=k) {
  n <- as.integer(n)
  if(n == 0) stop()
  if (n == 1)  {
      y <-  x %*% x
      return(y)}
  else {
     x <- x %*% x
     Ak(x,n=k-1)
   }
}

或者:
先对 A 进行 Cholskey 或 QR 分解.
B = qr(A)
再求 A  的逆
C = chol2inv(B)
然后
solve(A, C)
求得 A 的平方.
A * A * A = QRQRQR = Q[RQRQ] R 再用求逆法分别算

抱歉,没有跑程序验证。
无为有之始

藤椅
king64 发表于 2009-11-16 19:59:28
> matpow <- function(x, pow=2) {
+ y <- eigen(x)
+ y$vectors %*% diag( (y$values)^pow ) %*% t(y$vectors)
+ }
> matpow(diag(1:2)) # 矩阵((1, 0) , (0, 2))的2次幂
[,1] [,2]
[1,] 1 0
[2,] 0 4

板凳
beatuxlee 发表于 2009-11-17 10:24:34
king64 兄台的解决方案赞一个: 利用方阵的特征值分解求 n 次幂 是正解
无为有之始

报纸
aresblq 发表于 2009-11-17 22:11:11
king64 兄台的解决方案有限制,只能用于对角阵,一般的方阵结果不对。

地板
aresblq 发表于 2009-11-17 22:12:48
既然用计算机命令计算,又不用循环,真是那句话:女人何苦为难男人?

7
frederic7 发表于 2009-11-20 00:11:23
a=matrix(c(1,2,3,5),2)
> a
     [,1] [,2]
[1,]    1    3
[2,]    2    5

b=eigen(a)
> b
$values
[1]  6.1622777 -0.1622777
$vectors
           [,1]       [,2]
[1,] -0.5024547 -0.9324647
[2,] -0.8646035  0.3612610
> lam=b$values
> lam
[1]  6.1622777 -0.1622777
> vec=b$vectors
> vec
           [,1]       [,2]
[1,] -0.5024547 -0.9324647
[2,] -0.8646035  0.3612610
>
n次方就是

t(lam)***vec^n***lam ##矩阵相乘,忘了哪个符号了。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-29 14:44