[英]How to calculate matrix power using Eigen library?
我需要計算某些矩陣的冪,然后得到它的特征向量。 我知道有方法pow()但我不清楚如何使用它。
現在,我的代碼是:
Eigen::Matrix3d mat2 = mat1.pow(0.5);
return getEigenvalues(mat2);
方法getEigenvalues()采用Eigen :: Matrix類型,而不是pow()返回的類型。
這是錯誤的操作順序。 您首先計算特征值,然后對其進行取冪。
原因是指數矩陣的特征值等於原始矩陣的指數特征值。 編輯:提供原始矩陣的特征值。
因此,例如,要獲得矩陣mat2
的特征值,您可以寫:
Eigen::VectorXd ev = getEigenvalues(mat1).unaryExpr([](double d) {return std::pow(d, 0.5);});
如果是指數的一半,你也可以更好地使用std::sqrt
。
我忘了提到原始指數矩陣和指數矩陣的特征向量是相同的,例如參見這里 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.