Global fitting with shared parameters

AI Thread Summary
The discussion focuses on the challenge of implementing a global fitting algorithm for multiple curves that share parameters, specifically using the Levenberg-Marquardt method. The user is attempting to fit several exponential decay curves simultaneously, where some parameters, like initial amplitude, are common across curves. They express concern about the complexity of constructing a large Jacobian matrix for fitting multiple curves and seek advice on whether specialized algorithms exist for multi-curve fitting or if standard techniques can be adapted. Another user echoes the same problem and requests insights on potential solutions. The thread highlights the need for efficient methods in handling shared parameters during curve fitting.
raul_l
Messages
105
Reaction score
0

Homework Statement



Hi
I'm looking for an algorithm that can perform a fitting procedure on many curves simultaneously. Let's say, for example, that I have 3 exponential decay curves with 3 different decay times but they all share the same initial amplitude. So I have to find a fit for 4 parameters (in reality I'm dealing with much more complicated systems).

Homework Equations



Levenberg-Marquardt:
\delta a = \frac{1}{\bold{J}^T\bold{J}+\lambda \bold{diag}(\bold{J}^T\bold{J})} \bold{J}^T \boldsymbol{\chi}
with the Jacobian
J_{ij} = \frac{\partial f(x_{i};\bold a)}{\partial a_{j}}
where f is the fitting function, x are datapoints and a are the parameters to be fitted.
\boldsymbol{\chi} is defined as
\chi_i = \frac{y_i - f(x_{i};\bold a)}{\sigma_i}

The Attempt at a Solution



So far I've been using the Levenberg-Marquardt algorithm to find fits for single curves. But how to implement global curve fitting when some of the parameters are shared?

I guess a straightforward approach would be to construct a global function that takes the whole data set (constructed from all the curves) as argument. For example, if a single curve consists of 10 000 data points and I'm fitting for 5 parameters, I would need to build Jacobian with dimensions 10 000 x 5 for single-curve-fitting. Now assume I have 10 curves with 2 of those 5 parameters shared. Then I would need a 100 000 x 32 Jacobian which is pretty massive.

My question is this. Are there any algorithms especially designed for multi-curve-fitting or do I have to use the usual single-curve-fitting techniques with a few modifications?
I hope anyone has had experience in that area.
 
Physics news on Phys.org
Hi,

I have the same problem and was wondering if you solved it by now. If so, could you please throw some light on what you did.

Thanks,
 
Back
Top