I have a number of Lorentzian curves ("reference curves"), all having the same half width at half maximum, and I know each curve's location parameter. However, the reference curves are multiplied by various different factors, so most heights will differ. I would now like to calculate those factors from the sum over all curves.

I have already written code that performs the calculation; it uses the sum's value at the location of each curve's maximum, and each reference curve's value at this location. The method I'm employing is singular value decomposition, and it seems to work fine. I would, however, like to know whether this approach makes sense, and whether the task can really be solved in this way in all cases, or whether I might just have been looking at a few examples where it happened to work (that it doesn't work when curves have the same location parameter isn't a problem).

I am not a mathematician, so I don't know how to tell whether this seemingly sensible approach is actually misguided. Also, in case you've been wondering, I'm aiming to use it for working with NMR spectra (where I'll also have to deal with random noise, and non-Lorentzian curves), but I would like to check whether the theoretical approach isn't wrong-headed.

Thanks for your time!

Similar questions and discussions