bouligandlandweber
This repository contains implementations of the iterative regularization method described in the paper Bouligand-Landweber iteration for a non-smooth ill-posed problem by Christian Clason and Vũ Hữu Nhự.
Python code
The results in the paper were generated using the provided Python implementation (bouligandlandweber.py
) (with Python 3.6.5, Numpy 1.15.1, and Scipy 1.1.0) with the following notable differences to allow faster testing:
-
The current code defaults to
N=128
, while the reported results were obtained withN=512
(see line 24). -
Plotting is disabled by default but can be enabled by setting
figs = True
in line 27. -
Warm starting is used in the semi-smooth Newton method but can be disabled by replacing
F(un,yn)
byF(un)
in line 140.
To run a representative example (N=128
, delta = 1e-4
, beta=0.005
), run python3 bouligandlandweber.py
.
Julia code
We also provide an equivalent Julia (version 1.0) implementation in the module BouligandLandweber.jl
. To run the same example, start julia
in the same directory as the module and enter
include("./BouligandLandweber.jl")
BouligandLandweber.run_example(128,1e-4,0.005);
(Note that the first time this is done, the Julia code will be compiled to native code; subsequent calls to run_example
(even with changed parameters) will then be much faster.)
Reference
If you find this code useful, you can cite the paper as
@article{bouligandlandweber,
author = {Clason, Christian and Nhu, Vu Huu},
title = {Bouligand-Landweber iteration for a non-smooth ill-posed problem},
year = {2018},
eprinttype = {arxiv},
eprint = {1803.02290},
}