-
Notifications
You must be signed in to change notification settings - Fork 44
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added LSQR algorithm #1975
base: master
Are you sure you want to change the base?
Added LSQR algorithm #1975
Conversation
THanks so much @MaikeMM for adding this LSQR implementation! As discussed, it would be great and a big help for reviewing this if you could add a brief code snippet demonstrating how a user might run the algorithm. This could be some lines of code here or as a python/notebook attachment here. Also, we'd be very interested in including your notebook in the showcase :) |
Hi @jakobsj, so sorry for the delay but I've updated this comment now. I hope this kind of thing is what is required but please do let me know if you'd like anything more! |
Closes #1992 |
Thank you very much @MaikeMM for adding an example. We will take a look and get back to you. Any chance of contributing the nice notebook you demonstrated to the showcase? :) |
I have included the optional regularisation parameter alpha to transform the problem to Tikhonov regularisation. If alpha is not specified or set to zero, the algorithms becomes standard LSQR. Signed-off-by: Maike Meier <[email protected]>
Hi Margaret, please see the updates to include Tikhonov regularisation! |
Description
Implementation of the LSQR algorithm (Paige and Saunders, 1982, ACM TOMS). LSQR is an algorithm that solves a least squares problem$\min_x|Ax-b|$ . It is mathematically equivalent to CGLS, which is already implemented in CIL, but more stable in finite-precision arithmetic. This implementation of LSQR works in exactly the same way as how CGLS is implemented in CIL, i.e. wherever CGLS is called LSQR can be called without changing any syntax.
NEW: In a recent edit, the optional regularisation parameter alpha can now be passed to LSQR to become the Tikhonov regularised version.
Example Usage
Below an example heavily inspired by the CIL Demo on Tikhonov regularisation.
❤️ Thanks for your contribution!
Contribution Notes
Please read and adhere to the developer guide and local patterns and conventions.