Solution of Ordinary Differential Equations: 1 General Theory

Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

Solution of Ordinary Differential Equations

James Keesling

1 General Theory
Here we give a proof of the existence and uniqueness of a solution of ordinary differential
equations satisfying certain conditions. The conditions are fairly minimal and usually
satisfied for applications in physics and engineering. There are physical situations where
the conditions are not satisfied. In those situations one may not be able to predict the
path that the physical system will follow. The differential equation and initial value are
given below.

dx
= f (t, x)
dt
x(t0 ) = x0
Now suppose that f (t, x) is continuous on D = [t0 − a, t0 + a] × [x0 − b, x0 + b] and that
f (t, x) satisfies the Lipschitz condition |f (t, x2 ) = f (t, x1 )| ≤ K · |x2 − x1 | on D for some
K > 0. Under these hypotheses there is a positive d and a unique solution x(t) on the
interval [t0 − d, t0 + d] satisfying x(t0 ) = x0 .
The first step in proving this result is to transform the differential equation into an
integral equation.
Z t
x(t) = x0 + f (τ, x(τ )) dτ
t0

2 Picard Iteration
By thinking of the right hand side of this equation as an operator, the problem now becomes
one of finding a fixed point for the integral operator. We apply the Contraction Mapping
Theorem to argue that the following sequence converges. Let
Z t
x2 (t) = x0 + f (τ, x1 (τ )) dτ
t0

and observe the following.

1
|x2 (x) − x0 | ≤ M · |t − t0 |
This implies that |x2 (t) − x0 | ≤ b for |t − t0 | ≤ min Mb , a . If we define d = min Mb , a ,
 

then we will prove that there is a unique solution to the differential equation on the interval
[t0 − d, t0 + d]. On this interval define
Z t
xn+1 (t) = x0 + f (τ, xn (τ )) dτ.
0

By induction we will thus obtain an infinite sequence of continuous functions defined on


the interval [t0 − d, t0 + d]. We will now show that this sequence converges by showing that
it is Cauchy in the space of continuous functions. First we note the following inequality.

Z t Z t

|xn+1 (t) − xn (t)| = f (τ, x(τ )) dτ −
f (τ, x(τ )) dτ
t0 t0
Z t
≤ |f (τ, xn (τ )) − f (τ, xn−1 (τ ))| dτ
t0
Z t
≤K |xn (τ ) − xn−1 (τ )| dτ
t0
≤ K |t − t0 | sup {|xn (τ ) − xn−1 (τ )| | |τ − t0 | ≤ |t − t0 |}

This shows that the sequence of iterations {xn (t)}∞ n=0 is Cauchy and thus has a limit
on the interval [t − d, t + d]. Call this limiting function x(t). This gives us the equality.
Z t
x(t) = x0 + f (τ, x(τ ))dτ
t0

This implies that x(t) is a solution of the original differential equation on [t − d, t + d]


and that it is unique on this interval.
It should be noted that we had to assume that certain conditions were met by f (t, x) in
the differential equation. The conditions guaranteed that there would be a unique solution
to the differential equation using the fact that Picard Iteration would always converge
whatever the initial function x0 (t) for the iteration and that the limiting function would
be a solution. If the conditions on the function f (t, x) are not met, then a solution may
not exist or there may be many solutions.

3 An Example
dx
Solve the following differential equation dt = tx with x(0) = 1 using Picard Iteration.

2
x0 (t) ≡ 1
t
t2
Z
x2 (t) = 1 + 1 · τ dτ = 1 +
0 2
t2 t4
x3 (t) = 1 = + +
2 8
t2 t4 t6
x4 (t) = 1 + + +
2 8 48
..
.

In this case the differential equation is separable. We can solve it easily to get
 2
t
x(t) = exp .
2
Picard iteration is giving us the power series of this solution. Each iteration gives us an
additional term. This is not always the case as you can see by experimenting with the
program in the next section.

4 Implementation on the TI-89


Here is a program that implements Picard Iteration on the TI-89. The variable f is a
function with variables t and x. The variables a and b are the initial values t0 and x0 such
that x(t0 ) = x0 . The variable n is the number of iterations to be done. To be certain
that the steps can be integrated, f should be a polynomial in t and x, but the method will
work as long as the functions can be integrated at each step. The program stores the nth
iteration in p. To check the program

picard(t*x,0,1,4)
2 4 6 8
into the commandline in the home screen. Then enter p. Stored in p is 1+ t2 + t8 + 48
t t
+ 384 .

:picard(f,a,b,n)
:Prgm
:b → p
:For i,1,n
:p|t=zR → p
:b + (f|x=p and t=z,z,a,t) → p
:EndFor
:EndPrgm

You might also like