This forum has been archived. All content is frozen. Please use KDE Discuss instead.

How to best perform IRLS on sparse system

Tags: None
(comma "," separated)
sweeneychris
Registered Member
Posts
8
Karma
0
I have a large sparse linear system I want to solve and reweight: 

A^T * W * A * x = A^T * W * b

where W is a diagonal matrix of weights. I want to solve this system for x, then update W, then repeat until convergence. Here is the pseudo code:
Code: Select all
Eigen::SimplicialLLT llt;
W = Identity();
llt.analyzePattern(A^T * W * A);
for (int i = 0; i < max_iterations; i++) {
    llt.factorize(A^T * W * A);
    x = llt.solve(A^T * W * b);
    UpdateWeights(W);
}

Solving this way is a bit slow because of the factorize() call every iteration. Since I am only updating the diagonal weight matrix W is there a faster way I can be doing this?


Bookmarks



Who is online

Registered users: bartoloni, Bing [Bot], Evergrowing, Google [Bot], ourcraft