PDF (letter size)
PDF (legal size)
Matlab source code

Picard iteration convergence for solving non-linear state space system

Nasser M. Abbasi

January 7, 2015   Compiled on May 20, 2020 at 3:49am

1 introduction

Picard iteration for the solution of non-linear system \(x^{\prime }\left ( t\right ) =f\left ( x\left ( t\right ) ,t\right ) \) is given by \[ x^{k+1}\left ( t\right ) =x^{0}+{\displaystyle \int \limits _{0}^{t}} f\left ( x^{k}\left ( \tau \right ) ,\tau \right ) \,d\tau \]

The above iteration was implemented numerically for a two state system with the forcing function \(f= \begin{pmatrix} \cos x_{1}\\ tx_{1}+e^{-t}x_{2}\end{pmatrix} \)

The initial guess used is the same as the initial conditions which is given by \(x^{0}=\begin{pmatrix} 2\\ -1 \end{pmatrix}\). Matlab was used for the implementation. The source code is in one m file and can be downloaded from the link above. A movie showing the convergence is given below as well.

2 Observation

Numerical solution was required since there is no closed form solution using symbolic integration after the second iteration for the first state.  The Picard solution is compared to the final numerical solution obtained from ODE45. Time span of 30 seconds was used. For numerical integration, different sampling times were tried. The results shows that the smaller the time span, the less Picard iterations are needed to converge.

Reference: Lecture notes, ECE 717, Fall 2014, University of Wisconsin, Madison, by Professor B. Ross Barmish

2.1 Source code