"NaN" returned for FWHM from Multipeak Fit 2

Hi,

I've frequently run into an issue that I'd like to understand better (and perhaps report as a bug later). This happens when using the Multipeak Fit 2 module with the ExpModGauss peak type. For peaks with significant exponential contributions, everything works fine. However, whenever the peaks are predominantly Gaussian (e.g. Exp Tau of ~0.08), the "Peak Results" command returns "NaN" for the FWHM value, even if the fit itself looks very good.

I didn't see anything in the manual about this, so I'm not sure if this is a fundamental mathematical limitation, or just a bug.

I can attach an example file if that would be useful.

Thanks for the help.
Yes, an example file would always be helpful to find the problem. Just a note: Due to the unusual shape the FHWM is calculated numerically by literally finding the half-width crossing point on the left and right side of the peak using FindRoots. If you get NaN it means that FindRoots failed to find the crossing point for some reason. Also note that the Tau value may not be very "stable" near very low values.
Sorry for not responding sooner, I thought I'd get an email whenever there was an update.

I've attached an example experiment file. I should point out that a small negative Tau value is appropriate for the peak shape (converges to about -0.092). I have to input a small negative value as a guess, otherwise the solver always keeps Tau positive and the fit isn't good.

Thanks!
Thanks for the example. The problem is a bug in the PeakFunctions2.ipf file that computes the FWHM. I have attached a new version that fixes the problem. To use it, uncompress the procedure file. Choose Help->Show Igor Pro Folder to find where Igor is installed. Navigate to WaveMetrics Procedures:Analysis:Peak Fitting: and find PeakFunctions2.ipf. Move the old one somewhere where you can find it again (just in case) and put the new one in there to replace it. Re-start Igor and click the Fit Results button again to learn that your FWHM is 0.24209.

Just anticipating the next question: since it uses numerical methods (FindRoots) to compute the real amplitude and FWHM, it does not attempt to find an error bar for those values. It would require some sort of Monte Carlo method to figure it out, I think.

John Weeks
WaveMetrics, Inc.
support@wavemetrics.com