Перешел к новым единицам. Теперь частота измеряется в ТГц, расстояния - в сотнях мкм, соответственно скорость света - c = 2.99792458.
Вот код
Код:
\[Nu]min = 0.5; \[Nu]max = 4.0;
N\[Nu] = 20;
\[Nu]a = Array[# &, N\[Nu], {\[Nu]min, \[Nu]max}]; \[Omega]a =
2*\[Pi]*\[Nu]a;
\[Beta]a = Array[0 &, N\[Nu]]; k0a = \[Omega]a/c;
c = 2.99792458;
a = 1.0;
\[Omega]p = 2*10;
\[Gamma] = 2.5*\[Omega]p/20;
\[Epsilon]m[\[Omega]_] :=
1 - \[Omega]p^2/(\[Omega]*(\[Omega] + I*\[Gamma]));
f[\[Omega]_] := (\[Omega]/c)*
Sqrt[\[Epsilon]m[\[Omega]]/(\[Epsilon]m[\[Omega]] + 1)];
f1[\[Beta]r_, \[Beta]i_, \[Omega]_] :=
Block[{kp = Sqrt[(\[Beta]r + I*\[Beta]i)^2 - (\[Omega] /c)^2],
km = Sqrt[(\[Beta]r +
I*\[Beta]i)^2 - \[Epsilon]m[\[Omega]]*(\[Omega] /
c)^2]}, (1 + \[Epsilon]m[\[Omega]]*
Sqrt[((\[Beta]r + I*\[Beta]i)^2 - (\[Omega]/c)^2)/((\[Beta]r +
I*\[Beta]i)^2 - \[Epsilon]m[\[Omega]]*(\[Omega]/c)^2)]*
BesselI[1, km*a]/BesselI[0, km*a]*BesselK[0, kp*a]/
BesselK[1, kp*a])
];
fa = f /@ \[Omega]a;
For[s = 1, s <= N\[Nu], s++,
{\[Beta]r1, \[Beta]i1} = {\[Beta]r, \[Beta]i} /.
FindRoot[{Re[f1[\[Beta]r, \[Beta]i, \[Omega]a[[s]]]],
Im[f1[\[Beta]r, \[Beta]i, \[Omega]a[[s]]]]}, {{\[Beta]r,
Re[fa[[s]]]}, {\[Beta]i, Im[fa[[s]]]}}];
\[Beta]a[[s]] = \[Beta]r1 + I*\[Beta]i1;
];
ListLinePlot[{\[Nu]a, Re@\[Beta]a}\[Transpose]]
ListLinePlot[{\[Nu]a, Im@\[Beta]a}\[Transpose]]
Вывод уравнения неоднократно проверялся.