0

I want to fit the dielectric function of gold measured by Johnson & Christy:

( *omega, epsilon1+I*epsilon2 *)
data={{6.59912, 0.227056 + 3.04128 I}, {6.4693, 
0.295191 + 3.17592 I}, {6.34905, 0.292524 + 3.28568 I}, {6.21911, 
0.203899 + 3.32766 I}, {6.09918, 
0.138171 + 3.39682 I}, {5.97918, -0.010416 + 
3.3904 I}, {5.84914, -0.1325 + 3.51 I}, {5.7294, -0.233769 + 
3.6062 I}, {5.59925, -0.346329 + 3.7102 I}, {5.47924, -0.4155 + 
3.8252 I}, {5.35939, -0.551009 + 3.8922 I}, {5.22941, -0.616896 + 
4.05504 I}, {5.10938, -0.744529 + 
4.16328 I}, {4.97928, -0.891261 + 4.33846 I}, {4.85946, -1.08044 + 
4.49008 I}, {4.73946, -1.2365 + 4.7223 I}, {4.60942, -1.34641 + 
4.97628 I}, {4.48942, -1.36651 + 5.28242 I}, {4.3595, -1.33226 + 
5.49486 I}, {4.2395, -1.30678 + 5.59644 I}, {4.11949, -1.22742 + 
5.78034 I}, {3.98945, -1.24255 + 5.79258 I}, {3.86955, -1.2308 + 
5.84584 I}, {3.73953, -1.35529 + 5.57368 I}, {3.61955, -1.31024 + 
5.53816 I}, {3.49951, -1.23196 + 5.598 I}, {3.36959, -1.40063 + 
5.6092 I}, {3.24957, -1.60489 + 5.64436 I}, {3.11957, -1.6494 + 
5.73888 I}, {2.99964, -1.70216 + 5.71736 I}, {2.8796, -1.6922 + 
5.6492 I}, {2.74964, -1.759 + 5.28264 I}, {2.62968, -1.7027 + 
4.84438 I}, {2.49968, -2.27829 + 3.81264 I}, {2.37969, -3.94616 + 
2.58044 I}, {2.25972, -5.84213 + 2.1113 I}, {2.12973, -8.11267 + 
1.66054 I}, {2.00973, -10.6619 + 1.37424 I}, {1.87977, -13.6482 + 
1.03516 I}, {1.75976, -16.8177 + 1.06678 I}, {1.63979, -20.6102 + 
1.27176 I}, {1.50981, -25.8113 + 1.62656 I}, {1.38982, -32.0407 + 
1.92542 I}, {1.25984, -40.2741 + 2.794 I}, {1.13985, -51.0496 + 
3.861 I}, {1.01987, -66.2185 + 5.7015 I}, {0.889886, -90.4265 + 
8.18634 I}, {0.769902, -125.351 + 
12.5552 I}, {0.639918, -189.042 + 25.3552 I}}


dataReal=Transpose@{data[[All,1]],Re@data[[All,2]]};
dataImag=Transpose@{data[[All,1]],Im@data[[All,2]]};

with the following model (Drude-Lorentz-Model):

$$ \varepsilon=\varepsilon_\infty-\frac{\omega^2_D}{\omega\left(\omega+i\gamma_D \right)}-\sum_{i=1}^{n}\frac{\Delta\epsilon_i\omega ^2_{L,i}}{\omega^2-\omega^2_{L,i}+i\gamma_{L,i}\omega} $$ for $n=2$ and $n=3$. With $\epsilon_\infty=9.84$, $\omega_D=9$ and $\gamma_D=67/1000$

So far I'm fitting real/imaginary part of the function separately to the real/imaginary part of the data (dataReal, dataImag):

nlmReal=NonlinearModelFit[
dataReal, {ComplexExpand[Re[model]],cons}, {{wL1}, {wL2}, {gL1}, {gL2},{de1},{de2}},\[Omega],
Method -> {NMinimize, 
Method -> {"DifferentialEvolution",
"ScalingFactor" -> 0.9,"CrossProbability" -> 0.1, 
  "PostProcess" -> {FindMinimum, Method -> "QuasiNewton"}}}];


nlmImag=NonlinearModelFit[
dataImag, {ComplexExpand[Re[model]],cons}, {{wL1}, {wL2}, {gL1}, {gL2},{de1},{de2}},\[Omega],
Method -> {NMinimize, 
Method -> {"DifferentialEvolution",
"ScalingFactor" -> 0.9,"CrossProbability" -> 0.1, 
  "PostProcess" -> {FindMinimum, Method -> "Newton"}}}];

with

cons={wL1>0&&wL2>0&&gL1>0&&gL2>0&&de1>0&&de2>0}

No matter if I use Newton, QuasiNewton, LevenbergMarquardt or else and adding cons to the fit or not, the parameter of the fits are always different.

Grid[{{nlmReal[{"ParameterTable", "EstimatedVariance","AdjustedRSquared"}], 
  nlmImag[{"ParameterTable", "EstimatedVariance","AdjustedRSquared"}]}}, Frame -> All]

no image description here For $n=3$ it is the same. How can I achieve a better and more accurate fit for the given model? Can the fit be done without separating into real and imaginary part?

JeRut
  • 98
  • 6

0 Answers0