【Mathematica】微分方程组的数值解法

 时间:2026-02-12 16:48:01

1、要求解的方程组是:

{x'[t] + y[t]^2 == 1, y'[t] + x[t]^2 == 2}

初始条件是:

x[1] == 1, y[1] == 2

直接用DSolve,计算机将进入某种奇异状态:

DSolve[{x'[t]+y[t]^2==1,y'[t]+x[t]^2==2,x[1]==1,y[1]==2}, {x[t], y[t]}, t]

【Mathematica】微分方程组的数值解法

2、由于DSolve长时间算不出结果,就直接套用NDSolve计算数值解:

NDSolve[{x'[t]+y[t]^2==1,y'[t]+x[t]^2==2,x[1]==1,y[1]==2}, {x[t], y[t]}, t]

这时候会报错。

【Mathematica】微分方程组的数值解法

3、NDSolve[{x'[t]+y[t]^2==1,y'[t]+x[t]^2==2,x[1]==1,y[1]==2}, {x[t], y[t]}, 

            {t,-10,10}]

给t制定一个取值范围,仍旧报错。这是因为这个范围内,很可能遇到了微分方程系统的奇异值。

【Mathematica】微分方程组的数值解法

4、重新调整t的范围,把可能存在的奇异值排除掉:

NDSolve[{x'[t]+y[t]^2==1,y'[t]+x[t]^2==2,x[1]==1,y[1]==2}, {x[t], y[t]}, 

            {t,0.09,2.8}]

运行,不再报错。

【Mathematica】微分方程组的数值解法

5、出来结果,就可以画图了:

ParametricPlot[{x[t], y[t]} /. sol, {t, 1, 2}]

【Mathematica】微分方程组的数值解法

6、画图范围一定不要超出解方程组的时候所预定的t的取值范围:

【Mathematica】微分方程组的数值解法

7、有时候即便不出界,也会报错,

不知道为什么数值解可以求出来,图像却不可作。

【Mathematica】微分方程组的数值解法

8、一直调整到0.99995,还是报错,直到0.99996,才可以正常作图。

【Mathematica】微分方程组的数值解法

  • Mathematica 特殊字符输入(希腊字母/运算符)
  • 如何用mathematica画出函数图象
  • Mathematica 求解二阶常微分方程技巧(符号解)
  • Mathematica基础——解微分方程并作图
  • mathematica 如何画图
  • 热门搜索
    湖南莽山旅游攻略 广西有什么旅游景点 1月适合去哪里旅游 乌镇西塘旅游攻略 重庆贝迪颐园温泉旅游度假酒店 安徽宁国旅游 三亚旅游景点大全 广东旅游局官网 汕头旅游网 过年旅游