more revelations

This commit is contained in:
Valentin Boettcher 2021-11-19 21:10:43 +01:00
parent 44aa1acf8d
commit 4063a46509
9 changed files with 4907 additions and 1605 deletions

Binary file not shown.

File diff suppressed because it is too large Load diff

After

Width:  |  Height:  |  Size: 26 KiB

File diff suppressed because it is too large Load diff

After

Width:  |  Height:  |  Size: 48 KiB

View file

@ -40,7 +40,7 @@ z
<g id="matplotlib.axis_1">
<g id="xtick_1">
<g id="line2d_1">
<path clip-path="url(#pdffffd95b8)" d="M 60.063494 224.64
<path clip-path="url(#p86b8b9d1b9)" d="M 60.063494 224.64
L 60.063494 7.2
" style="fill:none;stroke:#ffffff;stroke-linecap:square;stroke-width:0.8;"/>
</g>
@ -48,10 +48,10 @@ L 60.063494 7.2
<defs>
<path d="M 0 0
L 0 3.5
" id="m824144fb13" style="stroke:#555555;stroke-width:0.8;"/>
" id="mac337ae488" style="stroke:#555555;stroke-width:0.8;"/>
</defs>
<g>
<use style="fill:#555555;stroke:#555555;stroke-width:0.8;" x="60.063494" xlink:href="#m824144fb13" y="224.64"/>
<use style="fill:#555555;stroke:#555555;stroke-width:0.8;" x="60.063494" xlink:href="#mac337ae488" y="224.64"/>
</g>
</g>
<g id="text_1">
@ -86,13 +86,13 @@ z
</g>
<g id="xtick_2">
<g id="line2d_3">
<path clip-path="url(#pdffffd95b8)" d="M 120.936222 224.64
<path clip-path="url(#p86b8b9d1b9)" d="M 120.936222 224.64
L 120.936222 7.2
" style="fill:none;stroke:#ffffff;stroke-linecap:square;stroke-width:0.8;"/>
</g>
<g id="line2d_4">
<g>
<use style="fill:#555555;stroke:#555555;stroke-width:0.8;" x="120.936222" xlink:href="#m824144fb13" y="224.64"/>
<use style="fill:#555555;stroke:#555555;stroke-width:0.8;" x="120.936222" xlink:href="#mac337ae488" y="224.64"/>
</g>
</g>
<g id="text_2">
@ -121,13 +121,13 @@ z
</g>
<g id="xtick_3">
<g id="line2d_5">
<path clip-path="url(#pdffffd95b8)" d="M 181.808949 224.64
<path clip-path="url(#p86b8b9d1b9)" d="M 181.808949 224.64
L 181.808949 7.2
" style="fill:none;stroke:#ffffff;stroke-linecap:square;stroke-width:0.8;"/>
</g>
<g id="line2d_6">
<g>
<use style="fill:#555555;stroke:#555555;stroke-width:0.8;" x="181.808949" xlink:href="#m824144fb13" y="224.64"/>
<use style="fill:#555555;stroke:#555555;stroke-width:0.8;" x="181.808949" xlink:href="#mac337ae488" y="224.64"/>
</g>
</g>
<g id="text_3">
@ -166,13 +166,13 @@ z
</g>
<g id="xtick_4">
<g id="line2d_7">
<path clip-path="url(#pdffffd95b8)" d="M 242.681676 224.64
<path clip-path="url(#p86b8b9d1b9)" d="M 242.681676 224.64
L 242.681676 7.2
" style="fill:none;stroke:#ffffff;stroke-linecap:square;stroke-width:0.8;"/>
</g>
<g id="line2d_8">
<g>
<use style="fill:#555555;stroke:#555555;stroke-width:0.8;" x="242.681676" xlink:href="#m824144fb13" y="224.64"/>
<use style="fill:#555555;stroke:#555555;stroke-width:0.8;" x="242.681676" xlink:href="#mac337ae488" y="224.64"/>
</g>
</g>
<g id="text_4">
@ -219,13 +219,13 @@ z
</g>
<g id="xtick_5">
<g id="line2d_9">
<path clip-path="url(#pdffffd95b8)" d="M 303.554403 224.64
<path clip-path="url(#p86b8b9d1b9)" d="M 303.554403 224.64
L 303.554403 7.2
" style="fill:none;stroke:#ffffff;stroke-linecap:square;stroke-width:0.8;"/>
</g>
<g id="line2d_10">
<g>
<use style="fill:#555555;stroke:#555555;stroke-width:0.8;" x="303.554403" xlink:href="#m824144fb13" y="224.64"/>
<use style="fill:#555555;stroke:#555555;stroke-width:0.8;" x="303.554403" xlink:href="#mac337ae488" y="224.64"/>
</g>
</g>
<g id="text_5">
@ -259,13 +259,13 @@ z
</g>
<g id="xtick_6">
<g id="line2d_11">
<path clip-path="url(#pdffffd95b8)" d="M 364.427131 224.64
<path clip-path="url(#p86b8b9d1b9)" d="M 364.427131 224.64
L 364.427131 7.2
" style="fill:none;stroke:#ffffff;stroke-linecap:square;stroke-width:0.8;"/>
</g>
<g id="line2d_12">
<g>
<use style="fill:#555555;stroke:#555555;stroke-width:0.8;" x="364.427131" xlink:href="#m824144fb13" y="224.64"/>
<use style="fill:#555555;stroke:#555555;stroke-width:0.8;" x="364.427131" xlink:href="#mac337ae488" y="224.64"/>
</g>
</g>
<g id="text_6">
@ -307,7 +307,7 @@ z
<g id="matplotlib.axis_2">
<g id="ytick_1">
<g id="line2d_13">
<path clip-path="url(#pdffffd95b8)" d="M 44.845313 212.079695
<path clip-path="url(#p86b8b9d1b9)" d="M 44.845313 212.079695
L 379.645313 212.079695
" style="fill:none;stroke:#ffffff;stroke-linecap:square;stroke-width:0.8;"/>
</g>
@ -315,10 +315,10 @@ L 379.645313 212.079695
<defs>
<path d="M 0 0
L -3.5 0
" id="m0bd1c01d68" style="stroke:#555555;stroke-width:0.8;"/>
" id="m6efe7479b5" style="stroke:#555555;stroke-width:0.8;"/>
</defs>
<g>
<use style="fill:#555555;stroke:#555555;stroke-width:0.8;" x="44.845313" xlink:href="#m0bd1c01d68" y="212.079695"/>
<use style="fill:#555555;stroke:#555555;stroke-width:0.8;" x="44.845313" xlink:href="#m6efe7479b5" y="212.079695"/>
</g>
</g>
<g id="text_7">
@ -350,13 +350,13 @@ z
</g>
<g id="ytick_2">
<g id="line2d_15">
<path clip-path="url(#pdffffd95b8)" d="M 44.845313 182.045321
<path clip-path="url(#p86b8b9d1b9)" d="M 44.845313 182.045321
L 379.645313 182.045321
" style="fill:none;stroke:#ffffff;stroke-linecap:square;stroke-width:0.8;"/>
</g>
<g id="line2d_16">
<g>
<use style="fill:#555555;stroke:#555555;stroke-width:0.8;" x="44.845313" xlink:href="#m0bd1c01d68" y="182.045321"/>
<use style="fill:#555555;stroke:#555555;stroke-width:0.8;" x="44.845313" xlink:href="#m6efe7479b5" y="182.045321"/>
</g>
</g>
<g id="text_8">
@ -384,13 +384,13 @@ z
</g>
<g id="ytick_3">
<g id="line2d_17">
<path clip-path="url(#pdffffd95b8)" d="M 44.845313 152.010948
<path clip-path="url(#p86b8b9d1b9)" d="M 44.845313 152.010948
L 379.645313 152.010948
" style="fill:none;stroke:#ffffff;stroke-linecap:square;stroke-width:0.8;"/>
</g>
<g id="line2d_18">
<g>
<use style="fill:#555555;stroke:#555555;stroke-width:0.8;" x="44.845313" xlink:href="#m0bd1c01d68" y="152.010948"/>
<use style="fill:#555555;stroke:#555555;stroke-width:0.8;" x="44.845313" xlink:href="#m6efe7479b5" y="152.010948"/>
</g>
</g>
<g id="text_9">
@ -406,13 +406,13 @@ L 379.645313 152.010948
</g>
<g id="ytick_4">
<g id="line2d_19">
<path clip-path="url(#pdffffd95b8)" d="M 44.845313 121.976574
<path clip-path="url(#p86b8b9d1b9)" d="M 44.845313 121.976574
L 379.645313 121.976574
" style="fill:none;stroke:#ffffff;stroke-linecap:square;stroke-width:0.8;"/>
</g>
<g id="line2d_20">
<g>
<use style="fill:#555555;stroke:#555555;stroke-width:0.8;" x="44.845313" xlink:href="#m0bd1c01d68" y="121.976574"/>
<use style="fill:#555555;stroke:#555555;stroke-width:0.8;" x="44.845313" xlink:href="#m6efe7479b5" y="121.976574"/>
</g>
</g>
<g id="text_10">
@ -428,13 +428,13 @@ L 379.645313 121.976574
</g>
<g id="ytick_5">
<g id="line2d_21">
<path clip-path="url(#pdffffd95b8)" d="M 44.845313 91.9422
<path clip-path="url(#p86b8b9d1b9)" d="M 44.845313 91.9422
L 379.645313 91.9422
" style="fill:none;stroke:#ffffff;stroke-linecap:square;stroke-width:0.8;"/>
</g>
<g id="line2d_22">
<g>
<use style="fill:#555555;stroke:#555555;stroke-width:0.8;" x="44.845313" xlink:href="#m0bd1c01d68" y="91.9422"/>
<use style="fill:#555555;stroke:#555555;stroke-width:0.8;" x="44.845313" xlink:href="#m6efe7479b5" y="91.9422"/>
</g>
</g>
<g id="text_11">
@ -449,13 +449,13 @@ L 379.645313 91.9422
</g>
<g id="ytick_6">
<g id="line2d_23">
<path clip-path="url(#pdffffd95b8)" d="M 44.845313 61.907826
<path clip-path="url(#p86b8b9d1b9)" d="M 44.845313 61.907826
L 379.645313 61.907826
" style="fill:none;stroke:#ffffff;stroke-linecap:square;stroke-width:0.8;"/>
</g>
<g id="line2d_24">
<g>
<use style="fill:#555555;stroke:#555555;stroke-width:0.8;" x="44.845313" xlink:href="#m0bd1c01d68" y="61.907826"/>
<use style="fill:#555555;stroke:#555555;stroke-width:0.8;" x="44.845313" xlink:href="#m6efe7479b5" y="61.907826"/>
</g>
</g>
<g id="text_12">
@ -470,13 +470,13 @@ L 379.645313 61.907826
</g>
<g id="ytick_7">
<g id="line2d_25">
<path clip-path="url(#pdffffd95b8)" d="M 44.845313 31.873453
<path clip-path="url(#p86b8b9d1b9)" d="M 44.845313 31.873453
L 379.645313 31.873453
" style="fill:none;stroke:#ffffff;stroke-linecap:square;stroke-width:0.8;"/>
</g>
<g id="line2d_26">
<g>
<use style="fill:#555555;stroke:#555555;stroke-width:0.8;" x="44.845313" xlink:href="#m0bd1c01d68" y="31.873453"/>
<use style="fill:#555555;stroke:#555555;stroke-width:0.8;" x="44.845313" xlink:href="#m6efe7479b5" y="31.873453"/>
</g>
</g>
<g id="text_13">
@ -491,7 +491,7 @@ L 379.645313 31.873453
</g>
</g>
<g id="line2d_27">
<path clip-path="url(#pdffffd95b8)" d="M 60.063494 91.9422
<path clip-path="url(#p86b8b9d1b9)" d="M 60.063494 91.9422
L 61.891504 143.604574
L 62.805509 165.095826
L 63.719514 181.942808
@ -657,7 +657,7 @@ L 364.427131 91.935389
" style="fill:none;stroke:#e24a33;stroke-linecap:square;stroke-width:1.5;"/>
</g>
<g id="line2d_28">
<path clip-path="url(#pdffffd95b8)" d="M 60.063494 91.9422
<path clip-path="url(#p86b8b9d1b9)" d="M 60.063494 91.9422
L 62.196172 152.225751
L 63.414846 180.38573
L 64.328851 196.619719
@ -839,7 +839,7 @@ L 379.645313 7.2
</g>
</g>
<defs>
<clipPath id="pdffffd95b8">
<clipPath id="p86b8b9d1b9">
<rect height="217.44" width="334.8" x="44.845313" y="7.2"/>
</clipPath>
</defs>

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

File diff suppressed because it is too large Load diff

Before

Width:  |  Height:  |  Size: 28 KiB

File diff suppressed because it is too large Load diff

After

Width:  |  Height:  |  Size: 33 KiB

View file

@ -2,7 +2,7 @@
#+begin_src jupyter-python
%display latex
var("G, phi, gamma, delta, t, a, Omega", domain=RR)
var("G, phi, gamma, delta, t, a, b, c, d, Omega", domain=RR)
var("z", domain=CC)
#+end_src
@ -52,3 +52,24 @@ t\right)} \sin\left(-\delta t - \phi\right)\]
\Omega a + z^{2}} \\ -\frac{\Omega + a}{\Omega^{2} + \Omega a + z^{2}} &
\frac{z}{\Omega^{2} + \Omega a + z^{2}} \end{array}\right)\]
:END:
#+begin_src jupyter-python
matrix([[0, 0], [1, 0]]) * matrix([[a, b], [c, d]])
#+end_src
#+RESULTS:
:RESULTS:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rr} 0 & 0 \\ a &
b \end{array}\right)\]
:END:
#+begin_src jupyter-python
matrix([[0, 1], [-1, 0]]) * matrix([[a, b], [c, d]])
#+end_src
#+RESULTS:
:RESULTS:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rr} c & d \\ -a
& -b \end{array}\right)\]
:END:

View file

@ -15,7 +15,7 @@
A = np.array([[0, Ω], [-Ω, 0]])
η = 2
ω_c = 1
t_max = 50
t_max = 16
def α(t):
@ -491,7 +491,7 @@ There remains the zero point energy.
** Exponential Fit
First we need an exponential fit for our BCF.
#+begin_src jupyter-python
W, G_raw = utilities.fit_α(α, 5, 80, 10_000)
W, G_raw = utilities.fit_α(α, 3, 80, 10_000)
τ = np.linspace(0, t_max, 1000)
#+end_src
@ -508,7 +508,7 @@ Looks quite good.
#+RESULTS:
:RESULTS:
| hline | <AxesSubplot:> |
[[file:./.ob-jupyter/e0b65e6c0c295f2ced7f7e42578fe0416afc6475.svg]]
[[file:./.ob-jupyter/be47577bc9cef984dc52c230eb81af91e1b76fa6.svg]]
:END:
** Calculate the Magic Numbers
@ -519,7 +519,7 @@ We begin with the $\varphi_n$ and $G_n$ from the original ~G~.
#+end_src
#+RESULTS:
: array([ 2.1834114 , 1.06741778, 2.81544667, -0.46637419, -2.28665296])
: array([-1.18710245, 0.64368323, 2.11154332])
#+begin_src jupyter-python
G = np.abs(G_raw)
@ -527,7 +527,7 @@ We begin with the $\varphi_n$ and $G_n$ from the original ~G~.
#+end_src
#+RESULTS:
: array([0.09682231, 0.46421051, 0.00678969, 0.69850585, 0.22961865])
: array([0.51238635, 0.62180167, 0.10107935])
Now we calculate the real and imag parts of the ~W~ parameters and
call them $\gamma_n$ and $\delta_n$.
@ -555,7 +555,7 @@ this is not the case.
#+end_src
#+RESULTS:
: array([-0.28690071, -1.23300496, -0.0505763 , 1.06808563, -6.88715892])
: array([-1.19725058, -2.0384181 , -0.23027627])
Now the \(z_k\) the roots of \(\delta_k^2 + (\gamma_k + z)^2\). *We
don't include the conjugates.*
@ -565,9 +565,8 @@ don't include the conjugates.*
#+end_src
#+RESULTS:
: array([-0.34633391-0.08456407j, -0.98090077-0.4577907j ,
: -0.0725635 -0.00743661j, -2.01573795-1.55243654j,
: -3.36022865-4.05504392j])
: array([-2.29230292-2.71252483j, -1.07996581-0.719112j ,
: -0.28445344-0.09022829j])
** Construct the Polynomials
#+begin_src jupyter-python
@ -629,12 +628,10 @@ And find its roots.
#+end_src
#+RESULTS:
: array([-3.36385705-4.0499244j , -3.36385705+4.0499244j ,
: -1.98189805-1.48637768j, -1.98189805+1.48637768j,
: -0.86007885-0.39886909j, -0.86007885+0.39886909j,
: -0.30506379-0.10051864j, -0.30506379+0.10051864j,
: -0.19364497-1.48889586j, -0.19364497+1.48889586j,
: -0.07122206-0.01054089j, -0.07122206+0.01054089j])
: array([-2.28139877-2.68284887j, -2.28139877+2.68284887j,
: -0.93979297-0.62025112j, -0.93979297+0.62025112j,
: -0.24204514-0.10390896j, -0.24204514+0.10390896j,
: -0.19348529-1.49063362j, -0.19348529+1.49063362j])
Let's see if they're all unique. This should make things easier.
#+begin_src jupyter-python
@ -647,73 +644,117 @@ Let's see if they're all unique. This should make things easier.
Very nice!
** Calculate the Residuals
These are the prefactors for the diagonal.
#+begin_src jupyter-python
R_l = f_0(master_roots) / p.deriv()(master_roots)
R_l
#+end_src
#+RESULTS:
: array([ 0.00019854+1.13582372e-04j, 0.00019854-1.13582372e-04j,
: 0.01068261+2.14137130e-03j, 0.01068261-2.14137130e-03j,
: 0.04932196+2.54768525e-02j, 0.04932196-2.54768525e-02j,
: 0.02800713-3.28511946e-03j, 0.02800713+3.28511946e-03j,
: -0.08930968+3.64119054e-01j, -0.08930968-3.64119054e-01j,
: 0.00109945-2.04813251e-03j, 0.00109945+2.04813251e-03j])
: array([ 0.00251589-0.00080785j, 0.00251589+0.00080785j,
: 0.06323421+0.02800137j, 0.06323421-0.02800137j,
: 0.02732669-0.00211665j, 0.02732669+0.00211665j,
: -0.09307679+0.36145133j, -0.09307679-0.36145133j])
And these are for the most compliciated element.
#+begin_src jupyter-python
R_l_21 = (Ω + α_tilde(master_roots))* f_0(master_roots) / p.deriv()(master_roots)
R_l_21
#+end_src
#+RESULTS:
: array([-0.00325014-0.02160514j, -0.00325014+0.02160514j,
: 0.00074814-0.05845205j, 0.00074814+0.05845205j,
: -0.00094159-0.00084894j, -0.00094159+0.00084894j,
: 0.00344359+0.56219924j, 0.00344359-0.56219924j])
Now we can calculate \(G\).
#+begin_src jupyter-python
def G_12_ex(t):
t = np.asarray(t)
return Ω * (R_l[None, :] * np.exp(t[:, None] * master_roots[None, :])).real.sum(axis=1)
return Ω * (R_l[None, :] * np.exp(t[:, None] * master_roots[None, :])).real.sum(
axis=1
)
def G_11_ex(t):
t = np.asarray(t)
return (R_l[None, :] * master_roots[None, :] * np.exp(t[:, None] * master_roots[None, :])).real.sum(axis=1)
return (
R_l[None, :]
,* master_roots[None, :]
,* np.exp(t[:, None] * master_roots[None, :])
).real.sum(axis=1)
def G_12_ex_alt(t):
t = np.asarray(t)
return (R_l[None, :] * master_roots[None, :]**2 * np.exp(t[:, None] * master_roots[None, :])).real.sum(axis=1) / Ω
def G_21_ex(t):
t = np.asarray(t)
return -(R_l_21[None, :] * np.exp(t[:, None] * master_roots[None, :])).real.sum(
axis=1
)
def G_21_ex_alt(t):
t = np.asarray(t)
return (
R_l[None, :]
,* master_roots[None, :] ** 2
,* np.exp(t[:, None] * master_roots[None, :])
).real.sum(axis=1) / Ω
def G_ex(t):
t = np.asarray(t)
if t.size == 1:
t = np.array([t])
diag = G_11_ex(t)
return (
np.array([[diag, G_12_ex(t)], [G_21_ex(t), diag]]).swapaxes(0, 2).swapaxes(1, 2)
)
#+end_src
#+RESULTS:
#+begin_src jupyter-python
plt.plot(τ, G_11_ex(τ))
plt.plot(τ, G_12_ex_alt(τ))
plt.plot(ts, proper @ np.array([1, 0]))
plt.plot(τ, G_ex(τ).reshape(len(τ), 4))
plt.plot(ts, proper.reshape(len(ts), 4), linestyle="--")
#+end_src
#+RESULTS:
:RESULTS:
| <matplotlib.lines.Line2D | at | 0x7f338516e280> | <matplotlib.lines.Line2D | at | 0x7f338516e2b0> |
[[file:./.ob-jupyter/dd87bd9601ab3679ef0a16610edaae5a0d8bba93.svg]]
| <matplotlib.lines.Line2D | at | 0x7f33843671f0> | <matplotlib.lines.Line2D | at | 0x7f33843675b0> | <matplotlib.lines.Line2D | at | 0x7f3384367a00> | <matplotlib.lines.Line2D | at | 0x7f3384370ee0> |
[[file:./.ob-jupyter/748498e7edf248e20e45b9b326b840d531aee592.svg]]
:END:
G12 is still a bit broken... Funnily i can get it to work by "knowing"
how it should look like. With this, it looks like the numerical
solution :).
#+begin_src jupyter-python
def α_tilde(z):
return (-G * ((z + γ) * s + δ * c)/ (δ**2 + (γ + z)**2)).sum()
return (
-G[None, :]
,* ((z[:, None] + γ[None, :]) * s[None, :] + δ[None, :] * c[None, :])
/ (δ[None, :] ** 2 + (γ[None, :] + z[:, None]) ** 2)
).sum(axis=1)
def f_test(z):
return Ω**2 + (Ω * (-G * ((z + γ) * s + δ * c)/ (δ**2 + (γ + z)**2))).sum() + z**2
mpmath.findroot(f_test, Ω, solver='muller')
return (
Ω ** 2
+ (Ω * (-G * ((z + γ) * s + δ * c) / (δ ** 2 + (γ + z) ** 2))).sum()
+ z ** 2
)
mpmath.findroot(f_test, Ω, solver="muller")
#+end_src
#+RESULTS:
: mpc(real='-0.19364496699331084', imag='1.4888958605756884')
: mpc(real='-0.19348529127068425', imag='1.4906336228104743')
#+begin_src jupyter-python
plt.plot(τ, G_12_ex_alt(τ))
plt.plot(τ, -G_12_ex(τ))
plt.plot(τ, G_21_ex_alt(τ) - G_21_ex(τ))
#+end_src
#+RESULTS:
:RESULTS:
| <matplotlib.lines.Line2D | at | 0x7f338505c880> |
[[file:./.ob-jupyter/069324aef03627d38595b0ca71126582c8766460.svg]]
| <matplotlib.lines.Line2D | at | 0x7f337f9052b0> |
[[file:./.ob-jupyter/e70ece655bc2da46d606acf9b0cd1ca6accfb5a9.svg]]
:END:
WEIRD!