(完整版)Mathematica——常微分方程、拉氏变换与级数实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
创3.5 常微分方程、拉氏变换与级数实验
[学习目标]
1. 会用Mathematica 求解微分方程(组);
2. 能用Mathematica 求微分方程(组)的数值解;
3. 会利用Mathematica 进行拉氏变换与逆变换;
4. 能进行幕级数和傅里叶级数的展开。
一、常微分方程(组)
Mathematica 能求常微分方程(组)的准确解,能求解的类型大致覆盖了人工求解的范围, 功能很强。但不如人灵活(例如在隐函数和隐方程的处理方面),输出的结果与教材上的答 案可能在形式上不同。另外,Mathematica 求数值解也很方便,且有利于作出解的图形。在本 节中,使用Laplace 变换解常微分方程(组)的例子也是十分成功的,过去敬而远之的方法 如今可以轻而易举的实现了。
求准确解的函数调用格式如下: DSolve[eqn ,y[x] ,x] 求方程 eqn 的通解 y(x ),
其中自变量是X 。
DSolve[{eqn ,y[x o ]= =y 0},y[x],x] 的特解y (x )。 DSolve[{eqn1,eqn2,—},{y 1 [x],y 2[x],…},x]
求方程组的通解。
DSolve[{equ1,…,y 1[x 0]= =y 10,…},{y 1[x],y 2[x],…},x] 求方程组的特解。 说明:应当特别注意,方程及各项参数的表述方式很严格,容易出现输入错误。微分方 程的表示法只有通过例题才能说清楚。
例1 解下列常微分方程(组):
5
2
(1) y 斗(x 1)2,(2) y - y 3 ,
(3)
x 1
(x x ) y
解:In[1]: =DSolve[y ' [x]= =2y[x]/ (x+1) + (x+1) A (5/2),
y[x],x]
Out[1]
=
y[x] i (1 x)7/2 (1 x)2c[1]
In[2]: =DSolve[y ' [x]= = (1+y[xF2 ) /((x+xA3 ) y[x]),y[x],x]
求满足初始条件y ( x o ) = y o
(4)
的通解及满足初始条件y (0) =0, z (0) =1的特解。
Out[2]={{ y[x]
},
{y[x]
In[3]: =DSolve[{y ' [x]= =z[x] , z ' [x]= = -y[x]},
{y[x] , z[x]} , x]
Out[3]={{y[x] — C[1]Cos[x]+ C[2]Sin[x],
z[x] — C[2]Cos[x]- C[1]Si n[x]}}
In[4]: =DSolve[{y ' [x]= =z[x] , z ' [x]= = -y[x] , y[0]= =0 , z[0]= =1},
{y[x] , z[x]} , x]
Out[4]={{y[x] — Sin[x], z[x] — Cos[x]}}
提示:认真观察上例,可以从中学习输入格式,未知函数总带有自变量,等号用连续键 入两个等号表示,这两点由于不习惯会出错!导数符号用键盘上的撇号,连续两撇表示二阶 导数,这与习惯相同。自变量、未知量、初始值的表示法与普通变量相同。
说明:输出结果总是尽量用显式解表出,有时反而会使表达式变得复杂,这与教科书的 习惯不同。当求显式解遇到问题时,会给出提示。通解中的任意常数用
C[1],C[2],…
例2 求解下列微分方程:
x
2
2
I '
y (x 5)e
,(2) x (y)
1,(3) y xy
y[x],x]
In[2]: =Simplify[%]
1
Out[2]={{ y[x] e x ( 20x 3 x 4 24C[1] 24xC[2] 24x 2C[3])}}
24
Out[3]={{ y[x] ^x .1 x 2
A rcS *n[x]
C[1]},
2 2
{y[x]
1x..1 x 2
C [1]}}
2 2
ln[4]: =DSolve[Sqrt[y ' [x]] = = x y[x] ,y[x],x]
3 Out[4]={{ y[x] 厂}} x C[1]
说明:由以上可以看出对方程的类型并无限制,但是输出的答案未必符合习惯,例如第 一个方程的答案需要化简,有时即使化简后也未必与教材上的答案一致。
1 x 2
2
x x
5x 2
3
x e x
5x —
ex-
— 2
2
2
3
Out[1]={{ y[x]
1
5 3
4
-e x 上 - e x C[1] e x xC[2] e x x 2C[3]}} 2 3 4
表示。 解: In[1]: =DSolve[ y [x] +3y " [x] +3y
[x] + y[x]==
(x - 5) Exp[-x],
(1) y
3y 3y In[3]: =DSolve[x A 2 + y [x]A 2 = = 1,y[x],x]
例3求微分方程法2xy xe"的通解
解:In[1]: =DSolve[y [x]+2x y[x]= = x E A (帜八2),y[x],x]
1 2 _ 2
°u t[1]={{y[x]-尹x eX C[1]}}
这就是所给微分方程的通解。式中的C[1]是通解中的任意常数。
上述命令也可以输入为:DSolve[D[y[x]] + 2x y[x]= =x E A(- x A2), y[x] , x]。
例4 求微分方程xy + y - e x = 0在初始条件y|x=i = 2e下的特解。
解:In[1]: =DSolve[x*y [x]+y[x]-EAx= =0 ,y[1]= =2E,y[x],x]
x
e e
Out[1]= {{y[x]-——}}
x
二、常微分方程(组)的数值解
函数NDSolve用于求给定初值条件或边界条件的常微分方程(组)的近似解,其调用格式如下:
NDSolve[eqns, {y 1, y2,…}, {x , xmin , xmax}] 求常微分方程(组)的近似解。
其中微分方程和初值条件的表示法如同DSolve,未知函数仍有带自变量和不带自变量两
种形式,通常使用后一种更方便。初值点x o可以取在区间[xmin , xmax]上的任何一点处,得
到插值函数InterpolatingFunction[domain, table]类型的近似解,近似解的定义域domain—般为[domain, table],也有可能缩小。
例5 求常微分方程y' = x2 + y2,满足初始条件y (0)= 0的数值解。
解:In[1]: =s1=NDSolve[{y ' [x]= =xA2+y[x]A2 , y[0]= =0},
y, {x , -2, 2}]
Out[1]={{y —InterpolatingFunction[{{-2. , 2.}} , < >]}}
In[2]: = y=y / . s1[[1]]
Out[2]=InterpolatingFunction[{{-2. , 2.}}, < >]
ln[3]: =Plot[y[x] , {x , -2 , 2} , AspectRatio-Automatic ,
PlotRange-{-1.5 , 1.5}]
Out[3]= -Graphics-