diff --git a/_images/0a007c1c23cf54de7867895ea0fd4818610da5f54d95e2612b8c007d4aa7ca42.svg b/_images/0a007c1c23cf54de7867895ea0fd4818610da5f54d95e2612b8c007d4aa7ca42.svg new file mode 100644 index 00000000..b85675cd --- /dev/null +++ b/_images/0a007c1c23cf54de7867895ea0fd4818610da5f54d95e2612b8c007d4aa7ca42.svg @@ -0,0 +1,1373 @@ + + + + + + + + 2024-10-12T09:02:26.242702 + image/svg+xml + + + Matplotlib v3.9.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_images/0df685179aeba295a1b6a879ccd44163261859e2a082f96727ca84060805b22e.svg b/_images/0df685179aeba295a1b6a879ccd44163261859e2a082f96727ca84060805b22e.svg new file mode 100644 index 00000000..09df6269 --- /dev/null +++ b/_images/0df685179aeba295a1b6a879ccd44163261859e2a082f96727ca84060805b22e.svg @@ -0,0 +1,1044 @@ + + + + + + + + 2024-10-12T09:00:37.464612 + image/svg+xml + + + Matplotlib v3.9.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_images/0fbb5a1f48d0736f3a69065f5088ed9509f2f87dbe962402f356e5662df37fa7.svg b/_images/0fbb5a1f48d0736f3a69065f5088ed9509f2f87dbe962402f356e5662df37fa7.svg new file mode 100644 index 00000000..5c0525a9 --- /dev/null +++ b/_images/0fbb5a1f48d0736f3a69065f5088ed9509f2f87dbe962402f356e5662df37fa7.svg @@ -0,0 +1,1373 @@ + + + + + + + + 2024-10-12T09:00:32.084770 + image/svg+xml + + + Matplotlib v3.9.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_images/1eb16b67a39f3e475b38cf16a9af78164ec4ffd4ce527e35769126424acc1484.svg b/_images/1eb16b67a39f3e475b38cf16a9af78164ec4ffd4ce527e35769126424acc1484.svg new file mode 100644 index 00000000..5edff331 --- /dev/null +++ b/_images/1eb16b67a39f3e475b38cf16a9af78164ec4ffd4ce527e35769126424acc1484.svg @@ -0,0 +1,1061 @@ + + + + + + + + 2024-10-12T09:00:35.996530 + image/svg+xml + + + Matplotlib v3.9.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_images/27dc3bdfa8579c39f917f3493b601fb9fb7ab07e828600a2eed71d3ba717f430.svg b/_images/27dc3bdfa8579c39f917f3493b601fb9fb7ab07e828600a2eed71d3ba717f430.svg new file mode 100644 index 00000000..bbd3f1fd --- /dev/null +++ b/_images/27dc3bdfa8579c39f917f3493b601fb9fb7ab07e828600a2eed71d3ba717f430.svg @@ -0,0 +1,1109 @@ + + + + + + + + 2024-10-12T09:00:35.691943 + image/svg+xml + + + Matplotlib v3.9.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_images/3428535cb37edacc17eb6df06658a14aedabcdc41190e61e978d899c1f5f4420.svg b/_images/3428535cb37edacc17eb6df06658a14aedabcdc41190e61e978d899c1f5f4420.svg new file mode 100644 index 00000000..0ba5af29 --- /dev/null +++ b/_images/3428535cb37edacc17eb6df06658a14aedabcdc41190e61e978d899c1f5f4420.svg @@ -0,0 +1,1195 @@ + + + + + + + + 2024-10-12T09:00:37.893122 + image/svg+xml + + + Matplotlib v3.9.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_images/41dceded410544a5cb7b07ffe42bcdf85814233c4a3fc162d257f42861b66879.svg b/_images/41dceded410544a5cb7b07ffe42bcdf85814233c4a3fc162d257f42861b66879.svg new file mode 100644 index 00000000..ec469fe3 --- /dev/null +++ b/_images/41dceded410544a5cb7b07ffe42bcdf85814233c4a3fc162d257f42861b66879.svg @@ -0,0 +1,692 @@ + + + + + + + + 2024-10-12T09:00:32.365099 + image/svg+xml + + + Matplotlib v3.9.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_images/4c84e532916e022f8aba273c382a24bfbebdbf7e99bbfc0885d8e3296a157b04.svg b/_images/4c84e532916e022f8aba273c382a24bfbebdbf7e99bbfc0885d8e3296a157b04.svg new file mode 100644 index 00000000..be2829f6 --- /dev/null +++ b/_images/4c84e532916e022f8aba273c382a24bfbebdbf7e99bbfc0885d8e3296a157b04.svg @@ -0,0 +1,1096 @@ + + + + + + + + 2024-10-12T09:00:35.542638 + image/svg+xml + + + Matplotlib v3.9.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_images/6b60fd45b4f5c06f123a578749678451f8d4d76ec5459c1fa31e490dc89a1950.svg b/_images/6b60fd45b4f5c06f123a578749678451f8d4d76ec5459c1fa31e490dc89a1950.svg new file mode 100644 index 00000000..1b54d9ed --- /dev/null +++ b/_images/6b60fd45b4f5c06f123a578749678451f8d4d76ec5459c1fa31e490dc89a1950.svg @@ -0,0 +1,1241 @@ + + + + + + + + 2024-10-12T09:00:38.087535 + image/svg+xml + + + Matplotlib v3.9.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_images/73f93504d5747ec0d99e854d2cdb9c3f44bea1e49700e9ba89ee9ae5dd6c2652.svg b/_images/73f93504d5747ec0d99e854d2cdb9c3f44bea1e49700e9ba89ee9ae5dd6c2652.svg new file mode 100644 index 00000000..0bd20e10 --- /dev/null +++ b/_images/73f93504d5747ec0d99e854d2cdb9c3f44bea1e49700e9ba89ee9ae5dd6c2652.svg @@ -0,0 +1,1158 @@ + + + + + + + + 2024-10-12T09:00:38.033989 + image/svg+xml + + + Matplotlib v3.9.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_images/8fc319368f9130b0ff9259a6046fb792680eb0670c61be8da6862229f41dcdcd.svg b/_images/8fc319368f9130b0ff9259a6046fb792680eb0670c61be8da6862229f41dcdcd.svg new file mode 100644 index 00000000..21c3edce --- /dev/null +++ b/_images/8fc319368f9130b0ff9259a6046fb792680eb0670c61be8da6862229f41dcdcd.svg @@ -0,0 +1,853 @@ + + + + + + + + 2024-10-12T09:00:36.053132 + image/svg+xml + + + Matplotlib v3.9.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_images/ae5ed854b26dec4e45acc5ad8999026fb36471d9ce386f551af273a6f91b8dc2.svg b/_images/ae5ed854b26dec4e45acc5ad8999026fb36471d9ce386f551af273a6f91b8dc2.svg new file mode 100644 index 00000000..c9268270 --- /dev/null +++ b/_images/ae5ed854b26dec4e45acc5ad8999026fb36471d9ce386f551af273a6f91b8dc2.svg @@ -0,0 +1,1080 @@ + + + + + + + + 2024-10-12T09:00:37.707665 + image/svg+xml + + + Matplotlib v3.9.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_images/b7049355613e04b7b56484b4aa32902ed5d9c3758a01cadf8c29b2e1a0260555.svg b/_images/b7049355613e04b7b56484b4aa32902ed5d9c3758a01cadf8c29b2e1a0260555.svg new file mode 100644 index 00000000..cb234c6a --- /dev/null +++ b/_images/b7049355613e04b7b56484b4aa32902ed5d9c3758a01cadf8c29b2e1a0260555.svg @@ -0,0 +1,1942 @@ + + + + + + + + 2024-10-12T09:00:37.941885 + image/svg+xml + + + Matplotlib v3.9.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_images/be0b7bcd2ebdddde7bd47ed46e8a98da117fd3141bda10fe12cbb23bc8e5b6ad.svg b/_images/be0b7bcd2ebdddde7bd47ed46e8a98da117fd3141bda10fe12cbb23bc8e5b6ad.svg new file mode 100644 index 00000000..e688207d --- /dev/null +++ b/_images/be0b7bcd2ebdddde7bd47ed46e8a98da117fd3141bda10fe12cbb23bc8e5b6ad.svg @@ -0,0 +1,882 @@ + + + + + + + + 2024-10-12T09:00:37.853004 + image/svg+xml + + + Matplotlib v3.9.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_images/c824dd4d147e84b88b950f977b9fc613ab612197349e476cf7001dd50c0aad82.svg b/_images/c824dd4d147e84b88b950f977b9fc613ab612197349e476cf7001dd50c0aad82.svg new file mode 100644 index 00000000..a792a7a9 --- /dev/null +++ b/_images/c824dd4d147e84b88b950f977b9fc613ab612197349e476cf7001dd50c0aad82.svg @@ -0,0 +1,588 @@ + + + + + + + + 2024-10-12T09:00:35.837690 + image/svg+xml + + + Matplotlib v3.9.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_images/d4e97952c84ea010f180022093be613ac1357bc5d5efd2833202d5458e31fa22.svg b/_images/d4e97952c84ea010f180022093be613ac1357bc5d5efd2833202d5458e31fa22.svg new file mode 100644 index 00000000..4e3953e8 --- /dev/null +++ b/_images/d4e97952c84ea010f180022093be613ac1357bc5d5efd2833202d5458e31fa22.svg @@ -0,0 +1,692 @@ + + + + + + + + 2024-10-12T09:02:26.523526 + image/svg+xml + + + Matplotlib v3.9.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_images/d8113ac034872781d86dda003ac764282490136c85c9639aa971c847b498f5f6.svg b/_images/d8113ac034872781d86dda003ac764282490136c85c9639aa971c847b498f5f6.svg new file mode 100644 index 00000000..22f5a89d --- /dev/null +++ b/_images/d8113ac034872781d86dda003ac764282490136c85c9639aa971c847b498f5f6.svg @@ -0,0 +1,550 @@ + + + + + + + + 2024-10-12T09:00:35.777473 + image/svg+xml + + + Matplotlib v3.9.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_images/f02ccae45561783769ed8079a35065121e77ef0c8749eb0e86883b44561da6f2.svg b/_images/f02ccae45561783769ed8079a35065121e77ef0c8749eb0e86883b44561da6f2.svg new file mode 100644 index 00000000..f73a9c7b --- /dev/null +++ b/_images/f02ccae45561783769ed8079a35065121e77ef0c8749eb0e86883b44561da6f2.svg @@ -0,0 +1,1278 @@ + + + + + + + + 2024-10-12T09:00:37.750929 + image/svg+xml + + + Matplotlib v3.9.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_images/f255f63adc09cfe45d57adc7d3c65ae0c40d0a5eb6fd8672870dfbb1ea7cf50a.svg b/_images/f255f63adc09cfe45d57adc7d3c65ae0c40d0a5eb6fd8672870dfbb1ea7cf50a.svg new file mode 100644 index 00000000..3dec21c0 --- /dev/null +++ b/_images/f255f63adc09cfe45d57adc7d3c65ae0c40d0a5eb6fd8672870dfbb1ea7cf50a.svg @@ -0,0 +1,856 @@ + + + + + + + + 2024-10-12T09:00:35.967132 + image/svg+xml + + + Matplotlib v3.9.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_images/faad88d6a703e826b26773d71e1b2b47b85f8da3a37765058b9bce992dfd981f.svg b/_images/faad88d6a703e826b26773d71e1b2b47b85f8da3a37765058b9bce992dfd981f.svg new file mode 100644 index 00000000..9e9ca921 --- /dev/null +++ b/_images/faad88d6a703e826b26773d71e1b2b47b85f8da3a37765058b9bce992dfd981f.svg @@ -0,0 +1,941 @@ + + + + + + + + 2024-10-12T09:00:37.804467 + image/svg+xml + + + Matplotlib v3.9.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_sources/notebooks/appendix_00/appendix_00_notebook.ipynb b/_sources/notebooks/appendix_00/appendix_00_notebook.ipynb index fc5b96fd..9ebef8b8 100644 --- a/_sources/notebooks/appendix_00/appendix_00_notebook.ipynb +++ b/_sources/notebooks/appendix_00/appendix_00_notebook.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 15, + "execution_count": 1, "id": "a25cdb10-d7e3-422c-93ec-c88bb96fbf3b", "metadata": { "editable": true, @@ -38,7 +38,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 8, "id": "f1500f29-4896-4f34-b3ab-ccc70e9ca8ff", "metadata": {}, "outputs": [], @@ -49,7 +49,7 @@ "from nmrsim import Multiplet\n", "from nmrsim.plt import mplplot\n", "\n", - "from ipywidgets import interact, interact_manual, FloatSlider, FloatRangeSlider, RadioButtons" + "from ipywidgets import interact, interact_manual, FloatSlider, FloatRangeSlider, RadioButtons, fixed" ] }, { @@ -68,7 +68,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 3, "id": "115e9b54-5168-44aa-9fbf-119b17a1652b", "metadata": {}, "outputs": [ @@ -83,7 +83,7 @@ " \n", " \n", " \n", - " 2024-09-25T05:56:57.243555\n", + " 2024-10-12T08:57:11.921101\n", " image/svg+xml\n", " \n", " \n", @@ -118,12 +118,12 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -159,7 +159,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -198,7 +198,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -232,7 +232,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -277,7 +277,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -331,7 +331,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -497,12 +497,12 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -535,7 +535,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -589,7 +589,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -606,7 +606,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -623,7 +623,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -639,7 +639,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -655,7 +655,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -671,7 +671,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -687,7 +687,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1418,7 +1418,7 @@ "L 399.085731 126.602137 \n", "L 399.41071 126.50292 \n", "L 399.41071 126.50292 \n", - "\" clip-path=\"url(#p5ec8f2ed78)\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n", + "\" clip-path=\"url(#p29f2919174)\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1486,14 +1486,14 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 4, "id": "fc1bf275-2c1a-4c39-93d9-c1fca5671059", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "3511087360324109a7040b7618a862bd", + "model_id": "13cfb06840f54ef2919d00d3686817dc", "version_major": 2, "version_minor": 0 }, @@ -1519,14 +1519,14 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 5, "id": "f8007889-ea2c-4de4-8809-6d66eab8b0b0", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "b4db7cc51f0049e2901739e4a1520e9e", + "model_id": "ec8a8f1a7d904fdfae9246688a4fc1b0", "version_major": 2, "version_minor": 0 }, @@ -1552,7 +1552,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 6, "id": "a1ee1a76-0af8-4a7b-b895-ca75604482d4", "metadata": { "scrolled": true @@ -1561,7 +1561,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "727f898a238547a0817311323a74c2ba", + "model_id": "8a38ed37b93944e98dbb1dae735c8d39", "version_major": 2, "version_minor": 0 }, @@ -1579,35 +1579,53 @@ }, { "cell_type": "markdown", - "id": "84bc0323-b51b-4186-b838-a496b26866a8", + "id": "e05d8735-0d08-40c5-886c-1ff3cf5bca5f", "metadata": {}, "source": [ - "## Generating Widgets using Decorators\n", - "\n", - "Another way to create ipython widgets is to employ the `interact()` function as a decorator for your function. Instead of calling the `interact()` function after you define your function, you place `@interact()` just above your own function definition and skip feeding your function into the `interact()` function. The code below generates an equivalent outcome as we saw just above." + "If you want a value to be unchangeable by the widgets, wrap the desired value in the `fixed()` function as demonstrated below." ] }, { "cell_type": "code", - "execution_count": 21, - "id": "235fd23a-43b6-44f6-a6bc-ad7296bd1a9a", + "execution_count": 12, + "id": "78aace37-8a71-4e2f-a58e-8a6c9eb6846a", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "965225e691b14de48169dc6000e61fbd", + "model_id": "7cf8e19905d14c639fe134febb809d7a", "version_major": 2, "version_minor": 0 }, "text/plain": [ - "interactive(children=(Dropdown(description='nu', options=(1, 2, 3, 4, 5, 6), value=1), IntSlider(value=2, desc…" + "interactive(children=(Dropdown(description='nu', options=(1, 2, 3, 4, 5, 6), value=1), Output()), _dom_classes…" ] }, "metadata": {}, "output_type": "display_data" } ], + "source": [ + "interact(plot_fid, nu=[1,2,3,4,5,6], T2=fixed(2));" + ] + }, + { + "cell_type": "markdown", + "id": "84bc0323-b51b-4186-b838-a496b26866a8", + "metadata": {}, + "source": [ + "## Generating Widgets using Decorators\n", + "\n", + "Another way to create ipython widgets is to employ the `interact()` function as a decorator for your function. Instead of calling the `interact()` function after you define your function, you place `@interact()` just above your own function definition and skip feeding your function into the `interact()` function. The code below generates an equivalent outcome as we saw just above." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "235fd23a-43b6-44f6-a6bc-ad7296bd1a9a", + "metadata": {}, + "outputs": [], "source": [ "@interact(nu=[1,2,3,4,5,6], T2=2)\n", "def plot_fid(nu, T2):\n", @@ -1632,25 +1650,10 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "id": "fc4e529f-2396-4ade-a598-6db0455f21e5", "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "ad5520149c2946bfb98204be4d470c7e", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "interactive(children=(RadioButtons(description='nu', options=(1, 2, 3, 4, 5, 6), value=1), FloatSlider(value=3…" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "button_widget = RadioButtons(options=[1,2,3,4,5,6])\n", "interact(plot_fid, nu=button_widget, T2=(1,5,0.5));" @@ -1666,27 +1669,12 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": null, "id": "e51b1e71-4938-48c9-b347-e33e652b5a05", "metadata": { "scrolled": true }, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "712f70b5491041fc930b1bf06f70694c", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "interactive(children=(IntSlider(value=5, description='nu', max=10, min=1), FloatSlider(value=3.0, description=…" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "def plot_fid_limits(nu, T2, limits):\n", " t = np.linspace(0,10,1000)\n", @@ -1709,30 +1697,15 @@ "source": [ "## Slow Functions\n", "\n", - "If your function is slow to run, you may not want it to execute every time the slider moves. There are two solutions to this. The first is to use the `interact_manual()` function which is a cousin of the `interact()` function except that your function only runs when you click the Run Interact button." + "If your function is slow to run, you may not want it to execute every time a slider moves. There are two solutions to this. The first is to use the `interact_manual()` function which is a cousin of the `interact()` function except that your function only runs when you click the Run Interact button." ] }, { "cell_type": "code", - "execution_count": 24, + "execution_count": null, "id": "7a2d2c1b-108e-4496-8658-e00738bd26b1", "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "b78fc96412a44489af01d99ed7f5c7ce", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "interactive(children=(IntSlider(value=5, description='nu', max=10, min=1), FloatSlider(value=3.0, description=…" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "interact_manual(plot_fid, nu=(1,10,1), T2=(1,5,0.5));" ] @@ -1747,25 +1720,10 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": null, "id": "add7f1d4-2ee8-40fb-914d-f5c1497831a1", "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "b0b3e2d573e8406f8b0b60b5ee6133c7", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "interactive(children=(FloatSlider(value=1.0, continuous_update=False, description='nu', max=10.0, min=1.0, ste…" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fs = FloatSlider(min=1, max=10, step=1, continuous_update=False)\n", "interact(plot_fid, nu=fs, T2=(1,5, 0.5));" @@ -1789,721 +1747,10 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": null, "id": "5c06c67a-c8b6-4989-9376-cde754efa268", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[]\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " 2024-09-25T05:56:57.562940\n", - " image/svg+xml\n", - " \n", - " \n", - " Matplotlib v3.9.1, https://matplotlib.org/\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n" - ], - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "def plot_nmr(J1=8.0, J2=6.0, n1=2, n2=1, y_max=0.4):\n", " res = Multiplet(500, 1, [(J1, n1), (J2, n2)])\n", @@ -2522,25 +1769,10 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": null, "id": "5882c368-b9a2-4f83-a64e-7dbf67a012ec", "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "8d9d05694ede4317a04879af09478d2b", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "interactive(children=(FloatSlider(value=8.0, description='J1', max=24.0, min=-8.0), FloatSlider(value=12.0, de…" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "interact(plot_nmr, J1=8.0, J2=12.0);" ] @@ -2555,25 +1787,10 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": null, "id": "bd4041fe-3daf-476a-9b29-e98ce7334d3e", "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "3aa49bdbae5f46d9b6691335f9a83df4", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "interactive(children=(IntSlider(value=8, description='J1', max=16), IntSlider(value=6, description='J2', max=1…" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "interact(plot_nmr, n1=[1,2,3], n2=[1,2,3], J1=(0, 16), J2=(0, 16));" ] diff --git a/_sources/notebooks/chapter_01/chap_01_notebook.ipynb b/_sources/notebooks/chapter_01/chap_01_notebook.ipynb index 02013386..f99ec5e7 100644 --- a/_sources/notebooks/chapter_01/chap_01_notebook.ipynb +++ b/_sources/notebooks/chapter_01/chap_01_notebook.ipynb @@ -3059,7 +3059,7 @@ "```{index} immutable\n", "```\n", "\n", - "*Tuples* are another object type similar to lists except that they are *immutable* - that is to say, they cannot be changed once created. They look similar a list except that they use parentheses instead of square brackets. So what use is an unchangeable list-like object? There are times when you might want data inside your code, but you do not want to accidentally change it. Think of it as something similar to locking a file on your computer to avoid accidentally making modifications. While this features is not strictly necessary, it may be a prudent practice in some situation in case you make a mistake.\n", + "*Tuples* are another object type similar to lists except that they are *immutable* - that is to say, they cannot be changed once created. They look similar to a list except that they use parentheses instead of square brackets. So what use is an unchangeable list-like object? There are times when you might want data inside your code, but you do not want to accidentally change it. Think of it as something similar to locking a file on your computer to avoid accidentally making modifications. While this features is not strictly necessary, it may be a prudent practice in some situation in case you make a mistake.\n", "\n", "Below is a tuple containing the energy in joules of the first five hydrogen atomic orbitals. There is no need to change this data in your code, so fixing it in a tuple makes sense. Indexing and slicing work exactly the same in tuples as they do in string and lists, so we can use this tuple to quickly calculate the energy difference between any pair of atomic orbitals. " ] diff --git a/_sources/notebooks/chapter_08/chap_08_notebook.ipynb b/_sources/notebooks/chapter_08/chap_08_notebook.ipynb index 8036adcf..997db4a6 100644 --- a/_sources/notebooks/chapter_08/chap_08_notebook.ipynb +++ b/_sources/notebooks/chapter_08/chap_08_notebook.ipynb @@ -11,7 +11,7 @@ }, { "cell_type": "code", - "execution_count": 67, + "execution_count": 1, "id": "2f5bf78e-fee7-435d-b56a-40fbbac5f4da", "metadata": { "tags": [ @@ -35,7 +35,7 @@ }, { "cell_type": "code", - "execution_count": 68, + "execution_count": 2, "id": "f35b07ce-ba6b-41a5-a760-e33be1457e5a", "metadata": {}, "outputs": [], @@ -56,7 +56,7 @@ }, { "cell_type": "code", - "execution_count": 69, + "execution_count": 3, "id": "06ad3ae0-f488-407f-80bc-cd390b8f485d", "metadata": {}, "outputs": [ @@ -66,7 +66,7 @@ "1.4142135623730951" ] }, - "execution_count": 69, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -89,7 +89,7 @@ }, { "cell_type": "code", - "execution_count": 70, + "execution_count": 4, "id": "2a96f238-0702-4c76-8779-55d58dc17f96", "metadata": {}, "outputs": [ @@ -102,7 +102,7 @@ "sqrt(2)" ] }, - "execution_count": 70, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -121,7 +121,7 @@ }, { "cell_type": "code", - "execution_count": 71, + "execution_count": 5, "id": "329b886f-db05-4337-8b0d-d2b729d7acff", "metadata": {}, "outputs": [ @@ -134,7 +134,7 @@ "1.41421356237310" ] }, - "execution_count": 71, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -153,7 +153,7 @@ }, { "cell_type": "code", - "execution_count": 72, + "execution_count": 6, "id": "b4a09281-1ed0-4735-ba33-56420ea2c672", "metadata": {}, "outputs": [ @@ -166,7 +166,7 @@ "1.41421356237309504880168872421" ] }, - "execution_count": 72, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -177,7 +177,7 @@ }, { "cell_type": "code", - "execution_count": 73, + "execution_count": 7, "id": "549bf71a-717d-4771-866c-3a1f7eaec615", "metadata": {}, "outputs": [ @@ -190,7 +190,7 @@ "3.141592653589793238462643383279502884197" ] }, - "execution_count": 73, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -215,7 +215,7 @@ }, { "cell_type": "code", - "execution_count": 74, + "execution_count": 8, "id": "be78b3a6-81cc-4aab-9b3f-527419df6000", "metadata": {}, "outputs": [], @@ -225,7 +225,7 @@ }, { "cell_type": "code", - "execution_count": 75, + "execution_count": 9, "id": "968ba45a-534c-4a0a-8755-f4f526570662", "metadata": {}, "outputs": [ @@ -238,7 +238,7 @@ "x" ] }, - "execution_count": 75, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -257,7 +257,7 @@ }, { "cell_type": "code", - "execution_count": 76, + "execution_count": 10, "id": "6f3e0697-2c99-4233-a7a3-e9bbe7a2802a", "metadata": {}, "outputs": [], @@ -267,7 +267,7 @@ }, { "cell_type": "code", - "execution_count": 77, + "execution_count": 11, "id": "9af6366e-4eaa-450b-abfd-08519becdb68", "metadata": {}, "outputs": [ @@ -280,7 +280,7 @@ "c**2*m" ] }, - "execution_count": 77, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -291,7 +291,7 @@ }, { "cell_type": "code", - "execution_count": 78, + "execution_count": 12, "id": "a8125cf7-feb2-4cd2-8d94-d164e210d48a", "metadata": {}, "outputs": [ @@ -304,7 +304,7 @@ "c**4*m**2" ] }, - "execution_count": 78, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -323,7 +323,7 @@ }, { "cell_type": "code", - "execution_count": 79, + "execution_count": 13, "id": "13986524-dc92-43fa-a138-ed568942653e", "metadata": { "tags": [] @@ -343,7 +343,7 @@ }, { "cell_type": "code", - "execution_count": 80, + "execution_count": 14, "id": "3e999c11-4eca-434b-a0fa-43d84fe1fb89", "metadata": { "tags": [] @@ -353,20 +353,20 @@ "data": { "text/plain": [ "{'real': True,\n", - " 'imaginary': False,\n", + " 'commutative': True,\n", + " 'complex': True,\n", " 'extended_real': True,\n", - " 'hermitian': True,\n", " 'finite': True,\n", " 'infinite': False,\n", - " 'commutative': True,\n", - " 'complex': True,\n", + " 'imaginary': False,\n", + " 'hermitian': True,\n", " 'nonnegative': True,\n", - " 'extended_negative': False,\n", " 'negative': False,\n", + " 'extended_negative': False,\n", " 'extended_nonnegative': True}" ] }, - "execution_count": 80, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } @@ -459,7 +459,7 @@ }, { "cell_type": "code", - "execution_count": 81, + "execution_count": 15, "id": "9b86fd84-1d20-4218-b5e8-27dd0364c0e8", "metadata": {}, "outputs": [], @@ -469,7 +469,7 @@ }, { "cell_type": "code", - "execution_count": 82, + "execution_count": 16, "id": "a65e4839-a25c-44b6-b3a9-32847a7c296f", "metadata": {}, "outputs": [ @@ -482,7 +482,7 @@ "3*x**2 - x - 2" ] }, - "execution_count": 82, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -501,7 +501,7 @@ }, { "cell_type": "code", - "execution_count": 83, + "execution_count": 17, "id": "91de1ffe-14f5-4313-adef-11d1dd57483e", "metadata": {}, "outputs": [ @@ -514,7 +514,7 @@ "(x - 1)*(3*x + 2)" ] }, - "execution_count": 83, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } @@ -536,7 +536,7 @@ }, { "cell_type": "code", - "execution_count": 84, + "execution_count": 18, "id": "d773d2f7-6e6e-41e8-b95e-9444e80eaf11", "metadata": {}, "outputs": [ @@ -549,7 +549,7 @@ "3*x**2 - 4*x - 15/(x - 3)" ] }, - "execution_count": 84, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -568,7 +568,7 @@ }, { "cell_type": "code", - "execution_count": 85, + "execution_count": 19, "id": "8ec2cce5-5afc-4bbb-853d-c7e4966c0c3f", "metadata": {}, "outputs": [ @@ -581,7 +581,7 @@ "3*x + 5" ] }, - "execution_count": 85, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" } @@ -606,7 +606,7 @@ }, { "cell_type": "code", - "execution_count": 86, + "execution_count": 20, "id": "71ea2981-51f9-46fe-82ff-eed07c75dc75", "metadata": {}, "outputs": [ @@ -616,7 +616,7 @@ "[-3.20000000000000, 1.80000000000000]" ] }, - "execution_count": 86, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } @@ -654,7 +654,7 @@ }, { "cell_type": "code", - "execution_count": 87, + "execution_count": 21, "id": "ca474941-db53-47c3-815c-58843f3c4bf6", "metadata": {}, "outputs": [], @@ -665,7 +665,7 @@ }, { "cell_type": "code", - "execution_count": 88, + "execution_count": 22, "id": "73db9c59-a363-4db1-8bc3-03ffdf006a00", "metadata": {}, "outputs": [ @@ -678,7 +678,7 @@ "27*x**4/(4*x**2 - 2.4*x + 0.36) + 16.2*x**3/(4*x**2 - 2.4*x + 0.36) + 3.24*x**2/(4*x**2 - 2.4*x + 0.36) + 0.216*x/(4*x**2 - 2.4*x + 0.36)" ] }, - "execution_count": 88, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } @@ -697,7 +697,7 @@ }, { "cell_type": "code", - "execution_count": 89, + "execution_count": 23, "id": "8d8b7bc2-a0e5-47e4-9cfc-b7bd8f389223", "metadata": {}, "outputs": [ @@ -710,7 +710,7 @@ "x*(27*x**3 + 16.2*x**2 + 3.24*x + 0.216)/(4*x**2 - 2.4*x + 0.36)" ] }, - "execution_count": 89, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } @@ -729,7 +729,7 @@ }, { "cell_type": "code", - "execution_count": 90, + "execution_count": 24, "id": "440df806-9a32-473f-b070-505bfd31ddfc", "metadata": {}, "outputs": [ @@ -739,7 +739,7 @@ "[0.170006841512893]" ] }, - "execution_count": 90, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } @@ -787,7 +787,7 @@ }, { "cell_type": "code", - "execution_count": 91, + "execution_count": 25, "id": "848e89b7-cd40-40a1-b098-b470f6590397", "metadata": { "tags": [] @@ -802,7 +802,7 @@ "24.1 - 64.8*l" ] }, - "execution_count": 91, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } @@ -825,7 +825,7 @@ }, { "cell_type": "code", - "execution_count": 92, + "execution_count": 26, "id": "201beb45-60e4-4cd6-a74d-49128ad838d6", "metadata": { "tags": [] @@ -837,7 +837,7 @@ "[0.371913580246914]" ] }, - "execution_count": 92, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" } @@ -856,7 +856,7 @@ }, { "cell_type": "code", - "execution_count": 93, + "execution_count": 27, "id": "4b70f07d-3c55-4c61-90ac-2578e43646c8", "metadata": { "tags": [] @@ -871,7 +871,7 @@ "-14.7800000000000" ] }, - "execution_count": 93, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" } @@ -898,7 +898,7 @@ }, { "cell_type": "code", - "execution_count": 94, + "execution_count": 28, "id": "1d3c477c-18e8-45eb-9a46-01c072abdd95", "metadata": {}, "outputs": [], @@ -909,7 +909,7 @@ }, { "cell_type": "code", - "execution_count": 95, + "execution_count": 29, "id": "8beeeddb-4ccd-46cc-becc-fb8fcd5cdb4e", "metadata": {}, "outputs": [ @@ -920,7 +920,7 @@ " [3, 2]])" ] }, - "execution_count": 95, + "execution_count": 29, "metadata": {}, "output_type": "execute_result" } @@ -1002,7 +1002,7 @@ }, { "cell_type": "code", - "execution_count": 96, + "execution_count": 30, "id": "b6d31c87-fa5d-4a79-890e-81b69f366625", "metadata": {}, "outputs": [], @@ -1015,7 +1015,7 @@ }, { "cell_type": "code", - "execution_count": 97, + "execution_count": 31, "id": "5981b0ab-d3b8-4450-8248-d809a9c3ebec", "metadata": {}, "outputs": [ @@ -1025,7 +1025,7 @@ "array([1., 2., 1.])" ] }, - "execution_count": 97, + "execution_count": 31, "metadata": {}, "output_type": "execute_result" } @@ -1082,7 +1082,7 @@ }, { "cell_type": "code", - "execution_count": 98, + "execution_count": 32, "id": "8040fb89-1a2e-43ec-95fe-c4206bd83e96", "metadata": {}, "outputs": [ @@ -1092,7 +1092,7 @@ "array([0.078 , 0.023 , 0.0066])" ] }, - "execution_count": 98, + "execution_count": 32, "metadata": {}, "output_type": "execute_result" } @@ -1123,7 +1123,7 @@ }, { "cell_type": "code", - "execution_count": 99, + "execution_count": 33, "id": "eaadb4c0-60ef-4319-a959-297a972c0b27", "metadata": {}, "outputs": [ @@ -1133,7 +1133,7 @@ "array([0.078 , 0.023 , 0.0066])" ] }, - "execution_count": 99, + "execution_count": 33, "metadata": {}, "output_type": "execute_result" } @@ -1201,7 +1201,7 @@ }, { "cell_type": "code", - "execution_count": 100, + "execution_count": 34, "id": "991fe548-ab8e-4e0f-acd9-630d6ca73ab1", "metadata": {}, "outputs": [], @@ -1215,7 +1215,7 @@ }, { "cell_type": "code", - "execution_count": 101, + "execution_count": 35, "id": "69d43738-e2bb-4b52-8b0c-3cefcc0dd22a", "metadata": {}, "outputs": [ @@ -1225,7 +1225,7 @@ "array([ 1., -4.])" ] }, - "execution_count": 101, + "execution_count": 35, "metadata": {}, "output_type": "execute_result" } @@ -1247,7 +1247,7 @@ }, { "cell_type": "code", - "execution_count": 102, + "execution_count": 36, "id": "39186952-2fce-4950-9e9b-adb856c7db79", "metadata": {}, "outputs": [ @@ -1260,7 +1260,7 @@ " array([14.58924398, 2.27023349]))" ] }, - "execution_count": 102, + "execution_count": 36, "metadata": {}, "output_type": "execute_result" } @@ -1279,7 +1279,7 @@ }, { "cell_type": "code", - "execution_count": 103, + "execution_count": 37, "id": "a1a798c8-dcd6-41d1-8a85-a4946d10c651", "metadata": {}, "outputs": [ @@ -1289,7 +1289,7 @@ "np.float64(-2375.9999999999995)" ] }, - "execution_count": 103, + "execution_count": 37, "metadata": {}, "output_type": "execute_result" } @@ -1363,7 +1363,7 @@ }, { "cell_type": "code", - "execution_count": 104, + "execution_count": 38, "id": "10e8fac0-9340-4b3d-86ef-9bf26708c821", "metadata": {}, "outputs": [], @@ -1374,7 +1374,7 @@ }, { "cell_type": "code", - "execution_count": 105, + "execution_count": 39, "id": "37c33419-d377-47f2-a23d-fb7260181940", "metadata": {}, "outputs": [ @@ -1389,7 +1389,7 @@ " [3.5e-05, 1.0e+00]])" ] }, - "execution_count": 105, + "execution_count": 39, "metadata": {}, "output_type": "execute_result" } @@ -1414,7 +1414,7 @@ }, { "cell_type": "code", - "execution_count": 106, + "execution_count": 40, "id": "b255918d-20a0-4b10-ad58-4d1463d577cc", "metadata": {}, "outputs": [], @@ -1426,7 +1426,7 @@ }, { "cell_type": "code", - "execution_count": 107, + "execution_count": 41, "id": "a5c15f7c-5120-4f0c-bd35-0f1c168f411c", "metadata": {}, "outputs": [ @@ -1436,7 +1436,7 @@ "array([ 1.55886203e+04, -5.45355390e-06])" ] }, - "execution_count": 107, + "execution_count": 41, "metadata": {}, "output_type": "execute_result" } @@ -1455,7 +1455,7 @@ }, { "cell_type": "code", - "execution_count": 108, + "execution_count": 42, "id": "5bdd8c8d-a1f7-4b57-af8c-ad2f0c881ea6", "metadata": {}, "outputs": [], @@ -1465,7 +1465,7 @@ }, { "cell_type": "code", - "execution_count": 109, + "execution_count": 43, "id": "3d49ff54-f327-4d7f-8181-dcf045f4d7b1", "metadata": {}, "outputs": [ @@ -1480,11 +1480,11 @@ " \n", " \n", " \n", - " 2024-06-29T08:28:38.640874\n", + " 2024-10-12T08:43:55.423051\n", " image/svg+xml\n", " \n", " \n", - " Matplotlib v3.9.0, https://matplotlib.org/\n", + " Matplotlib v3.9.1, https://matplotlib.org/\n", " \n", " \n", " \n", @@ -1515,12 +1515,12 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1565,7 +1565,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1607,7 +1607,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1638,7 +1638,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1653,7 +1653,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1694,7 +1694,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1709,7 +1709,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1758,7 +1758,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1773,7 +1773,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -2069,12 +2069,12 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -2089,7 +2089,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -2104,7 +2104,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -2119,7 +2119,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -2134,7 +2134,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -2149,7 +2149,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -2164,7 +2164,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -2336,11 +2336,11 @@ "L 312.523068 73.056 \n", "L 348.595795 46.176 \n", "L 384.668523 19.296 \n", - "\" clip-path=\"url(#p27558adcc2)\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n", + "\" clip-path=\"url(#p40f852c137)\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n", " \n", " \n", " \n", - " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -2498,7 +2498,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -2563,7 +2563,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -2653,7 +2653,7 @@ }, { "cell_type": "code", - "execution_count": 110, + "execution_count": 44, "id": "31adcf78-10ff-485c-84fc-17554485c010", "metadata": {}, "outputs": [ @@ -2663,7 +2663,7 @@ "array([0.25, 1.25, 0.75])" ] }, - "execution_count": 110, + "execution_count": 44, "metadata": {}, "output_type": "execute_result" } @@ -2686,7 +2686,7 @@ }, { "cell_type": "code", - "execution_count": 111, + "execution_count": 45, "id": "39b5d2e2-3695-4d02-b357-cd44615414e4", "metadata": {}, "outputs": [ @@ -2696,7 +2696,7 @@ "array([1., 5., 3., 4.])" ] }, - "execution_count": 111, + "execution_count": 45, "metadata": {}, "output_type": "execute_result" } @@ -2754,7 +2754,7 @@ }, { "cell_type": "code", - "execution_count": 112, + "execution_count": 46, "id": "87e2fe86-6e8b-4f5e-aa83-9ba8b628ab46", "metadata": {}, "outputs": [ @@ -2765,7 +2765,7 @@ " [ 0.89442719, 0.89442719]]))" ] }, - "execution_count": 112, + "execution_count": 46, "metadata": {}, "output_type": "execute_result" } @@ -2789,7 +2789,7 @@ }, { "cell_type": "code", - "execution_count": 113, + "execution_count": 47, "id": "e6eeca17-2598-42ae-bfc4-fd5a09e7fe44", "metadata": {}, "outputs": [ @@ -2800,7 +2800,7 @@ " [0. -0.70710678j, 0. +0.70710678j]]))" ] }, - "execution_count": 113, + "execution_count": 47, "metadata": {}, "output_type": "execute_result" } @@ -2826,7 +2826,7 @@ }, { "cell_type": "code", - "execution_count": 114, + "execution_count": 48, "id": "6510788b-b716-4431-a253-25c3e13e317a", "metadata": {}, "outputs": [], @@ -2836,7 +2836,7 @@ }, { "cell_type": "code", - "execution_count": 115, + "execution_count": 49, "id": "34a15656-1e4a-492b-a542-5ca7a7fc9f51", "metadata": {}, "outputs": [], @@ -2847,7 +2847,7 @@ }, { "cell_type": "code", - "execution_count": 116, + "execution_count": 50, "id": "3e2705ea-f482-41b9-9731-97bdafdc3682", "metadata": {}, "outputs": [ @@ -2860,7 +2860,7 @@ "sqrt(6)*r*exp(-r/2)/12" ] }, - "execution_count": 116, + "execution_count": 50, "metadata": {}, "output_type": "execute_result" } @@ -2879,7 +2879,7 @@ }, { "cell_type": "code", - "execution_count": 117, + "execution_count": 51, "id": "c992a402-b884-4825-b5ab-15470ba8cc32", "metadata": {}, "outputs": [], @@ -2897,7 +2897,7 @@ }, { "cell_type": "code", - "execution_count": 118, + "execution_count": 52, "id": "f6ffbb76-4432-485f-a380-fcfbae783079", "metadata": {}, "outputs": [ @@ -2907,7 +2907,7 @@ "np.float64(0.07948602207520471)" ] }, - "execution_count": 118, + "execution_count": 52, "metadata": {}, "output_type": "execute_result" } @@ -2938,7 +2938,7 @@ }, { "cell_type": "code", - "execution_count": 119, + "execution_count": 53, "id": "4bec5f0b-b094-4ed4-8fa2-a324add853c0", "metadata": {}, "outputs": [ @@ -2951,7 +2951,7 @@ "-sqrt(6)*r*exp(-r/2)/24 + sqrt(6)*exp(-r/2)/12" ] }, - "execution_count": 119, + "execution_count": 53, "metadata": {}, "output_type": "execute_result" } @@ -2963,7 +2963,7 @@ }, { "cell_type": "code", - "execution_count": 120, + "execution_count": 54, "id": "49b5e691-35cd-4ce6-a9c7-fc5e4d9424e6", "metadata": {}, "outputs": [], @@ -2981,7 +2981,7 @@ }, { "cell_type": "code", - "execution_count": 121, + "execution_count": 55, "id": "d9a39af3-6e76-46c8-93a7-24c4b0f10d13", "metadata": {}, "outputs": [ @@ -2996,11 +2996,11 @@ " \n", " \n", " \n", - " 2024-06-29T08:28:38.719611\n", + " 2024-10-12T08:43:55.543983\n", " image/svg+xml\n", " \n", " \n", - " Matplotlib v3.9.0, https://matplotlib.org/\n", + " Matplotlib v3.9.1, https://matplotlib.org/\n", " \n", " \n", " \n", @@ -3031,12 +3031,12 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -3081,7 +3081,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -3147,7 +3147,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -3162,7 +3162,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -3189,7 +3189,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -3221,7 +3221,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -3237,7 +3237,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -3253,7 +3253,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -3269,7 +3269,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -3504,12 +3504,12 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -3525,7 +3525,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -3541,7 +3541,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -3578,7 +3578,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -3626,7 +3626,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -3683,7 +3683,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -3699,7 +3699,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -3715,7 +3715,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4049,11 +4049,11 @@ "L 384.472345 260.857991 \n", "L 387.751684 260.889051 \n", "L 391.031023 260.917447 \n", - "\" clip-path=\"url(#p658c2b45f2)\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n", + "\" clip-path=\"url(#p0c1eacfc93)\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n", " \n", " \n", " \n", - " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -4092,7 +4092,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4140,7 +4140,7 @@ }, { "cell_type": "code", - "execution_count": 122, + "execution_count": 56, "id": "263bdbfe-eba2-4efd-9893-8e012485f5aa", "metadata": {}, "outputs": [ @@ -4153,7 +4153,7 @@ "0.0526530173437111" ] }, - "execution_count": 122, + "execution_count": 56, "metadata": {}, "output_type": "execute_result" } @@ -4172,7 +4172,7 @@ }, { "cell_type": "code", - "execution_count": 123, + "execution_count": 57, "id": "78036562-8e78-4535-96b2-108efafc3aeb", "metadata": {}, "outputs": [ @@ -4185,7 +4185,7 @@ "0.970747311923039" ] }, - "execution_count": 123, + "execution_count": 57, "metadata": {}, "output_type": "execute_result" } @@ -4219,7 +4219,7 @@ }, { "cell_type": "code", - "execution_count": 124, + "execution_count": 58, "id": "4a6f3003-d78d-4dd4-b195-93b58f5523b2", "metadata": {}, "outputs": [ @@ -4278,7 +4278,7 @@ " [4.90000000e+01, 4.81957300e-03]])" ] }, - "execution_count": 124, + "execution_count": 58, "metadata": {}, "output_type": "execute_result" } @@ -4298,7 +4298,7 @@ }, { "cell_type": "code", - "execution_count": 125, + "execution_count": 59, "id": "2f2d8605-b9c7-4c7b-9298-17738da25c6c", "metadata": {}, "outputs": [ @@ -4313,11 +4313,11 @@ " \n", " \n", " \n", - " 2024-06-29T08:28:38.814276\n", + " 2024-10-12T08:43:55.628351\n", " image/svg+xml\n", " \n", " \n", - " Matplotlib v3.9.0, https://matplotlib.org/\n", + " Matplotlib v3.9.1, https://matplotlib.org/\n", " \n", " \n", " \n", @@ -4348,12 +4348,12 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4389,7 +4389,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4419,7 +4419,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4459,7 +4459,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4507,7 +4507,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4542,7 +4542,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4585,12 +4585,12 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4615,7 +4615,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4631,7 +4631,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4647,7 +4647,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4663,7 +4663,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4679,7 +4679,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4695,7 +4695,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4760,9 +4760,9 @@ "L 364.101692 253.165085 \n", "L 370.727295 258.156319 \n", "L 377.352898 260.14364 \n", - "\" clip-path=\"url(#pf6cdd41495)\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n", + "\" clip-path=\"url(#p11a0d4d58f)\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n", " \n", - " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -4850,7 +4850,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4878,7 +4878,7 @@ }, { "cell_type": "code", - "execution_count": 126, + "execution_count": 60, "id": "8aa6b1ab-e077-4e39-a08b-851cb2b9b1b9", "metadata": {}, "outputs": [ @@ -4893,11 +4893,11 @@ " \n", " \n", " \n", - " 2024-06-29T08:28:38.912706\n", + " 2024-10-12T08:43:55.659438\n", " image/svg+xml\n", " \n", " \n", - " Matplotlib v3.9.0, https://matplotlib.org/\n", + " Matplotlib v3.9.1, https://matplotlib.org/\n", " \n", " \n", " \n", @@ -4928,12 +4928,12 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4969,7 +4969,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4999,7 +4999,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5039,7 +5039,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5087,7 +5087,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5122,7 +5122,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5165,12 +5165,12 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5195,7 +5195,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5211,7 +5211,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5227,7 +5227,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5243,7 +5243,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5259,7 +5259,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5275,7 +5275,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5340,9 +5340,9 @@ "L 364.101692 253.165085 \n", "L 370.727295 258.156319 \n", "L 377.352898 260.14364 \n", - "\" clip-path=\"url(#p655157fc50)\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n", + "\" clip-path=\"url(#p0ef4e4d14e)\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n", " \n", - " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -5468,7 +5468,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5500,7 +5500,7 @@ }, { "cell_type": "code", - "execution_count": 127, + "execution_count": 61, "id": "634f99eb-7022-4927-b9f2-6d581c3d4a02", "metadata": { "editable": true, @@ -5523,11 +5523,11 @@ " \n", " \n", " \n", - " 2024-06-29T08:28:38.945057\n", + " 2024-10-12T08:43:55.760454\n", " image/svg+xml\n", " \n", " \n", - " Matplotlib v3.9.0, https://matplotlib.org/\n", + " Matplotlib v3.9.1, https://matplotlib.org/\n", " \n", " \n", " \n", @@ -5558,12 +5558,12 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5599,7 +5599,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5629,7 +5629,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5669,7 +5669,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5717,7 +5717,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5752,7 +5752,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5795,12 +5795,12 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5825,7 +5825,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5841,7 +5841,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5857,7 +5857,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5873,7 +5873,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5889,7 +5889,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5905,7 +5905,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5970,11 +5970,11 @@ "L 364.101692 268.28321 \n", "L 370.727295 273.274444 \n", "L 377.352898 275.261765 \n", - "\" clip-path=\"url(#p469bc67fcd)\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n", + "\" clip-path=\"url(#pef010ad79e)\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n", " \n", " \n", " \n", - " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -6366,7 +6366,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -6402,7 +6402,7 @@ }, { "cell_type": "code", - "execution_count": 128, + "execution_count": 62, "id": "34d3b66d-22ca-4b6d-9284-d89ddeadab98", "metadata": { "editable": true, @@ -6425,11 +6425,11 @@ " \n", " \n", " \n", - " 2024-06-29T08:28:38.977522\n", + " 2024-10-12T08:43:55.791945\n", " image/svg+xml\n", " \n", " \n", - " Matplotlib v3.9.0, https://matplotlib.org/\n", + " Matplotlib v3.9.1, https://matplotlib.org/\n", " \n", " \n", " \n", @@ -6460,12 +6460,12 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -6501,7 +6501,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -6531,7 +6531,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -6571,7 +6571,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -6619,7 +6619,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -6654,7 +6654,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -6697,12 +6697,12 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -6727,7 +6727,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -6743,7 +6743,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -6759,7 +6759,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -6775,7 +6775,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -6791,7 +6791,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -6807,7 +6807,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -7037,11 +7037,11 @@ "L 376.267097 274.911801 \n", "L 377.352898 275.267245 \n", "L 377.352898 275.267245 \n", - "\" clip-path=\"url(#p81b41555aa)\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n", + "\" clip-path=\"url(#p241d94d42d)\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n", " \n", " \n", " \n", - " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -7473,7 +7473,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -7514,12 +7514,12 @@ "id": "7061419d-abda-4995-8e1c-7ec66ec15028", "metadata": {}, "source": [ - "Both functions take the `y` and `x` values in this order. Below, the trapezoidal approach is employed." + "Below, both the trapezoidal and Simpson's methods are demonstrated. Note that the `trapezoid(x, y)` function takes both the $x$ and $y$ values as required, positional arguments while `simpson(y, x=)` only requires the $y$ data but will optionally accept the $x$ data as a keyword argument." ] }, { "cell_type": "code", - "execution_count": 129, + "execution_count": 63, "id": "7e9b49f0-aaa8-425d-83ca-95f2da3b6fd2", "metadata": {}, "outputs": [ @@ -7534,14 +7534,39 @@ } ], "source": [ - "from scipy.integrate import trapezoid\n", + "from scipy.integrate import trapezoid, simpson\n", "\n", + "# trapezoid method\n", "for peak in i:\n", " x = nmr[peak[0]:peak[1], 0]\n", " y = nmr[peak[0]:peak[1], 1]\n", " print(trapezoid(y, x))" ] }, + { + "cell_type": "code", + "execution_count": 65, + "id": "2c2fa347-8f7d-4831-ab82-0b27137beb4a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.0405229256666666\n", + "1.5661107306666666\n", + "0.5839565783333334\n" + ] + } + ], + "source": [ + "# simpson method (note the different arguments)\n", + "for peak in i:\n", + " x = nmr[peak[0]:peak[1], 0]\n", + " y = nmr[peak[0]:peak[1], 1]\n", + " print(simpson(y, x=x))" + ] + }, { "cell_type": "markdown", "id": "e9c36601-296f-4528-8128-9b482e683c0a", @@ -7582,7 +7607,7 @@ }, { "cell_type": "code", - "execution_count": 130, + "execution_count": null, "id": "2f8586fa-145b-4987-93e5-abcdbd40d71a", "metadata": {}, "outputs": [], @@ -7601,7 +7626,7 @@ }, { "cell_type": "code", - "execution_count": 131, + "execution_count": null, "id": "a6348e21-9c4b-49de-a898-7c2a9e6272bc", "metadata": {}, "outputs": [], @@ -7624,875 +7649,10 @@ }, { "cell_type": "code", - "execution_count": 132, + "execution_count": null, "id": "e7d5f69a-3a20-4d83-a9ba-f7c06a35ac6d", "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " 2024-06-29T08:28:39.022541\n", - " image/svg+xml\n", - " \n", - " \n", - " Matplotlib v3.9.0, https://matplotlib.org/\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n" - ], - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "plt.plot(t, A_t, 'o-', label='A')\n", "plt.plot(t, P_t, 'p-', label='P')\n", diff --git a/_sources/notebooks/chapter_14/chap_14_notebook.ipynb b/_sources/notebooks/chapter_14/chap_14_notebook.ipynb index 68e0d63e..cb64c2e3 100644 --- a/_sources/notebooks/chapter_14/chap_14_notebook.ipynb +++ b/_sources/notebooks/chapter_14/chap_14_notebook.ipynb @@ -244,11 +244,11 @@ " \n", " \n", " \n", - " 2024-06-29T08:34:22.025505\n", + " 2024-10-12T08:25:40.539933\n", " image/svg+xml\n", " \n", " \n", - " Matplotlib v3.9.0, https://matplotlib.org/\n", + " Matplotlib v3.9.1, https://matplotlib.org/\n", " \n", " \n", " \n", @@ -279,12 +279,12 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -323,7 +323,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -370,7 +370,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -404,7 +404,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -444,7 +444,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -827,12 +827,12 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -855,7 +855,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -869,7 +869,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -905,7 +905,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -918,7 +918,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -931,7 +931,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1129,11 +1129,11 @@ "L 338.858126 160.742922 \n", "L 383.507585 160.511345 \n", "L 383.507585 160.511345 \n", - "\" clip-path=\"url(#p4159674726)\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n", + "\" clip-path=\"url(#p2708726b33)\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n", " \n", " \n", " \n", - " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -1256,7 +1256,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1275,7 +1275,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1344,11 +1344,11 @@ " \n", " \n", " \n", - " 2024-06-29T08:34:22.373153\n", + " 2024-10-12T08:25:40.962905\n", " image/svg+xml\n", " \n", " \n", - " Matplotlib v3.9.0, https://matplotlib.org/\n", + " Matplotlib v3.9.1, https://matplotlib.org/\n", " \n", " \n", " \n", @@ -1379,12 +1379,12 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1420,7 +1420,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1460,7 +1460,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1490,7 +1490,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1504,7 +1504,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1544,7 +1544,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1558,7 +1558,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1825,12 +1825,12 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1855,7 +1855,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1871,7 +1871,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1908,7 +1908,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1956,7 +1956,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -2013,7 +2013,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -2386,7 +2386,7 @@ "L 414.40615 272.154694 \n", "L 421.82625 272.43708 \n", "L 421.82625 272.43708 \n", - "\" clip-path=\"url(#pafd054d50d)\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n", + "\" clip-path=\"url(#p0097e3c606)\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -2539,11 +2539,11 @@ " \n", " \n", " \n", - " 2024-06-29T08:34:22.417625\n", + " 2024-10-12T08:25:41.006002\n", " image/svg+xml\n", " \n", " \n", - " Matplotlib v3.9.0, https://matplotlib.org/\n", + " Matplotlib v3.9.1, https://matplotlib.org/\n", " \n", " \n", " \n", @@ -2574,12 +2574,12 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -2615,7 +2615,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -2655,7 +2655,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -2685,7 +2685,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -2699,7 +2699,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -2739,7 +2739,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -2753,7 +2753,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -3020,12 +3020,12 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -3050,7 +3050,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -3066,7 +3066,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -3103,7 +3103,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -3151,7 +3151,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -3208,7 +3208,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -3581,11 +3581,11 @@ "L 414.40615 272.154694 \n", "L 421.82625 272.43708 \n", "L 421.82625 272.43708 \n", - "\" clip-path=\"url(#p3c42403e76)\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n", + "\" clip-path=\"url(#p93286b4848)\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n", " \n", " \n", " \n", - " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -3738,7 +3738,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -3804,7 +3804,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4068,11 +4068,11 @@ " \n", " \n", " \n", - " 2024-06-29T08:34:22.537138\n", + " 2024-10-12T08:25:41.058626\n", " image/svg+xml\n", " \n", " \n", - " Matplotlib v3.9.0, https://matplotlib.org/\n", + " Matplotlib v3.9.1, https://matplotlib.org/\n", " \n", " \n", " \n", @@ -4103,12 +4103,12 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4144,7 +4144,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4183,7 +4183,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4217,7 +4217,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4262,7 +4262,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4316,7 +4316,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4348,12 +4348,12 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4366,7 +4366,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4406,7 +4406,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4420,7 +4420,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4434,7 +4434,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4448,7 +4448,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4462,7 +4462,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4510,7 +4510,7 @@ " \n", " \n", " \n", - " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -4548,66 +4548,66 @@ "L 302.881364 83.322717 \n", "L 335.346818 62.013971 \n", "L 367.812273 40.705226 \n", - "\" clip-path=\"url(#p3c74e2cfa2)\" style=\"fill: none; stroke: #ff7f0e; stroke-width: 1.5; stroke-linecap: square\"/>\n", + "\" clip-path=\"url(#p8d78e26103)\" style=\"fill: none; stroke: #ff7f0e; stroke-width: 1.5; stroke-linecap: square\"/>\n", " \n", " \n", " \n", + "\" clip-path=\"url(#p8d78e26103)\" style=\"fill: none; stroke-dasharray: 1.5,2.475; stroke-dashoffset: 0; stroke: #008000; stroke-width: 1.5\"/>\n", " \n", " \n", " \n", + "\" clip-path=\"url(#p8d78e26103)\" style=\"fill: none; stroke-dasharray: 1.5,2.475; stroke-dashoffset: 0; stroke: #008000; stroke-width: 1.5\"/>\n", " \n", " \n", " \n", + "\" clip-path=\"url(#p8d78e26103)\" style=\"fill: none; stroke-dasharray: 1.5,2.475; stroke-dashoffset: 0; stroke: #008000; stroke-width: 1.5\"/>\n", " \n", " \n", " \n", + "\" clip-path=\"url(#p8d78e26103)\" style=\"fill: none; stroke-dasharray: 1.5,2.475; stroke-dashoffset: 0; stroke: #008000; stroke-width: 1.5\"/>\n", " \n", " \n", " \n", + "\" clip-path=\"url(#p8d78e26103)\" style=\"fill: none; stroke-dasharray: 1.5,2.475; stroke-dashoffset: 0; stroke: #008000; stroke-width: 1.5\"/>\n", " \n", " \n", " \n", + "\" clip-path=\"url(#p8d78e26103)\" style=\"fill: none; stroke-dasharray: 1.5,2.475; stroke-dashoffset: 0; stroke: #008000; stroke-width: 1.5\"/>\n", " \n", " \n", " \n", + "\" clip-path=\"url(#p8d78e26103)\" style=\"fill: none; stroke-dasharray: 1.5,2.475; stroke-dashoffset: 0; stroke: #008000; stroke-width: 1.5\"/>\n", " \n", " \n", " \n", + "\" clip-path=\"url(#p8d78e26103)\" style=\"fill: none; stroke-dasharray: 1.5,2.475; stroke-dashoffset: 0; stroke: #008000; stroke-width: 1.5\"/>\n", " \n", " \n", " \n", + "\" clip-path=\"url(#p8d78e26103)\" style=\"fill: none; stroke-dasharray: 1.5,2.475; stroke-dashoffset: 0; stroke: #008000; stroke-width: 1.5\"/>\n", " \n", " \n", " \n", + "\" clip-path=\"url(#p8d78e26103)\" style=\"fill: none; stroke-dasharray: 1.5,2.475; stroke-dashoffset: 0; stroke: #008000; stroke-width: 1.5\"/>\n", " \n", " \n", " \n", + "\" clip-path=\"url(#p8d78e26103)\" style=\"fill: none; stroke-dasharray: 1.5,2.475; stroke-dashoffset: 0; stroke: #008000; stroke-width: 1.5\"/>\n", " \n", " \n", " \n", + "\" clip-path=\"url(#p8d78e26103)\" style=\"fill: none; stroke-dasharray: 1.85,0.8; stroke-dashoffset: 0; stroke: #008000; stroke-width: 0.5\"/>\n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4996,7 +4996,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5241,11 +5241,11 @@ " \n", " \n", " \n", - " 2024-06-29T08:34:22.605066\n", + " 2024-10-12T08:25:41.107313\n", " image/svg+xml\n", " \n", " \n", - " Matplotlib v3.9.0, https://matplotlib.org/\n", + " Matplotlib v3.9.1, https://matplotlib.org/\n", " \n", " \n", " \n", @@ -5276,12 +5276,12 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5317,7 +5317,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5346,7 +5346,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5385,7 +5385,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5432,7 +5432,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5466,7 +5466,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5506,7 +5506,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5551,7 +5551,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5576,7 +5576,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5725,12 +5725,12 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5758,7 +5758,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5777,7 +5777,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5796,7 +5796,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5815,7 +5815,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5834,7 +5834,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5853,7 +5853,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -5872,7 +5872,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -6052,7 +6052,7 @@ " \n", " \n", " \n", - " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -6110,7 +6110,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -6145,7 +6145,7 @@ { "data": { "text/plain": [ - "array([1.22558323, 0.50705095, 4.49294906])" + "array([1.22558323, 0.50705095, 4.49294908])" ] }, "execution_count": 25, @@ -6181,11 +6181,11 @@ " \n", " \n", " \n", - " 2024-06-29T08:34:22.648026\n", + " 2024-10-12T08:25:41.152783\n", " image/svg+xml\n", " \n", " \n", - " Matplotlib v3.9.0, https://matplotlib.org/\n", + " Matplotlib v3.9.1, https://matplotlib.org/\n", " \n", " \n", " \n", @@ -6216,12 +6216,12 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -6257,7 +6257,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -6296,7 +6296,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -6330,7 +6330,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -6375,7 +6375,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -6524,12 +6524,12 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -6556,7 +6556,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -6590,7 +6590,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -6608,7 +6608,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -6660,7 +6660,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -6678,7 +6678,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -6723,7 +6723,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -6741,7 +6741,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -6932,7 +6932,7 @@ " \n", " \n", " \n", - " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -6977,10 +6977,10 @@ "L 102.291088 56.202655 \n", "L 106.156023 51.458728 \n", "L 110.020958 47.754162 \n", - "L 113.885893 44.781105 \n", + "L 113.885893 44.781106 \n", "L 117.750828 42.342361 \n", "L 121.615763 40.305765 \n", - "L 125.480698 38.579424 \n", + "L 125.480698 38.579425 \n", "L 129.345633 37.09746 \n", "L 133.210568 35.811412 \n", "L 137.075503 34.684838 \n", @@ -6988,10 +6988,10 @@ "L 144.805373 32.804553 \n", "L 148.670308 32.011856 \n", "L 152.535244 31.297923 \n", - "L 156.400179 30.651569 \n", + "L 156.400179 30.65157 \n", "L 160.265114 30.063634 \n", "L 164.130049 29.52654 \n", - "L 167.994984 29.033964 \n", + "L 167.994984 29.033965 \n", "L 171.859919 28.580594 \n", "L 175.724854 28.161926 \n", "L 179.589789 27.774124 \n", @@ -7018,7 +7018,7 @@ "L 260.753425 23.352905 \n", "L 264.61836 23.236649 \n", "L 268.483295 23.125031 \n", - "L 272.348231 23.017779 \n", + "L 272.348231 23.01778 \n", "L 276.213166 22.914643 \n", "L 280.078101 22.815389 \n", "L 283.943036 22.719802 \n", @@ -7053,7 +7053,7 @@ "L 396.026153 20.94817 \n", "L 399.891088 20.908864 \n", "L 403.756023 20.870482 \n", - "\" clip-path=\"url(#p67f4d52c6a)\" style=\"fill: none; stroke: #ff7f0e; stroke-width: 1.5; stroke-linecap: square\"/>\n", + "\" clip-path=\"url(#p726651bae5)\" style=\"fill: none; stroke: #ff7f0e; stroke-width: 1.5; stroke-linecap: square\"/>\n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -7363,7 +7363,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -7508,7 +7508,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 40, "metadata": {}, "outputs": [ { @@ -7522,11 +7522,11 @@ " \n", " \n", " \n", - " 2024-06-29T08:34:22.699805\n", + " 2024-10-12T08:28:30.850861\n", " image/svg+xml\n", " \n", " \n", - " Matplotlib v3.9.0, https://matplotlib.org/\n", + " Matplotlib v3.9.1, https://matplotlib.org/\n", " \n", " \n", " \n", @@ -7557,12 +7557,12 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -7619,7 +7619,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -7661,7 +7661,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -7708,7 +7708,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -7735,7 +7735,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -8038,12 +8038,12 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -8067,7 +8067,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -8108,7 +8108,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -8123,7 +8123,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -8138,7 +8138,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -8620,7 +8620,7 @@ "L 383.225614 255.84 \n", "L 384.668523 255.84 \n", "L 384.668523 255.84 \n", - "\" clip-path=\"url(#p0c93d233e4)\" style=\"fill: none; stroke-dasharray: 1.5,2.475; stroke-dashoffset: 0; stroke: #1f77b4; stroke-width: 1.5\"/>\n", + "\" clip-path=\"url(#pbd4fda175a)\" style=\"fill: none; stroke-dasharray: 1.5,2.475; stroke-dashoffset: 0; stroke: #1f77b4; stroke-width: 1.5\"/>\n", " \n", " \n", " \n", + "\" clip-path=\"url(#pbd4fda175a)\" style=\"fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #bcbd22; stroke-width: 1.5\"/>\n", " \n", " \n", " \n", + "\" clip-path=\"url(#pbd4fda175a)\" style=\"fill: none; stroke-dasharray: 9.6,2.4,1.5,2.4; stroke-dashoffset: 0; stroke: #d62728; stroke-width: 1.5\"/>\n", " \n", " \n", " \n", + "\" clip-path=\"url(#pbd4fda175a)\" style=\"fill: none; stroke: #7f7f7f; stroke-width: 1.5; stroke-linecap: square\"/>\n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -9635,11 +9635,11 @@ " \n", " \n", " \n", - " 2024-06-29T08:34:22.761092\n", + " 2024-10-12T08:25:41.316120\n", " image/svg+xml\n", " \n", " \n", - " Matplotlib v3.9.0, https://matplotlib.org/\n", + " Matplotlib v3.9.1, https://matplotlib.org/\n", " \n", " \n", " \n", @@ -9670,12 +9670,12 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -9711,7 +9711,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -9751,7 +9751,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -9781,7 +9781,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -9795,7 +9795,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -9835,7 +9835,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -9849,7 +9849,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -9897,7 +9897,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -10130,12 +10130,12 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -10187,7 +10187,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -10204,7 +10204,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -10220,7 +10220,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -10236,7 +10236,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -10252,7 +10252,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -10300,7 +10300,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -10357,7 +10357,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -10373,7 +10373,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -10421,7 +10421,7 @@ " \n", " \n", + "\" clip-path=\"url(#p6101a614ae)\" style=\"fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #ff0000; stroke-width: 1.5\"/>\n", " \n", " \n", " \n", + "\" clip-path=\"url(#p6101a614ae)\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -10881,11 +10881,11 @@ " \n", " \n", " \n", - " 2024-06-29T08:34:22.877610\n", + " 2024-10-12T08:25:41.370070\n", " image/svg+xml\n", " \n", " \n", - " Matplotlib v3.9.0, https://matplotlib.org/\n", + " Matplotlib v3.9.1, https://matplotlib.org/\n", " \n", " \n", " \n", @@ -10916,12 +10916,12 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -10957,7 +10957,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -10997,7 +10997,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -11027,7 +11027,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -11041,7 +11041,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -11081,7 +11081,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -11095,7 +11095,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -11143,7 +11143,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -11376,12 +11376,12 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -11433,7 +11433,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -11450,7 +11450,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -11466,7 +11466,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -11482,7 +11482,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -11498,7 +11498,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -11546,7 +11546,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -11603,7 +11603,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -11619,7 +11619,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -11667,7 +11667,7 @@ " \n", " \n", + "\" clip-path=\"url(#p74e34e44eb)\" style=\"fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #ff0000; stroke-width: 1.5\"/>\n", " \n", " \n", " \n", + "\" clip-path=\"url(#p74e34e44eb)\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n", " \n", " \n", " \n", - " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -12060,7 +12060,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -12091,7 +12091,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -12109,7 +12109,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", diff --git a/notebooks/appendix_00/appendix_00_notebook.html b/notebooks/appendix_00/appendix_00_notebook.html index 3cfe8e8d..1577a8e2 100644 --- a/notebooks/appendix_00/appendix_00_notebook.html +++ b/notebooks/appendix_00/appendix_00_notebook.html @@ -59,7 +59,7 @@ - + @@ -438,7 +438,7 @@

Contents

from nmrsim import Multiplet from nmrsim.plt import mplplot -from ipywidgets import interact, interact_manual, FloatSlider, FloatRangeSlider, RadioButtons +from ipywidgets import interact, interact_manual, FloatSlider, FloatRangeSlider, RadioButtons, fixed @@ -465,7 +465,7 @@

Basic Widgets -../../_images/873c7873774371037fc89709e1bb24f95c75ca857a746b47845796c125f9d75e.svg +../../_images/0a007c1c23cf54de7867895ea0fd4818610da5f54d95e2612b8c007d4aa7ca42.svg

To make this function interactive, we will use the interact() function from ipywidgets which takes our function above as a required, positional argument. We also need to provide initial values for our two parameters as keyword arguments as demonstrated below. When we run our code, two sliders appear above our graph. As noted above, the sliders do not affect the plot in this static book but would automatically change the graph if you run the code in your own Jupyter notebook.

@@ -483,7 +483,7 @@

Basic Widgets - +

The interact() function makes a guess at the ranges of values you might need for your parameters, but you can also explicitly define these by providing a tuple with minimum, maximum, and step size values in this order ((min, max, step)).

+

At this point, you may be wondering why you get slides versus any other type of widget. The interact() function automatically generates sliders for function arguments with numerical values. If the argument in interact() contains a list, a dropdown menu appears, a bool generates a check box, and a text argument produces a text box.

+ + +

If you want a value to be unchangeable by the widgets, wrap the desired value in the fixed() function as demonstrated below.

+
+
+
interact(plot_fid, nu=[1,2,3,4,5,6], T2=fixed(2));
+
+
+
+
+
@@ -524,7 +534,7 @@

Generating Widgets using Decorators - +

@@ -538,7 +548,7 @@

Customized Widgets - +

As a second example of a custom widget, we will create a slider with upper and lower limits using either FloatRangeSlider() or IntRangeSlider(). As you might guess, one is for float values and the other is for integers. It is important to note that these two widgets return two values in a tuple, so your function must be written to accept a two-valued tuple as an argument.

+

Slow Functions#

-

If your function is slow to run, you may not want it to execute every time the slider moves. There are two solutions to this. The first is to use the interact_manual() function which is a cousin of the interact() function except that your function only runs when you click the Run Interact button.

+

If your function is slow to run, you may not want it to execute every time a slider moves. There are two solutions to this. The first is to use the interact_manual() function which is a cousin of the interact() function except that your function only runs when you click the Run Interact button.

@@ -604,10 +614,10 @@

Simulating NMR Splitting Patterns -
[<matplotlib.lines.Line2D object at 0x1149a7590>]
+
[<matplotlib.lines.Line2D object at 0x114f7a950>]
 
-../../_images/6edb96ff8b1a50e058376a4444273d6bd182606452f76bc70dce3505f3463a1f.svg +../../_images/d4e97952c84ea010f180022093be613ac1357bc5d5efd2833202d5458e31fa22.svg

We can again feed our function into interact() which produces sliders because our parameters are all numbers.

@@ -618,7 +628,7 @@

Simulating NMR Splitting Patterns - +

We can change the widget type to pull-down menus like below.

+

diff --git a/notebooks/chapter_01/chap_01_notebook.html b/notebooks/chapter_01/chap_01_notebook.html index 2cf3e7bc..b0e51bf4 100644 --- a/notebooks/chapter_01/chap_01_notebook.html +++ b/notebooks/chapter_01/chap_01_notebook.html @@ -1772,7 +1772,7 @@

F-Strings
<>:1: SyntaxWarning: "is" with a literal. Did you mean "=="?
 <>:1: SyntaxWarning: "is" with a literal. Did you mean "=="?
-/var/folders/zy/7y6kpdbx6p1ffrp1vtxy3ttc0000gn/T/ipykernel_2760/1557232650.py:1: SyntaxWarning: "is" with a literal. Did you mean "=="?
+/var/folders/zy/7y6kpdbx6p1ffrp1vtxy3ttc0000gn/T/ipykernel_3261/1557232650.py:1: SyntaxWarning: "is" with a literal. Did you mean "=="?
   8 is 8.0
 
@@ -2506,7 +2506,7 @@

F-Strings

1.6.5 Tuples#

-

Tuples are another object type similar to lists except that they are immutable - that is to say, they cannot be changed once created. They look similar a list except that they use parentheses instead of square brackets. So what use is an unchangeable list-like object? There are times when you might want data inside your code, but you do not want to accidentally change it. Think of it as something similar to locking a file on your computer to avoid accidentally making modifications. While this features is not strictly necessary, it may be a prudent practice in some situation in case you make a mistake.

+

Tuples are another object type similar to lists except that they are immutable - that is to say, they cannot be changed once created. They look similar to a list except that they use parentheses instead of square brackets. So what use is an unchangeable list-like object? There are times when you might want data inside your code, but you do not want to accidentally change it. Think of it as something similar to locking a file on your computer to avoid accidentally making modifications. While this features is not strictly necessary, it may be a prudent practice in some situation in case you make a mistake.

Below is a tuple containing the energy in joules of the first five hydrogen atomic orbitals. There is no need to change this data in your code, so fixing it in a tuple makes sense. Indexing and slicing work exactly the same in tuples as they do in string and lists, so we can use this tuple to quickly calculate the energy difference between any pair of atomic orbitals.

diff --git a/notebooks/chapter_08/chap_08_notebook.html b/notebooks/chapter_08/chap_08_notebook.html index 14a0ed3f..6ef9d228 100644 --- a/notebooks/chapter_08/chap_08_notebook.html +++ b/notebooks/chapter_08/chap_08_notebook.html @@ -591,16 +591,16 @@

Contents

{'real': True,
- 'infinite': False,
- 'complex': True,
- 'commutative': True,
  'extended_real': True,
+ 'finite': True,
  'hermitian': True,
  'imaginary': False,
- 'finite': True,
+ 'infinite': False,
+ 'commutative': True,
+ 'complex': True,
  'nonnegative': True,
- 'negative': False,
  'extended_negative': False,
+ 'negative': False,
  'extended_nonnegative': True}
 
@@ -1323,7 +1323,7 @@

Contents

-../../_images/48a3d9d91b28ae3ad4b669ac7e7680b7ce784ad1c11b37ba39362b3c9900f7e5.svg +../../_images/4c84e532916e022f8aba273c382a24bfbebdbf7e99bbfc0885d8e3296a157b04.svg
@@ -1541,7 +1541,7 @@

Contents

-../../_images/cae09adb403ee7c756c1ca98bfd5a9c0efe42bd132769e3028521a6602d0c5e6.svg +../../_images/27dc3bdfa8579c39f917f3493b601fb9fb7ab07e828600a2eed71d3ba717f430.svg

The radius is in Bohrs (\(a_0\)) which is equal to approximately 0.53 angstroms.

@@ -1650,7 +1650,7 @@

Contents

-../../_images/4051ee125755eb726b25d71aa764b61bc3c5ed7af94d959dcd2dac1632b7015c.svg +../../_images/d8113ac034872781d86dda003ac764282490136c85c9639aa971c847b498f5f6.svg

Above is a plot of the peaks with respect to the index values (not ppm). To integrate under each of the triplet peaks, first we need the index values for the edges of each peak. Below is a list, i, that provides reasonable boundaries, and a plot is below with these edges marked in orange squares.

@@ -1665,19 +1665,19 @@

Contents

-../../_images/ae00537fec08c73304237c46c81cf730cec9fce350a9796394da0e3b2231f742.svg +../../_images/c824dd4d147e84b88b950f977b9fc613ab612197349e476cf7001dd50c0aad82.svg

Integrations under sampled data do not include the values between data points, so these regions are estimated based on assumptions. The trapezoid() function assumes that any data point between known points lies directly between the known data points (i.e., linear interpolation) as shown below by the blue lines.

-../../_images/a200e27abd5c2a4b77fb313aade28e076db3b189e29e0fb559efc9cb84b00207.svg +../../_images/f255f63adc09cfe45d57adc7d3c65ae0c40d0a5eb6fd8672870dfbb1ea7cf50a.svg

Alternatively, the simpson() function uses the Simpson’s rule which estimates the data between known points using quadratic interpolation shown below.

-../../_images/b829b2893797f235d974586d0aeb828c406a224b62e6bea2aa44dca3d3fec0eb.svg +../../_images/1eb16b67a39f3e475b38cf16a9af78164ec4ffd4ce527e35769126424acc1484.svg
-

Both functions take the y and x values in this order. Below, the trapezoidal approach is employed.

+

Below, both the trapezoidal and Simpson’s methods are demonstrated. Note that the trapezoid(x, y) function takes both the \(x\) and \(y\) values as required, positional arguments while simpson(y, x=) only requires the \(y\) data but will optionally accept the \(x\) data as a keyword argument.

-
from scipy.integrate import trapezoid
+
from scipy.integrate import trapezoid, simpson
 
+# trapezoid method
 for peak in i:
     x = nmr[peak[0]:peak[1], 0]
     y = nmr[peak[0]:peak[1], 1]
@@ -1707,6 +1708,24 @@ 

Contents

+
+
+
# simpson method (note the different arguments)
+for peak in i:
+    x = nmr[peak[0]:peak[1], 0]
+    y = nmr[peak[0]:peak[1], 1]
+    print(simpson(y, x=x))
+
+
+
+
+
1.0405229256666666
+1.5661107306666666
+0.5839565783333334
+
+
+
+

The three peaks have areas of approximately 2:3:1 ratio. Using Simpson’s rule here gives approximately the same result.

@@ -1756,7 +1775,7 @@

Contents

-../../_images/d300834a1f04f70aa65bf27e7204f4134461ecb353fcd6f700406d87b4b1eb07.svg +../../_images/8fc319368f9130b0ff9259a6046fb792680eb0670c61be8da6862229f41dcdcd.svg

This approach to kinetic simulations can be adapted to even more complex reactions which are demonstrated in section 9.1.4.

diff --git a/notebooks/chapter_14/chap_14_notebook.html b/notebooks/chapter_14/chap_14_notebook.html index c0f90301..2048856b 100644 --- a/notebooks/chapter_14/chap_14_notebook.html +++ b/notebooks/chapter_14/chap_14_notebook.html @@ -556,7 +556,7 @@

Contents

-../../_images/10dd5b517a6853d47bb9c503b67b7bb8b69c239e6ae50c4910384f8f3fb2f6f8.svg +../../_images/0df685179aeba295a1b6a879ccd44163261859e2a082f96727ca84060805b22e.svg