用Mathematica绘制微分方程的图形

时间:2024-10-11 19:33:47

1、 给出微分方程y''(x)+y(x)==1,求其的通解:DSolveValue[y''[x] + y[x] == 1, y[x], x] 得到的通解是:c2*sin(x)+c1*cos(x)+1。 显然,通解是不可能作出图像的! 但是,我们可以对c1、c2赋予不同的值,再用Show+Table,把所作的图放到一起(注意,大写字母C是Mathematica的内部函数,因此,作图的时候,要把C全部换成c):Show[Table[ Plot[1 + c[1] Cos[x] + c[2] Sin[x], {x, -2 Pi, 2 Pi}],{c[2], -1, 1,0.5}, {c[1], -1, 1, 0.5}]]

用Mathematica绘制微分方程的图形
用Mathematica绘制微分方程的图形

2、 用NDSolveValue可求出微分方程的数值解(俗称——特解):NDSolveValue[{y'[x] == Cos[x^6 + x + 1], y[0] == 0}, y[x], {x, -5, 5}] 没有给出公式,但是不妨碍作图:Plot[%, {x, -5, 5}]

用Mathematica绘制微分方程的图形
用Mathematica绘制微分方程的图形

3、 求二元微分方程组的特解:{xsol, ysol} =NDSolveValue[{x'[t] == -3 y[t] - x[t]^2,y'[t] == Sqrt[3] x[t] - y[t]^3,x[0] == y[0] == 1}, {x, y}, {t, 100}] 把结果作为参数方程,来进行作图,这是混沌现象:ParametricPlot[{xsol[t], ysol[t]}, {t, 0, 100}]

用Mathematica绘制微分方程的图形

4、 用互动效果演示一下上图的作图过程:Manipulate[ ParametricPlot[{xs泠贾高框ol[t], ysol[t]}, {t, 0, a}], {a, 0.01, 100}]Manipulate[ ParametricPlot[{xsol[t], ysol[t]}, {t, 0, a}], {a, 0.01, 100,0.1}]Manipulate[ ParametricPlot[{xsol[t], ysol[t]}, {t, 0, a}], {a, 0.01, 10,0.001}]

用Mathematica绘制微分方程的图形
用Mathematica绘制微分方程的图形
用Mathematica绘制微分方程的图形

5、 这个让我想到了著名的“Lorenz吸引子”,需要满足的微分方旯皱镢涛程组是:x' (t)=-10(x(t)+y(t) )y' (t)=x(t)(-z(t) )+28x(t像粜杵泳)-y(t)z' (t)=x(t)y(t)-(8z(t))/3 “Lorenz吸引子”的每一个点由{x(t),y(t),z(t)}确定,t是时间参数。我们先来解出{x(t),y(t),z(t)}当x(0)=z(0)=0,y(0)=1时的数值解:NDSolve[{x'[t] == -10 (x[t] - y[t]), y'[t] == -x[t] z[t] + 28 x[t] - y[t], z'[t] == x[t] y[t] - (8/3) z[t], x[0] == z[0] == 0, y[0] == 1}, {x, y, z}, {t, 0, 200}, MaxSteps -> Infinity]

用Mathematica绘制微分方程的图形

6、 然后在三维空间里,画出它的图像:ParametricPlot3D[Evaluate[{x[t], y[t], z[t]} /. %], {t, 0, 200},PlotPoints -> 50000]

用Mathematica绘制微分方程的图形
© 手抄报圈