Documentation

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

Solve Differential Equation

Solve a differential equations by using the dsolve function, with or without initial conditions. This page shows how to solve single differential equations. To solve a system of differential equations, see Solve a System of Differential Equations.

First-Order Linear ODE with Initial Condition

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) =
diff(y(t), t) == t*y(t)

Solve the equation using dsolve.

ySol(t) = dsolve(ode)
ySol(t) =
C1*exp(t^2/2)

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) =
2*exp(t^2/2)

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) =
 exp(-t) - 1
 1 - exp(-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 - (8*sin(x/2)^4)/3

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) =
 
(pi*exp(x))/3 - exp(-x/2)*cos((3^(1/2)*x)/2)*(pi/3 - 1) -...
(3^(1/2)*exp(-x/2)*sin((3^(1/2)*x)/2)*(pi + 1))/3

More ODE Examples

This table shows examples of differential equations and their Symbolic Math Toolbox™ syntax. The last example is the Airy differential equation, whose solution is called the Airy function.

Differential Equation

MATLAB® Commands

dydt+4y(t)=et,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+3xdydxy=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) =
C2/(3*x) + C3*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)

See Also

Was this topic helpful?