Closed-form Solutions of Linear Differential Equations
The Maple dsolve command allows determination of closed-form solutions for linear differential equations.
Second-order Equations
The dsolve command converts a homogeneous second-order linear differential equation of the form
ode:=a⁡x⁢ⅆ2ⅆx2⁢y⁡x+b⁡x⁢ⅆⅆx⁢y⁡x+c⁡x⁢y⁡x=0 into one of the form
new_ode:=ⅆ2ⅆx2⁢y⁡x+I⁡x⁢y⁡x=0, and then uses solutions of the new equation to build solutions to the first. The method computes a solution to the second by looking at the partial fraction expansion of I(x).
For example, we have (from the classical text by Kamke):
restart
ode1:=ⅆ2ⅆx2⁢y⁡x+2⁢x2⁢ⅆⅆx⁢y⁡x+2⁢x⁢y⁡x
ode1≔ⅆ2ⅆx2y⁡x+2⁢x2⁢ⅆⅆxy⁡x+2⁢x⁢y⁡x
ans1:=dsolve⁡ode1,y⁡x
ans1≔y⁡x=c__1⁢ⅇ−x33⁢x⁢BesselI⁡16,x33+c__2⁢ⅇ−x33⁢x⁢BesselK⁡16,x33
ode2:=4⁢x4−1⁢ⅆⅆx⁢ⅆⅆx⁢y⁡x+12⁢x4+1⁢ⅆⅆx⁢y⁡xx+16⁢x2⁢−u24⁢x4−1−v⁢v+1⁢y⁡x
ode2≔4⁢x4−1⁢ⅆ2ⅆx2y⁡x+12⁢x4+1⁢ⅆⅆxy⁡xx+16⁢x2⁢−u24⁢x4−1−v⁢v+1⁢y⁡x
ans2:=dsolve⁡ode2,y⁡x
ans2≔y⁡x=c__1⁢LegendreP⁡v,u,2⁢x2+c__2⁢LegendreQ⁡v,u,2⁢x2
ode3:=ⅆ2ⅆx2⁢y⁡x−x⁢ⅆⅆx⁢y⁡x+n⁢y⁡x
ode3≔ⅆ2ⅆx2y⁡x−x⁢ⅆⅆxy⁡x+n⁢y⁡x
ans3:=dsolve⁡ode3,y⁡x
ans3≔y⁡x=c__1⁢x⁢KummerM⁡12−n2,32,x22+c__2⁢x⁢KummerU⁡12−n2,32,x22
ode4:=x−9⁢x5⁢ⅆ2ⅆx2⁢y⁡x+1−9⁢x4⁢ⅆⅆx⁢y⁡x+36⁢x3⁢y⁡x
ode4≔−9⁢x5+x⁢ⅆ2ⅆx2y⁡x+−9⁢x4+1⁢ⅆⅆxy⁡x+36⁢x3⁢y⁡x
ans4:=dsolve⁡ode4,y⁡x
ans4≔y⁡x=c__1⁢EllipticE⁡3⁢x2+c__2⁢EllipticCE⁡3⁢x2−EllipticCK⁡3⁢x2
In all of these examples, one can verify the solutions by using the odetest command:
odetest⁡ans1,ode1
0
odetest⁡ans2,ode2
odetest⁡ans3,ode3
odetest⁡ans4,ode4
Higher-order Equations
One can also solve higher-order equations. For example, in the equation
ode:=−300⁢y⁡x+192⁢x⁢ⅆⅆx⁢y⁡x+−47⁢x2+4⁢x3⁢μ−x4−4⁢x2⁢ν2⁢ⅆ2ⅆx2⁢y⁡x+12⁢y⁡x⁢x2−48⁢y⁡x⁢μ⁢x+48⁢y⁡x⁢ν2+4⁢x4⁢ⅆ4ⅆx4⁢y⁡x
ode≔−300⁢y⁡x+192⁢x⁢ⅆⅆxy⁡x+4⁢x3⁢μ−4⁢x2⁢ν2−x4−47⁢x2⁢ⅆ2ⅆx2y⁡x+12⁢y⁡x⁢x2−48⁢y⁡x⁢μ⁢x+48⁢y⁡x⁢ν2+4⁢x4⁢ⅆ4ⅆx4y⁡x
two solutions are determined by the rational function solver DEtools[ratsols]. Reduction of order then produces a final answer in terms of integrals:
dsolve⁡ode,y⁡x
y⁡x=c__1x3+c__2⁢x4+c__3⁢−∫WhittakerM⁡μ,ν,xx3ⅆx⁢x7+∫x4⁢WhittakerM⁡μ,ν,xⅆxx3+c__4⁢∫WhittakerW⁡μ,ν,xx3ⅆx⁢x7−∫x4⁢WhittakerW⁡μ,ν,xⅆxx3
odetest⁡,ode
Maple does a quick test to determine if a particular ODE is the symmetric product of a second-order equation. If so, then a solution can be determined from the solutions of the second-order equation. For example, the equation
ode:=ⅆ3ⅆx3⁢y⁡x−4⁢x⁢ⅆⅆx⁢y⁡x−2⁢y⁡x
ode≔ⅆ3ⅆx3y⁡x−4⁢x⁢ⅆⅆxy⁡x−2⁢y⁡x
found in Kamke or Abramowitz and Stegun is the symmetric power of Airy's equation. As such, dsolve produces:
y⁡x=c__1⁢AiryAi⁡x2+c__2⁢AiryBi⁡x2+c__3⁢AiryAi⁡x⁢AiryBi⁡x
Similarly,
ode2:=ⅆ3ⅆx3⁢y⁡x−6⁢x⁢ⅆ2ⅆx2⁢y⁡x+2⁢4⁢x2+2⁢a−1⁢ⅆⅆx⁢y⁡x−8⁢a⁢x⁢y⁡x
ode2≔ⅆ3ⅆx3y⁡x−6⁢ⅆ2ⅆx2y⁡x⁢x+2⁢4⁢x2+2⁢a−1⁢ⅆⅆxy⁡x−8⁢a⁢x⁢y⁡x
ans2≔y⁡x=c__1⁢x2⁢KummerM⁡12−a4,32,x22+c__2⁢x2⁢KummerU⁡12−a4,32,x22+c__3⁢x2⁢KummerM⁡12−a4,32,x2⁢KummerU⁡12−a4,32,x2
Combined with previous methods, we find that the equation
ode:=2⁢y⁡x+−2+4⁢x⁢ⅆⅆx⁢y⁡x−4⁢x⁢ⅆ2ⅆx2⁢y⁡x−ⅆ3ⅆx3⁢y⁡x+ⅆ4ⅆx4⁢y⁡x
ode≔2⁢y⁡x+−2+4⁢x⁢ⅆⅆxy⁡x−4⁢ⅆ2ⅆx2y⁡x⁢x−ⅆ3ⅆx3y⁡x+ⅆ4ⅆx4y⁡x
has a single answer determined from the Maple exponential solver DEtools[expsols], and then reduction of order reduces to a symmetric equation. This gives
y⁡x=c__1⁢ⅇx+c__2⁢∫AiryAi⁡x2⁢ⅇ−xⅆx⁢ⅇx+c__3⁢∫AiryBi⁡x2⁢ⅇ−xⅆx⁢ⅇx+c__4⁢∫AiryAi⁡x⁢AiryBi⁡x⁢ⅇ−xⅆx⁢ⅇx
Additional Improvements
Improvements to solving linear ODEs also naturally lead to improvements in solving other differential equations. For example, first-order Riccati equations are typically converted to second-order linear equations to build their solutions. Similarly, linear systems of first-order equations are solved by building one or more higher-order scalar equations and by constructing the matrix solutions. A simple example is found by
ode:=ⅆⅆx⁢y⁡x=x+y⁡x+a⁢y⁡x2
ode≔ⅆⅆxy⁡x=x+y⁡x+a⁢y⁡x2
y⁡x=2⁢AiryAi⁡1,−4⁢a⁢x−14⁢a23⁢a13⁢c__1−AiryAi⁡−4⁢a⁢x−14⁢a23⁢c__1+2⁢AiryBi⁡1,−4⁢a⁢x−14⁢a23⁢a13−AiryBi⁡−4⁢a⁢x−14⁢a232⁢a⁢AiryAi⁡−4⁢a⁢x−14⁢a23⁢c__1+AiryBi⁡−4⁢a⁢x−14⁢a23
In the above answer, the functions AiryAi(1, .. ) and AiryBi(1,...) represent the derivatives of the AiryAi and AiryBi functions, respectively.
Return to Index for Example Worksheets
Download Help Document