小编dpr*_*tch的帖子

对称正定矩阵的本征有效逆

在本征,如果我们有对称正定矩阵A那么我们就可以计算出的逆A

A.inverse();
Run Code Online (Sandbox Code Playgroud)

或者

A.llt().solve(I);
Run Code Online (Sandbox Code Playgroud)

其中I是与 大小相同的单位矩阵A。但是有没有更有效的方法来计算对称正定矩阵的逆矩阵?

例如,如果我们写出Aas的 Cholesky 分解A = LL^{T},则L^{-T} L^{-1}Asince的逆A L^{-T} L^{-1} = LL^{T} L^{-T} L^{-1} = I(并且 whereL^{-T}表示 的转置的逆L)。

所以我们可以得到 的 Cholesky 分解A,计算它的逆,然后得到逆的叉积来找到 的逆A。但我的直觉是,计算这些显式步骤会比使用A.llt().solve(I)上述方法慢。

在有人问之前,我确实需要一个显式逆 - 它是 Gibbs 采样器的一部分的计算。

c++ matrix-inverse eigen

7
推荐指数
1
解决办法
5459
查看次数

为什么返回通过引用C++中的函数传递的对象?

在第57页的Koenig和Moo的Accelerated C++一书中,它们提供了如下所示的函数,它返回in.这样做的原因是指示尝试输入是否成功(第55页).但是,in作为函数的参数之一被引用传递.那么你不能通过查看原始对象来获得istream的状态吗?

// read homework grades from an input stream into a `vector<double>'
istream& read_hw(istream& in, vector<double>& hw)
{
    if (in) {
        // get rid of previous contents
        hw.clear();

        // read homework grades
        double x;
        while (in >> x)
            hw.push_back(x);

        // clear the stream so that input will work for the next student
        in.clear();
    }
    return in;
}
Run Code Online (Sandbox Code Playgroud)

c++ pass-by-reference

0
推荐指数
1
解决办法
98
查看次数

标签 统计

c++ ×2

eigen ×1

matrix-inverse ×1

pass-by-reference ×1