Main Content

Solve Differential Equation

Solve a differential equation analytically by using the dsolve function, with or without initial conditions. To solve a system of differential equations, see Solve a System of Differential Equations.

First-Order Linear ODE

Solve this differential equation.

dydt=ty.

First, represent y by using syms to create the symbolic function y(t).

syms y(t)

Define the equation using == and represent differentiation using the diff function.

ode = diff(y,t) == t*y
ode(t) = 

t y(t)=ty(t)

Solve the equation using dsolve.

ySol(t) = dsolve(ode)
ySol(t) = 

C1et22

Solve Differential Equation with Condition

In the previous solution, the constant C1 appears because no condition was specified. Solve the equation with the initial condition y(0) == 2. The dsolve function finds a value of C1 that satisfies the condition.

cond = y(0) == 2;
ySol(t) = dsolve(ode,cond)
ySol(t) = 

2et22

If dsolve cannot solve your equation, then try solving the equation numerically. See Solve a Second-Order Differential Equation Numerically.

Nonlinear Differential Equation with Initial Condition

Solve this nonlinear differential equation with an initial condition. The equation has multiple solutions.

(dydt+y)2=1,y(0)=0.

syms y(t)
ode = (diff(y,t)+y)^2 == 1;
cond = y(0) == 0;
ySol(t) = dsolve(ode,cond)
ySol(t) = 

(e-t-11-e-t)

Second-Order ODE with Initial Conditions

Solve this second-order differential equation with two initial conditions.

d2ydx2=cos(2x)-y,y(0)=1,y(0)=0.

Define the equation and conditions. The second initial condition involves the first derivative of y. Represent the derivative by creating the symbolic function Dy = diff(y) and then define the condition using Dy(0)==0.

syms y(x)
Dy = diff(y);

ode = diff(y,x,2) == cos(2*x)-y;
cond1 = y(0) == 1;
cond2 = Dy(0) == 0;

Solve ode for y. Simplify the solution using the simplify function.

conds = [cond1 cond2];
ySol(x) = dsolve(ode,conds);
ySol = simplify(ySol)
ySol(x) = 

1-8sin(x2)43

Third-Order ODE with Initial Conditions

Solve this third-order differential equation with three initial conditions.

d3udx3=u,u(0)=1,u(0)=-1,u(0)=π.

Because the initial conditions contain the first- and second-order derivatives, create two symbolic functions, Du = diff(u,x) and D2u = diff(u,x,2), to specify the initial conditions.

syms u(x)
Du = diff(u,x);
D2u = diff(u,x,2);

Create the equation and initial conditions, and solve it.

ode = diff(u,x,3) == u;
cond1 = u(0) == 1;
cond2 = Du(0) == -1;
cond3 = D2u(0) == pi;
conds = [cond1 cond2 cond3];

uSol(x) = dsolve(ode,conds)
uSol(x) = 

πex3-e-x2cos(3x2)π3-1-3e-x2sin(3x2)π+13

More ODE Examples

This table shows examples of differential equations and their Symbolic Math Toolbox™ syntax.

Differential Equation

Commands Using Symbolic Math Toolbox

dydt+4y(t)=e-t,y(0)=1.

>> syms y(t)

>> ode = diff(y)+4*y == exp(-t);

>> cond = y(0) == 1;

>> ySol(t) = dsolve(ode,cond)

ySol(t) =

exp(-t)/3 + (2*exp(-4*t))/3

2x2d2ydx2+3xdydx-y=0.

>> syms y(x)

>> ode = 2*x^2*diff(y,x,2)+3*x*diff(y,x)-y == 0;

>> ySol(x) = dsolve(ode)

ySol(x) =

C1/(3*x) + C2*x^(1/2)

The Airy equation.

d2ydx2=xy(x).

>> syms y(x)

>> ode = diff(y,x,2) == x*y;

>> ySol(x) = dsolve(ode)

ySol(x) =

C1*airy(0,x) + C2*airy(2,x)

Puiseux series solution.

(x2+1)d2ydx2-2xdydx+y=0.

>> syms y(x) a

>> ode = (x^2+1)*diff(y,x,2)-2*x*diff(y,x)+y == 0;

>> Dy = diff(y,x);

>> cond = [Dy(0) == a; y(0) == 5];

>> ySol(x) = dsolve(ode,cond,ExpansionPoint=0)

ySol(x) =

- (a*x^5)/120 - (5*x^4)/24 + (a*x^3)/6 - (5*x^2)/2 + a*x + 5

See Also

| | | |

Related Topics