MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

global fit

  • To: mathgroup at smc.vnet.net
  • Subject: [mg57435] global fit
  • From: "Pascal" <Pascal.Plaza at ens.fr>
  • Date: Sat, 28 May 2005 05:38:58 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

Hi,

Here is a fascinating problem:

B is a large data matrix, typically 500x60. Each line represents the
variations of a given physical quantity as a function of time. There
are here 60 different times.

The problem is to fit all the lines of B with a linear combination of a
reduced number (say 5) of base functions: f1[t], f2[t]...
If A is the 5x60 matrix A[[i,j]] = fi[tj], I have to find an X matrix
(500x5) such that X.A is as least-squares close to B as possible.
At this point the solution is just X = B.PseudoInverse[A]

It gets more interesting when the base functions depend non-linearly on
a few parameters: a, b, c...
Now the problem is to find X and a, b, c... such that X.A[a,b,c...]is
the best fit to the data matrix B.

I built a function of a, b, c... returning the 2-norm of X.A-B , after
calculating A with parameters a, b, c... and estimating X with
B.PseudoInverse[A]
Then I tried to use FindMinimum on this function. I entered a very good
starting point but the Kernel rapidly uses all the memory available and
shuts down.

Does anyone has a suggestion, maybe with a completely diffrent method?
Thanks.
Pascal.


  • Follow-Ups:
  • Prev by Date: Re: Integration under Mathematica 5.0
  • Next by Date: FindRoot: Failed to converge to the requested accuracy - CORRECTION
  • Previous by thread: Re: Complex Oddity
  • Next by thread: Re: global fit