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**:**Re: global fit***From:*Chris Chiasson <chris.chiasson@gmail.com>