我有一個矩陣,我想知道這是否是對角化對角化。我如何在R編程語言中執行此操作?確定是否矩陣是在R編程語言
6
A
回答
7
如果你有一個給定的矩陣,m,則一種方法是在採取本徵矢量乘以對角線本徵值的倍的原始矩陣的逆矩陣。這應該讓我們回到原始矩陣。中的R,看起來像:
m <- matrix(c(1:16), nrow = 4)
p <- eigen(m)$vectors
d <- diag(eigen(m)$values)
p %*% d %*% solve(p)
m
所以在該示例中[P%%d%%解決(P)]應該是相同的爲m
是的,我完全偷從R Wiki。
4
可以實現完整的算法來檢查矩陣減少到約旦的形式或對角線之一(見例如,this document)。或者你可以採取快速和骯髒的方式:對於n維方陣,使用特徵(M)$值並檢查它們是不同的值。對於隨機矩陣,這總是足夠的:簡併性有prob0。
P.S:基於由JD長一個簡單的觀察之下,我憶及,diagonalizability一個充分必要條件是,特徵向量跨越原有的空間。要檢查這一點,只要看到特徵向量矩陣具有滿秩(無零特徵值)。因此,這裏是代碼:
diagflag = function(m,tol=1e-10){
x = eigen(m)$vectors
y = min(abs(eigen(x)$values))
return(y>tol)
}
# nondiagonalizable matrix
m1 = matrix(c(1,1,0,1),nrow=2)
# diagonalizable matrix
m2 = matrix(c(-1,1,0,1),nrow=2)
> m1
[,1] [,2]
[1,] 1 0
[2,] 1 1
> diagflag(m1)
[1] FALSE
> m2
[,1] [,2]
[1,] -1 0
[2,] 1 1
> diagflag(m2)
[1] TRUE
2
你可能想一些基本的討論和代碼檢查this page。您需要搜索「對角化」,這是相關部分開始的地方。
相關問題
- 1. 標準來確定它是否是一個編程語言
- 2. R:函數來確定矩陣是否是正方形
- 3. 在Haskell上編程矩陣的語言學方法是什麼?
- 4. C編程語言,鄰接矩陣
- 5. 是否有可能確定.NET程序集編寫的語言?
- 6. 確定矩陣是否爲單位矩陣(numpy)
- 7. 這種語言是否可確定
- 8. R語言編程
- 9. 是否有可能在R中有矩陣矩陣?
- 10. 在統計編程語言R中是否可以進行默認編程?
- 11. CMS是否獨立於編程語言?
- 12. R編程中的矩陣
- 13. 標記語言是否被視爲編程語言?
- 14. 選擇矩陣元素(矩陣語言)
- 15. R是一種編譯語言嗎?
- 16. R錯誤QP:不是正定矩陣?
- 17. 確定一個矩陣是肯定的
- 18. R對象不是矩陣
- 19. 確定在Prolog中節點是否以矩陣連接
- 20. 函數式編程語言是否適合圖形編程?
- 21. 如何確定給定的語言是否正規(僅通過查看語言)?
- 22. 是R語言解釋?
- 23. 序言 - 這種否定是否正確?
- 24. 如何在編程語言R
- 25. 彙編語言是否危險?
- 26. 學習彙編語言是否值得?
- 27. CUDA是否有彙編語言?
- 28. 如何在R語言中打印圖表的矩陣
- 29. C編程語言是否支持SQL語句
- 30. 給定一個矩陣,我如何確定矩陣的條目是否是獨立和相同分佈(IID)?
plesae問你的問題在相關數學論壇... – 2009-07-25 02:34:35
這是確定的,他們的預期。 http://blog.stackoverflow.com/2009/07/stack-overflow-flash-mobs/ – LachlanG 2009-07-25 02:38:03
@Mitch:這是一個編程問題。 R是一種編程語言。 – jalf 2009-07-25 02:50:25