Solving large matrix equations
Jonathan Stickel
jjstickel at vcn.com
Tue Apr 7 08:55:51 CDT 2009
On 4/7/09 help-octave-request at octave.org wrote:
> Date: Tue, 7 Apr 2009 09:55:57 +0200
> From: "Martin Heller" <mr_heller at yahoo.dk>
> Subject: Solving large matrix equations
> To: help at octave.org
> Message-ID: <grf0ue$e9s$1 at ger.gmane.org>
>
> I am new to Octave and am trying to write a function for differentiating
> some
> data based on this paper:
> <http://math.lanl.gov/Research/Publications/Docs/chartrand-2007-numerical.pdf>
>
> My attempt is shown below and it seems to work but my data sets contain
> 10000-15000 points which is too much for Octave to handle when solving
> the problem using my simple minded approch.
>
> I was wondering if there is a standard way to solve large matrix problems in
> Octave that I could take advantage of? At the moment I just feed smaller
> chunks of data to my function and this gets the job done.
Martin
I think you will need to provide more details to have your general
question answered: the appropriate method for solving large matrix
equations of course depends on the system. What do you mean when you
say your system is "too much for Octave to handle"? Are you running out
of memory? Does it take too long? There are people much more qualified
to help you with these general issues than I am.
However, I have a particular interest in your application. I have
studied data smoothing and differentiation quite a bit in the last year
and have recently submitted a paper on the subject (I can share off-list
if you like). Is your "real data" (not your example test data)
discontinuous or does it have a discontinuous derivative? If not, then
you likely can use a squared term for your roughness rather than the
absolute value. This case has an analytical solution that does not
require an iterative method (Eilers P.H.C, 2003, Anal. Chem. 75,
3631-3636). I have implemented this method and provided it in the
Octave package data-smoothing
(http://octave.sourceforge.net/data-smoothing/index.html). However, I
have found that my implementation is often ill-conditioned for data with
more than ~1000 points.
At a first glance, it looks like you have made a good start with
Chartrand's method. Would you consider submitting your function to
Octave-Forge? I think it would make a nice addition to the
data-smoothing package.
Regards,
Jonathan
More information about the Help-octave
mailing list