Blog List View

求助:Mathematica 求解非线性微分方程组 

2017-09-27 04:12:52
65 次阅读

萌新求助如何求解一个非线性方程组:

求助大神,我要解的非线性方程组不是规范的,无法直接套用NDSolve,也没有在Help中查到处理方法。原因是微分方程组中有一项表达式需要再解一个方程才能得到,具体的:

NDSolve[{ EIS'[t] == (segma[t] + f[EIS[t]]/(str*omega))*str*
    omega,
  segma'[t] == 
   shear*str - 
    1/(str*omega)*Df[EIS[t]]*EIS'[t],EIS[0] == -4.842, segma[0] == 0,}, {EIS, segma}, {t, 0, 
  10}]

以上是我想要求解的微分方程,形式很简单。其中各个函数除了f[EIS]以外均有直接的表达式。而f[EIS]需要由以下表达式得到:

f[EIS_] := 
  Re[Coef /. 
    FindRoot[
     Integrate[P[EA, EIS, Coef], {EA, 0, Infinity}] == 1, {Coef, 1}]];

也就是f[EIS]每一点的值都需要解一个上述的方程。


程序报错是求解f[EIS]时得不到数值无法进行。请问这样的情况应该怎么处理呢?我也尝试了将f[EIS]也作为一个方程放入NDSolve中求解微分代数方程,但是也无法得到结果。


十分感谢大神帮助


发表评论