求解微分代数方程方程出现icfail初始值问题
mathematica吧
全部回复
仅看楼主
level 1
Hamlayy 楼主
大家好,我在数值求解一组微分代数方程的时候设定好了初始值,计算到一个特定时刻结束,第二步沿用了前一个计算的结果,只是人为改了某个方程的初始条件的值(计算需要),接下去就提示icfail错误了,请问该怎么解决,代码如下
(*求解*)
sol1 = NDSolve[{EoMa, EoMchi, EoMphi, EoMPcr, EoMPci, EoMPfr, EoMPfi, EoMPhr, EoMPhi, bbc1, pbc1r, pbc1i, pbc2r, pbc2i, pbc3r, pbc3i}, {a[t], H[t], Ne[t], chi[t], dchi[t], ddchi[t], phi[t], dphi[t], ddphi[t], Qcr[t], dQcr[t], ddQcr[t], Qci[t], dQci[t], ddQci[t], Qfr[t], dQfr[t], ddQfr[t], Qfi[t], dQfi[t], ddQfi[t], Qhr[t], dQhr[t], ddQhr[t], Qhi[t], dQhi[t], ddQhi[t]}, {t, tmin, tinflation}];
(*EoMchi := {ddchi[t] + 3 H[t] dchi[t] + Vpc[t] == 0, dchi[t] == chi'[t], ddchi[t] == dchi'[t]};*)
(*改变chi,dchi的边界条件*)
sol2 = NDSolve[{EoMa, EoMchi, EoMphi, EoMPcr, EoMPci, EoMPfr, EoMPfi, EoMPhr, EoMPhi, bbc1, pbc1r, pbc1i, pbc2r, pbc2i, pbc3r, pbc3i}, {a[t], H[t], Ne[t], chi[t], dchi[t], ddchi[t], phi[t], dphi[t], ddphi[t], Qcr[t], dQcr[t], ddQcr[t], Qci[t], dQci[t], ddQci[t], Qfr[t], dQfr[t], ddQfr[t], Qfi[t], dQfi[t], ddQfi[t], Qhr[t], dQhr[t], ddQhr[t], Qhi[t], dQhi[t], ddQhi[t]}, {t, tinflation, tmax}];
(*之后就出现了错误NDSolve::icfail*)
不明白为什么前面的初始条件可以计算,只是改了这点东西就提示这个错误,请大神帮忙
2018年06月08日 14点06分 1
1