Solve Differential Equation
Solve a differential equation analytically by using the
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.
First, represent y by using
create the symbolic function
Define the equation using
== and represent
differentiation using the
ode = diff(y,t) == t*y
ode(t) = diff(y(t), t) == t*y(t)
Solve the equation using
ySol(t) = dsolve(ode)
ySol(t) = C1*exp(t^2/2)
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
cond = y(0) == 2; ySol(t) = dsolve(ode,cond)
ySol(t) = 2*exp(t^2/2)
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.
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.
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
syms y(x) Dy = diff(y); ode = diff(y,x,2) == cos(2*x)-y; cond1 = y(0) == 1; cond2 = Dy(0) == 0;
the solution using the
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.
Because the initial conditions contain the first- and second-order
derivatives, create two symbolic functions,
Du = diff(u,x) and
= 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.
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
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.
syms y(x) ode = diff(y,x,2) == x*y; ySol(x) = dsolve(ode)
ySol(x) = C1*airy(0,x) + C2*airy(2,x)