Using P.C. Hansen’s AIRtools and ReguTools in Python using Oct2Py

For those working with real-world inverse problems, P.C. Hansen’s AIRtools and ReguTools are great ways to quickly try out inverse methods.

As in general in Python and Matlab, you need to be sure that your column vector of observations “b” is actually passed into the functions as a column vector. I’ll illustrate the issue by example.

Assume you have ill-conditioned problem Ax = b, with dimensions:

variable dimensions
A 256 x 10
x 10 x 1
b 256 x 1

so to use the ReguTools function maxent.m from Python, implementing the Berg Maximum Entropy method, your file would look like:

#!/usr/bin/env python
import oct2py
import numpy as np

def myinv(A,b,maxentLambda):
    oc = oct2py.Oct2Py(oned_as='column')
    xhat = oc.maxent(A,b,maxentLambda)
    return xhat

I have ported the PC Hansen AIRtools and Regutools to Python.