Lecture 18 - Differential Equations¶
The goal of this lecture is to accomplish two things:
- Explain how to use linear algebra and discrete approximation to give approximate solutions to differential equations- The goal is to give a feeling for how discrete approximation works.
- Explain how to use SageMath to solve differential equations. These solutions are better because they give error bounds.
# Imports Numpy
import numpy as np
Spring problem¶
We will study a classic example, which hopefully you have seen before in a differential equations class.
In the spring problem, we let a spring hang from the ceiling. Then we attach an object to the bottom of the spring. We pull down or lift the object and give it some initial velocity and let go. We want to know the position $u$ of the object at time $t$.
We use the variable $u$ to denote the vertical displacement of the object measured relative to position of the object at equilibrium. Thus $u(t)= 0$ for all $t$ is one solution (if there is no force other than gravity acting). We also parameterize so that larger values if $u$ indicate that the object is lower (equivalently, the spring is longer), and smaller values indicate that the object is higher (and the spring is shorter).
The differential equation satisfied by the spring is of the form $$m u'' + \gamma u' + k u = F(t),$$ where $m$ is the mass of the object, $\gamma$ is the damping coefficient, $k$ is the spring constant, and $F(t)$ is the total of any external forces other than gravity acting on the spring. In order to have a unique solution, we also specify:
- The initial displacement $u(0)=u_0$.
- The initial velocity of the mass $u'(0)=v_0$.
Reference: The derivation of the differential equation is common in differential equations books. For example, see section 17.3 of the following freely available book:
Discretization¶
Set up¶
Let's say that we want to approximate the solution on the interval $[0,T]$. By discretization, we mean we want to approximate the solution using finitely many points. Suppose we want to know the value of $u(t)$ for $$t \in \left\{0, \frac{T}{N}, \frac{2T}{N}, \ldots, \frac{(N-1)T}{N}, T\right\}.$$ Let $t_j = \frac{jT}{N}$ for $j \in \{0, \ldots, N\}$ and $h=\frac{T}{N}$. Then $$t_{j+1}=t_j + h.$$ We can organize the $t_j$ values in a vector $${\mathbf t} = \big(t_0, t_1, \ldots, t_{N}\big).$$
We are looking for the values $u_j = u(t_j)$. We will eventually store them as a vector: $${\mathbf u} = (u_0, u_1, \ldots, u_N).$$
Initial Values¶
We get equations from the initial values for the differential equation. Since $u_0 = u(0)$, we can write the initial displacement equation as: $$\label{eq:eq1} u_0 = a. \tag{1}$$ We also know $u'(0)=b$. Using the discrete approximation of the derivative, we have $$u'(0) \approx \frac{u(h)-u(0)}{h} = \frac{u_1 - u_0}{h}.$$ So, we will approximate the condition $u'(0)=b$ by $$\frac{-1}{h} u_0 + \frac{1}{h} u_1 = b. \tag{2}$$
We can combine the two equations above in a matrix-vector equation: $$\left[\begin{array}{rrrrr} 1 & 0 & 0 & 0 & \ldots \\ \frac{-1}{h} & \frac{1}{h} & 0 & 0 & \ldots \\ \end{array}\right]\left[\begin{array}{r} u_0 \\ u_1 \\ \vdots \\ u_N\end{array}\right] = \left[\begin{array}{r} a \\ b \end{array}\right].$$
The differential equation¶
We currently have two linear equations from initial values (labeled (1) and (2) above) and $N+1$ unknowns. We need to look for $N-1$ more equations so that we have the same number of equations and unknowns.
We will find one equation for each time $t_j$ with $j \in \{1, \ldots, N-1\}$. Assuming $u_0=u(t_0), \ldots, u_j=u(t_j)$ are area already determined, we will be able to determin $u_{j+1} = u(t_{j+1}).$
Our differential equation considered at time $t_j$ is given by $$m u''(t_j) + \gamma u'(t_j) + k u(t_j) = F(t_j).$$ We have $u_j=u(t_j)$. We want to replace $u'(t_j)$ and $u''(t_j)$ with linear combinations of the entries $u_\ast$.
We can estimate $u'(t_j)$ using the two point estimate $$u'(t_j) \approx \frac{u(t_j+h)-u(t_j - h)}{2h} = \frac{u_{j+1} - u_{j-1}}{2h}.$$
Similarly, we can estimate $u''(t_j)$ by $$u''(t_j)=\frac{u(t_j+h) - 2 u(t_j) + u(t_j-h)}{h^2}=\frac{u_{j+1} - 2 u_j + u_{j-1}}{h^2}.$$
Substituting these approximations into our differential equation $m u''(t_j) + \gamma u'(t_j) + k u(t_j) = F(t_j)$ gives us the linear equation: $$\frac{mu_{j+1} - 2 mu_j + mu_{j-1}}{h^2} + \frac{\gamma u_{j+1} - \gamma u_{j-1}}{2h} + k u_j = F(t_j).$$ It makes sense to combine like terms. This yields the equation: $$\left(\frac{m}{h^2}-\frac{\gamma}{2h}\right)u_{j-1} + \left(k-\frac{2m}{h^2}\right)u_j + \left(\frac{m}{h^2}+\frac{\gamma}{2h}\right)u_{j+1} = F(t_j).$$ Here we are getting one equation for each $j=1, \ldots, N-1$ as noted above. Combining these as a matrix equation, we have: $$\begin{bmatrix} \frac{m}{h^2}-\frac{\gamma}{2h} & k-\frac{2m}{h^2} & \frac{m}{h^2}+\frac{\gamma}{2h} & 0 & \ldots & \dots & 0 \\ 0 & \frac{m}{h^2}-\frac{\gamma}{2h} & k-\frac{2m}{h^2} & \frac{m}{h^2}+\frac{\gamma}{2h} & 0 & \ldots & 0 \\ \vdots & \ddots & \ddots & \ddots & \ddots & \ddots & \vdots \\ \vdots & & \ddots & \ddots & \ddots & \ddots & 0 \\ 0 & \dots & \dots & 0 & \frac{m}{h^2}-\frac{\gamma}{2h} & k-\frac{2m}{h^2} & \frac{m}{h^2}+\frac{\gamma}{2h} \end{bmatrix}. \begin{bmatrix} u_0 \\ u_1 \\ u_2 \\ u_3 \\ \vdots \\ u_N \\ \end{bmatrix} = \begin{bmatrix} F(t_1) \\ F(t_2) \\ F(t_3) \\ \vdots \\ F(t_{N-1}) \end{bmatrix} $$
The linear system¶
Combining the matrix equations from the initial conditions and the differential equation, we get the following:
$$\begin{bmatrix} 1 & 0 & \ldots & \ldots & \ldots & \dots & 0 \\ \frac{-1}{h} & \frac{1}{h} & 0 & \ldots & \ldots & \ldots & 0 \\ \frac{m}{h^2}-\frac{\gamma}{2h} & k-\frac{2m}{h^2} & \frac{m}{h^2}+\frac{\gamma}{2h} & 0 & \ldots & \dots & 0 \\ 0 & \frac{m}{h^2}-\frac{\gamma}{2h} & k-\frac{2m}{h^2} & \frac{m}{h^2}+\frac{\gamma}{2h} & 0 & \ldots & 0 \\ \vdots & \ddots & \ddots & \ddots & \ddots & \ddots & \vdots \\ \vdots & & \ddots & \ddots & \ddots & \ddots & 0 \\ 0 & \dots & \dots & 0 & \frac{m}{h^2}-\frac{\gamma}{2h} & k-\frac{2m}{h^2} & \frac{m}{h^2}+\frac{\gamma}{2h} \end{bmatrix}. \begin{bmatrix} u_0 \\ u_1 \\ u_2 \\ u_3 \\ u_4 \\ \vdots \\ \vdots \\ u_N \\ \end{bmatrix} = \begin{bmatrix} a\\ b\\ F(t_1) \\ F(t_2) \\ F(t_3) \\ \vdots \\ \vdots \\ F(t_{N-1}) \end{bmatrix}. $$Here $a=u(t_0)$ and $b=u'(t_0)$
Solving the system¶
We can solve the system by forward substitution. Associated to the first line we have $$u_0 = a.$$
The second line is $\frac{-1}{h} u_0 + \frac{1}{h} u_1 = b.$ Solving, we see that $$u_1 = h\big(b + \frac{u_0}{h}).$$
Then the generic line in the matrix is given by $$\left(\frac{m}{h^2}-\frac{\gamma}{2h}\right)u_{j-1} + \left(k-\frac{2m}{h^2}\right)u_j + \left(\frac{m}{h^2}+\frac{\gamma}{2h}\right)u_{j+1} = F(t_j).$$
We'll assume we already know $u_{j-1}$ and $u_j$. Then we have $$u_{j+1} = \left(F(t_j) - \left(\frac{m}{h^2}-\frac{\gamma}{2h}\right)u_{j-1} - \left(k-\frac{2m}{h^2}\right)u_j\right)\Big/\left(\frac{m}{h^2}+\frac{\gamma}{2h}\right).$$
Implementation¶
We need to pass our function a number of parameters:
- The mass
m
, the damping constantgamma
, and the spring constantk
. - The forcing function
F
, which will be a Python function ${\mathbb R} \to {\mathbb R}$. - The initial position
a
and velocityb
. - The time $T$ determining the interval $[0,T]$.
- The number $N$, so that we use $N+1$ points equally spaced in $[0,T]$.
Our function will return a numpy array u
with entries u[0]
up to u[N]
. The value of u[j]
will store the computed value of $u_j = u(t_j)$.
The following function implements this:
def spring_solve(m, gamma, k, F, a, b, T, N):
r'''
Return a Numpy array approximating the solution to the differential equation
$$m u''(t_j) + \gamma u'(t_j) + k u(t_j) = F(t_j).$$
Here `m`, `gamma`, and `k` are constants, while `F(t)` is a sage function of one
variable. The initial values are `u(0)=0` and `u'(0)=b`. We find an approximate
solution over the interval `[0, T]` using `N+1` equally spaced points, returning
the Numpy array of values `u` takes.
'''
h = T/N
# The t values we use:
t = np.linspace(0, T, N+1)
# This will store the u values we compute.
u = np.zeros(N+1)
u[0] = a
u[1] = h * (b + u[0]/h)
for j in range(1,N):
u[j+1] = ( F(t[j]) - (m/h^2-gamma/(2*h))*u[j-1] - (k-2*m/h^2)*u[j] ) / \
(m/h^2+gamma/(2*h))
return u
Examples¶
Example 1¶
First we consider the differential equation $$u'' + u = 0, \quad u(0)=0, \quad \text{and} \quad u'(0)=1.$$ Clearly the solution is $u(t)=\sin(t)$.
We will observe that our algorithm works surprisingly well over the interval $[0,10]$ with $N=20$.
T = 10
N = 20
plt = plot(sin(x), (x, 0, T), legend_label="actual solution", figsize=5)
plt
t = np.linspace(0, T, N+1)
u = spring_solve(1, 0, 1, lambda t:0, 0, 1, T, N)
plt += line2d(zip(t, u), color='red', legend_label="computed approximation")
plt
Here we graph the error:
t = np.linspace(0, T, N+1)
u = spring_solve(1, 0, 1, lambda t:0, 0, 1, T, N)
line2d(zip(t, u-sin(t)), color='green', legend_label="error", figsize=5)
For larger values of $N$, it works even better:
T = 10
N = 100
plt = plot(sin(x), (x, 0, T), legend_label="actual solution", figsize=5)
t = np.linspace(0, T, N+1)
u = spring_solve(1, 0, 1, lambda t:0, 0, 1, T, N)
plt += line2d(zip(t, u), color='red', legend_label="computed approximation")
show(plt)
t = np.linspace(0, T, N+1)
u = spring_solve(1, 0, 1, lambda t:0, 0, 1, T, N)
line2d(zip(t, u-sin(t)), color='green', legend_label="error", figsize=5)
Example 2¶
Here is a plot with some damping:
T = 100
N = 1000
t = np.linspace(0, T, N+1)
u = spring_solve(1, 0.1, 1, lambda t:0, 0, 1, T, N)
line2d(zip(t, u), color='red', legend_label="computed approximation", figsize=5)
Example 3¶
Here are some plots with some periodic forcing:
T = 100
N = 1000
F(t) = cos(t/8)
t = np.linspace(0, T, N+1)
u = spring_solve(1, 0, 1, F, 0, 1, T, N)
line2d(zip(t, u), color='red', figsize=5)
T = 100
N = 1000
F(t) = cos(t)
t = np.linspace(0, T, N+1)
u = spring_solve(1, 0, 1, lambda t:np.cos(t), 0, 1, T, N)
line2d(zip(t, u), color='red', figsize=5)
Example 4¶
Some plots with both periodic forcing and some damping:
T = 200
N = 1000
F(t) = cos(t/8)
t = np.linspace(0, T, N+1)
u = spring_solve(1, 0.05, 1, F, 0, 1, T, N)
line2d(zip(t, u), color='red', figsize=5)
T = 150
N = 1000
F(t) = cos(t)
t = np.linspace(0, T, N+1)
u = spring_solve(1, 0.05, 1, F, 0, 1, T, N)
line2d(zip(t, u), color='red', figsize=5)
Using Sage to solve a differential equation¶
Sage can numerically solve differential equations of the following form:
\begin{align*} y_0'(t) &= f_0(t, y_0, \ldots, y_{n-1}) \\ y_1'(t) &= f_1(t, y_0, \ldots, y_{n-1}) \\ &\vdots \\ y_{n-1}'(t) &= f_1(t, y_0, \ldots, y_{n-1}) \\ \end{align*}for functions $y_0(t), y_1(t), \ldots, y_{n-1}(t)$ over an interval once given initial conditions $y_0(0), \ldots, y_{n-1}(0)$.
One dimensional example¶
The book Computational Mathematics with SageMath works out the example of the one dimensional Van der Pol oscillator of parameter $\mu$ in section 14.2.1. This is the following equation $$x''(t) - \mu (1 - x^2) x'(t) + x(t) = 0.$$ Here $x(t)$ represents the position of an object that is oscillating with time $t$. The constant $\mu$ is a damping constant.
To get this into the form above, we write $y_0(t) = x(t)$ and $y_1(t) = x'(t)$. Then \begin{align*} y_0'(t) &= y_1(t), y_1'(t) &= x''(t) = \mu (1-x^2) x'(t) - x(t) = \mu (1-y_0^2) y_1 - y_0. \end{align*} So we have $f_0(t) = y_1(t)$ and $f_1(t) = \mu (1-y_0^2) y_1 - y_0$.
T = ode_solver()
def f(t, y, params):
# Function f = (f_0, f_1) in terms of t, y and parameters.
# We only have one parameter mu = params[0]
return [
y[1],
params[0] * (1-y[0]^2)*y[1] - y[0]
]
T.function = f
T.algorithm = "rk8pd"
T.ode_solve(y_0=[1,0], t_span=[0,100], params=[10],
num_points=1000)
# This gives the solution:
T.solution
[(0, [1, 0]), (0.1, [0.9949991721288927, -0.10008299932807921]), (0.2, [0.9799066603519733, -0.20267438514785563]), (0.30000000000000004, [0.9541091910322372, -0.31619668302908155]), (0.4, [0.9157402768376061, -0.45807235898635057]), (0.5, [0.8604101685065295, -0.6638340756178684]), (0.6, [0.7782366811255851, -1.015706272338803]), (0.7, [0.645283049250497, -1.7415101809404838]), (0.7999999999999999, [0.3935417139691331, -3.619929531447423]), (0.8999999999999999, [-0.20605504383917295, -9.397703392172094]), (0.9999999999999999, [-1.45686208173767, -11.547387338700608]), (1.0999999999999999, [-1.9774113669907953, -1.1059149002768627]), (1.2, [-2.008173343534122, 0.008214303733106509]), (1.3, [-2.003368097845293, 0.06356344977251681]), (1.4000000000000001, [-1.9968024693580695, 0.06658272876181712]), (1.5000000000000002, [-1.9901161854397695, 0.0670867527238675]), (1.6000000000000003, [-1.9833881049990163, 0.06747311866053674]), (1.7000000000000004, [-1.9766214913484963, 0.06786019205534223]), (1.8000000000000005, [-1.9698158339413174, 0.0682541731143036]), (1.9000000000000006, [-1.9629704082732315, 0.0686556042831711]), (2.0000000000000004, [-1.9560844561206685, 0.06906474452353342]), (2.1000000000000005, [-1.9491571939290333, 0.0694818483164146]), (2.2000000000000006, [-1.9421878121697593, 0.06990718114087352]), (2.3000000000000007, [-1.935175474147213, 0.0703410210041401]), (2.400000000000001, [-1.9281193147043432, 0.0707836592625115]), (2.500000000000001, [-1.921018438846372, 0.07123540145860445]), (2.600000000000001, [-1.913871920277757, 0.07169656822064598]), (2.700000000000001, [-1.9066787998457624, 0.07216749623207211]), (2.800000000000001, [-1.8994380838832785, 0.07264853927816978]), (2.9000000000000012, [-1.8921487424428207, 0.0731400693770893]), (3.0000000000000013, [-1.8848097074128756, 0.07364247800335853]), (3.1000000000000014, [-1.8774198705068956, 0.0741561774129445]), (3.2000000000000015, [-1.8699780811142965, 0.07468160207994036]), (3.3000000000000016, [-1.862483144001741, 0.07521921025612378]), (3.4000000000000017, [-1.8549338168518053, 0.07576948566595547]), (3.5000000000000018, [-1.8473288076247933, 0.07633293935108845]), (3.600000000000002, [-1.839666771727977, 0.07691011168016638]), (3.700000000000002, [-1.8319463089748609, 0.07750157454163376]), (3.800000000000002, [-1.8241659603151934, 0.07810793373950231]), (3.900000000000002, [-1.8163242043143313, 0.07872983161455668]), (4.000000000000002, [-1.8084194533581637, 0.07936794991639527]), (4.100000000000001, [-1.8004500495571096, 0.08002301295504405]), (4.200000000000001, [-1.7924142603196351, 0.08069579106473404]), (4.300000000000001, [-1.784310273562261, 0.08138710441687282]), (4.4, [-1.77613619251908, 0.08209782722438082]), (4.5, [-1.7678900301092957, 0.08282889238551983]), (4.6, [-1.7595697028161397, 0.08358129662226657]), (4.699999999999999, [-1.7511730240246324, 0.08435610617635525]), (4.799999999999999, [-1.7426976967588756, 0.08515446313554505]), (4.899999999999999, [-1.734141305751775, 0.08597759247372026]), (4.999999999999998, [-1.725501308771095, 0.08682680990142178]), (5.099999999999998, [-1.7167750271153481, 0.08770353063871968]), (5.1999999999999975, [-1.7079596351809452, 0.08860927924044305]), (5.299999999999997, [-1.6990521489879924, 0.08954570062526633]), (5.399999999999997, [-1.690049413535729, 0.09051457248571042]), (5.4999999999999964, [-1.68094808883941, 0.09151781928666011]), (5.599999999999996, [-1.6717446344779086, 0.0925575280966066]), (5.699999999999996, [-1.662435292454753, 0.0936359665398636]), (5.799999999999995, [-1.6530160681439143, 0.09475560321121763]), (5.899999999999995, [-1.643482709054396, 0.09591913095902035]), (5.999999999999995, [-1.6338306811032703, 0.09712949352132447]), (6.099999999999994, [-1.6240551420337037, 0.09838991609587126]), (6.199999999999994, [-1.614150911550726, 0.09970394054295598]), (6.299999999999994, [-1.6041124376705522, 0.10107546606623473]), (6.399999999999993, [-1.5939337586860278, 0.10250879639783822]), (6.499999999999993, [-1.5836084600372373, 0.10400869474042868]), (6.5999999999999925, [-1.5731296252374005, 0.10558044800279401]), (6.699999999999992, [-1.5624897798332982, 0.10722994222408586]), (6.799999999999992, [-1.551680827168113, 0.10896375153710507]), (6.8999999999999915, [-1.5406939744516326, 0.11078924360315187]), (6.999999999999991, [-1.5295196473136417, 0.11271470520011434]), (7.099999999999991, [-1.518147390601734, 0.11474949261675187]), (7.19999999999999, [-1.506565752658906, 0.11690421277472528]), (7.29999999999999, [-1.4947621496444976, 0.11919094267031764]), (7.39999999999999, [-1.482722705597261, 0.12162349694605785]), (7.499999999999989, [-1.4704320628170509, 0.12421775637446339]), (7.599999999999989, [-1.4578731556726559, 0.12699207405693225]), (7.699999999999989, [-1.4450269390027572, 0.12996778163515466]), (7.799999999999988, [-1.4318720596884935, 0.13316982540329902]), (7.899999999999988, [-1.4183844564868993, 0.1366275728175141]), (7.999999999999988, [-1.4045368684583925, 0.14037584491066132]), (8.099999999999987, [-1.3902982257601233, 0.14445625164577564]), (8.199999999999987, [-1.3756328874074542, 0.14891893855383462]), (8.299999999999986, [-1.3604996776114626, 0.15382489925884102]), (8.399999999999986, [-1.3448506536055371, 0.15924907797863597]), (8.499999999999986, [-1.328629510534236, 0.16528459237927184]), (8.599999999999985, [-1.3117694882747464, 0.17204857298482637]), (8.699999999999985, [-1.294190583270924, 0.1796903796927316]), (8.799999999999985, [-1.2757957726272577, 0.18840338744449334]), (8.899999999999984, [-1.256465805530952, 0.19844225605541974]), (8.999999999999984, [-1.236051869014313, 0.21014884598056266]), (9.099999999999984, [-1.2143650187851618, 0.2239921622374592]), (9.199999999999983, [-1.1911605440742217, 0.24063180843120158]), (9.299999999999983, [-1.1661141370277186, 0.26102231685897376]), (9.399999999999983, [-1.1387843014923862, 0.28659160101468145]), (9.499999999999982, [-1.108550641840787, 0.3195605107415158]), (9.599999999999982, [-1.074507694601677, 0.363546691132408]), (9.699999999999982, [-1.0352717935086924, 0.4247811043272677]), (9.799999999999981, [-0.9886051941754908, 0.5147558513527619]), (9.89999999999998, [-0.9306210799252909, 0.6565623729745094]), (9.99999999999998, [-0.853916372936264, 0.9019835860928627]), (10.09999999999998, [-0.7425540164598471, 1.3850994860395658]), (10.19999999999998, [-0.5560280165744959, 2.5244581550299383]), (10.29999999999998, [-0.16739526801953106, 5.892312345167453]), (10.399999999999979, [0.8103348799337973, 13.855232891114902]), (10.499999999999979, [1.8690090907245822, 4.309749431004329]), (10.599999999999978, [2.011312651423185, 0.17659395077581688]), (10.699999999999978, [2.012288714233177, -0.05449818607373045]), (10.799999999999978, [2.00604018428016, -0.06567086764879058]), (10.899999999999977, [1.9994178241025784, -0.06655000808999931]), (10.999999999999977, [1.9927425508062762, -0.06694551420249013]), (11.099999999999977, [1.9860291142754285, -0.06732380268083574]), (11.199999999999976, [1.9792775903542938, -0.0677078203395264]), (11.299999999999976, [1.9724873135660268, -0.06809892390445228]), (11.399999999999975, [1.9656575598170023, -0.06849739977714114]), (11.499999999999975, [1.9587875798349466, -0.06890348922940501]), (11.599999999999975, [1.9518765998880399, -0.06931744154216272]), (11.699999999999974, [1.9449238207539905, -0.06973951742424282]), (11.799999999999974, [1.937928416531932, -0.07016998986314818]), (11.899999999999974, [1.930889533376735, -0.07060914488707346]), (11.999999999999973, [1.923806288154859, -0.07105728237624147]), (12.099999999999973, [1.9166777670160295, -0.07151471693611706]), (12.199999999999973, [1.9095030238742454, -0.07198177883864225]), (12.299999999999972, [1.902281078790998, -0.0724588150378545]), (12.399999999999972, [1.8950109162529198, -0.07294619026691679]), (12.499999999999972, [1.8876914833353373, -0.07344428822436043]), (12.599999999999971, [1.8803216877423832, -0.07395351285821454]), (12.69999999999997, [1.8729003957134012, -0.07447428975768074]), (12.79999999999997, [1.8654264297843641, -0.07500706766312387]), (12.89999999999997, [1.8578985663918797, -0.07555232010640926]), (12.99999999999997, [1.850315533306093, -0.07611054719504595]), (13.09999999999997, [1.8426760068773609, -0.07668227755521824]), (13.199999999999969, [1.8349786090799844, -0.07726807045063634]), (13.299999999999969, [1.8272219043344788, -0.07786851809624352]), (13.399999999999968, [1.8194043960878494, -0.07848424818822819]), (13.499999999999968, [1.8115245231290535, -0.07911592667454646]), (13.599999999999968, [1.8035806556142593, -0.07976426079332778]), (13.699999999999967, [1.795571090773594, -0.08043000241017913]), (13.799999999999967, [1.7874940482677681, -0.08111395168960225]), (13.899999999999967, [1.779347665159206, -0.08181696114058862]), (13.999999999999966, [1.771129990458029, -0.08253994008208099]), (14.099999999999966, [1.7628389791983547, -0.08328385958051253]), (14.199999999999966, [1.7544724859947798, -0.08404975791923806]), (14.299999999999965, [1.7460282580225046, -0.08483874666853697]), (14.399999999999965, [1.7375039273571833, -0.08565201743525573]), (14.499999999999964, [1.7288970026020793, -0.08649084938334135]), (14.599999999999964, [1.7202048597202921, -0.08735661763087477]), (14.699999999999964, [1.7114247319784244, -0.08825080264615658]), (14.799999999999963, [1.7025536988948402, -0.08917500078547866]), (14.899999999999963, [1.6935886740702348, -0.0901309361390935]), (14.999999999999963, [1.6845263917602045, -0.09112047388034947]), (15.099999999999962, [1.6753633920283606, -0.0921456353470572]), (15.199999999999962, [1.666096004293638, -0.0932086151250868]), (15.299999999999962, [1.6567203290560524, -0.0943118004535947]), (15.399999999999961, [1.6472322175503398, -0.09545779333107293]), (15.499999999999961, [1.6376272490354555, -0.09664943577415584]), (15.59999999999996, [1.6279007053784493, -0.09788983876993194]), (15.69999999999996, [1.618047542531875, -0.09918241557149887]), (15.79999999999996, [1.6080623584324496, -0.10053092012087034]), (15.89999999999996, [1.5979393567622437, -0.10193949154977597]), (15.99999999999996, [1.5876723059086426, -0.10341270591623775]), (16.09999999999996, [1.5772544923310439, -0.10495563659441491]), (16.19999999999996, [1.5666786673847994, -0.10657392506216912]), (16.29999999999996, [1.5559369864585666, -0.10827386424509758]), (16.399999999999963, [1.5450209390400405, -0.1100624971040355]), (16.499999999999964, [1.5339212680238539, -0.11194773383113998]), (16.599999999999966, [1.5226278761969967, -0.11393849189613046]), (16.699999999999967, [1.511129717358421, -0.11604486432587285]), (16.79999999999997, [1.4994146689197014, -0.11827832309855954]), (16.89999999999997, [1.4874693820510565, -0.12065196651668618]), (16.99999999999997, [1.4752791044247102, -0.12318082207017855]), (17.099999999999973, [1.4628274692870689, -0.12588221986861112]), (17.199999999999974, [1.4500962428531525, -0.12877625657686478]), (17.299999999999976, [1.4370650197073747, -0.13188637646771212]), (17.399999999999977, [1.4237108527947884, -0.13524010549559481]), (17.49999999999998, [1.4100078003802905, -0.138869987378187]), (17.59999999999998, [1.395926366577748, -0.14281478933163785]), (17.69999999999998, [1.381432804021416, -0.14712107209331574]), (17.799999999999983, [1.366488235936431, -0.15184525848791394]), (17.899999999999984, [1.3510475386842027, -0.1570563939155895]), (17.999999999999986, [1.3350579023497693, -0.1628398819181729]), (18.099999999999987, [1.3184569521899885, -0.16930261694160742]), (18.19999999999999, [1.3011702614228584, -0.1765801560176023]), (18.29999999999999, [1.2831080053624984, -0.1848469261501327]), (18.39999999999999, [1.2641603803236854, -0.19433105285085944]), (18.499999999999993, [1.2441912065595875, -0.20533639864646133]), (18.599999999999994, [1.223028795895349, -0.2182761642075731]), (18.699999999999996, [1.2004525853581207, -0.23372561406278347]), (18.799999999999997, [1.1761730113852595, -0.25250755923684803]), (18.9, [1.1498002058052854, -0.27583622746253655]), (19.0, [1.120793440615155, -0.3055700907897038]), (19.1, [1.0883758154535934, -0.3446791606586903]), (19.200000000000003, [1.0513826040078582, -0.39816179971424037]), (19.300000000000004, [1.007974277854485, -0.47497709487743656]), (19.400000000000006, [0.955050297877386, -0.5924902188974976]), (19.500000000000007, [0.8869316967892436, -0.7878750186028514]), (19.60000000000001, [0.7920168207740913, -1.151677412475724]), (19.70000000000001, [0.6428435136053624, -1.9452340768368501]), (19.80000000000001, [0.36028849545154357, -4.093070878435393]), (19.900000000000013, [-0.3237918685422724, -10.672117692068898]), (20.000000000000014, [-1.5983729437962513, -9.823024152896966]), (20.100000000000016, [-1.995652644069921, -0.7271558008218746]), (20.200000000000017, [-2.0140070733191404, 0.028067577534377348]), (20.30000000000002, [-2.0085911781327477, 0.06429214958231695]), (20.40000000000002, [-2.0020218158612004, 0.0663469665632093]), (20.50000000000002, [-1.9953628876717293, 0.06679666377944904]), (20.600000000000023, [-1.9886642666216325, 0.06717510268670614]), (20.700000000000024, [-1.981927738806807, 0.06755652216878232]), (20.800000000000026, [-1.975152731936317, 0.0679448057573919]), (20.900000000000027, [-1.9683385350974791, 0.06834036413028775]), (21.00000000000003, [-1.9614844084972538, 0.06874344110789073]), (21.10000000000003, [-1.9545895880917175, 0.06915428196590302]), (21.20000000000003, [-1.9476532847838846, 0.06957314281341359]), (21.300000000000033, [-1.9406746832734518, 0.07000029173731252]), (21.400000000000034, [-1.9336529408208951, 0.07043600956236883]), (21.500000000000036, [-1.9265871859346702, 0.07088059064043546]), (21.600000000000037, [-1.9194765169766148, 0.07133434369866888]), (21.70000000000004, [-1.9123200006792982, 0.07179759275338389]), (21.80000000000004, [-1.9051166705684472, 0.0722706780957274]), (21.90000000000004, [-1.8978655252829348, 0.07275395735592259]), (22.000000000000043, [-1.8905655267841093, 0.0732478066535711]), (22.100000000000044, [-1.8832155984454446, 0.07375262184233194]), (22.200000000000045, [-1.8758146230126245, 0.07426881985823626]), (22.300000000000047, [-1.8683614404231876, 0.07479684018195568]), (22.40000000000005, [-1.8608548454737726, 0.07533714642654292]), (22.50000000000005, [-1.8532935853217873, 0.07589022806352226]), (22.60000000000005, [-1.8456763568069552, 0.07645660230175128]), (22.700000000000053, [-1.8380018035766716, 0.0770368161352314]), (22.800000000000054, [-1.830268512997385, 0.07763144857804603]), (22.900000000000055, [-1.8224750128322824, 0.07824111310689058]), (23.000000000000057, [-1.8146197676633948, 0.07886646033427497]), (23.10000000000006, [-1.8067011750337751, 0.07950818093847695]), (23.20000000000006, [-1.7987175612826278, 0.08016700887977352]), (23.30000000000006, [-1.7906671770431264, 0.08084372493644665]), (23.400000000000063, [-1.7825481923690718, 0.08153916059864294]), (23.500000000000064, [-1.7743586914524925, 0.08225420236347296]), (23.600000000000065, [-1.7660966668896347, 0.08298979648088711]), (23.700000000000067, [-1.757760013447497, 0.08374695420702383]), (23.800000000000068, [-1.7493465212769859, 0.08452675763006938]), (23.90000000000007, [-1.7408538685117858, 0.08533036614343004]), (24.00000000000007, [-1.7322796131840086, 0.08615902365245662]), (24.100000000000072, [-1.723621184378397, 0.08701406661442106]), (24.200000000000074, [-1.7148758725361304, 0.08789693302731601]), (24.300000000000075, [-1.7060408188067941, 0.08880917250183461]), (24.400000000000077, [-1.6971130033325714, 0.08975245757317851]), (24.500000000000078, [-1.6880892323317502, 0.09072859643591093]), (24.60000000000008, [-1.6789661238287867, 0.09173954731681214]), (24.70000000000008, [-1.669740091854813, 0.09278743473879157]), (24.800000000000082, [-1.6604073289149655, 0.09387456797476933]), (24.900000000000084, [-1.6509637864863185, 0.09500346204590522]), (25.000000000000085, [-1.6414051532715244, 0.09617686168588914]), (25.100000000000087, [-1.6317268308871171, 0.09739776877506187]), (25.200000000000088, [-1.6219239066102085, 0.09866947384872363]), (25.30000000000009, [-1.6119911227408967, 0.09999559240763842]), (25.40000000000009, [-1.6019228420575347, 0.10138010691174996]), (25.500000000000092, [-1.5917130087447429, 0.10282741552821159]), (25.600000000000094, [-1.5813551040555187, 0.10434238894238775]), (25.700000000000095, [-1.5708420958235645, 0.10593043683898673]), (25.800000000000097, [-1.5601663807631312, 0.10759758603781625]), (25.900000000000098, [-1.5493197182721996, 0.10935057274851707]), (26.0000000000001, [-1.5382931541789457, 0.11119695202305413]), (26.1000000000001, [-1.5270769325256606, 0.11314522827668895]), (26.200000000000102, [-1.515660393048066, 0.11520501177649069]), (26.300000000000104, [-1.5040318514538535, 0.11738720734195722]), (26.400000000000105, [-1.4921784588952076, 0.11970424327701693]), (26.500000000000107, [-1.480086036115806, 0.1221703509141394]), (26.600000000000108, [-1.4677388765640704, 0.12480190832123535]), (26.70000000000011, [-1.4551195112055562, 0.1276178660202272]), (26.80000000000011, [-1.4422084257037902, 0.13064027845259535]), (26.900000000000112, [-1.428983717880181, 0.133894973080064]), (27.000000000000114, [-1.4154206796362392, 0.13741240043146025]), (27.100000000000115, [-1.401491282427793, 0.14122872461685704]), (27.200000000000117, [-1.3871635383348642, 0.14538723714403076]), (27.300000000000118, [-1.3724006988951063, 0.14994021089571113]), (27.40000000000012, [-1.3571602398293028, 0.1549513615659658]), (27.50000000000012, [-1.3413925595197433, 0.16049915991009925]), (27.600000000000122, [-1.3250392893512735, 0.1666813549817166]), (27.700000000000124, [-1.3080310695520796, 0.173621251608296]), (27.800000000000125, [-1.2902845763558943, 0.1814765786495347]), (27.900000000000126, [-1.271698480612667, 0.19045226593251613]), (28.000000000000128, [-1.2521478492222466, 0.20081925908481368]), (28.10000000000013, [-1.2314762240316635, 0.2129429100215754]), (28.20000000000013, [-1.2094841452825642, 0.22732700811761009]), (28.300000000000132, [-1.1859120698514931, 0.244684222630008]), (28.400000000000134, [-1.1604141524029223, 0.266052862412213]), (28.500000000000135, [-1.1325165498081804, 0.29299846112177813]), (28.600000000000136, [-1.101548319503241, 0.3279787113624072]), (28.700000000000138, [-1.0665211936400885, 0.3750420205814426]), (28.80000000000014, [-1.0259079002301839, 0.44125674432426343]), (28.90000000000014, [-0.9772035588519703, 0.5398812818027383]), (29.000000000000142, [-0.9159787136520798, 0.6981327772912652]), (29.100000000000144, [-0.8335960194194888, 0.9787683544599667]), (29.200000000000145, [-0.7108619228495558, 1.5503519786339885]), (29.300000000000146, [-0.4968636665214707, 2.9633622466270637]), (29.400000000000148, [-0.0253299484915403, 7.299523545239552]), (29.50000000000015, [1.1151845079264409, 14.033632558861196]), (29.60000000000015, [1.9400038380512246, 2.4030468501571742]), (29.700000000000152, [2.01372718573274, 0.05940871982368921]), (29.800000000000153, [2.011043205226165, -0.06006343826377879]), (29.900000000000155, [2.004615728852934, -0.06600934592733881]), (30.000000000000156, [1.997977307135949, -0.06664221688794306]), (30.100000000000158, [1.9912936075675107, -0.06702712235169925]), (30.20000000000016, [1.9845719796850638, -0.06740629104200593]), (30.30000000000016, [1.977812133164536, -0.06779180519305669]), (30.400000000000162, [1.9710133796337774, -0.0681844828489144]), (30.500000000000163, [1.96417498911111, -0.06858458496886839]), (30.600000000000165, [1.9572962070978153, -0.06899235368693046]), (30.700000000000166, [1.9503762544445187, -0.06940804065513542]), (30.800000000000168, [1.943414326261711, -0.06983190917465393]), (30.90000000000017, [1.9364095907139578, -0.07026423498783764]), (31.00000000000017, [1.9293611877376458, -0.07070530704834066]), (31.100000000000172, [1.9222682276791458, -0.07115542834526235]), (31.200000000000173, [1.915129789847451, -0.07161491679056241]), (31.300000000000175, [1.9079449209746555, -0.0720841061758252]), (31.400000000000176, [1.9007126335770235, -0.07256334720486694]), (31.500000000000178, [1.8934319042087062, -0.07305300860937337]), (31.60000000000018, [1.886101671599419, -0.07355347835554862]), (31.70000000000018, [1.8787208346665327, -0.0740651649506523]), (31.800000000000182, [1.8712882503911121, -0.07458849885931278]), (31.900000000000183, [1.8638027315463788, -0.0751239340406464]), (32.000000000000185, [1.8562630442659145, -0.07567194961850711]), (32.100000000000186, [1.848667905437615, -0.07623305169865975]), (32.20000000000019, [1.841015979907943, -0.07680777534833881]), (32.30000000000019, [1.833305877479392, -0.07739668675555597]), (32.40000000000019, [1.8255361496822273, -0.07800038558768789]), (32.50000000000019, [1.817705286299499, -0.07861950757135816]), (32.60000000000019, [1.8098117116219776, -0.07925472731846629]), (32.700000000000195, [1.8018537804070252, -0.07990676142648277]), (32.800000000000196, [1.7938297735124105, -0.0805763718848828]), (32.9000000000002, [1.7857378931726873, -0.08126436982392275]), (33.0000000000002, [1.7775762578818817, -0.08197161964697286]), (33.1000000000002, [1.7693428968418348, -0.08269904359342228]), (33.2000000000002, [1.7610357439305218, -0.08344762678591512]), (33.3000000000002, [1.7526526311388957, -0.08421842282353467]), (33.400000000000205, [1.744191281418207, -0.08501255999172541]), (33.500000000000206, [1.7356493008721505, -0.08583124817048979]), (33.60000000000021, [1.7270241702194096, -0.08667578653502332]), (33.70000000000021, [1.7183132354420434, -0.08754757215782014]), (33.80000000000021, [1.7095136975233935, -0.08844810963886489]), (33.90000000000021, [1.7006226011655217, -0.08937902191135882]), (34.00000000000021, [1.6916368223602365, -0.09034206239522537]), (34.100000000000215, [1.6825530546691065, -0.09133912870023]), (34.200000000000216, [1.6733677940459637, -0.09237227811599441]), (34.30000000000022, [1.664077322009592, -0.09344374516882244]), (34.40000000000022, [1.6546776869438298, -0.09455596157670265]), (34.50000000000022, [1.6451646832661535, -0.09571157899622912]), (34.60000000000022, [1.6355338281627558, -0.09691349503108754]), (34.70000000000022, [1.6257803355367058, -0.09816488306457286]), (34.800000000000225, [1.6158990867540082, -0.09946922659257948]), (34.900000000000226, [1.605884597697963, -0.10083035887418004]), (35.00000000000023, [1.5957309815521055, -0.10225250889138816]), (35.10000000000023, [1.5854319066223663, -0.10374035482724628]), (35.20000000000023, [1.5749805483750787, -0.10529908654413804]), (35.30000000000023, [1.5643695347027147, -0.10693447888820888]), (35.40000000000023, [1.5535908832257301, -0.10865297808215375]), (35.500000000000234, [1.5426359291859357, -0.1104618040259304]), (35.600000000000236, [1.5314952421705672, -0.11236907204127618]), (35.70000000000024, [1.520158529508285, -0.11438393852340327]), (35.80000000000024, [1.5086145236742174, -0.1165167761730773]), (35.90000000000024, [1.4968508503979825, -0.11877938607297533]), (36.00000000000024, [1.4848538733418066, -0.1211852559813057]), (36.10000000000024, [1.472608510144421, -0.12374987703719044]), (36.200000000000244, [1.4600980132261425, -0.12649113488235592]), (36.300000000000246, [1.4473037069038392, -0.12942979640130006]), (36.40000000000025, [1.43420466990546, -0.13259012044815036]), (36.50000000000025, [1.4207773490653632, -0.1360006309228596]), (36.60000000000025, [1.4069950854811102, -0.13969510466990426]), (36.70000000000025, [1.3928275282169928, -0.14371384685825733]), (36.80000000000025, [1.3782399020016936, -0.1481053557879403]), (36.900000000000254, [1.3631920831574105, -0.15292852221288322]), (37.000000000000256, [1.3476374204794768, -0.15825557288327816]), (37.10000000000026, [1.331521212242081, -0.16417606652133684]), (37.20000000000026, [1.3147787126009753, -0.170802403584132]), (37.30000000000026, [1.297332483325349, -0.17827755433571832]), (37.40000000000026, [1.2790888182094537, -0.18678610496791367]), (37.50000000000026, [1.2599328274557107, -0.1965703805241195]), (37.600000000000264, [1.2397215421125816, -0.20795453388676666]), (37.700000000000266, [1.2182740193857045, -0.2213814915956087]), (37.80000000000027, [1.1953567759921646, -0.23747131829788798]), (37.90000000000027, [1.170661708837094, -0.25711656833596575]), (38.00000000000027, [1.1437714884280996, -0.2816441855356184]), (38.10000000000027, [1.1141031697063157, -0.31310294318971604]), (38.20000000000027, [1.080812030569025, -0.3548011518102481]), (38.300000000000274, [1.0426184768416007, -0.41237688975763365]), (38.400000000000276, [0.9974754704119637, -0.49609338887274507]), (38.50000000000028, [0.9418762692081898, -0.6262343174883324]), (38.60000000000028, [0.8692611813703183, -0.8473223957688574]), (38.70000000000028, [0.7658469150647352, -1.2714328944331783]), (38.80000000000028, [0.5977347504056053, -2.2361138231955335]), (38.90000000000028, [0.26255992199782013, -4.9815675343806]), (39.000000000000284, [-0.5766102646211161, -12.664760683917953]), (39.100000000000286, [-1.7747248114757612, -6.5291268679156]), (39.20000000000029, [-2.0068434201967915, -0.34756994930926655]), (39.30000000000029, [-2.0131803763223592, 0.04637123669257374]), (39.40000000000029, [-2.007189392128928, 0.06522684749244723]), (39.50000000000029, [-2.000585353718941, 0.06646724137554576]), (39.60000000000029, [-1.9939171533978128, 0.06687911265775322]), (39.700000000000294, [-1.987210353952299, 0.06725707655536725]), (39.800000000000296, [-1.9804655607444932, 0.06763990660686145]), (39.9000000000003, [-1.9736821383784002, 0.068029741554149]), (40.0000000000003, [-1.9668593680920086, 0.0684269058818202]), (40.1000000000003, [-1.9599965048488206, 0.06883164108675234]), (40.2000000000003, [-1.9530927792765986, 0.06924419459615003]), (40.3000000000003, [-1.9461473967113587, 0.06966482504176692]), (40.400000000000304, [-1.939159536024924, 0.07009380320146949]), (40.500000000000306, [-1.932128348372575, 0.07053141275718271]), (40.60000000000031, [-1.9250529558630525, 0.07097795109614267]), (40.70000000000031, [-1.917932450145466, 0.07143373017278982]), (40.80000000000031, [-1.9107658909067147, 0.07189907743761968]), (40.90000000000031, [-1.9035523042724136, 0.07237433683925557]), (41.00000000000031, [-1.8962906811036722, 0.0728598699066459]), (41.100000000000314, [-1.888979975181327, 0.07335605691904472]), (41.200000000000315, [-1.8816191012684367, 0.07386329817228844]), (41.30000000000032, [-1.8742069330409477, 0.07438201535084557]), (41.40000000000032, [-1.866742300875426, 0.0749126530162048]), (41.50000000000032, [-1.85922398948165, 0.07545568022339999]), (41.60000000000032, [-1.8516507353666005, 0.07601159227886638]), (41.70000000000032, [-1.844021224114988, 0.07658091265441076]), (41.800000000000324, [-1.8363340874698963, 0.07716419507388372]), (41.900000000000325, [-1.828587900195356, 0.07776202579120203]), (42.00000000000033, [-1.8207811767006818, 0.07837502608072079]), (42.10000000000033, [-1.8129123674041816, 0.07900385496365085]), (42.20000000000033, [-1.8049798548113198, 0.07964921219730488]), (42.30000000000033, [-1.7969819492795667, 0.08031184155751096]), (42.40000000000033, [-1.7889168844389303, 0.08099253444862521]), (42.500000000000334, [-1.780782812233501, 0.0816921338803069]), (42.600000000000335, [-1.7725777975451387, 0.08241153885569459]), (42.70000000000034, [-1.7642998123556841, 0.08315170922197769]), (42.80000000000034, [-1.7559467293985889, 0.0839136710417567]), (42.90000000000034, [-1.7475163152446196, 0.08469852255221487]), (43.00000000000034, [-1.7390062227590872, 0.08550744078922064]), (43.10000000000034, [-1.7304139828597649, 0.08634168896533426]), (43.200000000000344, [-1.7217369954950899, 0.08720262470462518]), (43.300000000000345, [-1.7129725197511416, 0.08809170925367278]), (43.40000000000035, [-1.7041176629830197, 0.08901051780760662]), (43.50000000000035, [-1.695169368851218, 0.08996075111319293]), (43.60000000000035, [-1.6861244041260717, 0.09094424853857096]), (43.70000000000035, [-1.6769793441027703, 0.09196300283225989]), (43.80000000000035, [-1.66773055644527, 0.09301917683368756]), (43.900000000000354, [-1.65837418324888, 0.09411512244527573]), (44.000000000000355, [-1.6489061210775073, 0.09525340223392754]), (44.10000000000036, [-1.6393219986913596, 0.09643681410000839]), (44.20000000000036, [-1.6296171521329565, 0.09766841953765504]), (44.30000000000036, [-1.619786596781832, 0.0989515761153482]), (44.40000000000036, [-1.6098249959191828, 0.10028997493514737]), (44.50000000000036, [-1.599726625260149, 0.10168768398925462]), (44.600000000000364, [-1.5894853328099336, 0.10314919853195635]), (44.700000000000365, [-1.5790944932761801, 0.10467949983448181]), (44.80000000000037, [-1.56854695611817, 0.10628412400414987]), (44.90000000000037, [-1.557834986126201, 0.10796924294644081]), (45.00000000000037, [-1.546950195192373, 0.10974176005457706]), (45.10000000000037, [-1.535883463644484, 0.11160942385989366]), (45.20000000000037, [-1.5246248491513261, 0.11358096371374432]), (45.300000000000374, [-1.5131634807485754, 0.11566625266082503]), (45.400000000000375, [-1.5014874349503429, 0.11787650409144486]), (45.50000000000038, [-1.4895835901628383, 0.12022451064655895]), (45.60000000000038, [-1.4774374546495785, 0.1227249363641979]), (45.70000000000038, [-1.46503296203804, 0.12539467643887747]), (45.80000000000038, [-1.4523522267025915, 0.1282533035620583]), (45.90000000000038, [-1.4393752491631202, 0.13132362612195353]), (46.000000000000384, [-1.4260795586972408, 0.13463239230158797]), (46.100000000000385, [-1.4124397763800827, 0.13821118642221622]), (46.20000000000039, [-1.3984270763075268, 0.14209758139367412]), (46.30000000000039, [-1.3840085151876491, 0.14633663640181185]), (46.40000000000039, [-1.3691461898417792, 0.15098286596044322]), (46.50000000000039, [-1.3537961669771195, 0.15610286149845742]), (46.60000000000039, [-1.3379071076027929, 0.16177882997226084]), (46.700000000000394, [-1.3214184760591567, 0.1681134425091018]), (46.800000000000395, [-1.304258174992969, 0.17523658841895307]), (46.9000000000004, [-1.2863393731069142, 0.18331495568645523]), (47.0000000000004, [-1.2675561758094522, 0.19256589668580604]), (47.1000000000004, [-1.2477776015263324, 0.20327794962294474]), (47.2000000000004, [-1.2268390172753842, 0.21584197993486426]), (47.3000000000004, [-1.2045296611495684, 0.23079978737746618]), (47.400000000000404, [-1.1805739532850428, 0.24892243593844537]), (47.500000000000405, [-1.1546026016674675, 0.2713411728766882]), (47.600000000000406, [-1.1261062649311147, 0.2997756495452285]), (47.70000000000041, [-1.0943579995881767, 0.33695176431815166]), (47.80000000000041, [-1.0582767465098761, 0.3874122771021109]), (47.90000000000041, [-1.0161720528337375, 0.45920227304125705]), (48.00000000000041, [-0.9652301872432943, 0.5676822025445525]), (48.10000000000041, [-0.9003803423410875, 0.7451056597180152]), (48.200000000000415, [-0.8114838920179798, 1.0680715364191167]), (48.300000000000416, [-0.6752336699431234, 1.750467608470249]), (48.40000000000042, [-0.4269626681486456, 3.522957374118276]), (48.50000000000042, [0.15087927493370357, 9.048823010085718]), (48.60000000000042, [1.4033399892150602, 12.298541339417811]), (48.70000000000042, [1.9785433116054554, 1.2665346439318106]), (48.80000000000042, [2.0142849958200344, -0.0012053571023560722]), (48.900000000000425, [2.0097091876064823, -0.0629732107208291]), (49.000000000000426, [2.0031854508389255, -0.0662228742575365]), (49.10000000000043, [1.9965348649296077, -0.06672867458874732]), (49.20000000000043, [1.9898428992924857, -0.06710874614915745]), (49.30000000000043, [1.9831130574941613, -0.06748909041860132]), (49.40000000000043, [1.9763448557193726, -0.06787612589729587]), (49.50000000000043, [1.9695375912725828, -0.06827038916517326]), (49.600000000000435, [1.9626905286778842, -0.06867212882293616]), (49.700000000000436, [1.9558029081830202, -0.0690815885765783]), (49.80000000000044, [1.9488739451690038, -0.0694990225166978]), (49.90000000000044, [1.9419028290226517, -0.06992469657211738]), (50.00000000000044, [1.9348887219139854, -0.07035888927595632]), (50.10000000000044, [1.9278307574972124, -0.07080189254586275]), (50.20000000000044, [1.920728039530922, -0.07125401252131063]), (50.300000000000445, [1.913579640411371, -0.07171557046549505]), (50.400000000000446, [1.9063845996120965, -0.07218690373792912]), (50.50000000000045, [1.8991419220224628, -0.07266836684437639]), (50.60000000000045, [1.8918505761770434, -0.07316033257146848]), (50.70000000000045, [1.884509492366971, -0.07366319321417523]), (50.80000000000045, [1.8771175606235226, -0.07417736190521179]), (50.90000000000045, [1.8696736285632507, -0.0747032740565057]), (51.000000000000455, [1.8621764990829004, -0.07524138892402042]), (51.100000000000456, [1.8546249278911546, -0.07579219130856224]), (51.20000000000046, [1.8470176208629163, -0.0763561934067062]), (51.30000000000046, [1.8393532312003433, -0.07693393682769331]), (51.40000000000046, [1.831630356383157, -0.07752599479410759]), (51.50000000000046, [1.8238475348888739, -0.07813297454637341]), (51.60000000000046, [1.8160032426614612, -0.07875551997366809]), (51.700000000000465, [1.8080958893045371, -0.0793943144967717]), (51.800000000000466, [1.800123813972494, -0.08005008423174044]), (51.90000000000047, [1.7920852809298702, -0.08072360146716084]), (52.00000000000047, [1.7839784747457867, -0.08141568849221147]), (52.10000000000047, [1.7758014950862917, -0.08212722181792935]), (52.20000000000047, [1.7675523510629305, -0.08285913684006943]), (52.30000000000047, [1.759228955090677, -0.08361243299891596]), (52.400000000000475, [1.7508291162024254, -0.08438817949952582]), (52.500000000000476, [1.7423505327604438, -0.0851875216653771]), (52.60000000000048, [1.733790784497334, -0.08601168800951835]), (52.70000000000048, [1.7251473238100168, -0.0868619981203962]), (52.80000000000048, [1.7164174662197809, -0.08773987147494515]), (52.90000000000048, [1.7075983798992895, -0.08864683730977015]), (53.00000000000048, [1.6986870741533167, -0.08958454570286631]), (53.100000000000485, [1.6896803867234762, -0.09055478004408647]), (53.200000000000486, [1.6805749697679049, -0.0915594711033158]), (53.30000000000049, [1.6713672743441692, -0.09260071294220319]), (53.40000000000049, [1.6620535331969393, -0.09368078095967464]), (53.50000000000049, [1.652629741620344, -0.09480215241508803]), (53.60000000000049, [1.6430916361273993, -0.09596752983792997]), (53.70000000000049, [1.6334346706141702, -0.09717986781222945]), (53.800000000000495, [1.623653989652836, -0.09844240372082422]), (53.900000000000496, [1.6137443984835516, -0.09975869315389418]), (54.0000000000005, [1.6037003291974552, -0.1011326508334493]), (54.1000000000005, [1.5935158025091922, -0.10256859808842579]), (54.2000000000005, [1.5831843844028695, -0.10407131814334843]), (54.3000000000005, [1.572699136795276, -0.10564612077021623]), (54.4000000000005, [1.5620525611878493, -0.10729891821516004]), (54.500000000000504, [1.5512365340656535, -0.10903631477133648]), (54.600000000000506, [1.5402422325363103, -0.1108657129575066]), (54.70000000000051, [1.5290600483696215, -0.11279544001876739]), (54.80000000000051, [1.517679488180074, -0.114834899447761]), (54.90000000000051, [1.5060890569633096, -0.11699475350719787]), (55.00000000000051, [1.4942761215190399, -0.11928714442431801]), (55.10000000000051, [1.4822267494189736, -0.12172596417211351]), (55.200000000000514, [1.4699255180438684, -0.12432718576065623]), (55.300000000000516, [1.4573552867283421, -0.1271092730331583]), (55.40000000000052, [1.4444969230890128, -0.13009369152752287]), (55.50000000000052, [1.431328971991868, -0.13330555065746091]), (55.60000000000052, [1.4178272520820332, -0.1367744182240972]), (55.70000000000052, [1.40396435998135, -0.1405353634983629]), (55.80000000000052, [1.3897090556094398, -0.14463030696514603]), (55.900000000000524, [1.3750254927857681, -0.14910978662475366]), (56.000000000000526, [1.3598722460856938, -0.15403529776168715]), (56.10000000000053, [1.344201065943111, -0.15948243376569854]), (56.20000000000053, [1.3279552662152039, -0.16554516378014897]), (56.30000000000053, [1.3110676070398302, -0.17234175188596043]), (56.40000000000053, [1.293457472937578, -0.1800230920813756]), (56.50000000000053, [1.2750270485010993, -0.18878467375930258]), (56.600000000000534, [1.2556560388555345, -0.19888413113956996]), (56.700000000000536, [1.2351942288791287, -0.21066760574272522]), (56.80000000000054, [1.2134507497244431, -0.22461042594700525]), (56.90000000000054, [1.1901781824769224, -0.24138181466602507]), (57.00000000000054, [1.1650482977800025, -0.2619514407855478]), (57.10000000000054, [1.137613728880952, -0.2877719877492432]), (57.20000000000054, [1.1072449416287193, -0.32110674195750033]), (57.300000000000544, [1.0730215709420194, -0.3656501142068156]), (57.400000000000546, [1.0335342519225172, -0.42778131778222234]), (57.50000000000055, [0.9864977686812613, -0.5193026121241711]), (57.60000000000055, [0.9279297295283497, -0.6640224433553533]), (57.70000000000055, [0.8502121768580972, -0.9156056432163202]), (57.80000000000055, [0.7368497832969003, -1.4139455696183343]), (57.90000000000055, [0.5455864171720926, -2.5994398187597882]), (58.000000000000554, [0.14289294100523553, -6.132058433921404]), (58.100000000000556, [-0.8671638842562275, -14.020159063889908]), (58.20000000000056, [-1.885690709918944, -3.8809748260507195]), (58.30000000000056, [-2.011973527760878, -0.14825931591375618]), (58.40000000000056, [-2.0120637798986194, 0.055842067030258354]), (58.50000000000056, [-2.0057723435017216, 0.06574851332441815]), (58.60000000000056, [-1.99914652390935, 0.06656803032179298]), (58.700000000000564, [-1.992469643988439, 0.06696090165576335]), (58.800000000000566, [-1.9857546652561608, 0.06733932378635582]), (58.90000000000057, [-1.979001575477812, 0.06772362106630042]), (59.00000000000057, [-1.972209703916499, 0.06811502035470601]), (59.10000000000057, [-1.96537832532417, 0.06851380182106451]), (59.20000000000057, [-1.9585066894449437, 0.0689202068228359]), (59.30000000000057, [-1.9515940215300154, 0.06933448508142515]), (59.400000000000574, [-1.9446395212934322, 0.0697568977914257]), (59.500000000000576, [-1.9376423617205563, 0.07018771845674554]), (59.60000000000058, [-1.9306016877992667, 0.0706272336539403]), (59.70000000000058, [-1.9235166151724992, 0.07107574384593347]), (59.80000000000058, [-1.9163862287063589, 0.07153356425788512]), (59.90000000000058, [-1.909209580967285, 0.07200102582133039]), (60.00000000000058, [-1.9019856906011245, 0.07247847619297398]), (60.100000000000584, [-1.8947135406063005, 0.07296628085519859]), (60.200000000000585, [-1.8873920764925238, 0.07346482430612145]), (60.30000000000059, [-1.8800202043156617, 0.073974511347912]), (60.40000000000059, [-1.8725967885784611, 0.07449576848307028]), (60.50000000000059, [-1.8651206499857997, 0.07502904542948662]), (60.60000000000059, [-1.857590563041997, 0.07557481676636689]), (60.70000000000059, [-1.8500052534764304, 0.07613358372454579]), (60.800000000000594, [-1.842363395482276, 0.07670587613634042]), (60.900000000000595, [-1.8346636087515882, 0.0772922545619559]), (61.0000000000006, [-1.826904455288123, 0.0778933126115727]), (61.1000000000006, [-1.8190844359772822, 0.07850967948466886]), (61.2000000000006, [-1.81120198689026, 0.07914202275090329]), (61.3000000000006, [-1.8032554752968963, 0.07979105140007214]), (61.4000000000006, [-1.7952431953587926, 0.08045751919231275]), (61.500000000000604, [-1.7871633634709427, 0.08114222834395374]), (61.600000000000605, [-1.779014113216342, 0.08184603358929016]), (61.70000000000061, [-1.7707934898937288, 0.08256984666421835]), (61.80000000000061, [-1.7624994445737185, 0.08331464126423141]), (61.90000000000061, [-1.7541298276329456, 0.08408145853692144]), (62.00000000000061, [-1.7456823817093916, 0.0848714131780639]), (62.10000000000061, [-1.7371547340146636, 0.08568570021080806]), (62.200000000000614, [-1.728544387930429, 0.08652560253976817]), (62.300000000000615, [-1.7198487138063343, 0.08739249938625722]), (62.40000000000062, [-1.7110649388652872, 0.08828787572797109]), (62.50000000000062, [-1.702190136108658, 0.08921333288665452]), (62.60000000000062, [-1.6932212120984487, 0.09017060043131467]), (62.70000000000062, [-1.684154893475317, 0.09116154959323551]), (62.80000000000062, [-1.6749877120500622, 0.09218820842337112]), (62.900000000000624, [-1.6657159882811197, 0.093252778963964]), (63.000000000000625, [-1.6563358129210148, 0.09435765675600082]), (63.10000000000063, [-1.6468430265796505, 0.09550545306438848]), (63.20000000000063, [-1.6372331969105691, 0.0966990202760749]), (63.30000000000063, [-1.6275015930764796, 0.09794148101587719]), (63.40000000000063, [-1.6176431570905616, 0.09923626163468569]), (63.50000000000063, [-1.6076524715580454, 0.10058713086027476]), (63.600000000000634, [-1.597523723255461, 0.10199824456882943]), (63.700000000000635, [-1.5872506618790612, 0.10347419784456013]), (63.80000000000064, [-1.5768265531645755, 0.10502008575677131]), (63.90000000000064, [-1.5662441254216655, 0.10664157461386888]), (64.00000000000064, [-1.5554955083304127, 0.10834498587216601]), (64.10000000000063, [-1.544572162603799, 0.1101373954108817]), (64.20000000000063, [-1.5334647988161902, 0.11202675156993638]), (64.30000000000062, [-1.52216328331581, 0.11402201623294932]), (64.40000000000062, [-1.510656528655807, 0.1161333343919464]), (64.50000000000061, [-1.4989323653625948, 0.11837223914540626]), (64.6000000000006, [-1.486977391069466, 0.12075190108729074]), (64.7000000000006, [-1.4747767920202588, 0.12328743372379394]), (64.8000000000006, [-1.462314130612758, 0.12599627016644904]), (64.90000000000059, [-1.4495710908935437, 0.12889863126824727]), (65.00000000000058, [-1.4365271715792371, 0.1320181121373804]), (65.10000000000058, [-1.423159313041019, 0.1353824233822923]), (65.20000000000057, [-1.4094414404289242, 0.13902433671127634]), (65.30000000000057, [-1.3953438992603093, 0.14298290344686107]), (65.40000000000056, [-1.3808327516563772, 0.14730504192018615]), (65.50000000000055, [-1.3658688899323854, 0.1520476299721498]), (65.60000000000055, [-1.3504069078229766, 0.15728029890339107]), (65.70000000000054, [-1.3343936457464685, 0.1630892165726324]), (65.80000000000054, [-1.3177662911918235, 0.1695822888598791]), (65.90000000000053, [-1.3004498620698053, 0.176896432556427]), (66.00000000000053, [-1.2823538189325188, 0.18520793501800836]), (66.10000000000052, [-1.2633674229590173, 0.1947475171672679]), (66.20000000000051, [-1.243353248309759, 0.20582274251645558]), (66.30000000000051, [-1.2221379115746847, 0.21885222099512028]), (66.4000000000005, [-1.1994984884330342, 0.23441934756375088]), (66.5000000000005, [-1.1751420358394458, 0.2533595512836885]), (66.60000000000049, [-1.1486736950582324, 0.2769073793569459]), (66.70000000000049, [-1.119545093435559, 0.306955464911061]), (66.80000000000048, [-1.0869671019535185, 0.3465342426799682]), (66.90000000000047, [-1.0497543901542357, 0.40075564103467864]), (67.00000000000047, [-1.0060304456885387, 0.4788085375676596]), (67.10000000000046, [-0.9526229153237111, 0.5985675276868141]), (67.20000000000046, [-0.8836987423433564, 0.7984738190913936]), (67.30000000000045, [-0.7872798083462095, 1.1727287705919012]), (67.40000000000045, [-0.634813079795169, 1.9953696415142779]), (67.50000000000044, [-0.3433010096066502, 4.2433521686502775]), (67.60000000000043, [0.36808388193815794, 11.060550295901718]), (67.70000000000043, [1.6371240970667436, 9.18973182541056]), (67.80000000000042, [1.998427362407709, 0.6361022897386407]), (67.90000000000042, [2.0138834493937714, -0.03249867429646745]), (68.00000000000041, [2.0083286568485232, -0.06451413593023614]), (68.1000000000004, [2.001751329114681, -0.06637179815181561]), (68.2000000000004, [1.9950905870918214, -0.06681228410170727]), (68.3000000000004, [1.988390423904538, -0.06719053085118795]), (68.40000000000039, [1.9816523408637563, -0.06757221025520038]), (68.50000000000038, [1.974875750723821, -0.06796078511759085]), (68.60000000000038, [1.9680599409413937, -0.06835664526441985]), (68.70000000000037, [1.9612041707310963, -0.06876003384096971]), (68.80000000000037, [1.9543076750485013, -0.06917119651493622]), (68.90000000000036, [1.947369663751691, -0.0695903898663886]), (69.00000000000036, [1.9403893204465934, -0.0700178824867042]), (69.10000000000035, [1.9333658012479271, -0.07045395573620564]), (69.20000000000034, [1.926298233463186, -0.07089890453568728]), (69.30000000000034, [1.919185714194579, -0.07135303821717275]), (69.40000000000033, [1.9120273088526463, -0.07181668144057335]), (69.50000000000033, [1.904822049574664, -0.07229017518242761]), (69.60000000000032, [1.897568933540286, -0.0727738778035019]), (69.70000000000032, [1.8902669211761787, -0.07326816620277038]), (69.80000000000031, [1.8829149342405882, -0.07377343706613093]), (69.9000000000003, [1.8755118537779198, -0.07429010821915498]), (70.0000000000003, [1.8680565179324151, -0.07481862009423657]), (70.10000000000029, [1.8605477196089102, -0.0753594373237106]), (70.20000000000029, [1.8529842039674609, -0.07591305047187719]), (70.30000000000028, [1.845364665737215, -0.07647997792042119]), (70.40000000000028, [1.8376877463334091, -0.07706076792348009]), (70.50000000000027, [1.8299520307596198, -0.07765600085062718]), (70.60000000000026, [1.8221560442754798, -0.07826629163833375]), (70.70000000000026, [1.8142982488078638, -0.07889229247310522]), (70.80000000000025, [1.8063770390810998, -0.0795346957325017]), (70.90000000000025, [1.7983907384389701, -0.08019423721371893]), (71.00000000000024, [1.7903375943280788, -0.08087169968340338]), (71.10000000000024, [1.782215773408616, -0.08156791678697928]), (71.20000000000023, [1.7740233562544079, -0.08228377736110917]), (71.30000000000022, [1.7657583315995276, -0.0830202301990935]), (71.40000000000022, [1.7574185900833699, -0.08377828932622239]), (71.50000000000021, [1.7490019174400095, -0.08455903985048638]), (71.60000000000021, [1.7405059870706279, -0.0853636444638792]), (71.7000000000002, [1.7319283519297253, -0.08619335068103756]), (71.8000000000002, [1.723266435646475, -0.08704949891551692]), (71.90000000000019, [1.7145175227918097, -0.0879335315099761]), (72.00000000000018, [1.7056787481892377, -0.08884700285546725]), (72.10000000000018, [1.6967470851528157, -0.08979159075746913]), (72.20000000000017, [1.687719332518623, -0.09076910923306883]), (72.30000000000017, [1.6785921003160913, -0.09178152295566926]), (72.40000000000016, [1.6693617939020529, -0.09283096360197832]), (72.50000000000016, [1.6600245963526499, -0.09391974840226039]), (72.60000000000015, [1.6505764488754535, -0.09505040125071887]), (72.70000000000014, [1.6410130289651526, -0.09622567680074924]), (72.80000000000014, [1.6313297259797241, -0.09744858805256604]), (72.90000000000013, [1.6215216137583297, -0.09872243804208253]), (73.00000000000013, [1.6115834198352852, -0.10005085636469518]), (73.10000000000012, [1.601509490723644, -0.10143784142193275]), (73.20000000000012, [1.5912937526438988, -0.10288780947074955]), (73.30000000000011, [1.5809296669537876, -0.10440565179500583]), (73.4000000000001, [1.5704101793887575, -0.10599680161998043]), (73.5000000000001, [1.5597276620422555, -0.10766731277177592]), (73.6000000000001, [1.548873846791577, -0.10942395256814325]), (73.70000000000009, [1.5378397485966113, -0.11127431204798237]), (73.80000000000008, [1.5266155767498055, -0.11322693744704018]), (73.90000000000008, [1.515190631715219, -0.11529148786692185]), (74.00000000000007, [1.5035531846349075, -0.11747892544495415]), (74.10000000000007, [1.4916903358645617, -0.11980174612783241]), (74.20000000000006, [1.4795878479763216, -0.12227426154118548]), (74.30000000000005, [1.4672299474650354, -0.12491294565659258]), (74.40000000000005, [1.4545990878176478, -0.12773686430970688]), (74.50000000000004, [1.4416756645177324, -0.1307682115876662]), (74.60000000000004, [1.428437669764992, -0.1340329853669178]), (74.70000000000003, [1.4148602709153162, -0.1375618458675441]), (74.80000000000003, [1.4009152914868521, -0.14139121753691428]), (74.90000000000002, [1.3865705664357553, -0.14556471824486578]), (75.00000000000001, [1.371789133389815, -0.15013503433587735]), (75.10000000000001, [1.3565282072813867, -0.15516641135700968]), (75.2, [1.3407378652406745, -0.16073800764960683]), (75.3, [1.3243593383790933, -0.16694847692439216]), (75.39999999999999, [1.3073227618662153, -0.17392233248303982]), (75.49999999999999, [1.2895441656812086, -0.181818944880639]), (75.59999999999998, [1.2709213807425628, -0.19084551626112947]), (75.69999999999997, [1.251328363023804, -0.2012762038763168]), (75.79999999999997, [1.2306071557207463, -0.21348100683571292]), (75.89999999999996, [1.208556231552796, -0.2279706203086721]), (75.99999999999996, [1.184913121003689, -0.2454682917918676]), (76.09999999999995, [1.1593277124205326, -0.26702910902500043]), (76.19999999999995, [1.1313197251490215, -0.29424631965155706]), (76.29999999999994, [1.1002081014155747, -0.3296256201309972]), (76.39999999999993, [1.064987893193537, -0.3773034002949058]), (76.49999999999993, [1.0241026671494033, -0.4445206555039136]), (76.59999999999992, [0.9749927538930144, -0.544904152601589]), (76.69999999999992, [0.9131159901803386, -0.7065440455839288]), (76.79999999999991, [0.829574441464772, -0.9945631331670096]), (76.8999999999999, [0.7044720989360828, -1.5851347925980437]), (76.9999999999999, [0.4845922992746128, -3.0585235942084883]), (77.0999999999999, [-0.005038176970770525, -7.603191976641623]), (77.19999999999989, [-1.1720446182702426, -13.853771371203393]), (77.29999999999988, [-1.9492494995163292, -2.13794455335544]), (77.39999999999988, [-2.0139388128106344, -0.04473383478922781]), (77.49999999999987, [-2.010796925200952, 0.06076384559923753]), (77.59999999999987, [-2.0043465713161153, 0.066056751435646]), (77.69999999999986, [-1.9977056340159953, 0.06665883435648978]), (77.79999999999986, [-1.9910203681375147, 0.06704249680708421]), (77.89999999999985, [-1.9842971943189922, 0.06742186979184082]), (77.99999999999984, [-1.9775357758302228, 0.06780766899290938]), (78.09999999999984, [-1.9707354211058015, 0.0682006445746563]), (78.19999999999983, [-1.9638953991067885, 0.06860105440966806]), (78.29999999999983, [-1.9570149543469966, 0.06900914088647005]), (78.39999999999982, [-1.9500933066503696, 0.06942515611211955]), (78.49999999999982, [-1.9431296500531576, 0.06984936388026793]), (78.59999999999981, [-1.9361231515949122, 0.0702820404564031]), (78.6999999999998, [-1.929072950033089, 0.0707234753497551]), (78.7999999999998, [-1.9219781544778485, 0.07117397213989281]), (78.89999999999979, [-1.9148378429410677, 0.07163384936684615]), (78.99999999999979, [-1.9076510607929167, 0.07210344149083062]), (79.09999999999978, [-1.9004168191187094, 0.07258309992809348]), (79.19999999999978, [-1.8931340929680707, 0.07307319417009896]), (79.29999999999977, [-1.8858018194876798, 0.07357411299406896]), (79.39999999999976, [-1.8784188959280332, 0.0740862657737942]), (79.49999999999976, [-1.8709841775136986, 0.07461008390064744]), (79.59999999999975, [-1.863496475165502, 0.07514602232587911]), (79.69999999999975, [-1.8559545530619102, 0.07569456123657553]), (79.79999999999974, [-1.8483571260255662, 0.07625620787913655]), (79.89999999999974, [-1.8407028567194594, 0.076831498545808]), (79.99999999999973, [-1.832990352635572, 0.07742100074171422]), (80.09999999999972, [-1.8252181628569863, 0.07802531555201822]), (80.19999999999972, [-1.8173847745723657, 0.07864508023132942]), (80.29999999999971, [-1.8094886093193487, 0.07928097104033933]), (80.39999999999971, [-1.801528018930757, 0.07993370635794425]), (80.4999999999997, [-1.7935012811545035, 0.08060405010089339]), (80.5999999999997, [-1.7854065949146534, 0.08129281548735807]), (80.69999999999969, [-1.777242075177239, 0.08200086918585285]), (80.79999999999968, [-1.7690057473799652, 0.0827291358967819]), (80.89999999999968, [-1.7606955413799121, 0.08347860342066628]), (80.99999999999967, [-1.7523092848675301, 0.0842503282750162]), (81.09999999999967, [-1.7438446961885956, 0.08504544193104113]), (81.19999999999966, [-1.7352993765081384, 0.08586515775221511]), (81.29999999999966, [-1.7266708012415246, 0.08671077872941328]), (81.39999999999965, [-1.7179563106677016, 0.08758370612232039]), (81.49999999999964, [-1.7091530996277606, 0.08848544913450013]), (81.59999999999964, [-1.7002582061982254, 0.08941763577050743]), (81.69999999999963, [-1.691268499212418, 0.09038202504839372]), (81.79999999999963, [-1.6821806644844794, 0.09138052077075744]), (81.89999999999962, [-1.6729911895685763, 0.09241518709321625]), (81.99999999999962, [-1.663696346859839, 0.09348826617212236]), (82.09999999999961, [-1.6542921748129134, 0.09460219822520101]), (82.1999999999996, [-1.6447744570175702, 0.09575964440166847]), (82.2999999999996, [-1.6351386988274847, 0.09696351293489303]), (82.3999999999996, [-1.6253801011864468, 0.09821698914427764]), (82.49999999999959, [-1.6154935312340684, 0.09952356996796499]), (82.59999999999958, [-1.6054734891980489, 0.10088710384987631]), (82.69999999999958, [-1.5953140709892, 0.10231183698064762]), (82.79999999999957, [-1.5850089258049462, 0.10380246711152452]), (82.89999999999957, [-1.574551207911842, 0.10536420643565086]), (82.99999999999956, [-1.5639335216115258, 0.1070028553784058]), (83.09999999999955, [-1.553147858189222, 0.10872488957924088]), (83.19999999999955, [-1.542185523388664, 0.11053756291028845]), (83.29999999999954, [-1.5310370536381321, 0.11244903010094962]), (83.39999999999954, [-1.519692118850557, 0.11446849347504003]), (83.49999999999953, [-1.50813940911156, 0.11660637953029447]), (83.59999999999953, [-1.4963665019196062, 0.11887455269886961]), (83.69999999999952, [-1.484359705806983, 0.12128657576139944]), (83.79999999999951, [-1.4721038750873066, 0.1238580292427252]), (83.89999999999951, [-1.4595821890593526, 0.12660690597550106]), (83.9999999999995, [-1.4467758871289942, 0.1295541022825453]), (84.0999999999995, [-1.433663948822582, 0.13272403449135814]), (84.19999999999949, [-1.4202227043156572, 0.13614541962728996]), (84.29999999999949, [-1.4064253565423734, 0.13985227344647005]), (84.39999999999948, [-1.3922413896727301, 0.14388519945750125]), (84.49999999999947, [-1.3776358299865237, 0.14829307232495534]), (84.59999999999947, [-1.362568312785572, 0.1531352628931437]), (84.69999999999946, [-1.3469918912019319, 0.15848461777987927]), (84.79999999999946, [-1.3308514968111897, 0.1644315067474746]), (84.89999999999945, [-1.3140819234253382, 0.1710894070466386]), (84.99999999999945, [-1.2966051471000573, 0.17860274184103878]), (85.09999999999944, [-1.2783267051824645, 0.18715809315387283]), (85.19999999999943, [-1.2591307144511312, 0.19700058306134272]), (85.29999999999943, [-1.2388728765309203, 0.20845837325384486]), (85.39999999999942, [-1.2173704312449696, 0.2219802832298316]), (85.49999999999942, [-1.194387349757674, 0.23819529334929268]), (85.59999999999941, [-1.169611862525843, 0.2580098993962393]), (85.6999999999994, [-1.1426211853252635, 0.28277369303162375]), (85.7999999999994, [-1.1128239440231302, 0.3145739159071456]), (85.8999999999994, [-1.0793617917785883, 0.35678775567508403]), (85.99999999999939, [-1.0409318866357498, 0.4151846654441]), (86.09999999999938, [-0.9954448079276662, 0.5002985524914542]), (86.19999999999938, [-0.9393098921504148, 0.633026887008895]), (86.29999999999937, [-0.8657827877367842, 0.8594642097574026]), (86.39999999999937, [-0.7606138633217628, 1.2963907113900972]), (86.49999999999936, [-0.5884940520826587, 2.2984304562977886]), (86.59999999999935, [-0.2418607683147257, 5.176413236957025]), (86.69999999999935, [0.6289146777645388, 12.99519536803479]), (86.79999999999934, [1.8001753719665656, 5.963192391724034]), (86.89999999999934, [2.0081601619825586, 0.2994890259822243]), (86.99999999999933, [2.012986598804519, -0.048661666049499015]), (87.09999999999933, [2.0069232689718044, -0.06534883397656313]), (87.19999999999932, [2.0003143865503845, -0.06648734897168332]), (87.29999999999932, [1.9936445171173258, -0.06689455724852905]), (87.39999999999931, [1.9869361770039717, -0.06727255350779808]), (87.4999999999993, [1.980189822793407, -0.06765565657957393]), (87.5999999999993, [1.9734048108291091, -0.06804578536291037]), (87.69999999999929, [1.9665804210488698, -0.06844325357149483]), (87.79999999999929, [1.9597159074321575, -0.06884830254848576]), (87.89999999999928, [1.9528104995973405, -0.06926118014443897]), (87.99999999999928, [1.9458634018252527, -0.06968214547120036]), (88.09999999999927, [1.938873791882963, -0.07011146981763931]), (88.19999999999926, [1.9318408197683352, -0.07054943740826937]), (88.29999999999926, [1.924763606376761, -0.07099634620681379]), (88.39999999999925, [1.9176412420845488, -0.07145250878071138]), (88.49999999999925, [1.9104727852425534, -0.07191825323282519]), (88.59999999999924, [1.9032572605730114, -0.07239392420664172]), (88.69999999999924, [1.8959936574619005, -0.07287988397189105]), (88.79999999999923, [1.8886809281383983, -0.07337651359827975]), (88.89999999999922, [1.8813179857322042, -0.0738842142258872]), (88.99999999999922, [1.8739037021986058, -0.0744034084417424]), (89.09999999999921, [1.866436906100132, -0.07493454177319607]), (89.1999999999992, [1.8589163802325455, -0.07547808430993802]), (89.2999999999992, [1.8513408590816571, -0.07603453246791621]), (89.3999999999992, [1.8437090260960376, -0.07660441091000902]), (89.49999999999919, [1.8360195107591388, -0.07718827464011789]), (89.59999999999918, [1.8282708854425662, -0.07778671128941723]), (89.69999999999918, [1.820461662020247, -0.0784003436158656]), (89.79999999999917, [1.8125902882210032, -0.07902983224079]), (89.89999999999917, [1.8046551436945122, -0.07967587864946238]), (89.99999999999916, [1.7966545357627466, -0.08033922848616387]), (90.09999999999916, [1.7885866948257636, -0.08102067517834678]), (90.19999999999915, [1.7804497693870074, -0.08172106392926634]), (90.29999999999914, [1.772241820659076, -0.08244129612396028]), (90.39999999999914, [1.7639608167061174, -0.08318233419985316]), (90.49999999999913, [1.7556046260735216, -0.08394520704070262]), (90.59999999999913, [1.7471710108492806, -0.08473101596129191]), (90.69999999999912, [1.7386576190941592, -0.0855409413604369]), (90.79999999999912, [1.7300619765694754, -0.08637625013180066]), (90.89999999999911, [1.721381477681655, -0.08723830393604726]), (90.9999999999991, [1.7126133755515853, -0.08812856845443363]), (91.0999999999991, [1.7037547711037966, -0.08904862376356486]), (91.1999999999991, [1.694802601055434, -0.090000175994351]), (91.29999999999909, [1.6857536246672933, -0.09098507046600339]), (91.39999999999908, [1.6766044090985333, -0.09200530651916373]), (91.49999999999908, [1.6673513131822912, -0.0930630543122012]), (91.59999999999907, [1.6579904694107381, -0.09416067389284925]), (91.69999999999906, [1.64851776388404, -0.09530073691563828]), (91.79999999999906, [1.6389288139372293, -0.09648605144637808]), (91.89999999999905, [1.629218943110703, -0.09771969038140291]), (91.99999999999905, [1.6193831530721492, -0.09900502411527794]), (92.09999999999904, [1.6094160920280585, -0.10034575822124632]), (92.19999999999904, [1.5993120190787458, -0.10174597707037418]), (92.29999999999903, [1.5890647638685127, -0.10321019451656575]), (92.39999999999903, [1.57866768075777, -0.10474341302639346]), (92.49999999999902, [1.5681135965908073, -0.10635119294952163]), (92.59999999999901, [1.5573947509440476, -0.10803973402669691]), (92.69999999999901, [1.5465027275054513, -0.10981597174322989]), (92.799999999999, [1.5354283749434996, -0.11168769179135617]), (92.899999999999, [1.5241617152574176, -0.11366366675118733]), (92.99999999999899, [1.512691837136656, -0.1157538202010459]), (93.09999999999899, [1.5010067712677333, -0.11796942491161243]), (93.19999999999898, [1.4890933437701679, -0.12032334368664682]), (93.29999999999897, [1.4769370029658873, -0.12283032395782306]), (93.39999999999897, [1.4645216134131205, -0.1255073606661229]), (93.49999999999896, [1.4518292094618428, -0.12837414661756774]), (93.59999999999896, [1.4388396983665317, -0.13145363589455586]), (93.69999999999895, [1.4255305000145122, -0.13477275478522052]), (93.79999999999895, [1.4118761062937752, -0.13836330717611092]), (93.89999999999894, [1.3978475375940638, -0.1422631391269413]), (93.99999999999893, [1.383411666260182, -0.1465176530027928]), (94.09999999999893, [1.3685303660210688, -0.15118179912831042]), (94.19999999999892, [1.3531594310125246, -0.1563227288904957]), (94.29999999999892, [1.337247185678825, -0.1620233779884488]), (94.39999999999891, [1.32073267390786, -0.1683873793903894]), (94.4999999999989, [1.3035432662844146, -0.17554591176155773]), (94.5999999999989, [1.2855914485012896, -0.18366742145829343]), (94.6999999999989, [1.2667704350504547, -0.1929717052100366]), (94.79999999999889, [1.2469480611944874, -0.2037507727961941]), (94.89999999999888, [1.225958090484151, -0.21640054056095848]), (94.99999999999888, [1.2035875372433062, -0.23147036082837577]), (95.09999999999887, [1.1795576550132727, -0.24974294930628435]), (95.19999999999887, [1.15349450287064, -0.27236818779977395]), (95.29999999999886, [1.1248816669030293, -0.3010968044056772]), (95.39999999999885, [1.0929809821179537, -0.33870914225682736]), (95.49999999999885, [1.0566926674695205, -0.38984912017926615]), (95.59999999999884, [1.0142930683759819, -0.46276364964536154]), (95.69999999999884, [0.9629049520923152, -0.5732528239335122]), (95.79999999999883, [0.8973238771312249, -0.7546398410802307]), (95.89999999999883, [0.8070929306817975, -1.0865213295839151]), (95.99999999999882, [0.6680128085957002, -1.7928418580142989]), (96.09999999999881, [0.4123560393874975, -3.645007485711052]), (96.19999999999881, [-0.1885030151451524, -9.41349107234128]), (96.2999999999988, [-1.4524343702435722, -11.78259906065054]), (96.3999999999988, [-1.9833944919197273, -1.1165997000823826]), (96.49999999999879, [-2.0142643173652792, 0.008783514871254054]), (96.59999999999879, [-2.0094517369922613, 0.06334201289952533]), (96.69999999999878, [-2.002915455470868, 0.06625464318001346]), (96.79999999999878, [-1.996262840866877, 0.06674458829816117]), (96.89999999999877, [-1.9895693271139767, 0.06712414250675627]), (96.99999999999876, [-1.9828379345089977, 0.0675047289660014]), (97.09999999999876, [-1.9760681545571983, 0.06789205329020555]), (97.19999999999875, [-1.9692592824493071, 0.06828661662003027]), (97.29999999999875, [-1.9624105816991682, 0.06868866613020552]), (97.39999999999874, [-1.9555212915604598, 0.06909844587331948]), (97.49999999999874, [-1.9485906263775536, 0.06951621040554275]), (97.59999999999873, [-1.941617774452301, 0.06994222615477012]), (97.69999999999872, [-1.9346018968183207, 0.07037677218408235]), (97.79999999999872, [-1.9275421259387922, 0.0708201409740339]), (97.89999999999871, [-1.9204375643232359, 0.0712726392624636]), (97.9999999999987, [-1.9132872830571162, 0.07173458894915022]), (98.0999999999987, [-1.9060903202374846, 0.07220632807142753]), (98.1999999999987, [-1.8988456793072395, 0.0726882118574194]), (98.29999999999869, [-1.8915523272798749, 0.07318061386427706]), (98.39999999999868, [-1.8842091928458211, 0.07368392720961962]), (98.49999999999868, [-1.8768151643506006, 0.07419856590530383]), (98.59999999999867, [-1.8693690876340758, 0.07472496630368951]), (98.69999999999867, [-1.861869763718975, 0.07526358866774992]), (98.79999999999866, [-1.8543159463356935, 0.07581491887770994]), (98.89999999999866, [-1.8467063392690197, 0.07637947028841513]), (98.99999999999865, [-1.839039593510933, 0.07695778575335734]), (99.09999999999864, [-1.8313143042019253, 0.07755043983325195]), (99.19999999999864, [-1.8235290073414168, 0.07815804120930363]), (99.29999999999863, [-1.8156821762456654, 0.07878123532386798]), (99.39999999999863, [-1.8077722177291944, 0.07942070727415872]), (99.49999999999862, [-1.7997974679829958, 0.08007718498803429]), (99.59999999999862, [-1.7917561881197042, 0.08075144271479072]), (99.69999999999861, [-1.7836465593523916, 0.08144430486838468]), (99.7999999999986, [-1.7754666777696786, 0.08215665026570924]), (99.8999999999986, [-1.7672145486652555, 0.08288941680857623]), (99.9999999999986, [-1.7588880803747386, 0.08364360666507148])]
t_x_pairs = [(t,y0) for t,(y0,y1) in T.solution]
line2d(t_x_pairs)
You can also get a function which interpolates values between the computed points.
y0_sol = T.interpolate_solution(0) # Get solution y_0
y1_sol = T.interpolate_solution(1) # Get solution y_1
plot(y0_sol, 0, 100) + plot(y1_sol, 0, 100, color='red', zorder=-1)
Remark: You can also plot with and T.plot_solution(0)
T.plot_solution(1)
.
Here is a plots of the path $t \mapsto \big(y_0(t), y_1(t)\big).$ These are solutions to a version of the two-dimensional van der Pol oscillator.
path = [(y0, y1) for t,(y0,y1) in T.solution]
line2d(path)
The solution looks polygonal. Below we adjust the initial conditions and parameter $\mu$ and increase the number of points used to get a smooth plot.
T.ode_solve(y_0=[1/100,0], t_span=[0,100], params=[0.7],
num_points=10000)
path = [(y0, y1) for t,(y0,y1) in T.solution]
line2d(path)
Remarks: The error tolerances can be adjusted. There are a number of different algorithms that can be used. The book Computational Mathematics with SageMath has some more examples. Also see the SageMath reference on ode_solver