# [SciPy-User] Large banded matrix least squares solution

Wed Mar 16 16:46:08 CDT 2011

```definitely sounds like a deconvolution problem, you could start by trying
something like Weiner filtering
(http://en.wikipedia.org/wiki/Wiener_deconvolution) and go from there.

If you need to go further, the inverse problems notes at
http://home.comcast.net/~szemengtan/ are excellent (you probably want to look at
Chapter 3, Regularization Methods for Linear Inverse Problems, in particular 3.7
which talks about solving large systems).  I've got a python implementation of
the Matlab code for Tikhonov regularised deconvolution given there.

cheers,
David

________________________________
From: J. David Lee <johnl@cs.wisc.edu>
To: SciPy Users List <scipy-user@scipy.org>
Sent: Thu, 17 March, 2011 10:06:11 AM
Subject: Re: [SciPy-User] Large banded matrix least squares solution

On 03/16/2011 03:02 PM, Charles R Harris wrote:

>
>
>On Wed, Mar 16, 2011 at 1:53 PM, J. David         Lee <johnl@cs.wisc.edu>
wrote:
>
>Hello.
>>
>>I'm trying to find a least squares solution to a system Ax=b,           where A
>>is
>>a lower diagonal, banded matrix. The entries of A on a given
diagonal
>>are all identical, with about 300 unique values, and A can be           quite
>>large, on the order of 1e6 rows and columns.
>>
>>

So this is sort of a convolution? Do you need exact, or will           somewhat
approximate do? I think you can probably do something           useful with an
fft.

What I have is data from a detector that is passed through a shaping
amplifier that turns voltage steps into pulses. I've measured the
characteristic pulse shape, but now I'm interested to see if I can     move
backwards from the shaped data to the detector data. The idea     is that we
assume that there is a pulse at every time point and find     the amplitude at
each point in time to match our raw data.

Here is an image of the detector's data (green), and the shaped data     (blue):

http://mywebspace.wisc.edu/jdlee1/web/detector_and_shaped_data.png

David

scipy.sparse.linalg.lsqr works on smaller examples, up to a           few
thousand
>>rows and columns, but not much larger. It is also very time           consuming
>>to
>>construct A, though I'm sure there must be a fast way to do           that.
>>
>>Given the amount of symmetry in the problem, I suspect there           is a
>fast
>>way to calculate the result, or perhaps another way to solve           the
>>problem
>>entirely.
>>
>>

Chuck

> _______________________________________________ SciPy-User mailing list
>SciPy-User@scipy.org http://mail.scipy.org/mailman/listinfo/scipy-user
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.scipy.org/pipermail/scipy-user/attachments/20110316/0c61913d/attachment.html
```