Module

for

Picard Iteration

 

Introduction

    
The term "Picard iteration" occurs two places in undergraduate mathematics.  In numerical analysis it is used when discussing fixed point iteration for finding a numerical approximation to the equation  [Graphics:Images/PicardIterationMod_gr_1.gif].  In differential equations, Picard iteration is a constructive procedure for establishing the existence of a solution to a differential equation  [Graphics:Images/PicardIterationMod_gr_2.gif] that passes through the point  [Graphics:Images/PicardIterationMod_gr_3.gif].

    The first type of Picard iteration uses computations to generate a "sequence of numbers" which converges to a solution.  We will not present this application, but mention that it involves the traditional role of computer software as a "number cruncher."  

    The goal of this article is to illustrate the second application of Picard iteration; i. e. how to use a computer to efficiently generate a "sequence of functions" which converges to a solution.  We will see that computer software can perform the more sophisticated task of "symbol cruncher."  For years, software such as Mathematica, Maple, Scientific Work Place, MuPad, Derive, LiveMath, Macsyma, REDUCE, Mathcad, and Matlab have been introduced in undergraduate mathematics courses to assist in keeping track of equations during complicated symbolic manipulations, see references [3 to 7].   

Background

    Most differential equations texts give a proof for the existence and uniqueness of the solution to a first order differential equation.  Then exercises are given for performing the laborious details involved in the method of successive approximations.  The concept seems straightforward, just repeated integration, but students get bogged down with the details.  Now computers can do all the drudgery and we can get a better grasp on how the process works.  

Theorem 1 (Existence Theorem).  If both  [Graphics:Images/PicardIterationMod_gr_4.gif]  are continuous on the rectangle  [Graphics:Images/PicardIterationMod_gr_5.gif]  and  [Graphics:Images/PicardIterationMod_gr_6.gif],  then there exists a unique solution to the initial value problem (I.V.P.)

(1)        [Graphics:Images/PicardIterationMod_gr_7.gif]  

for all values of  x  in some (smaller) interval  [Graphics:Images/PicardIterationMod_gr_8.gif] contained in  [Graphics:Images/PicardIterationMod_gr_9.gif].  

Picard's Method for D.E.'s

    The method of successive approximations uses the equivalent integral equation for (1) and an iterative method for constructing approximations to the solution.  This is a traditional way to prove (1) and appears in most all differential equations textbooks.   It is attributed to the French mathematician Charles Emile Picard (1856-1941).  
    
Theorem 2 (Successive Approximations - Picard Iteration).  The solution to the I.V.P in (1) is found by constructing recursively a sequence  [Graphics:Images/PicardIterationMod_gr_10.gif]  of functions

        [Graphics:Images/PicardIterationMod_gr_11.gif],   and
(2)    
        [Graphics:Images/PicardIterationMod_gr_12.gif].

Then the solution [Graphics:Images/PicardIterationMod_gr_13.gif] to (1) is given by the limit:

(3)        [Graphics:Images/PicardIterationMod_gr_14.gif].

Proof  Picard Iteration Theorem 2

 

Symbolic Analysis

    Computer algebra systems are useful for performing the arduous task of repeated integrations.  To perform Picard iteration using Mathematica one must define  [Graphics:Images/PicardIterationMod_gr_15.gif],  and supply the initial value  [Graphics:Images/PicardIterationMod_gr_16.gif],  and the number of iterations n.  The following subroutine will compute the first [Graphics:Images/PicardIterationMod_gr_17.gif] approximations.

Mathematica Subroutine (Picard Iteration).

[Graphics:Images/PicardIterationMod_gr_18.gif]

Example 1.  Use Picard iteration to find the solution of the I.V.P.  
                        [Graphics:Images/PicardIterationMod_gr_19.gif].  
Solution 1.

Example 2.  Use Picard iteration to find the solution of the I.V.P.  
                        [Graphics:Images/PicardIterationMod_gr_32.gif].  
Solution 2.

 

Getting the Graphs

    If we want to graph several solution, we will need to store them somewhere.  The following version of the Picard subroutine uses the vector  [Graphics:Images/PicardIterationMod_gr_44.gif].  Since the subscript for the elements of a vector start with [Graphics:Images/PicardIterationMod_gr_45.gif], the notation for the sequence of stored functions will be  [Graphics:Images/PicardIterationMod_gr_46.gif].  

Mathematica Subroutine (Vector Form for Picard Iteration).

[Graphics:Images/PicardIterationMod_gr_47.gif]

Example 3.  Use Picard iteration to find and plot approximations for the  solution of the I.V.P.  
                        [Graphics:Images/PicardIterationMod_gr_48.gif].  
Solution 3.

Example 4.  Use Picard iteration to find and plot approximations for the  solution of the I.V.P.  
                        [Graphics:Images/PicardIterationMod_gr_62.gif].  
Solution 4.

 

Extension to First Order Systems in 2D

    Suppose that we want to solve the initial value problem for a system of two differential equations

        [Graphics:Images/PicardIterationMod_gr_76.gif],    and  
(7)
        [Graphics:Images/PicardIterationMod_gr_77.gif]  

Picard iteration can be used to generate two sequences  [Graphics:Images/PicardIterationMod_gr_78.gif]  and  [Graphics:Images/PicardIterationMod_gr_79.gif]  which converge to the solutions  [Graphics:Images/PicardIterationMod_gr_80.gif]  and  [Graphics:Images/PicardIterationMod_gr_81.gif],  respectively, see reference [2].  They are defined recursively by

        [Graphics:Images/PicardIterationMod_gr_82.gif],  
        [Graphics:Images/PicardIterationMod_gr_83.gif],   and
(8)
        [Graphics:Images/PicardIterationMod_gr_84.gif]   

The sequence of approximations will converge to the solution, i.e.

(9)        [Graphics:Images/PicardIterationMod_gr_85.gif]

Mathematica Subroutine (Picard Iteration in 2D).

[Graphics:Images/PicardIterationMod_gr_86.gif]

Example 5.  Use Picard iteration to find the solution to the system of differential equations
                        [Graphics:Images/PicardIterationMod_gr_87.gif]    
Solution 5.

Example 6.  Use Picard iteration to find the solution to the system of differential equations
                        [Graphics:Images/PicardIterationMod_gr_108.gif]    
Solution 6.

 

Getting the Graphs

    If we want to graph several solution, we will need to store them somewhere.  The following version of the Picard subroutine uses the vectors  [Graphics:Images/PicardIterationMod_gr_130.gif]  and  [Graphics:Images/PicardIterationMod_gr_131.gif].  The sequences of stored functions will be  [Graphics:Images/PicardIterationMod_gr_132.gif]  and  [Graphics:Images/PicardIterationMod_gr_133.gif].  

Mathematica Subroutine (Vector Form for Picard Iteration in 2D).

[Graphics:Images/PicardIterationMod_gr_134.gif]

Example 7. Use Picard iteration to find and plot approximations for the  solution of the I.V.P.  
                        [Graphics:Images/PicardIterationMod_gr_135.gif]    
Solution 7.

 

Extension to First Order Systems in 3D

    Suppose that we want to solve the initial value problem for a system of three differential equations
    
        [Graphics:Images/PicardIterationMod_gr_151.gif]  

The following Mathematica subroutine extends the 2D case to 3D.

Mathematica Subroutine (Vector Form for Picard Iteration in 3D).

[Graphics:Images/PicardIterationMod_gr_152.gif]

Example 8. Use Picard iteration to find and plot approximations for the  solution of the I.V.P.  

                        [Graphics:Images/PicardIterationMod_gr_153.gif]    
Solution 8.

 

Picard's Method for Higher Order D.E.'s

    It is easy to extend the idea of Picard iteration to higher order problems.  For illustration purposes we will solve second order D.E.'s.
    
Theorem 3 (Picard Iteration for Second Order D. E.'s).  Given the second order initial value problem  

        [Graphics:Images/PicardIterationMod_gr_180.gif],   with  
(10)    
        [Graphics:Images/PicardIterationMod_gr_181.gif].  

The solution to the I.V.P in (10) is found by constructing recursively a sequence [Graphics:Images/PicardIterationMod_gr_182.gif] of functions

        [Graphics:Images/PicardIterationMod_gr_183.gif],   and  
(11)
        [Graphics:Images/PicardIterationMod_gr_184.gif]    for   [Graphics:Images/PicardIterationMod_gr_185.gif].  

Then the solution [Graphics:Images/PicardIterationMod_gr_186.gif] to (10) is given by the limit:

(12)        [Graphics:Images/PicardIterationMod_gr_187.gif].

Proof  Picard Iteration Theorem 3  

 

Symbolic Analysis

    For the Mathematica subrouine one must first define  [Graphics:Images/PicardIterationMod_gr_188.gif],  and supply the initial values  [Graphics:Images/PicardIterationMod_gr_189.gif], [Graphics:Images/PicardIterationMod_gr_190.gif], [Graphics:Images/PicardIterationMod_gr_191.gif],  and the number of iterations n.  The subroutine [Graphics:Images/PicardIterationMod_gr_192.gif] will compute the first n approximations.

Mathematica Subroutine (Picard Iteration for Second Order Equations).

[Graphics:Images/PicardIterationMod_gr_193.gif]

Example 9.  Use Picard iteration to find the solution of the second order I.V.P.  
                        [Graphics:Images/PicardIterationMod_gr_194.gif].  
Solution 9.

Example 10.  Use Picard iteration to find the solution of the second order I.V.P.  
                        [Graphics:Images/PicardIterationMod_gr_211.gif].  
Solution 10.

 

Getting the Graphs

    If we want to graph several solution, we will need to store them somewhere.  The following version of the Picard subroutine uses the vector  [Graphics:Images/PicardIterationMod_gr_230.gif].  Since the subscript for the elements of a vector start with [Graphics:Images/PicardIterationMod_gr_231.gif], the notation for the sequence of stored functions will be  [Graphics:Images/PicardIterationMod_gr_232.gif].  

Mathematica Subroutine (Vector Form for Picard Iteration).

[Graphics:Images/PicardIterationMod_gr_233.gif]

Example 11.  Use Picard iteration to find and plot approximations for solution of the second order I.V.P.  
                        [Graphics:Images/PicardIterationMod_gr_234.gif].  
Solution 11.

Example 12.  Use Picard iteration to find and plot approximations for solution of the second order I.V.P.  
                        [Graphics:Images/PicardIterationMod_gr_253.gif].  
Solution 12.

 

Acknowledgement

    This module is was originally developed by the author using the obsolete computer algebra system muMATH (implemented on the Apple II computer).  It has been upgraded and improved using Mathematica.  The previous manuscript was:
    
John H. Mathews, Symbolic Computational Algebra Applied to Picard Iteration,  Mathematics and Computer Education Journal, Spring, 1989, Vol. 23, No. 2, pp. 117-122.

 

References in the previous manuscript

1.  Garrett Birkhoff; and Gian-Carlo Rota, Ordinary Differential Equations, 3rd Ed., John Wiley and Sons, New York, NY, 1978, p. 23.

2.  Einar Hille, Lectures on Ordinary Differential Equations, Addison-Wesley Pub. Co., Reading, MA, 1969, pp. 32-41.

3.  Ralph Freese; Pertti Lounesto; and David A Stegenga, "The Use of muMATH in the Calculus Classroom", Journal of Computers in Mathematics and Science Teaching, 1986, Vol. 6, pp. 52-55.

4.  Mary K. Heid, "Calculus with muMATH Implications for Curriculum Reform," The Computing Teacher, 1983, Vol. 11, No. 4, pp. 46-49.

5.  Don Small; John Hosack; and Kenneth Lane, Computer Algebra Systems in Undergraduate Instruction (in Computer Corner), The College Mathematics Journal, Vol. 17, No. 5. (Nov., 1986), pp. 423-433.

6.  B. Winkelmann, "The Impact of the Computer on the Teaching of Analysis," International Journal of Mathematical Education in Science and Technology, 1984, Vol. 15, No. 6, pp. 675-689.  

7.  Paul Zorn, "Computer Symbolic Manipulation in Elementary Calculus," MAA Notes, No. 6, Mathematical Association of America, 1986, pp. 237-249.

 

Research Experience for Undergraduates

Picard Iteration  Picard Iteration  Internet hyperlinks to web sites and a bibliography of articles.  

 

Download this Mathematica Notebook Picard Iteration

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(c) John H. Mathews 2005