2014-09-04 60 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;