diff --git a/figures/van_der_pol_oscillator_lienard_z_0.0_0.0_mu_1.0.png b/figures/van_der_pol_oscillator_lienard_z_0.0_0.0_mu_1.0.png new file mode 100644 index 0000000..2695d80 Binary files /dev/null and b/figures/van_der_pol_oscillator_lienard_z_0.0_0.0_mu_1.0.png differ diff --git a/figures/van_der_pol_oscillator_lienard_z_0.0_0.0_mu_1.png b/figures/van_der_pol_oscillator_lienard_z_0.0_0.0_mu_1.png new file mode 100644 index 0000000..cf8a19f Binary files /dev/null and b/figures/van_der_pol_oscillator_lienard_z_0.0_0.0_mu_1.png differ diff --git a/figures/van_der_pol_oscillator_lienard_z_0.0_0.5_mu_1.0.png b/figures/van_der_pol_oscillator_lienard_z_0.0_0.5_mu_1.0.png new file mode 100644 index 0000000..f100a3c Binary files /dev/null and b/figures/van_der_pol_oscillator_lienard_z_0.0_0.5_mu_1.0.png differ diff --git a/figures/van_der_pol_oscillator_lienard_z_0.0_0.5_mu_1.png b/figures/van_der_pol_oscillator_lienard_z_0.0_0.5_mu_1.png new file mode 100644 index 0000000..033d0fa Binary files /dev/null and b/figures/van_der_pol_oscillator_lienard_z_0.0_0.5_mu_1.png differ diff --git a/figures/van_der_pol_oscillator_lienard_z_1.0_0.0_mu_-1.0.png b/figures/van_der_pol_oscillator_lienard_z_1.0_0.0_mu_-1.0.png new file mode 100644 index 0000000..46c7b79 Binary files /dev/null and b/figures/van_der_pol_oscillator_lienard_z_1.0_0.0_mu_-1.0.png differ diff --git a/figures/van_der_pol_oscillator_lienard_z_1.0_0.0_mu_-4.0.png b/figures/van_der_pol_oscillator_lienard_z_1.0_0.0_mu_-4.0.png new file mode 100644 index 0000000..2e449da Binary files /dev/null and b/figures/van_der_pol_oscillator_lienard_z_1.0_0.0_mu_-4.0.png differ diff --git a/figures/van_der_pol_oscillator_lienard_z_1.0_0.0_mu_1.0.png b/figures/van_der_pol_oscillator_lienard_z_1.0_0.0_mu_1.0.png new file mode 100644 index 0000000..5459272 Binary files /dev/null and b/figures/van_der_pol_oscillator_lienard_z_1.0_0.0_mu_1.0.png differ diff --git a/figures/van_der_pol_oscillator_lienard_z_1.0_0.0_mu_1.png b/figures/van_der_pol_oscillator_lienard_z_1.0_0.0_mu_1.png new file mode 100644 index 0000000..583d461 Binary files /dev/null and b/figures/van_der_pol_oscillator_lienard_z_1.0_0.0_mu_1.png differ diff --git a/figures/van_der_pol_oscillator_lienard_z_2.0_0.0_mu_-0.25.png b/figures/van_der_pol_oscillator_lienard_z_2.0_0.0_mu_-0.25.png new file mode 100644 index 0000000..115f593 Binary files /dev/null and b/figures/van_der_pol_oscillator_lienard_z_2.0_0.0_mu_-0.25.png differ diff --git a/figures/van_der_pol_oscillator_lienard_z_2.0_0.0_mu_-1.0.png b/figures/van_der_pol_oscillator_lienard_z_2.0_0.0_mu_-1.0.png new file mode 100644 index 0000000..c2f7adb Binary files /dev/null and b/figures/van_der_pol_oscillator_lienard_z_2.0_0.0_mu_-1.0.png differ diff --git a/figures/van_der_pol_oscillator_lienard_z_2.0_0.0_mu_0.25.png b/figures/van_der_pol_oscillator_lienard_z_2.0_0.0_mu_0.25.png new file mode 100644 index 0000000..b2c6a1b Binary files /dev/null and b/figures/van_der_pol_oscillator_lienard_z_2.0_0.0_mu_0.25.png differ diff --git a/figures/van_der_pol_oscillator_lienard_z_2.0_0.0_mu_0.5.png b/figures/van_der_pol_oscillator_lienard_z_2.0_0.0_mu_0.5.png new file mode 100644 index 0000000..98548be Binary files /dev/null and b/figures/van_der_pol_oscillator_lienard_z_2.0_0.0_mu_0.5.png differ diff --git a/figures/van_der_pol_oscillator_lienard_z_2.0_0.0_mu_1.png b/figures/van_der_pol_oscillator_lienard_z_2.0_0.0_mu_1.png new file mode 100644 index 0000000..caf1b29 Binary files /dev/null and b/figures/van_der_pol_oscillator_lienard_z_2.0_0.0_mu_1.png differ diff --git a/figures/van_der_pol_oscillator_lienard_z_2.0_0.0_mu_2.png b/figures/van_der_pol_oscillator_lienard_z_2.0_0.0_mu_2.png new file mode 100644 index 0000000..24475c1 Binary files /dev/null and b/figures/van_der_pol_oscillator_lienard_z_2.0_0.0_mu_2.png differ diff --git a/figures/van_der_pol_oscillator_lienard_z_2.0_0.0_mu_4.png b/figures/van_der_pol_oscillator_lienard_z_2.0_0.0_mu_4.png new file mode 100644 index 0000000..a038775 Binary files /dev/null and b/figures/van_der_pol_oscillator_lienard_z_2.0_0.0_mu_4.png differ diff --git a/figures/van_der_pol_oscillator_lienard_z_2.0_0.0_mu_8.png b/figures/van_der_pol_oscillator_lienard_z_2.0_0.0_mu_8.png new file mode 100644 index 0000000..41c6718 Binary files /dev/null and b/figures/van_der_pol_oscillator_lienard_z_2.0_0.0_mu_8.png differ diff --git a/figures/van_der_pol_oscillator_lienard_z_4.0_-4.0_mu_1.0.png b/figures/van_der_pol_oscillator_lienard_z_4.0_-4.0_mu_1.0.png new file mode 100644 index 0000000..d8a1890 Binary files /dev/null and b/figures/van_der_pol_oscillator_lienard_z_4.0_-4.0_mu_1.0.png differ diff --git a/figures/van_der_pol_oscillator_lienard_z_4.0_-4.0_mu_1.png b/figures/van_der_pol_oscillator_lienard_z_4.0_-4.0_mu_1.png new file mode 100644 index 0000000..61cbd27 Binary files /dev/null and b/figures/van_der_pol_oscillator_lienard_z_4.0_-4.0_mu_1.png differ diff --git a/figures/van_der_pol_oscillator_lienard_z_4.0_0.0_mu_1.0.png b/figures/van_der_pol_oscillator_lienard_z_4.0_0.0_mu_1.0.png new file mode 100644 index 0000000..1aafb40 Binary files /dev/null and b/figures/van_der_pol_oscillator_lienard_z_4.0_0.0_mu_1.0.png differ diff --git a/figures/van_der_pol_oscillator_lienard_z_4.0_0.0_mu_1.png b/figures/van_der_pol_oscillator_lienard_z_4.0_0.0_mu_1.png new file mode 100644 index 0000000..46d6584 Binary files /dev/null and b/figures/van_der_pol_oscillator_lienard_z_4.0_0.0_mu_1.png differ diff --git a/figures/van_der_pol_oscillator_z_-2.25_0_mu_-2.0.png b/figures/van_der_pol_oscillator_z_-2.25_0_mu_-2.0.png new file mode 100644 index 0000000..3b72dca Binary files /dev/null and b/figures/van_der_pol_oscillator_z_-2.25_0_mu_-2.0.png differ diff --git a/figures/van_der_pol_oscillator_z_-3_0_mu_-2.png b/figures/van_der_pol_oscillator_z_-3_0_mu_-2.png new file mode 100644 index 0000000..240e0d6 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_-3_0_mu_-2.png differ diff --git a/figures/van_der_pol_oscillator_z_-7_1_mu_1.png b/figures/van_der_pol_oscillator_z_-7_1_mu_1.png new file mode 100644 index 0000000..3b7684e Binary files /dev/null and b/figures/van_der_pol_oscillator_z_-7_1_mu_1.png differ diff --git a/figures/van_der_pol_oscillator_z_-8_0_mu_1.png b/figures/van_der_pol_oscillator_z_-8_0_mu_1.png new file mode 100644 index 0000000..8a285be Binary files /dev/null and b/figures/van_der_pol_oscillator_z_-8_0_mu_1.png differ diff --git a/figures/van_der_pol_oscillator_z_0.001_0.001_mu_2.png b/figures/van_der_pol_oscillator_z_0.001_0.001_mu_2.png new file mode 100644 index 0000000..618fb31 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_0.001_0.001_mu_2.png differ diff --git a/figures/van_der_pol_oscillator_z_0.01_0.01_mu_2.png b/figures/van_der_pol_oscillator_z_0.01_0.01_mu_2.png new file mode 100644 index 0000000..949f045 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_0.01_0.01_mu_2.png differ diff --git a/figures/van_der_pol_oscillator_z_0.01_0_mu_1.png b/figures/van_der_pol_oscillator_z_0.01_0_mu_1.png new file mode 100644 index 0000000..9441acb Binary files /dev/null and b/figures/van_der_pol_oscillator_z_0.01_0_mu_1.png differ diff --git a/figures/van_der_pol_oscillator_z_0.01_1_mu_1.png b/figures/van_der_pol_oscillator_z_0.01_1_mu_1.png new file mode 100644 index 0000000..0c23d33 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_0.01_1_mu_1.png differ diff --git a/figures/van_der_pol_oscillator_z_0.1_0.1_mu_2.png b/figures/van_der_pol_oscillator_z_0.1_0.1_mu_2.png new file mode 100644 index 0000000..1288645 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_0.1_0.1_mu_2.png differ diff --git a/figures/van_der_pol_oscillator_z_0.1_0_mu_2.png b/figures/van_der_pol_oscillator_z_0.1_0_mu_2.png new file mode 100644 index 0000000..b5bb967 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_0.1_0_mu_2.png differ diff --git a/figures/van_der_pol_oscillator_z_0.4_0_mu_0.0.png b/figures/van_der_pol_oscillator_z_0.4_0_mu_0.0.png new file mode 100644 index 0000000..6574db2 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_0.4_0_mu_0.0.png differ diff --git a/figures/van_der_pol_oscillator_z_0.4_0_mu_0.3.png b/figures/van_der_pol_oscillator_z_0.4_0_mu_0.3.png new file mode 100644 index 0000000..e9fbee1 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_0.4_0_mu_0.3.png differ diff --git a/figures/van_der_pol_oscillator_z_0.4_0_mu_1.png b/figures/van_der_pol_oscillator_z_0.4_0_mu_1.png new file mode 100644 index 0000000..1ac3019 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_0.4_0_mu_1.png differ diff --git a/figures/van_der_pol_oscillator_z_0.4_0_mu_3.png b/figures/van_der_pol_oscillator_z_0.4_0_mu_3.png new file mode 100644 index 0000000..ba5034f Binary files /dev/null and b/figures/van_der_pol_oscillator_z_0.4_0_mu_3.png differ diff --git a/figures/van_der_pol_oscillator_z_0.5_0.6666666666666666_mu_1.png b/figures/van_der_pol_oscillator_z_0.5_0.6666666666666666_mu_1.png new file mode 100644 index 0000000..35d151e Binary files /dev/null and b/figures/van_der_pol_oscillator_z_0.5_0.6666666666666666_mu_1.png differ diff --git a/figures/van_der_pol_oscillator_z_0.5_0_mu_1.png b/figures/van_der_pol_oscillator_z_0.5_0_mu_1.png new file mode 100644 index 0000000..1e5279f Binary files /dev/null and b/figures/van_der_pol_oscillator_z_0.5_0_mu_1.png differ diff --git a/figures/van_der_pol_oscillator_z_0.85_3.063063063063062_mu_1.png b/figures/van_der_pol_oscillator_z_0.85_3.063063063063062_mu_1.png new file mode 100644 index 0000000..4b277e0 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_0.85_3.063063063063062_mu_1.png differ diff --git a/figures/van_der_pol_oscillator_z_0.85_4_mu_1.png b/figures/van_der_pol_oscillator_z_0.85_4_mu_1.png new file mode 100644 index 0000000..3d3c93e Binary files /dev/null and b/figures/van_der_pol_oscillator_z_0.85_4_mu_1.png differ diff --git a/figures/van_der_pol_oscillator_z_0.8_4_mu_1.png b/figures/van_der_pol_oscillator_z_0.8_4_mu_1.png new file mode 100644 index 0000000..4357b10 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_0.8_4_mu_1.png differ diff --git a/figures/van_der_pol_oscillator_z_0.95_4_mu_1.png b/figures/van_der_pol_oscillator_z_0.95_4_mu_1.png new file mode 100644 index 0000000..df94d51 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_0.95_4_mu_1.png differ diff --git a/figures/van_der_pol_oscillator_z_0.9_4_mu_1.png b/figures/van_der_pol_oscillator_z_0.9_4_mu_1.png new file mode 100644 index 0000000..7219a54 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_0.9_4_mu_1.png differ diff --git a/figures/van_der_pol_oscillator_z_0_2_mu_-0.5.png b/figures/van_der_pol_oscillator_z_0_2_mu_-0.5.png new file mode 100644 index 0000000..6965df4 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_0_2_mu_-0.5.png differ diff --git a/figures/van_der_pol_oscillator_z_0_4_mu_-0.5.png b/figures/van_der_pol_oscillator_z_0_4_mu_-0.5.png new file mode 100644 index 0000000..8ddb825 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_0_4_mu_-0.5.png differ diff --git a/figures/van_der_pol_oscillator_z_0_4_mu_1.png b/figures/van_der_pol_oscillator_z_0_4_mu_1.png new file mode 100644 index 0000000..4b70310 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_0_4_mu_1.png differ diff --git a/figures/van_der_pol_oscillator_z_1.01_-50.248756218905456_mu_1.png b/figures/van_der_pol_oscillator_z_1.01_-50.248756218905456_mu_1.png new file mode 100644 index 0000000..7cbccb2 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_1.01_-50.248756218905456_mu_1.png differ diff --git a/figures/van_der_pol_oscillator_z_1.5_0_mu_-2.png b/figures/van_der_pol_oscillator_z_1.5_0_mu_-2.png new file mode 100644 index 0000000..0e97908 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_1.5_0_mu_-2.png differ diff --git a/figures/van_der_pol_oscillator_z_10_0.001_mu_0.png b/figures/van_der_pol_oscillator_z_10_0.001_mu_0.png new file mode 100644 index 0000000..fab7dfb Binary files /dev/null and b/figures/van_der_pol_oscillator_z_10_0.001_mu_0.png differ diff --git a/figures/van_der_pol_oscillator_z_10_0.001_mu_2.png b/figures/van_der_pol_oscillator_z_10_0.001_mu_2.png new file mode 100644 index 0000000..b699d8b Binary files /dev/null and b/figures/van_der_pol_oscillator_z_10_0.001_mu_2.png differ diff --git a/figures/van_der_pol_oscillator_z_1_0_mu_-0.01.png b/figures/van_der_pol_oscillator_z_1_0_mu_-0.01.png new file mode 100644 index 0000000..1688bfb Binary files /dev/null and b/figures/van_der_pol_oscillator_z_1_0_mu_-0.01.png differ diff --git a/figures/van_der_pol_oscillator_z_1_0_mu_-0.1.png b/figures/van_der_pol_oscillator_z_1_0_mu_-0.1.png new file mode 100644 index 0000000..8440cfc Binary files /dev/null and b/figures/van_der_pol_oscillator_z_1_0_mu_-0.1.png differ diff --git a/figures/van_der_pol_oscillator_z_1_0_mu_-1.png b/figures/van_der_pol_oscillator_z_1_0_mu_-1.png new file mode 100644 index 0000000..52c8fef Binary files /dev/null and b/figures/van_der_pol_oscillator_z_1_0_mu_-1.png differ diff --git a/figures/van_der_pol_oscillator_z_1_0_mu_-2.png b/figures/van_der_pol_oscillator_z_1_0_mu_-2.png new file mode 100644 index 0000000..b7ac97a Binary files /dev/null and b/figures/van_der_pol_oscillator_z_1_0_mu_-2.png differ diff --git a/figures/van_der_pol_oscillator_z_1_0_mu_1.png b/figures/van_der_pol_oscillator_z_1_0_mu_1.png new file mode 100644 index 0000000..c3a523d Binary files /dev/null and b/figures/van_der_pol_oscillator_z_1_0_mu_1.png differ diff --git a/figures/van_der_pol_oscillator_z_1_0_mu_8.png b/figures/van_der_pol_oscillator_z_1_0_mu_8.png new file mode 100644 index 0000000..8d9a1f7 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_1_0_mu_8.png differ diff --git a/figures/van_der_pol_oscillator_z_1_4_mu_1.png b/figures/van_der_pol_oscillator_z_1_4_mu_1.png new file mode 100644 index 0000000..72cf291 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_1_4_mu_1.png differ diff --git a/figures/van_der_pol_oscillator_z_2.01_-0.6611624617611265_mu_1.png b/figures/van_der_pol_oscillator_z_2.01_-0.6611624617611265_mu_1.png new file mode 100644 index 0000000..f244a27 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_2.01_-0.6611624617611265_mu_1.png differ diff --git a/figures/van_der_pol_oscillator_z_2.0_1_mu_1.png b/figures/van_der_pol_oscillator_z_2.0_1_mu_1.png new file mode 100644 index 0000000..41b1583 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_2.0_1_mu_1.png differ diff --git a/figures/van_der_pol_oscillator_z_2.15_0_mu_-2.0.png b/figures/van_der_pol_oscillator_z_2.15_0_mu_-2.0.png new file mode 100644 index 0000000..b46aa8d Binary files /dev/null and b/figures/van_der_pol_oscillator_z_2.15_0_mu_-2.0.png differ diff --git a/figures/van_der_pol_oscillator_z_2.25_0_mu_-0.01.png b/figures/van_der_pol_oscillator_z_2.25_0_mu_-0.01.png new file mode 100644 index 0000000..8d561d6 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_2.25_0_mu_-0.01.png differ diff --git a/figures/van_der_pol_oscillator_z_2.25_0_mu_-0.1.png b/figures/van_der_pol_oscillator_z_2.25_0_mu_-0.1.png new file mode 100644 index 0000000..98ca850 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_2.25_0_mu_-0.1.png differ diff --git a/figures/van_der_pol_oscillator_z_2.25_0_mu_-1.0.png b/figures/van_der_pol_oscillator_z_2.25_0_mu_-1.0.png new file mode 100644 index 0000000..2738e01 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_2.25_0_mu_-1.0.png differ diff --git a/figures/van_der_pol_oscillator_z_2.25_0_mu_-1.png b/figures/van_der_pol_oscillator_z_2.25_0_mu_-1.png new file mode 100644 index 0000000..98e7f1b Binary files /dev/null and b/figures/van_der_pol_oscillator_z_2.25_0_mu_-1.png differ diff --git a/figures/van_der_pol_oscillator_z_2.25_0_mu_-2.0.png b/figures/van_der_pol_oscillator_z_2.25_0_mu_-2.0.png new file mode 100644 index 0000000..9db0f4f Binary files /dev/null and b/figures/van_der_pol_oscillator_z_2.25_0_mu_-2.0.png differ diff --git a/figures/van_der_pol_oscillator_z_2.25_0_mu_-2.png b/figures/van_der_pol_oscillator_z_2.25_0_mu_-2.png new file mode 100644 index 0000000..391c755 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_2.25_0_mu_-2.png differ diff --git a/figures/van_der_pol_oscillator_z_2.25_0_mu_4.0.png b/figures/van_der_pol_oscillator_z_2.25_0_mu_4.0.png new file mode 100644 index 0000000..814e299 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_2.25_0_mu_4.0.png differ diff --git a/figures/van_der_pol_oscillator_z_2.25_2_mu_-2.0.png b/figures/van_der_pol_oscillator_z_2.25_2_mu_-2.0.png new file mode 100644 index 0000000..11e530d Binary files /dev/null and b/figures/van_der_pol_oscillator_z_2.25_2_mu_-2.0.png differ diff --git a/figures/van_der_pol_oscillator_z_2.5_0_mu_-2.png b/figures/van_der_pol_oscillator_z_2.5_0_mu_-2.png new file mode 100644 index 0000000..339cd35 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_2.5_0_mu_-2.png differ diff --git a/figures/van_der_pol_oscillator_z_2.5_0_mu_1.png b/figures/van_der_pol_oscillator_z_2.5_0_mu_1.png new file mode 100644 index 0000000..2df2a66 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_2.5_0_mu_1.png differ diff --git a/figures/van_der_pol_oscillator_z_2_0_mu_-0.1.png b/figures/van_der_pol_oscillator_z_2_0_mu_-0.1.png new file mode 100644 index 0000000..105bb13 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_2_0_mu_-0.1.png differ diff --git a/figures/van_der_pol_oscillator_z_2_0_mu_-0.3.png b/figures/van_der_pol_oscillator_z_2_0_mu_-0.3.png new file mode 100644 index 0000000..9ab1142 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_2_0_mu_-0.3.png differ diff --git a/figures/van_der_pol_oscillator_z_2_0_mu_-0.5.png b/figures/van_der_pol_oscillator_z_2_0_mu_-0.5.png new file mode 100644 index 0000000..952d72c Binary files /dev/null and b/figures/van_der_pol_oscillator_z_2_0_mu_-0.5.png differ diff --git a/figures/van_der_pol_oscillator_z_2_0_mu_-1.png b/figures/van_der_pol_oscillator_z_2_0_mu_-1.png new file mode 100644 index 0000000..26c6ece Binary files /dev/null and b/figures/van_der_pol_oscillator_z_2_0_mu_-1.png differ diff --git a/figures/van_der_pol_oscillator_z_2_0_mu_-2.png b/figures/van_der_pol_oscillator_z_2_0_mu_-2.png new file mode 100644 index 0000000..f048174 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_2_0_mu_-2.png differ diff --git a/figures/van_der_pol_oscillator_z_2_0_mu_0.0.png b/figures/van_der_pol_oscillator_z_2_0_mu_0.0.png new file mode 100644 index 0000000..d684aad Binary files /dev/null and b/figures/van_der_pol_oscillator_z_2_0_mu_0.0.png differ diff --git a/figures/van_der_pol_oscillator_z_2_0_mu_0.0001.png b/figures/van_der_pol_oscillator_z_2_0_mu_0.0001.png new file mode 100644 index 0000000..cf80b1d Binary files /dev/null and b/figures/van_der_pol_oscillator_z_2_0_mu_0.0001.png differ diff --git a/figures/van_der_pol_oscillator_z_2_0_mu_0.01.png b/figures/van_der_pol_oscillator_z_2_0_mu_0.01.png new file mode 100644 index 0000000..c460d93 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_2_0_mu_0.01.png differ diff --git a/figures/van_der_pol_oscillator_z_2_0_mu_0.05.png b/figures/van_der_pol_oscillator_z_2_0_mu_0.05.png new file mode 100644 index 0000000..385f61a Binary files /dev/null and b/figures/van_der_pol_oscillator_z_2_0_mu_0.05.png differ diff --git a/figures/van_der_pol_oscillator_z_2_0_mu_0.1.png b/figures/van_der_pol_oscillator_z_2_0_mu_0.1.png new file mode 100644 index 0000000..3dc6b16 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_2_0_mu_0.1.png differ diff --git a/figures/van_der_pol_oscillator_z_2_0_mu_0.png b/figures/van_der_pol_oscillator_z_2_0_mu_0.png new file mode 100644 index 0000000..a62a27a Binary files /dev/null and b/figures/van_der_pol_oscillator_z_2_0_mu_0.png differ diff --git a/figures/van_der_pol_oscillator_z_2_0_mu_1.0.png b/figures/van_der_pol_oscillator_z_2_0_mu_1.0.png new file mode 100644 index 0000000..5346cee Binary files /dev/null and b/figures/van_der_pol_oscillator_z_2_0_mu_1.0.png differ diff --git a/figures/van_der_pol_oscillator_z_2_0_mu_1.png b/figures/van_der_pol_oscillator_z_2_0_mu_1.png new file mode 100644 index 0000000..f9da5a5 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_2_0_mu_1.png differ diff --git a/figures/van_der_pol_oscillator_z_2_0_mu_2.0.png b/figures/van_der_pol_oscillator_z_2_0_mu_2.0.png new file mode 100644 index 0000000..8144b75 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_2_0_mu_2.0.png differ diff --git a/figures/van_der_pol_oscillator_z_2_0_mu_2.png b/figures/van_der_pol_oscillator_z_2_0_mu_2.png new file mode 100644 index 0000000..428cfba Binary files /dev/null and b/figures/van_der_pol_oscillator_z_2_0_mu_2.png differ diff --git a/figures/van_der_pol_oscillator_z_2_0_mu_4.0.png b/figures/van_der_pol_oscillator_z_2_0_mu_4.0.png new file mode 100644 index 0000000..864a83b Binary files /dev/null and b/figures/van_der_pol_oscillator_z_2_0_mu_4.0.png differ diff --git a/figures/van_der_pol_oscillator_z_2_0_mu_4.png b/figures/van_der_pol_oscillator_z_2_0_mu_4.png new file mode 100644 index 0000000..9350793 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_2_0_mu_4.png differ diff --git a/figures/van_der_pol_oscillator_z_2_0_mu_5.png b/figures/van_der_pol_oscillator_z_2_0_mu_5.png new file mode 100644 index 0000000..f3909fc Binary files /dev/null and b/figures/van_der_pol_oscillator_z_2_0_mu_5.png differ diff --git a/figures/van_der_pol_oscillator_z_3_0_mu_-2.png b/figures/van_der_pol_oscillator_z_3_0_mu_-2.png new file mode 100644 index 0000000..df81c63 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_3_0_mu_-2.png differ diff --git a/figures/van_der_pol_oscillator_z_4.0_0_mu_1.png b/figures/van_der_pol_oscillator_z_4.0_0_mu_1.png new file mode 100644 index 0000000..07bf059 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_4.0_0_mu_1.png differ diff --git a/figures/van_der_pol_oscillator_z_4.0_1_mu_1.png b/figures/van_der_pol_oscillator_z_4.0_1_mu_1.png new file mode 100644 index 0000000..8d597be Binary files /dev/null and b/figures/van_der_pol_oscillator_z_4.0_1_mu_1.png differ diff --git a/figures/van_der_pol_oscillator_z_4.5_0_mu_1.png b/figures/van_der_pol_oscillator_z_4.5_0_mu_1.png new file mode 100644 index 0000000..f9c1d07 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_4.5_0_mu_1.png differ diff --git a/figures/van_der_pol_oscillator_z_4_0_mu_-0.01.png b/figures/van_der_pol_oscillator_z_4_0_mu_-0.01.png new file mode 100644 index 0000000..04b116a Binary files /dev/null and b/figures/van_der_pol_oscillator_z_4_0_mu_-0.01.png differ diff --git a/figures/van_der_pol_oscillator_z_4_0_mu_-1.png b/figures/van_der_pol_oscillator_z_4_0_mu_-1.png new file mode 100644 index 0000000..1fb9f61 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_4_0_mu_-1.png differ diff --git a/figures/van_der_pol_oscillator_z_4_0_mu_0.png b/figures/van_der_pol_oscillator_z_4_0_mu_0.png new file mode 100644 index 0000000..094598e Binary files /dev/null and b/figures/van_der_pol_oscillator_z_4_0_mu_0.png differ diff --git a/figures/van_der_pol_oscillator_z_4_0_mu_1.0.png b/figures/van_der_pol_oscillator_z_4_0_mu_1.0.png new file mode 100644 index 0000000..8f7f02a Binary files /dev/null and b/figures/van_der_pol_oscillator_z_4_0_mu_1.0.png differ diff --git a/figures/van_der_pol_oscillator_z_4_0_mu_1.png b/figures/van_der_pol_oscillator_z_4_0_mu_1.png new file mode 100644 index 0000000..5119660 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_4_0_mu_1.png differ diff --git a/figures/van_der_pol_oscillator_z_4_0_mu_10.0.png b/figures/van_der_pol_oscillator_z_4_0_mu_10.0.png new file mode 100644 index 0000000..af64870 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_4_0_mu_10.0.png differ diff --git a/figures/van_der_pol_oscillator_z_4_0_mu_15.0.png b/figures/van_der_pol_oscillator_z_4_0_mu_15.0.png new file mode 100644 index 0000000..aa1fea0 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_4_0_mu_15.0.png differ diff --git a/figures/van_der_pol_oscillator_z_4_0_mu_2.0.png b/figures/van_der_pol_oscillator_z_4_0_mu_2.0.png new file mode 100644 index 0000000..949cef2 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_4_0_mu_2.0.png differ diff --git a/figures/van_der_pol_oscillator_z_4_0_mu_2.png b/figures/van_der_pol_oscillator_z_4_0_mu_2.png new file mode 100644 index 0000000..c2ce05c Binary files /dev/null and b/figures/van_der_pol_oscillator_z_4_0_mu_2.png differ diff --git a/figures/van_der_pol_oscillator_z_4_0_mu_4.0.png b/figures/van_der_pol_oscillator_z_4_0_mu_4.0.png new file mode 100644 index 0000000..5c1dbf5 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_4_0_mu_4.0.png differ diff --git a/figures/van_der_pol_oscillator_z_4_0_mu_4.png b/figures/van_der_pol_oscillator_z_4_0_mu_4.png new file mode 100644 index 0000000..401a201 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_4_0_mu_4.png differ diff --git a/figures/van_der_pol_oscillator_z_4_0_mu_5.png b/figures/van_der_pol_oscillator_z_4_0_mu_5.png new file mode 100644 index 0000000..2cc1a5d Binary files /dev/null and b/figures/van_der_pol_oscillator_z_4_0_mu_5.png differ diff --git a/figures/van_der_pol_oscillator_z_4_0_mu_8.png b/figures/van_der_pol_oscillator_z_4_0_mu_8.png new file mode 100644 index 0000000..1b57cf5 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_4_0_mu_8.png differ diff --git a/figures/van_der_pol_oscillator_z_7_0_mu_1.png b/figures/van_der_pol_oscillator_z_7_0_mu_1.png new file mode 100644 index 0000000..f989ffc Binary files /dev/null and b/figures/van_der_pol_oscillator_z_7_0_mu_1.png differ diff --git a/figures/van_der_pol_oscillator_z_7_1_mu_1.png b/figures/van_der_pol_oscillator_z_7_1_mu_1.png new file mode 100644 index 0000000..caec22e Binary files /dev/null and b/figures/van_der_pol_oscillator_z_7_1_mu_1.png differ diff --git a/figures/van_der_pol_oscillator_z_8_0_mu_1.png b/figures/van_der_pol_oscillator_z_8_0_mu_1.png new file mode 100644 index 0000000..4905644 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_8_0_mu_1.png differ diff --git a/figures/van_der_pol_oscillator_z_8_0_mu_4.png b/figures/van_der_pol_oscillator_z_8_0_mu_4.png new file mode 100644 index 0000000..ef72ea0 Binary files /dev/null and b/figures/van_der_pol_oscillator_z_8_0_mu_4.png differ diff --git a/phase_plane_analysis_van_der_pol.py b/phase_plane_analysis_van_der_pol.py new file mode 100644 index 0000000..b276591 --- /dev/null +++ b/phase_plane_analysis_van_der_pol.py @@ -0,0 +1,99 @@ +""" +Simple examples for understanding phase plane analysis, applied to the Van der Pol oscillator +using linearization. + +author: Fabrizio Musacchio +date: Feb 20, 2024 + +For reproducibility: + +conda create -n phase_plane_analysis python=3.10 +conda activate phase_plane_analysis +conda install mamba +mamba install numpy matplotlib scipy + +""" +# %% IMPORT +import numpy as np +import matplotlib.pyplot as plt +from scipy.integrate import solve_ivp +# set global font size for plots: +plt.rcParams.update({'font.size': 14}) +# create a folder "figures" to save the plots (if it does not exist): +import os +if not os.path.exists('figures'): + os.makedirs('figures') +# %% EXAMPLE: VAN DER POL OSCILLATOR +# define the Van der Pol oscillator model: +def van_der_pol(t, z, mu): + x, y = z + dxdt = y + dydt = mu * (1 - x**2) * y - x + return [dxdt, dydt] + +# define the nullclines: +def y_nullcline(x, mu): + return x/(mu*(1-x**2)) +def x_nullcline(y, mu): + return 0*y + +# set time span: +eval_time = 100 +t_iteration = 1000 +t_span = [0, eval_time] +t_eval = np.linspace(*t_span, t_iteration) + +# set initial conditions: +#z0 = [0.5, y_nullcline(0.5, mu)] # [2, 0] +z0 = [4, 0] # [2, 0] + +# set Van der Pol oscillator parameter: +mu = 2.0 # stable: >0, unstable: <0 + +# calculate the vector field: +mgrid_size = 8 +x, y = np.meshgrid(np.linspace(-mgrid_size, mgrid_size, 15), + np.linspace(-mgrid_size, mgrid_size, 15)) +u = y +v = mu * (1 - x**2) * y - x + +# calculating the trajectory for the Van der Pol oscillator: +sol_stable = solve_ivp(van_der_pol, t_span, z0, args=(mu,), t_eval=t_eval) + +# define the x-array for the nullclines: +x_null = np.arange(-mgrid_size,mgrid_size,0.001) + +# plot vector field and trajectory: +plt.figure(figsize=(6, 6)) +plt.clf() +#plt.quiver(x, y, u, v, color='gray') # vector field +#plt.streamplot(x, y, u, v, color='gray', density=2.5) +# plot the streamline plot colored by the speed of the flow: +speed = np.sqrt(u**2 + v**2) +plt.streamplot(x, y, u, v, color=speed, cmap='cool', density=2.0) +plt.plot(x_null, x_nullcline(x_null, mu) , '.', c="darkturquoise", markersize=2) +plt.plot(x_null, y_nullcline(x_null, mu) , '.', c="darkturquoise", markersize=2) +plt.plot(sol_stable.y[0], sol_stable.y[1], 'r-', lw=3, + label=f'Trajectory for $\mu$={mu}\nand $z_0$={z0}') # trajectory +# indicate start point: +plt.plot(sol_stable.y[0][0], sol_stable.y[1][0], 'bo', label='start point', alpha=0.75, markersize=7) +plt.plot(sol_stable.y[0][-1], sol_stable.y[1][-1], 'o', c="yellow", label='end point', alpha=0.75, markersize=7) +# indicate the direction of the trajectory's last point with an arrow: +""" plt.arrow(sol_stable.y[0][-2], sol_stable.y[1][-2], + sol_stable.y[0][-1] - sol_stable.y[0][-2], + sol_stable.y[1][-1] - sol_stable.y[1][-2], + head_width=0.5, head_length=0.5, fc='fuchsia', ec='fuchsia') """ +plt.title('phase plane plot: Van der Pol oscillator') +plt.xlabel('x') +plt.ylabel('y') +plt.legend(loc='lower right') #, bbox_to_anchor=(1, 0.5) +plt.gca().spines['top'].set_visible(False) +plt.gca().spines['right'].set_visible(False) +plt.gca().spines['bottom'].set_visible(False) +plt.gca().spines['left'].set_visible(False) +#plt.xlim(-mgrid_size, mgrid_size) +plt.ylim(-mgrid_size, mgrid_size) +plt.tight_layout() +plt.savefig(f'figures/van_der_pol_oscillator_z_{z0[0]}_{z0[1]}_mu_{mu}.png', dpi=120) +plt.show() +# %% END diff --git a/phase_plane_analysis_van_der_pol_lienard_transformation.py b/phase_plane_analysis_van_der_pol_lienard_transformation.py new file mode 100644 index 0000000..57cd6fa --- /dev/null +++ b/phase_plane_analysis_van_der_pol_lienard_transformation.py @@ -0,0 +1,102 @@ +""" +Simple examples for understanding phase plane analysis, applied to the Van der Pol oscillator +using LiƩnard's transformation. + +author: Fabrizio Musacchio +date: Feb 20, 2024 + +For reproducibility: + +conda create -n phase_plane_analysis python=3.10 +conda activate phase_plane_analysis +conda install mamba +mamba install numpy matplotlib scipy + +""" +# %% IMPORT +import numpy as np +import matplotlib.pyplot as plt +from scipy.integrate import solve_ivp +# set global font size for plots: +plt.rcParams.update({'font.size': 14}) +# create a folder "figures" to save the plots (if it does not exist): +import os +if not os.path.exists('figures'): + os.makedirs('figures') +# %% EXAMPLE: VAN DER POL OSCILLATOR +# define the Van der Pol oscillator model: +def van_der_pol(t, z, mu): + x, y = z + dxdt = mu * (x - (x**3)/3 - y) + dydt = (1/mu) * x + return [dxdt, dydt] + +# define the nullclines: +def x_nullcline(x, mu): + return x-(1/3)*(x**3) +"""the y-nullcline is in this case just a vertical line at x=0 for all y; +we well plot it as a function of x for the sake of consistency with the other nullcline: +""" +def y_nullcline(x): + return 0*x + + +# set time span: +eval_time = 100 +t_iteration = 1000 +t_span = [0, eval_time] +t_eval = np.linspace(*t_span, t_iteration) + +# set initial conditions: +z0 = [1.0, 0.0] # [2, 0] + +# set Van der Pol oscillator parameter: +mu = -4.0 # stable: >0, unstable: <0 + +# calculate the vector field: +mgrid_size = 8 +x, y = np.meshgrid(np.linspace(-mgrid_size, mgrid_size, 15), + np.linspace(-mgrid_size, mgrid_size, 15)) +u = mu * (x - (x**3)/3 - y) +v = (1/mu) * x + +# calculating the trajectory for the Van der Pol oscillator: +sol_stable = solve_ivp(van_der_pol, t_span, z0, args=(mu,), t_eval=t_eval) + +# define the x-array for the nullclines: +x_null = np.arange(-mgrid_size,mgrid_size,0.001) + +# plot vector field and trajectory: +plt.figure(figsize=(6, 6)) +plt.clf() +#plt.quiver(x, y, u, v, color='gray') # vector field +#plt.streamplot(x, y, u, v, color='gray', density=2.5) +# plot the streamline plot colored by the speed of the flow: +speed = np.sqrt(u**2 + v**2) +plt.streamplot(x, y, u, v, color=speed, cmap='cool', density=2.0) +plt.plot(x_null, x_nullcline(x_null, mu) , '.', c="darkturquoise", markersize=2) +plt.plot(y_nullcline(x_null), x_null , '.', c="darkturquoise", markersize=2) +plt.plot(sol_stable.y[0], sol_stable.y[1], 'r-', lw=3, + label=f'Trajectory for $\mu$={mu}\nand $z_0$={z0}') # trajectory +# indicate start point: +plt.plot(sol_stable.y[0][0], sol_stable.y[1][0], 'bo', label='start point', alpha=0.75, markersize=7) +plt.plot(sol_stable.y[0][-1], sol_stable.y[1][-1], 'o', c="yellow", label='end point', alpha=0.75, markersize=7) +# indicate the direction of the trajectory's last point with an arrow: +""" plt.arrow(sol_stable.y[0][-2], sol_stable.y[1][-2], + sol_stable.y[0][-1] - sol_stable.y[0][-2], + sol_stable.y[1][-1] - sol_stable.y[1][-2], + head_width=0.5, head_length=0.5, fc='fuchsia', ec='fuchsia') """ +plt.title('phase plane plot: Van der Pol oscillator') +plt.xlabel('x') +plt.ylabel('y') +plt.legend(loc='lower right') #, bbox_to_anchor=(1, 0.5) +plt.gca().spines['top'].set_visible(False) +plt.gca().spines['right'].set_visible(False) +plt.gca().spines['bottom'].set_visible(False) +plt.gca().spines['left'].set_visible(False) +#plt.xlim(-mgrid_size, mgrid_size) +plt.ylim(-mgrid_size, mgrid_size) +plt.tight_layout() +plt.savefig(f'figures/van_der_pol_oscillator_lienard_z_{z0[0]}_{z0[1]}_mu_{mu}.png', dpi=120) +plt.show() +# %% END