(完整版)Mathematica——常微分方程、拉氏变换与级数实验

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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-

相关文档
最新文档