mathematica中对定义的函数作运算举个简单的例子:我-查字典问答网
分类选择

来自冯会伟的问题

  mathematica中对定义的函数作运算举个简单的例子:我要解一个微分方程组{dx1/dt=x1+H,dx2/dt=x1*x2-H}其中H=x1^2+x1*x2,而x1,x2都是t的函数.我要先定义H,然后在用DSolve解这个方程组的时候会引用H.求问怎

  mathematica中对定义的函数作运算

  举个简单的例子:我要解一个微分方程组{dx1/dt=x1+H,dx2/dt=x1*x2-H}其中H=x1^2+x1*x2,而x1,x2都是t的函数.我要先定义H,然后在用DSolve解这个方程组的时候会引用H.求问怎样实现?

1回答
2020-05-25 02:00
我要回答
请先登录
刘文斌

  H=x1[t]^2+x2[t]^2;

  equ={D[x1[t],t]==x1[t]+H,D[x2[t],t]==x1[t]*x2[t]-H};

  sol=DSolve[equ,{x1,x2},t]

  但这样求不出来这可能这方程组没有解析解

  你可以尝试数值解法带入x1,x2的初始值,在一定范围的t内求数值解就是

  H=x1[t]^2+x2[t]^2;

  equ={D[x1[t],t]==x1[t]+H,D[x2[t],t]==x1[t]*x2[t]-H,x1[0]==-0.1,x2[0]==0.1};

  sol=NDSolve[equ,{x1,x2},{t,0,5}]

  Plot[{sol[[1,1,2]][t],sol[[1,2,2]][t]},{t,0,5},PlotRange->All]

  这里假设x1[0]==-0.1,x2[0]==0.1,并画出了t在[0,5]之间的值

  你改变下初始条件你可以看到这方程增长很快经常趋向无穷大

2020-05-25 02:02:16

最新问答

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •