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 Version History

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 (2021). regtools (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (84)


Yong Cheng

Linnea Hesslow

A suggestion for l_curve: if there would be a minimum ratio for lambda, the it would work well with only one free parameter (even if it is not the intended use). For example, on line 55: "if length(s) == 1; reg_param(npoints) = s*smin_ratio; end"

震雄 曹

WH Wang

Navy Green

Lican Wang

Tianjiao Li

文松 王

Arjan Feta

Very well documented, plus the accompanying book; A Well Deserved 5-Star Rating!

Ege Özkoç

Ege Özkoç

mahtab rashidifard

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

Marko Jovanoski


Per Jiklvosky

Poor documentation

Valdelírio Silva

zuguang rao


Daniel Vasilaky

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!!

Franz Heuchel

Franz Heuchel

Why is there no python version?

Virinchi Roy


Great tools!!!

Linh Dinh

Federico Cecchini

Jinhui Zhang

yh tao


dhaba india


Abir M

Ridley Rebecca

yogev gabay



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


Andrea Libri

Daniel Vasilaky

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.

Daniel Vasilaky

Fernando Otero

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

Naima Naheed

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.

Naima Naheed

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?

Zhao wenming


vijay Bisalahalli

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

Aslak Grinsted

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

Carlos Palma

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?



Andrey Ivanov


Charles Nelatury



Christopher Coello

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




good work

Martin Fuchs

Well written Code thanks to the Author


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

Xuecang zhang

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.

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

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!