簡體   English   中英

如何使用特征庫計算矩陣功率?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM