File Exchange

image thumbnail


version (79.5 KB) by Per Christian Hansen
Analysis and Solution of Discrete Ill-Posed Problems.


Updated 01 Feb 2015

View License

Regularization Tools: A MATLAB package for Analysis and Solution of Discrete Ill-Posed Problems. Version 4.1.
By means of the routines in this package, the user can experiment with different regularization strategies. The package also includes 12 test problems.

Requires Matlab Version 7.3. The manual and more details can be found at

Cite As

Per Christian Hansen (2020). regtools (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (74)

Ege Özkoç

Ege Özkoç

could I use the package for under-determined problems? I think No.

Yue Wu

it's good until I try to make modifications. I don't understand why the x_0 setting cannot be used for L_curve or GCV for tikhonov. A general version of L_curve and GCV to accept manual defined regularization function would also be helpful.

Atif Anwer

I am a student who has just started the regularization method. I am not very familiar with the complicated mathematical derivation. Thanks to the author for providing this package, but I have a question. When I operate "regudemo.m" according to Section 3.4 of the manual. The "GCV method for computing the 'optimal' regulariztion parameter for TSVD" in the file does not give the correct result, the calculation result shows "k=28", and the real k is 7, so I would like to ask if there are some problems in the GCV method or it's my computer's fault.

Dahao Yang

Chang Huang

The manual is well documented and the package is really useful!

Tong Wang


Poor documentation

zuguang rao


gcv() function appears to produce a crude approximation of an optimal lambda. It chooses only 200 values of lambda and picks the minimum GCV value among the 200. When I compute the minimum GCV using fminbnd() I get a different lambda even-though the GCV value is the same in both methods. Did anyone test the accuracy of gcv() by other algorithms?

Hongkai Liu

irain sun

Excellent package,very Good!!Thanks!!

Why is there no python version?


Great tools!!!

Linh Dinh

yh tao


dhaba india


Abir M

yogev gabay



Excellent package. I love this package and it is perfect for me.


My Iterative Tikhonov performs a bit better than
the package's combo. l-curve(), Tikhonov()
Using A=Golub(12),x=ones(12,1), b=A*x, e=normrnd(0,.1,r,1), b=b+e; the package's relative error is 0.254 my algorithm's relative error 0.233. Iterative Tikhonov performs significantly better than Landweber and Kaczmarz in the package for all iterations.

Excellent package. I used it for my Ph.D. and now I'll try with the updated version. Thanks a lot. Just wondering if there is any open implementation of modified routines for some of the algoritms such as Robust GCV, The Robust GCV and the Trnasformed Discrepancy Principle

I got the answer. My blurring matrix was incorrect. Only problem is that it is hard to work on MATLAB when the image size is 512 by 512. I hope that in the future MATLAB will take care of this issue.

I am concerned about tsvd.m
While I was using iogray.tif as an image file(P C Hansen suggested), MATLAB does not work. I don't know when it will work. Is there anyone in the world to help me?


What are the input to tikhonov regularisation function.i mean tel me what are those u s v b x_0.reply me soon.

dennis gou

I want to find that which funtion is uesed to call the "art.m"? Is an test for "art.m" avaliable?

Ander Biguri

Poorly documented. My own experience with it has been that I cannot know what matrices must I pass as arguments for these functions. For example when using l_corner I have found that you have to pass a matrix s, which I believe to be the matrix given by svd (nowhere it says whether this is right or wrong), and I always get an error because it tries to compute beta./s, with beta=U'*b, which in my case means beta is a 6x1 matrix, while s is a 6x6 matrix. How am I supposed to know how to solve this?, I'm just studying the basics of regularization!!!!!

kaiba Wong

Very essential tools
I am trying the tikhonov function and getting errors...
suppose my Ax=b
A=matrix of 11375x3
b=vector of 11375x1
I calculated svd of A using svd(A,0)
assuming x_0 is zero
and insert lambda as [10,1,1e-2]
unfortunately..I keep getting an error that
Error in tikhonov (line 66)
if (nargin==6), omega = V\x_0; omega = omega(1:p); end

anyone having the same problem?...Thanks!

Thomas Casey

Great package but, what is what...?

I have a data vector, and a model for calculating a theoretical data vector. What variables are the data vector and model in the call? Could someone lay out what each of these are?






Great package, really useful to understand better resolution of ill-posed problems




good work

Well written Code thanks to the Author

Fantastic package! Easy to use, stable, great documentation. Many thanks to the author!

thanks a lot ,very convenient and powerful
sharing is good

yuan qiangqiang

very good !

praveen kumar

These are really useful & essential programs.

leon button


sdfasf kjdlfkalsdj

abdel jardani


Ruslan Pechenkin

Thanks a lot, it is very useful

Nicolas MARIE

Thank you for this very useful package.

Valeriy Kruchko

Thank you for this job.

Dr.Feras AL-Faqih

Ben Fisher

Great collection of tools. It needs some time to get familiarised with all functions though the documentaion is good.

Wlodek Tych

Excellent tool, good documentation. As with other powerful methods you have to know what you are doing.

Many thanks to the Author for writing and sharing.

Volker Rath

Indispensable for everybody working on
inverse problems.

Brian Borchers

This is a very useful package of tools for
the regularization of linear inverse problems. I've found this package to be very
useful both in research and in teaching a
course in inverse problems.

One minor complaint- the author
has released an updated version for MATLAB 6
which isn't on MATLAB Central yet.


Various small bugs are fixed, and the help lines are expanded a bit (for those that don't read manuals).

This minor update was necessary due to overlap of a function name (ilaplace) with the Symbolic Math Toolbox.

New version for Matlab 7.3, with a number of buf fixes and new capabilities, publihsed in Numer. Algo. 46, pp 189

Added screenshot

modifying description

MATLAB Release Compatibility
Created with R2007b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Tags Add Tags