level 2
176shangxin
楼主
各位大佬,我在计算特征值时,出现错序 跳变问题,直接画图就能出现。两个都出现了,应该是同一个问题,劳烦各位大佬解答,代码不长,只是占的页数比较大,请见谅。
程序一
\[Gamma] = 1; Subscript[\[Gamma], c] =
0*\[Gamma]; Subscript[\[Gamma], d] =
2*\[Gamma]; Subscript[\[Gamma], a] =
0*\[Gamma]; Subscript[\[Gamma], b] =
2*\[Gamma]; k = 1; J = 1; \[CapitalDelta] = 0.01;
\[CapitalPhi] = 2*\[Pi]; n = 0;(*AW=0;*)
U = N[BesselJ[n, AW]]; W = N[BesselJ[n, AW]];
TE = 20;
e1 = Collect[Eigenvalues[1/I ({
{-I*Subscript[\[Gamma], a]/2, -k*Exp[I*\[CapitalPhi]/2]*U,
0, -J*W},
{-k*Exp[-I*\[CapitalPhi]/2]*U, -\[CapitalDelta] -
I*Subscript[\[Gamma], b]/2, -J*U, 0},
{0, -J*U, -I*Subscript[\[Gamma], c]/2, -k*
Exp[I*\[CapitalPhi]/2]*W},
{-J*W,
0, -k*Exp[-I*\[CapitalPhi]/2]*W, \[CapitalDelta] -
I*Subscript[\[Gamma], d]/2}
})], BesselJ[0.`, AW]];
e1r = Evaluate[Re[e1[[1]]]]; e2r = Evaluate[Re[e1[[2]]]]; e3r =
Evaluate[Re[e1[[3]]]]; e4r = Evaluate[Re[e1[[4]]]];
e1i = Evaluate[Im[e1[[1]]]]; e2i = Evaluate[Im[e1[[2]]]]; e3i =
Evaluate[Im[e1[[3]]]]; e4i = Evaluate[Im[e1[[4]]]];
Plot[{e1r, e2r, e3r, e4r}, {AW, 0, TE}, PlotRange -> All,
Frame -> True,
PlotStyle -> {{Blue, 18}, {Red, Dashed, 18}, {Brown, Dotted,
18}, {Black, DotDashed, 18}},
FrameLabel -> {"A/\[Omega]", "\!\(\*SubscriptBox[\(E\), \(Re\)]\)"},
FrameStyle -> Directive[Black, Bold, 14],
PlotLegends ->
Placed[LineLegend[
Style[TraditionalForm[#], 12] & /@ {E1Re, E2Re, E3Re,
E4Re}], {0.82, 0.6}]]
Plot[{e1i, e2i, e3i, e4i}, {AW, 0, 0.00001}, PlotRange -> All,
Frame -> True,
PlotStyle -> {{Blue, 18}, {Red, Dashed, 18}, {Brown, Dotted,
18}, {Black, DotDashed, 18}},
FrameLabel -> {"A/\[Omega]", "\!\(\*SubscriptBox[\(E\), \(Im\)]\)"},
FrameStyle -> Directive[Black, Bold, 14],
PlotLegends ->
Placed[LineLegend[
Style[TraditionalForm[#], 12] & /@ {E1Im, E2Im, E3Im,
E4Im}], {0.82, 0.6}]]
这个是结果

另一个也是
p = K0^2 \[Omega] - Ke^2 \[Omega] + Kf^2 \[Omega] -
Kv^2 \[Omega] + \[Epsilon] \[Omega]^2 - \[Omega]^3 -
2 Ke Kf Subscript[l, B] + 2 K0 Kv Subscript[l, B] + \[Epsilon]
\!\(\*SubsuperscriptBox[\(l\), \(B\), \(2\)]\) - \[Omega]
\!\(\*SubsuperscriptBox[\(l\), \(B\), \(2\)]\) + \[Omega]^2 Subscript[
w, A] + \!\(
\*SubsuperscriptBox[\(l\), \(B\), \(2\)]\
\*SubscriptBox[\(w\), \(A\)]\) - K0^2 Subscript[w, B] +
Ke^2 Subscript[w, B] - Kf^2 Subscript[w, B] +
Kv^2 Subscript[w, B] - 2 \[Epsilon] \[Omega] Subscript[w, B] +
2 \[Omega]^2 Subscript[w, B] -
2 \[Omega] Subscript[w, A] Subscript[w, B] + \[Epsilon]
\!\(\*SubsuperscriptBox[\(w\), \(B\), \(2\)]\) - \[Omega]
\!\(\*SubsuperscriptBox[\(w\), \(B\), \(2\)]\) + Subscript[w, A]
\!\(\*SubsuperscriptBox[\(w\), \(B\), \(2\)]\);
\[Omega]tsol = Solve[p == 0, \[Omega]];
\[Omega]1 = Evaluate[ \[Omega] /. \[Omega]tsol[[1]]];
Subscript[g, s] = (
2 Ke Kf -
2 K0 Kv - \[Epsilon] Subscript[l, B] + \[Omega]1 Subscript[l, B] -
Subscript[l, B] Subscript[w, A])/(\[Omega]1 - Subscript[w, B]);
K0 = 1; Kv = 1; Subscript[l, B] = 1.14; Subscript[w, B] = 1.97; Ke = \
0; Kf = 0; Subscript[w, 0] = 2 Subscript[w, B]/3;
Subscript[w, A] = 0;
Hs = ( {
{Subscript[w, A] + \[Epsilon] + I*(Subscript[g, s]) , (K0 + Ke) +
I*(Kv + Kf)},
{ (K0 - Ke) + I*(Kv - Kf), Subscript[w, B] - I* Subscript[l, B]}
});
a = Sort[Eigenvalues[Hs], \[Epsilon]];
a1 = Re[a] - Subscript[w, 0];
a2 = Im[a] - Subscript[w, 0];
DeH = Collect[Det[Hs - \[Omega]*IdentityMatrix[2]], \[Omega]];
a = Solve[DeH == 0, \[Omega]];
a1 = SortBy[Re[Evaluate[ \[Omega] /. a]]]; a2 =
Sort[Im[Evaluate[ \[Omega] /. a]]];
Plot[{a1[[1]], a1[[2]]}, {\[Epsilon], -1, 1}, Frame -> True,
PlotStyle -> {{Red, 18}, {Blue, Dashed}, {Green, DotDashed}},
Exclusions -> Automatic]
Plot[{a2[[1]], a2[[2]]}, {\[Epsilon], -1, 1}, Frame -> True,
PlotStyle -> {{Red, 18}, {Green, Dashed}, {Blue, Dashed}},
Exclusions -> Automatic]
2024年11月22日 13点11分
1
程序一
\[Gamma] = 1; Subscript[\[Gamma], c] =
0*\[Gamma]; Subscript[\[Gamma], d] =
2*\[Gamma]; Subscript[\[Gamma], a] =
0*\[Gamma]; Subscript[\[Gamma], b] =
2*\[Gamma]; k = 1; J = 1; \[CapitalDelta] = 0.01;
\[CapitalPhi] = 2*\[Pi]; n = 0;(*AW=0;*)
U = N[BesselJ[n, AW]]; W = N[BesselJ[n, AW]];
TE = 20;
e1 = Collect[Eigenvalues[1/I ({
{-I*Subscript[\[Gamma], a]/2, -k*Exp[I*\[CapitalPhi]/2]*U,
0, -J*W},
{-k*Exp[-I*\[CapitalPhi]/2]*U, -\[CapitalDelta] -
I*Subscript[\[Gamma], b]/2, -J*U, 0},
{0, -J*U, -I*Subscript[\[Gamma], c]/2, -k*
Exp[I*\[CapitalPhi]/2]*W},
{-J*W,
0, -k*Exp[-I*\[CapitalPhi]/2]*W, \[CapitalDelta] -
I*Subscript[\[Gamma], d]/2}
})], BesselJ[0.`, AW]];
e1r = Evaluate[Re[e1[[1]]]]; e2r = Evaluate[Re[e1[[2]]]]; e3r =
Evaluate[Re[e1[[3]]]]; e4r = Evaluate[Re[e1[[4]]]];
e1i = Evaluate[Im[e1[[1]]]]; e2i = Evaluate[Im[e1[[2]]]]; e3i =
Evaluate[Im[e1[[3]]]]; e4i = Evaluate[Im[e1[[4]]]];
Plot[{e1r, e2r, e3r, e4r}, {AW, 0, TE}, PlotRange -> All,
Frame -> True,
PlotStyle -> {{Blue, 18}, {Red, Dashed, 18}, {Brown, Dotted,
18}, {Black, DotDashed, 18}},
FrameLabel -> {"A/\[Omega]", "\!\(\*SubscriptBox[\(E\), \(Re\)]\)"},
FrameStyle -> Directive[Black, Bold, 14],
PlotLegends ->
Placed[LineLegend[
Style[TraditionalForm[#], 12] & /@ {E1Re, E2Re, E3Re,
E4Re}], {0.82, 0.6}]]
Plot[{e1i, e2i, e3i, e4i}, {AW, 0, 0.00001}, PlotRange -> All,
Frame -> True,
PlotStyle -> {{Blue, 18}, {Red, Dashed, 18}, {Brown, Dotted,
18}, {Black, DotDashed, 18}},
FrameLabel -> {"A/\[Omega]", "\!\(\*SubscriptBox[\(E\), \(Im\)]\)"},
FrameStyle -> Directive[Black, Bold, 14],
PlotLegends ->
Placed[LineLegend[
Style[TraditionalForm[#], 12] & /@ {E1Im, E2Im, E3Im,
E4Im}], {0.82, 0.6}]]
这个是结果

另一个也是p = K0^2 \[Omega] - Ke^2 \[Omega] + Kf^2 \[Omega] -
Kv^2 \[Omega] + \[Epsilon] \[Omega]^2 - \[Omega]^3 -
2 Ke Kf Subscript[l, B] + 2 K0 Kv Subscript[l, B] + \[Epsilon]
\!\(\*SubsuperscriptBox[\(l\), \(B\), \(2\)]\) - \[Omega]
\!\(\*SubsuperscriptBox[\(l\), \(B\), \(2\)]\) + \[Omega]^2 Subscript[
w, A] + \!\(
\*SubsuperscriptBox[\(l\), \(B\), \(2\)]\
\*SubscriptBox[\(w\), \(A\)]\) - K0^2 Subscript[w, B] +
Ke^2 Subscript[w, B] - Kf^2 Subscript[w, B] +
Kv^2 Subscript[w, B] - 2 \[Epsilon] \[Omega] Subscript[w, B] +
2 \[Omega]^2 Subscript[w, B] -
2 \[Omega] Subscript[w, A] Subscript[w, B] + \[Epsilon]
\!\(\*SubsuperscriptBox[\(w\), \(B\), \(2\)]\) - \[Omega]
\!\(\*SubsuperscriptBox[\(w\), \(B\), \(2\)]\) + Subscript[w, A]
\!\(\*SubsuperscriptBox[\(w\), \(B\), \(2\)]\);
\[Omega]tsol = Solve[p == 0, \[Omega]];
\[Omega]1 = Evaluate[ \[Omega] /. \[Omega]tsol[[1]]];
Subscript[g, s] = (
2 Ke Kf -
2 K0 Kv - \[Epsilon] Subscript[l, B] + \[Omega]1 Subscript[l, B] -
Subscript[l, B] Subscript[w, A])/(\[Omega]1 - Subscript[w, B]);
K0 = 1; Kv = 1; Subscript[l, B] = 1.14; Subscript[w, B] = 1.97; Ke = \
0; Kf = 0; Subscript[w, 0] = 2 Subscript[w, B]/3;
Subscript[w, A] = 0;
Hs = ( {
{Subscript[w, A] + \[Epsilon] + I*(Subscript[g, s]) , (K0 + Ke) +
I*(Kv + Kf)},
{ (K0 - Ke) + I*(Kv - Kf), Subscript[w, B] - I* Subscript[l, B]}
});
a = Sort[Eigenvalues[Hs], \[Epsilon]];
a1 = Re[a] - Subscript[w, 0];
a2 = Im[a] - Subscript[w, 0];
DeH = Collect[Det[Hs - \[Omega]*IdentityMatrix[2]], \[Omega]];
a = Solve[DeH == 0, \[Omega]];
a1 = SortBy[Re[Evaluate[ \[Omega] /. a]]]; a2 =
Sort[Im[Evaluate[ \[Omega] /. a]]];
Plot[{a1[[1]], a1[[2]]}, {\[Epsilon], -1, 1}, Frame -> True,
PlotStyle -> {{Red, 18}, {Blue, Dashed}, {Green, DotDashed}},
Exclusions -> Automatic]
Plot[{a2[[1]], a2[[2]]}, {\[Epsilon], -1, 1}, Frame -> True,
PlotStyle -> {{Red, 18}, {Green, Dashed}, {Blue, Dashed}},
Exclusions -> Automatic]

