nwh / lusol

Matlab interface to LUSOL

Home Page:http://www.stanford.edu/group/SOL/software/lusol.html

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

How could I get updated L factors using lusol??

wedmonster opened this issue · comments

Hello, I'm trying to use lusol to solve my problem. In my problem, I need measure the number of non-zeros of L factor after some updates. lusol provides a function to get L0, which is the initial L factor, but I couldn't find a function what I want. How could I get updated L factors using lusol??

And, Is it possible to use only updating functions for L, U factors which are computed by MATLAB?

LUSOL does not update the L factor directly. I believe it keeps a series of updates in product form. The U factor is updated. You are able to perform products and solves with L after updates.

From this documentation:
http://web.stanford.edu/class/msande318/notes/notes06-LUSOL.pdf
The nullspace basis is determined using the L factor, so it would be interesting to access those M factors.
How can we retrieve them?

You can obtain matrix factors with the methods:

L = lu_obj.L0();
U = lu_obj.U();

Note that L is the initial factor as updates to L are stored in product form. It is possible to obtain a nullspace operator from the factorization object. Code from this page may help:

http://web.stanford.edu/group/SOL/software/lusol/

specifically the nullspaceLUSOL.zip at the bottom of the page.

Thank you for the hints!
Unfortunately the source in nullspaceLUSOL.zip only determines the nullspace basis for the original system (using L0), not for an updated one.

P.S.: I've forked this project so that it could be fully converted to F90 and CMake.

Thanks, let me know when your work on F90 and CMake is complete. Maybe I can use that to update this repository. I will also encourage Professor Saunders to create a github repo for LUSOL.

It should be possible to use products or solves L factor to obtain a nullspace operator after updates. In your application, do you need the matrix?

You may already try the F90/CMake code.

I was initially using U to determine the nullspace basis (from A = LU).
But since it appears that using the L matrix in A^t = L U to determine the nullspace provides a better conditioned basis I was thinking of using L (not L0) to update the space basis.