next up previous
Next: Damped Pendulum Up: Testing and Results Previous: Testing and Results

Simple Polynomial Model

The first system tested was the nonlinear system given by Eqs. 2 and 3 (which had appeared in a homework problem):

$\displaystyle \dot z_1$ $\textstyle =$ $\displaystyle z_1 z_2$ (2)
$\displaystyle \dot z_2$ $\textstyle =$ $\displaystyle -z_1^2-z_2$ (3)

The ranges of $z_1$ and $z_2$ are $z_1\in[-1,1]$ and $z_2\in[-1,1]$. For two of the runs, I used the nonterminal set $\{+,-,\times,\div\}$; for the rest, $\{+,-,\times,\div,\cdot ^2,\sqrt{\cdot }\}$.

One test run returned the function $V(z_1,z_2)=z_1^2+z_2^2$, which is indeed a Lyapunov function in the domain. It is clearly positive definite, and its derivative is

$\displaystyle \dot V$ $\textstyle =$ $\displaystyle 2z_1^2z_2 + 2(-z_1^2-z_2)z_2$  
  $\textstyle =$ $\displaystyle -2z_2^2 \leq 0 .$  

However, it only proves stability, not asymptotic stability, because $\dot V=0$ on the $z_1$-axis. Another test run returned the function $V(z_1,z_2)=(z_1^2+z_2^2)^2$, which is also a Lyapunov function, but again does not prove asymptotic stability. Fig. 5 shows the plots of this Lyapunov function.

There were a couple runs that produced functions that looked Lyapunov from the graphs, and seemed have $\dot V$ strictly less than zero except at the origin, which would prove asymptotic stability. They were somewhat more complex to analyse. Fig. 6 shows the plots for one of these functions. (However, I suspect this function has a small region where it fails to satisfy the Lyapunov criteria near the origin.)

But not all of the tests returned a Lyapunov-looking function. One test produced a function that (seemed as if it) met the three Lyapunov criteria; however, it wasn't continuously differentiable (see Fig. 7). On some other runs, the system didn't converge, but reached the maximum number of generations while only satisfying the Lyapunov criteria on 80% or so of the domain. The two runs I made without the square function in the nonterminal set did this. This is the nature of genetic algorithms, because of their randomness: getting a good result often requires several runs.

Figure 5: Result of a genetic programming Lyapunov search for a simple polynomial system.
\includegraphics[width=0.4\textwidth]{/home/cabanks/hw/nonlinear/project/experiments/home61.eps} \includegraphics[width=0.4\textwidth]{/home/cabanks/hw/nonlinear/project/experiments/home62.eps}


\includegraphics[width=0.4\textwidth]{/home/cabanks/hw/nonlinear/project/experiments/home63.eps} \includegraphics[width=0.4\textwidth]{/home/cabanks/hw/nonlinear/project/experiments/home64.eps}

\begin{displaymath}
V(z_1,z_2) = (z_1^2 + z_2^2)^2
\end{displaymath}


$\displaystyle \dot z_1$ $\textstyle =$ $\displaystyle z_1 z_2$  
$\displaystyle \dot z_2$ $\textstyle =$ $\displaystyle -z_1^2-z_2$  

Figure 6: Result of a genetic programming Lyapunov search for a simple polynomial system.
\includegraphics[width=0.4\textwidth]{/home/cabanks/hw/nonlinear/project/experiments/home51.eps} \includegraphics[width=0.4\textwidth]{/home/cabanks/hw/nonlinear/project/experiments/home52.eps}


\includegraphics[width=0.4\textwidth]{/home/cabanks/hw/nonlinear/project/experiments/home53.eps} \includegraphics[width=0.4\textwidth]{/home/cabanks/hw/nonlinear/project/experiments/home54.eps}

\begin{displaymath}
V(z_1,z_2) = (-z_1^2 - z_2)^2 + z_1^2z_2^2
\end{displaymath}


$\displaystyle \dot z_1$ $\textstyle =$ $\displaystyle z_1 z_2$  
$\displaystyle \dot z_2$ $\textstyle =$ $\displaystyle -z_1^2-z_2$  

Figure 7: Result of a genetic programming Lyapunov search for a simple polynomial system.
\includegraphics[width=0.4\textwidth]{/home/cabanks/hw/nonlinear/project/experiments/home41.eps} \includegraphics[width=0.4\textwidth]{/home/cabanks/hw/nonlinear/project/experiments/home42.eps}


\includegraphics[width=0.4\textwidth]{/home/cabanks/hw/nonlinear/project/experiments/home43.eps} \includegraphics[width=0.4\textwidth]{/home/cabanks/hw/nonlinear/project/experiments/home44.eps}

\begin{displaymath}
V(z_1,z_2) = \sqrt{z_1^2} + \sqrt{(-z_1^2 - z_2)^2} + z_1^2z_2^2
\end{displaymath}


$\displaystyle \dot z_1$ $\textstyle =$ $\displaystyle z_1 z_2$  
$\displaystyle \dot z_2$ $\textstyle =$ $\displaystyle -z_1^2-z_2$  


next up previous
Next: Damped Pendulum Up: Testing and Results Previous: Testing and Results
Carl Banks 2002-05-17