矩阵指数与犰狳

时间:2014-06-14 14:37:06

标签: c++ matlab lapack armadillo

我目前正在使用自己的C ++ / Mex代码和Matlab开发,但我的项目变得越来越大,我正在考虑切换到合适的线性代数库。我已经阅读了关于犰狳的非常好的东西,但我找不到我项目所需的一些基本功能。

我理解Armadillo链接到LAPACK和BLAS库,但我找不到Armdaillo's API中的矩阵指数函数,也找不到LAPACK functions中的矩阵指数函数。

有人能告诉我是否有附加计算器用Armadillo计算矩阵指数?如果是这样,我们将非常感谢一个简短的示例代码。

3 个答案:

答案 0 :(得分:4)

矩阵指数是Matlab所具有的。所以Octave实现了它。因此,其他自由软件项目会查看Octave所拥有的内容,并通过借用此实现来重新实现它。

我通过R包(我为其作者)与ArmadilloRcppArmadillo合作很多。在最近的一项工作中,我需要expm()并借用Armadillo中的R package exmp来使用它。

代码如下:

arma::mat expm(arma::mat x) {
    arma::mat z(x.n_rows, x.n_cols);
    (*expmat)(x.begin(), x.n_rows, z.begin(), Ward_2);
    return z;
}

但它当然取决于我从expmat获取函数指针的事实 R package exmp。完整文件is here on Github也包含枚举Ward_2

答案 1 :(得分:4)

这已添加为expmat到最新版本,请参阅 http://arma.sourceforge.net/docs.html#expmat

答案 2 :(得分:3)

这是John Burkardt的c / c ++实现的一个端口,它是19个可疑的犰狳之一......

https://gist.github.com/tesch1/0c03e43885cd66eceabe