esfit ignores some variables
Posted: Mon Aug 11, 2014 8:29 am
We have been fitting some solution EPR spectra to determine natural abundance C-13 hyperfine couplings using esfit. The fitting went fine until seeral months ago. Since that time, we have consistently had a fitting problem with esfit on this problem. All other sitations where we use esfit seem to work fine. Unfortunately, we can’t remember whether it started to appear with a new version of EasySpin, MatLab or Linux. But it has been there for the last few updates.
The problem is that esfit will not vary some or all of the C-13 couplings when Simplex or Levenburg-Marquardt algorithms are chosen. I have attached a set of files showing this. One is the experimental spectrum which has several pairs of C-13 natural abundance hyperfine lines and one main large line with only C-12 in it. There is also a script for fitting it which we simplified to one C-13 (a bad model) in order to illustrate the problem with minimal number of variables. When we run this script (or the original with 5 C-13 splittings) LM or Simplex varies only the g and LW parameters and doesn’t vary the A. Even if we set g and lw as constant, the fitting starts as if it were setting things up, but doesn’t vary the A.
Fitting works fine with particle swarm, everything gets optimized, but slowly.
One thought is that the problem has something to do with natural abundance in the spectral simulation, perhaps it gets derivatives only using the C-12 spectrum. Another thought is that the natural abundance C-13 is so small that it makes no contribution to the derivatives or Jacobian because of roundoff or truncation so the Jacobian doesn’t have its full dimensionality. But those shouldn’t apply to Simplex fits. This is the only fitting of isotropic spectra that we do, everything else is pulsed or powder (and works). I hope there is a clue here.
Is this happening to anyone else?
The problem is that esfit will not vary some or all of the C-13 couplings when Simplex or Levenburg-Marquardt algorithms are chosen. I have attached a set of files showing this. One is the experimental spectrum which has several pairs of C-13 natural abundance hyperfine lines and one main large line with only C-12 in it. There is also a script for fitting it which we simplified to one C-13 (a bad model) in order to illustrate the problem with minimal number of variables. When we run this script (or the original with 5 C-13 splittings) LM or Simplex varies only the g and LW parameters and doesn’t vary the A. Even if we set g and lw as constant, the fitting starts as if it were setting things up, but doesn’t vary the A.
Fitting works fine with particle swarm, everything gets optimized, but slowly.
One thought is that the problem has something to do with natural abundance in the spectral simulation, perhaps it gets derivatives only using the C-12 spectrum. Another thought is that the natural abundance C-13 is so small that it makes no contribution to the derivatives or Jacobian because of roundoff or truncation so the Jacobian doesn’t have its full dimensionality. But those shouldn’t apply to Simplex fits. This is the only fitting of isotropic spectra that we do, everything else is pulsed or powder (and works). I hope there is a clue here.
Is this happening to anyone else?