MATH/APPM 4650
Class notes, March 11

Theory of differential equations

(This is where the fun begins.)

Today's notes will mostly be on the board.

In general, a differential equation is written as
Here y(t) may be a function from time to real numbers or to vectors, and y0 is a given initial condition.

Question: Is there always a unique solution?

Answer: Only if f satisfies some nice conditions.
Fundamental Theorem of ODE:
Suppose D is an open set in Rn+1 and f: DRn is continuous and satisfies a local Lipschitz condition:
For every (t0, y0) there is a number L such that for y sufficiently close to y0,
Then for any initial condition (t0, y0), there is a unique solution of the differential equation, defined for a possibly small interval (t0 - ε, t0 + ε), and satisfying the initial condition.
Furthermore, the solution can be extended to the largest interval on which |y(t)| does not become infinite.




The basic idea is to think of an iterative procedure, where yn+1 = F(yn).

If F is a contraction mapping, then F has a unique fixed point (as in Section 2.2). The difference is that F takes functions to functions, rather than taking numbers to numbers. But in many ways it works the same.

The actual F looks like this:
By differentiating both sides, you can see a fixed point of F is a solution of the differential equation.

The requirement |F'(y)| ≤ k < 1 that we needed for convergence of fixed point schemes is replaced by the Lipschitz condition: the correspondence is k = L ε.

This scheme is called Picard iteration. In principle it gives us a numerical scheme for approximating the solution, which some people use.

Example:
y'(t) = y(t) - t,   y(0) = 3.

Here is a Maple program to compute the Picard iteration. Successive approximations are shown up to y10(t).
The approximation to the true solution is shown below.

> f:=(i,t)->if i=0 then 3 else 3+int(f(i-1,s)-s,s=0..t) end if:
 

> for i from 0 to 10 do
  f(i,t);
end do;
 

3 

3+3*t-1/2*t^2 

3+3*t+t^2-1/6*t^3 

3+3*t+t^2+1/3*t^3-1/24*t^4 

3+3*t+t^2+1/3*t^3+1/12*t^4-1/120*t^5 

3+3*t+t^2+1/3*t^3+1/12*t^4+1/60*t^5-1/720*t^6 

3+3*t+t^2+1/3*t^3+1/12*t^4+1/60*t^5+1/360*t^6-1/5040*t^7 

3+3*t+t^2+1/3*t^3+1/12*t^4+1/60*t^5+1/360*t^6+1/2520*t^7-1/40320*t^8 

3+3*t+t^2+1/3*t^3+1/12*t^4+1/60*t^5+1/360*t^6+1/2520*t^7+1/20160*t^8-1/362880*t^9
3+3*t+t^2+1/3*t^3+1/12*t^4+1/60*t^5+1/360*t^6+1/2520*t^7+1/20160*t^8-1/362880*t^9
 

3+3*t+t^2+1/3*t^3+1/12*t^4+1/60*t^5+1/360*t^6+1/2520*t^7+1/20160*t^8+1/181440*t^9-1/3628800*t^10
3+3*t+t^2+1/3*t^3+1/12*t^4+1/60*t^5+1/360*t^6+1/2520*t^7+1/20160*t^8+1/181440*t^9-1/3628800*t^10
 

3+3*t+t^2+1/3*t^3+1/12*t^4+1/60*t^5+1/360*t^6+1/2520*t^7+1/20160*t^8+1/181440*t^9+1/1814400*t^10-1/39916800*t^11
3+3*t+t^2+1/3*t^3+1/12*t^4+1/60*t^5+1/360*t^6+1/2520*t^7+1/20160*t^8+1/181440*t^9+1/1814400*t^10-1/39916800*t^11
 

> with(plots):
 

> display(plot(1+x+2*exp(x), x=0..5, thickness=2, color=black), display(seq(plot(f(i,x), x=0..5,thickness=2,color=red), i=0..10), insequence=true));
 

Plot 

> dsolve({diff(y(x),x)=y(x)-x, y(0)=3}, y(x));
 

y(x) = 1+x+2*exp(x)