2014-09-04 40 views
-1

你们有没有人知道一种方法来使用R来计算和显示由chr元素组成的通用矩阵的特征值的特征多项式? 说即用R找到一个通用矩阵的特征值

m <- matrix(c('a','b','c','d','e','f','g','h','i','l','m','n'),4,4) 

请考虑,我有这种方法适用于非常大的矩阵

预先感谢您

+0

这可能有助于包含一些细节,以确定由chr元素组成的通用矩阵的特征值的特征多项式到底是什么。这里的大多数人都是程序员,并不熟悉数字空间中的深奥数学...... – 2014-09-04 12:55:53

+1

我认为*(??)OP可能正在寻找符号计算(除了通过使用外部接口象Yacas这样的符号计算器) – 2014-09-04 13:02:53

+0

感谢您的建议,但我认为简短的定义可能无助于谁不熟悉矩阵代数(或将通用方法的解决方案视为字符空间中的深奥数学......),当然我不能给这里是关于这个话题的一堂课。也许只有专业用户才可以回复。 – Shatz 2014-09-04 13:11:55

回答

1

您可以用Ryacas包做到这一点,但你必须跳过必要的箍来首先在您的系统上安装Yacas。

library("Ryacas") 
m <- matrix(letters[1:16],4,byrow=TRUE) 
yrow <- function(x) paste0("{",paste(x,collapse=","),"}") 
yrow(m[1,]) ## "{a,b,c,d}" 
ymat <- function(x) yrow(apply(x,1,yrow)) 
cheqstr <- function(x) { 
    paste0("Expand(CharacteristicEquation(", 
      ymat(x),",x),x)") 
} 
yacas(cheqstr(m)) 
## (a-x)*(f-x)*(k-x)*(p-x)-(a-x)*(f-x)*l*o+(a-x)*h*j*o-d*e*j*o- 
## (a-x)*g*j*(p-x)+(a-x)*g*l*n-(a-x)*h*(k-x)*n+d*e*(k-x)*n+c*e*j*(p-x)- 
## c*e*l*n+c*h*i*n-d*g*i*n-b*e*(k-x)*(p-x)+b*e*l*o-b*h*i*o+d*(f-x)*i*o+ 
## b*g*i*(p-x)-b*g*l*m+b*h*(k-x)*m-d*(f-x)*(k-x)*m-c*(f-x)*i*(p-x)+ 
## c*(f-x)*l*m-c*h*j*m+d*g*j*m;