我在解一个这样的耦合系统,因为系统参数数量级差距比较大,因此系统是刚性的,
Clear["Global`*"]
ga = 559.*10^16;
m = 5.*10^-11;
\[Gamma]m = 24.*10^-8;
gc = 559.*10^16;
\[Omega]m = 735.*10^5;
\[Omega]c = 193.*10^7;
\[Omega]a = 100.*10^12;
\[CapitalDelta]a = \[Omega]m;
\[CapitalDelta]c = 0.;
\[Phi] = 0.;
\[Kappa]a = 2.*\[Omega]m/5.;
\[Kappa]c = 4.*\[Omega]m/5.;
hbar = 663.*10^-36/(2*\[Pi]);
sol = NDSolve[{q'[t] == p[t]/m,
p'[t] == -\[Gamma]m p[t] + hbar ga (ar[t]^2 + ai[t]^2) +
hbar gc (cr[t]^2 + ci[t]^2),
ar'[t] == -\[Kappa]a ar[t] + (\[CapitalDelta]a - ga q[t]) ai[
t] + \[Omega]a,
ai'[t] == -\[Kappa]a ai[t] - (\[CapitalDelta]a - ga q[t]) ar[t],
cr'[t] == -\[Kappa]c cr[t] + (\[CapitalDelta]c - gc q[t]) ci[
t] + \[Omega]c Cos[\[Phi]],
ci'[t] == -\[Kappa]c ci[t] - (\[CapitalDelta]c - gc q[t]) cr[
t] - \[Omega]c Sin[\[Phi]],
\[Epsilon]q'[t] == \[Epsilon]p[t]/m,
\[Epsilon]p'[t] == -\[Gamma]m \[Epsilon]p[t] - m \[Omega]m^2 +
2 hbar ga (ar[t] \[Epsilon]ar[t] + ai[t] \[Epsilon]ai[t]) +
2 hbar gc (cr[t] \[Epsilon]cr[t] + ci[t] \[Epsilon]ci[t]),
\[Epsilon]ar'[t] == -\[Kappa]a \[Epsilon]ar[t] -
ga ai[t] \[Epsilon]q[
t] + (\[CapitalDelta]a - ga q[t]) \[Epsilon]ai[t],
\[Epsilon]ai'[t] == -\[Kappa]a \[Epsilon]ai[t] +
ga ar[t] \[Epsilon]q[
t] - (\[CapitalDelta]a - ga q[t]) \[Epsilon]ar[t],
\[Epsilon]cr'[t] == -\[Kappa]c \[Epsilon]cr[t] -
gc ci[t] \[Epsilon]q[
t] + (\[CapitalDelta]c - gc q[t]) \[Epsilon]ci[t],
\[Epsilon]ci'[t] == -\[Kappa]c \[Epsilon]ci[t] +
gc cr[t] \[Epsilon]q[
t] - (\[CapitalDelta]c - gc q[t]) \[Epsilon]cr[t], p[0] == 0,
q[0] == 0, ar[0] == 0, ai[0] == 0, cr[0] == 0,
ci[0] == 0, \[Epsilon]p[0] == 0, \[Epsilon]q[0] ==
0, \[Epsilon]ai[0] == 0.1, \[Epsilon]ar[0] ==
0.1, \[Epsilon]ci[0] == 0, \[Epsilon]cr[0] == 0}, {q, p, ar, ai,
cr, ci, \[Epsilon]p, \[Epsilon]q, \[Epsilon]ai, \[Epsilon]ar, \
\[Epsilon]cr, \[Epsilon]ci}, {t, 0, 1*10^-6}, MaxSteps -> Infinity]
Plot[Log10[((ai[t] + \[Epsilon]ai[t])^2 + (ar[t] + \[Epsilon]ar[
t])^2 - (ai[t]^2 + ar[t]^2))] /. sol, {t, 0, 5*10^-7}]
在解方程时出现了如下情况
At t == 6.502718555087617`*^-7, step size is effectively zero; singularity or stiff system suspected.
在这种情况下,我该如何处理呢?
通过查询帮助及SE上的例子 我发现用
Method -> "StiffnessSwitching"
的方法可以解决刚性矩阵和奇点这个问题
Clear["Global`*"]
Needs["DifferentialEquations`NDSolveProblems`"];
Needs["DifferentialEquations`NDSolveUtilities`"];
ga = 559.*10^16;
m = 5.*10^-11;
\[Gamma]m = 24.*10^-8;
gc = 559.*10^16;
\[Omega]m = 735.*10^5;
\[Omega]c = 193.*10^7;
\[Omega]a = 100.*10^12;
\[CapitalDelta]a = \[Omega]m;
\[CapitalDelta]c = 0.;
\[Phi] = 0.;
\[Kappa]a = 2.*\[Omega]m/5.;
\[Kappa]c = 4.*\[Omega]m/5.;
hbar = 663.*10^-36/(2*\[Pi]);
sol = NDSolve[{q'[t] == p[t]/m,
p'[t] == -\[Gamma]m p[t] + hbar ga (ar[t]^2 + ai[t]^2) +
hbar gc (cr[t]^2 + ci[t]^2),
ar'[t] == -\[Kappa]a ar[t] + (\[CapitalDelta]a - ga q[t]) ai[
t] + \[Omega]a,
ai'[t] == -\[Kappa]a ai[t] - (\[CapitalDelta]a - ga q[t]) ar[t],
cr'[t] == -\[Kappa]c cr[t] + (\[CapitalDelta]c - gc q[t]) ci[
t] + \[Omega]c Cos[\[Phi]],
ci'[t] == -\[Kappa]c ci[t] - (\[CapitalDelta]c - gc q[t]) cr[
t] - \[Omega]c Sin[\[Phi]], \[Epsilon]q'[t] == \[Epsilon]p[t]/
m, \[Epsilon]p'[t] == -\[Gamma]m \[Epsilon]p[t] -
m \[Omega]m^2 +
2 hbar ga (ar[t] \[Epsilon]ar[t] + ai[t] \[Epsilon]ai[t]) +
2 hbar gc (cr[t] \[Epsilon]cr[t] +
ci[t] \[Epsilon]ci[t]), \[Epsilon]ar'[
t] == -\[Kappa]a \[Epsilon]ar[t] -
ga ai[t] \[Epsilon]q[
t] + (\[CapitalDelta]a - ga q[t]) \[Epsilon]ai[
t], \[Epsilon]ai'[t] == -\[Kappa]a \[Epsilon]ai[t] +
ga ar[t] \[Epsilon]q[
t] - (\[CapitalDelta]a - ga q[t]) \[Epsilon]ar[
t], \[Epsilon]cr'[t] == -\[Kappa]c \[Epsilon]cr[t] -
gc ci[t] \[Epsilon]q[
t] + (\[CapitalDelta]c - gc q[t]) \[Epsilon]ci[
t], \[Epsilon]ci'[t] == -\[Kappa]c \[Epsilon]ci[t] +
gc cr[t] \[Epsilon]q[
t] - (\[CapitalDelta]c - gc q[t]) \[Epsilon]cr[t], p[0] == 0,
q[0] == 0, ar[0] == 0, ai[0] == 0, cr[0] == 0,
ci[0] == 0, \[Epsilon]p[0] == 0, \[Epsilon]q[0] ==
0, \[Epsilon]ai[0] == 10, \[Epsilon]ar[0] ==
10, \[Epsilon]ci[0] == 0, \[Epsilon]cr[0] == 0}, {q, p, ar, ai,
cr, ci, \[Epsilon]p, \[Epsilon]q, \[Epsilon]ai, \[Epsilon]ar, \
\[Epsilon]cr, \[Epsilon]ci}, {t, 0, 6*10^-6}, MaxSteps -> Infinity,
Method -> "StiffnessSwitching"]
Plot[Log10[((ai[t] + \[Epsilon]ai[t])^2 + (ar[t] + \[Epsilon]ar[
t])^2 - (ai[t]^2 + ar[t]^2))] /. sol, {t, 0, 5*10^-6}]
但是在计算的后端 系统该有的震荡却消失了 
其中 我取后面极小时间内的图为 
不知道这里有没有更好的方法应付这里的这种情况