## Homework 8

For this homework, you can submit up to 3 times.
We provide 3 python scripts and needed data for you to start with. Download it form here (right click, "save as"). This homework is not required. It just provides bonus points which you can use to improve your total score.

#### Q8.1 $\quad$ two modes system continued -- kneading theory

The first part of this course is over. We have focused almost on just one question: how to find periodic orbits in a systematic way? We have seen that the return maps in Rossler flow and two modes flow enable us to establish the symbolic dynamics of these systems, and the kneading theory gives us strict pruning rules for determination of admissible itineraries. Now, in Chapter 16, multi-shooting method is introduced to accurately determine a periodic orbit of any length. We put these things together in this homework.

If you have not finished HW5, you can still do this homework. The integration routines and the Poincare intersection points in two modes system are provided to you. There are three python files: "unimodal.py", "multishooting.py" and "twomodes_continue.py". Please read the comments in "twomodes_continue.py" and set case = 1. You first get the return map from the intersection points and also obtain the critical point $x_C = 0.9584$. Check that the kneading sequence you get is 1001110111... . According to kneading theory this implies that periodic orbit $\overline{1000}$ cannot exist for this flow.

Please try to find periodic orbit $\overline{1110}$. What is the smallest x-coordinate of this orbit in the return map? In the end, it prints out the error of this guess orbit: 0.000321089. The corresponding orbit is shown in fig(a) below.

#### Q8.2 $\quad$ two modes system continued -- multi-shooting method

Fig(a) is not an exact periodic orbit since the error associated with it is of order 1e-3. We need to implement multi-shooting method to refine the periodic point initial conditions and the period of this orbit to get the true periodic orbit.

Please set case = 2, and fill out function "shootingMatrix()" in file "multishooting.py". Try to understand how the multi-shooting method works. In this case you will see that the orbit is refined step by step: $\text{ iteration number i = 0 has error: 0.000321081525164 } \\ \text{ iteration number i = 1 has error: 0.000266414948291 } \\ \text{ iteration number i = 2 has error: 0.00012592226893 } \\ \text{ iteration number i = 3 has error: 2.7067461361e-05 } \\ \text{ iteration number i = 4 has error: 1.58482121216e-05 } \\ \text{ iteration number i = 5 has error: 2.13125347296e-06 } \\ \text{ iteration number i = 6 has error: 3.59414969262e-08 } \\ \text{ iteration number i = 7 has error: 6.27359848099e-11 } \\ \text{ iteration number i = 8 has error: 3.26960680752e-14 } \\ \text{ iteration number i = 9 has error: 7.32747196253e-15 } \\ \text{ iteration terminates at error : 7.32747196253e-15 } \\$ What is the period of this orbit ?