{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Решение ОДУ\n", "\n", "Подмодуль [scipy.integrate](https://docs.scipy.org/doc/scipy/reference/integrate.html#module-scipy.integrate) содержит в себе множество методов решения систем обыкновенных дифференциальных уравнений (ОДУ, `ordinary differential equation`, `ODE`).\n", "\n", "Т.к. везде ниже будут строиться графики полученного и точного решений уравнения, определим функцию для построения графиков этих решений." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from matplotlib import pyplot as plt\n", "def plot(ax, x, exact_sol, sol_x, sol_y, xlabel=\"t\", s=\"r.\"):\n", " ax.plot(x, exact_sol(x), \"b\")\n", " ax.plot(sol_x, sol_y, s)\n", " ax.set_xlabel(xlabel)\n", " ax.set_ylabel(\"y\")\n", " ax.legend([\"Точное решение\", \"Приближенное решение\"])\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Задача Коши\n", "\n", "Функция [scipy.integrate.solve_ivp](https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.solve_ivp.html#scipy.integrate.solve_ivp) (`solve initial value problem`) позволяет численно решать задачу Коши вида\n", "\n", "$$\n", "\\begin{cases}\n", "\\dfrac{dy}{dt} = f(t, y) \\\\\n", "y(t_0) = y_0.\n", "\\end{cases}\n", "$$\n", "\n", "Предполагается, что в общем случае $y=y(t)$ является векторной и решается система обыкновенных дифференциальных уравнений.\n", "\n", "$$\n", "\\begin{cases}\n", "\\dot{y}_1 = f_1(t, y_1, \\cdots, y_n), \\\\\n", "\\cdots \\\\\n", "\\dot{y}_n = f_n(t, y_1, \\cdots, y_n), \\\\\n", "y_1(t_0) = y_{10}, \\\\\n", "\\cdots \\\\\n", "y_n(t_0) = y_{n0}.\n", "\\end{cases}\n", "$$\n", "\n", "```{note}\n", "Чтобы численно решить уравнение $n$-го порядка, необходимо свести его к системе из $n$ уравнений первого порядка.\n", "```\n", "\n", "В качестве самого простого примера, решим уравнение\n", "\n", "$$\n", "\\begin{cases}\n", "y' = y, \\\\\n", "y(0) = 0.\n", "\\end{cases}\n", "$$" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnoAAAIgCAYAAAASv8SdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABuk0lEQVR4nO3deZyNZR/H8c9lG0shkmRplLIVqgmVnRKV6lHKkmxRKaXladGikEqhlGyVhJRCiVTCUEh4sqWyRJJ9iCxjluv545oZs5xZzJx9vu/X67zG3Oe+7+t37qbx87s2Y61FRERERMJPgUAHICIiIiK+oURPREREJEwp0RMREREJU0r0RERERMKUEj0RERGRMKVET0RERCRMFQp0AMHo7LPPtpGRkYEOQ0RERCRbq1at2m+tLefpPSV6HkRGRrJy5cpAhyEiIiKSLWPM9szeU9etiIiISJhSoiciIiISppToiYiIiIQpJXoiIiIiYUqJnoiIiEiYUqInIiIiEqa0vEouHT58mL179xIXFxfoUEQkyBQuXJhzzjmHkiVLBjoUEcnnlOjlwuHDh9mzZw8VK1akWLFiGGMCHZKIBAlrLcePH2fnzp0ASvZEJKDUdZsLe/fupWLFihQvXlxJnoikYYyhePHiVKxYkb179wY6HBHJ55To5UJcXBzFihULdBgiEsSKFSumoR0iEnBK9HJJlTwRyYp+R4hIMFCiJyIiIhKmlOiJiIiIhCklevmcMSbbV2RkZKDDFBERkVzQ8ir53LJly9J8f+utt1K3bl0GDhyYciwiIsLPUYmIiIg3KNHL5xo2bJjm+4iICM4+++wMx0VERCT0+LXr1hhzmzHmM2PMdmPMcWPMb8aYocaYM9Odd5YxZoIxZr8x5qgxZr4x5tIctlHAGPOUMWabMeaEMWaNMaa9bz5R/jN58mTq1q1L0aJFOfvss7nrrrvYtWtXyvuLFi3CGMOiRYvSXBcZGUm3bt1Svp84cSLGGDZv3pzmvOTr58+fn3LMWsuIESOoXr06RYoUoUKFCjzwwAMcPnw4zbXx8fEMHTqUGjVqEBERwXnnncejjz7KiRMnsv1cxhgGDBjAkCFDqFSpEsWKFaNJkyb8/PPPGc6dMWMGDRs2pHjx4pQuXZrbb7+dP//8M8Pn7dKlS5pjjRo1olmzZmmO3XnnnVSrVi3NsWPHjvHEE09QtWpVihQpQtWqVRkyZAiJiYlZPieAbdu2YYxhwoQJKce6deuWod0lS5Z47JbPSdsiIhI6/F3Rewz4E3ga+Au4DBgINDfGXG2tTTRuTYLZQCTwIHAQeApYaIypZ639K5s2BiW1MwBYBdwJTDfG3Gitnev9j+Q8/DB4yAn8ql49GDnSd/cfN24cffr04Y477mDo0KH8/fffPP300/z444+sXr2aM844wyftDhgwgKFDh9K3b19uuukmfvnlF5599lnWrFlDdHQ0BQq4f6906dKF2bNn88QTT3D11VezceNGnn32WbZt28Znn32WbTuTJk2iSpUqvPXWW8TGxvLcc8/RsmVLNm3aRJkyZQAYM2YM9913H927d+e5557jyJEjDBw4kKZNm7J27VrOPPPMbFrJWnx8PK1bt075jJdeeinLly9n0KBBxMTE8Prrr+fp/gAJCQn07duXggUL+r1tERHxL38nejdZa/el+j7aGBMDfAA0AxYA7YBrgBbW2oUAxphlwB/Af4F+md3cGHMOLsl72Vr7WtLhhcaYasDLgM8SvXCXkJDAs88+S7NmzZg2bVrK8Ro1atC4cWPee+89+vXrl7KQ9L///uuVdpMTjLvvvpu33noLgNatW1OuXDnuuusuvvzyS9q1a8eSJUv4+OOP+eCDD+jatSsArVq1okyZMnTp0oWff/6ZevXqZdnW8ePH+eabbyhRogQADRo04KKLLmLEiBEMGjSIf//9lyeeeILu3bvz3nvvpVxXv359qlevzrvvvsvDDz+cp8/70Ucf8f333xMdHU2TJk0AaNmyJQAvvPACTzzxBOecc06e2njrrbfYunUr3bp1S1MR9EfbIiL5hbVwfM9hip8b2G0Q/ZropUvykv2U9LVi0td2wN/JSV7Sdf8YY2YDN5NFoge0BooAk9Mdnwy8Z4ypaq39I1fBZ8OXlbRg8Ntvv7F3716GDBmS5nijRo04//zziY6Opl+/flSvXp2iRYvyzjvv0KBBA84666ws75uQkEB8fHya71Nbvnw5J0+ezNANeuedd9K9e3eio6Np164d8+bNo0iRItx2221p7nfdddcBsHjx4mwTvbZt26YkeeC6Xxs2bJgyYWXZsmUcPnyYzp07p2mjcuXK1KhRg8WLF+c50Zs3bx7nn38+V199dYbP8cwzz7B8+XLatWuXcjwxMTHL55fenj17eP7553n22Wc5fvx4ntoWEZHMrR/7A5H3Xc/at7+izv2NAhZHMEzGaJr0dWPS19rAeg/nbQC6GmPOsNZmVi6qDcQCm9Md35D0tRauMiinKSYmBoAKFSpkeO/cc89Neb906dKMHj2avn375qj6U6NGjVy1W6hQIcqWLZvy/t69ezl58mSaRC21AwcOZBtL+fLlPR7bsGFDShvgKoWeZJfU5sTevXvZvn07hQsX9vh++s/RunXr07r/448/zrnnnkv//v156aWX8tS2iIhkrtDggRynOBe0vyywcQSycWNMReBFYL61dmXS4TLANg+nxyR9PQvILNErAxyy1tpMri2T+2jzt+Qxart3787w3u7du7niiitSvu/evTsdOnRg8+bNKXt9ZlYJmjlzJpUqVUr5ftWqVdx7770e261du3bK8fj4eA4cOJDyftmyZSlatChLlizx2M55552X7Wfcs2ePx2MVK1ZMaQPcRJLUsSTL6/i85DaqVq3KJ5984vH99JMn3n77berXr5/y/a5duzJ91t9//z2TJ0/mm2++oUiRInluW0REPIv97ntq7pzPlMtfp3N5zwUIfwlYomeMOQP4HIgHugcqjmTGmN5Ab4AqVaoEOJrgU716dcqXL8+0adPo2bNnyvGlS5eyfft2Hn300TTnlyhRgrp166Z87ymxALjkkkvSzDpNP7avYcOGFClShGnTpqWMFwP4+OOPiY+PT5lNev311/PKK6/wzz//pDnvdMydO5ejR4+mVAW3bdvG8uXLefLJJwG4+uqrOfPMM9m8eTN33313rtrIzvXXX89nn33GGWeckW21E+Diiy8mKioq5ftt27Z5PC8hIYEHHniA9u3bZ1qRPN22RUTEs0P9XwDO4dyB92Z7rq8FJNEzxhTDzay9AGiabibtQVzVLr0yqd7PzEGgtDHGpKvqJV8b4+EaAKy144BxAFFRUekrgvlewYIFefHFF+nTpw9dunShS5cu7Ny5kwEDBnDRRRfRo0cPn7RbpkwZHn30UYYOHUqJEiVo27YtGzdu5JlnnqFRo0bccMMNADRr1oyOHTty22238cgjj1C/fn0KFCjAtm3bmDt3Lq+88goXX3xxlm0VK1aM6667jscff5zY2Fief/55SpYsSf/+/QEoWbIkw4YNo2/fvuzbt482bdpQqlQpdu7cSXR0NM2aNaNTp04p9zt8+DC//vpryvfHjx+nYMGCaY4dOXIkTQydO3fm/fffp2XLljz66KPUrVuXkydPsmXLFr744gtmzZpF8eLFT/s5Llu2jKJFizJ79uxMz/FV2yIi+cr331N+3XxeKPk6z7QN/O9Mvyd6xpjCwKdAFHCttXZdulM2ANd5uLQW8GcW4/OSr40ALiTtOL1aSV9/yVXQAkDv3r0pXrw4w4YN4+abb+aMM86gbdu2vPrqq5mOjfOGIUOGUK5cOcaMGcPo0aMpW7YsXbt2ZejQoSlLq4Bb42/UqFG89957DBkyhIiICCIjI2ndurXH8Xfpde3alRIlSvDAAw+wf/9+rrzySqZNm5bSPQzQp08fKleuzLBhw5g6dSrx8fFUrFiRxo0bZ5jsMXv2bI+JVc2aNdN8f+GFF6b8uXDhwnz99de8/PLLjBs3jj/++IMSJUpw4YUXcsMNN2RaGc1OQkICzzzzDJUrV870HF+1LSKSn5x8eiAxlCeu572kW8UqIEzG4Ww+bMyYAsA04CbgRmvtdx7OuQWYCTSz1kYnHSuJm0Qx1Vr7YBb3Pwe3Pt8Qa+0LqY7PB8pba3O06HJUVJRduXJlpu9v3Lgxw1/WEtqSF0wePHhwoEORMKLfFSL5zJIl0KQJ/RlOz3X9ueQS/zRrjFllrY3y9J6/K3pvA7cDQ4CjxpjU+2z9ldSF+wWwDJhsjHmcUwsmG+DV1DczxsQDH1hrewJYa/caY4YDTxljjgCrgTuAFrhlW0RERER8Y+BA9hcqz4pL+jDCT0ledvyd6LVJ+jog6ZXaC8DApN0xbgReA0YDRXGJX3Nr7Y501xRMeqU2ADcr9yHgXOA3oIO19kuvfQoRERGR1BYvhgULGMwIOnQL/Ni8ZP5eMDkyh+fFAD2SXlmdZzwcSwAGJ71EcsSfQxhERCQMDRzI4RLnMuF4H7Z2DHQwpxTI/hQRERERyVR0NCxcyOuFnqB522IE026RSvRERERE8uKFF4gtcy6v/tOHpO3Wg0YwbIEmIiIiEpqSqnnTo0YSkVCMm24KdEBpqaInIiIiklsDB5J4bgUe/qU3HTpA0aKBDigtJXoiIiIiubFoESxaxMqWT3LgWLGg67YFJXoiIiIiuTNwIFSowLN/3sOFF8I11wQ6oIyU6EnQSkhIICYm0+2JRUREAmfRIoiO5sA9T/LNkmJ06wYmw6JvgadET4JGfHw8I0eO5KqrruLss8+mcOHClC9fnn379gU6NBERkbSSqnnvJPTGGIKy2xaU6AkwceJEjDFZvgYOHOjTGOLi4rj22mt55plnaNu2LbNmzWLFihWsXbuWcuXK+bRtERGR07JwIURHk/jkU0yYXJSWLaFKlUAH5ZmWV5EU06dPp1KlSmmOJSQk0KhRI5+3/corr/Djjz+yaNEi6tev7/P2REREcsVaV8077zwWX3wP27fDSy8FOqjMKdGTFPXq1aNatWppjsXHx/ul7dGjR9OvXz8leSIiEtwWLXL72o4axXtTi1KqFNx6a6CDypy6buW0JXf1Ll68mFtuuYUzzjiDsmXL0rdvX44fP55y3rZt2zDGsGjRojTXt2rVCmMMEydOBODAgQPs2rWLwoUL07x5c8466yxKlSrFLbfcwm+//Zah/UWLFnnsXm7WrFmGGFM7ePAg5cqVwxjDtm3bAIiJiaFWrVq0atWKkydPppwbGRmZprt6zZo1lC5dmsceeyzNPdesWUO7du0466yzKFasGNdccw1LlixJc063bt0yVEoBBg4ciDEmTTJtjOGZZ57JcG5kZCRdunRJc2zFihW0atWKM844gxIlStCyZUtWrFiR4dro6GhatmzJmWeeSYkSJWjdujXr16/PcF56yXEvXbqUK6+8kqJFixIZGcmoUaMynPvHH3/QuXNnypUrR0REBPXq1WPmzJnZft4JEyak+e8BMG/ePIwxfP/992munzFjBg0bNqR48eKULl2a22+/nT///DPb5wTQrFmzNJXp5J+h1O3GxcVRs2ZNjz+zOWlbRPIBa+H556FiRQ536MWnn8Kdd0KxYoEOLHNK9CTXunTpQrVq1ZgxYwb9+/dn/Pjx3HfffVle88knn2T4S/Tff/8FYPDgwRQqVIgPPviAd955h/Xr19OoUSN27tzp8V5vv/02y5YtY9myZVx22WXZxjtgwAAOHjyY5liZMmX4+uuv+e2337j77rux1ma4btu2bbRp04Z27doxbNiwlOOrV6/m6quvJiYmhvHjx/PZZ59RtmxZWrVqxapVq7KNJy/Wrl1L06ZNOXjwIBMnTmTSpEkcPnyYpk2bsmbNmpTz5syZQ8uWLTnjjDOYPHkyU6dO5ciRIzRu3JgdO3Zk287hw4e54447uPvuu5k1axbNmjWjX79+KUk6wI4dO2jQoAFr1qxhxIgRfPHFF1x++eW0b9+eL774wiufd8yYMbRv355atWrx6aefMnbsWNavX0/Tpk05cuSIV9oYMWIEmzZtCkjbIhIiFi6EJUvgqaf45IuiHD8O3boFOqisqevWWx5+GH7+ObAx1KsHI0f6rbm2bdvy2muvAXDddddhjOG5557j6aef5uKLL85w/tGjR3n00Ufp27cvb775Zsrx5OSqWrVqfPXVVxQq5H4sr7rqKi6++GJef/11hg8fnnJ+cuWtTp06NGzYEICSJUtmGevq1asZO3YsDzzwQJq2ASpXrszXX39No0aNeOSRRxgxYkTKe/v27aN169bUrVuX9957L02V8PHHH6dKlSosWLCAIkWKANC6dWsuueQSBg0axKxZs7J+gHnw4osvEhERwXfffUfp0qUBuPbaa4mMjOSFF15gxowZADz00EM0bdqUzz//POXa5s2bc8EFF/D6668zMpuflyNHjjBu3DjuvPNOAK6//np27tzJ888/z913350yUcdaS3R0NGXLlgXcc9ixYwfPPfcc7dq1y9Nn/ffff3niiSfo3r077733Xsrx+vXrU716dd59910efvjhPLWxc+dOBg0alOFn0x9ti0iISFXNo2dP3m8JNWpAgwaBDixrquhJrnXo0CHN93feeSeJiYkeuw/BJSdxcXG8+OKLHt+/4447UpI8gKpVq3LNNdcQHR2d5rzk7uGiOdxnxlpL3759ue6667g1k4EUtWrVYsiQIYwcOZJXX30VcInpDTfcwLZt25g8eXKa2I4fP050dDS33347BQoUID4+nvj4eKy1tGrVisWLF2doI/mc5FdiYmKm8aY/N73Fixdz4403piR54JLddu3apTyvTZs2sWXLFjp37pzmXsWLF+eqq67yGGN6BQsWpH379mmO3Xnnnfz5558pldZ58+bRtm1bSpUqlaad1q1bs2bNGg4fPpxtO1lZtmwZhw8fzvA5KleuTI0aNTJ8Dk/Pz1OlNrVHHnmEyMhIHnzwwTy1LSJhbMEC+P57eOopfttelKVLoXv34Fw7LzVV9LzFj5W0YFG+fHmP33vqav31118ZMWIEEyZMoFSpUmneK1y4MAAVKlTIcN25557L9u3b0xw7cOAAQEr1KDvvv/8+//vf/1i3bl2m3cDHjx9nxIgRNGjQgAEDBmCM4c0336Rq1aqULFmS1157jaFDh6ac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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "from scipy import integrate\n", "from matplotlib import pyplot as plt\n", "\n", "\n", "def f(t, y):\n", " return y\n", "\n", "def exact_solution(t):\n", " return np.exp(t)\n", "\n", "y_0 = [1]\n", "t_0 = 0\n", "t_final = 3\n", "sol = integrate.solve_ivp(f, (t_0, t_final), y_0)\n", "\n", "\n", "fig, ax = plt.subplots()\n", "fig.set_size_inches((10, 9))\n", "plot(ax, np.linspace(t_0, t_final, 100), exact_solution, sol.t, sol.y[0], s=\"r-\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "На что следует обратить внимание.\n", "- Хоть правая часть уравнения и не зависит явным образом от $t$, функция `f(t, x)` все равно объявляется с первым параметром `t`;\n", "- Функция $y=y(t)$ в этом уравнение скалярная, но мы представляем её в виде векторной функции $f:\\mathbb{R}^1 \\to \\mathbb{R}^1$;\n", "- Помимо функции правой части искомого ОДУ, функция `scipy.integrate.solve_ivp` принимает отрезок `t_span` ($[t_0, t_{\\text{final}}])$, на котором решается уравнение, и начальные условия в виде вектора $y_0$;\n", "- В итоговом решение компонента `sol.t` соответствует значениям по оси `t`, а `sol.y` значениям полученного решения в точках из `sol.t`. Т.к. $y$ считается векторной функцией, то `sol.е` --- матрица, каждая строка которой соответствует компоненте вектора $y$, а каждый столбец значению $t$ из `sol.t`; \n", "- Для данного уравнения функция `scipy.integrate.solve_ivp` выдала решение, содержащее совсем небольшое количество значений $t$. Можно попросить у этой функции получить решение на заданной сетке $t$." ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnoAAAIgCAYAAAASv8SdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABdl0lEQVR4nO3deZyVc//H8ddnZjrTHi1CVPYUsoROpKPplixx39ZbUQn9yJbsoaiEkDVJN+kusmXJfjc6FZ1Q3CF0C4VIpWhRnVm+vz+umTEzzdZs11nez8fjPE7nOtfyOVfTmXff7/X9XuacQ0REREQST4rfBYiIiIhIzVDQExEREUlQCnoiIiIiCUpBT0RERCRBKeiJiIiIJCgFPREREZEEleZ3AbGoefPmrm3btn6XISIiIlKuRYsWrXXOtSjpPQW9ErRt25aFCxf6XYaIiIhIucxsRWnvqetWREREJEEp6ImIiIgkKAU9ERERkQSloCciIiKSoBT0RERERBKUgp6IiIhIgtL0KpW0YcMGVq9eTVZWlt+liEiMqVOnDrvssguNGzf2uxQRSXIKepWwYcMGfv31V1q1akW9evUwM79LEpEY4Zxjy5YtrFy5EkBhT0R8pa7bSli9ejWtWrWifv36CnkiUoSZUb9+fVq1asXq1av9LkdEkpyCXiVkZWVRr149v8sQkRhWr149XdohIr5T0KskteSJSFn0HSEisUBBT0RERCRBKeiJiIiIJCgFvSRnZuU+2rZt63eZIiIiUgmaXiXJRSKRIq///ve/07FjR0aMGFGwLD09vZarEhERkeqgoJfkOnfuXOR1eno6zZs33265iIiIxJ9a7bo1szPN7CUzW2FmW8xsqZmNMbNGxdbb2cwmmdlaM9tsZrPM7OAKHiPFzG4ys+VmttXMFpvZGTXziZLP1KlT6dixI3Xr1qV58+acf/75/PLLLwXvh8NhzIxwOFxku7Zt29K/f/+C15MnT8bMWLZsWZH18refNWtWwTLnHOPGjeOAAw4gEAiw2267cfnll7Nhw4Yi22ZnZzNmzBjatWtHeno6u+++O0OHDmXr1q3lfi4zY9iwYYwePZo99tiDevXqcdxxx/Hf//53u3VnzJhB586dqV+/PjvttBNnnXUWP/zww3aft2/fvkWWHXvssYRCoSLLzj33XPbdd98iy/78809uuOEG9tprLwKBAHvttRejR48mNze3zPMEsHz5csyMSZMmFSzr37//dsedN29eid3yFTm2iIjEj9pu0bsW+AG4GfgJOAwYARxvZl2cc7nmzUkwE2gLXAGsB24CZpvZoc65n8o5xsi84wwDFgHnAi+Y2SnOuTer/yN5rr4aSsgEterQQ+GBB2pu/xMnTmTQoEGcc845jBkzhp9//pmbb76ZDz/8kE8++YSGDRvWyHGHDRvGmDFjGDx4MKeeeipffvklt956K4sXL2bOnDmkpHj/X+nbty8zZ87khhtuoEuXLnz11VfceuutLF++nJdeeqnc40yZMoXWrVvzyCOPsG3bNm677TYyMjL45ptvaNq0KQATJkzg0ksvZcCAAdx2221s3LiRESNG0K1bNz777DMaNWpUzlHKlp2dTc+ePQs+48EHH8yCBQsYOXIk69at47777qvS/gFycnIYPHgwqamptX5sERGpXbUd9E51zq0p9HqOma0DngZCwHtAb+AYoLtzbjaAmUWA74HrgStL27mZ7YIX8u5yzt2bt3i2me0L3AXUWNBLdDk5Odx6662EQiGmT59esLxdu3Z07dqVJ598kiuvvLJgIulNmzZVy3HzA0a/fv145JFHAOjZsyctWrTg/PPP5/XXX6d3797MmzeP5557jqeffpoLLrgAgB49etC0aVP69u3Lf//7Xw499NAyj7VlyxbeffddGjRoAMDRRx/Nfvvtx7hx4xg5ciSbNm3ihhtuYMCAATz55JMF2x111FEccMAB/Otf/+Lqq6+u0ud99tlnef/995kzZw7HHXccABkZGQDcfvvt3HDDDeyyyy5VOsYjjzzCd999R//+/Yu0CNbGsUVEkoWbHyHrP2ECJ4QgGPStjloNesVCXr6P855b5T33Bn7OD3l52/1hZjOB0ygj6AE9gQAwtdjyqcCTZraXc+77ShVfjppsSYsFS5cuZfXq1YwePbrI8mOPPZY2bdowZ84crrzySg444ADq1q3LY489xtFHH83OO+9c5n5zcnLIzs4u8rqwBQsWEI1Gt+sGPffccxkwYABz5syhd+/evP322wQCAc4888wi+zvhhBMAmDt3brlB76STTioIeeB1v3bu3LlgwEokEmHDhg306dOnyDH23HNP2rVrx9y5c6sc9N5++23atGlDly5dtvsct9xyCwsWLKB3794Fy3Nzc8s8f8X9+uuvDB8+nFtvvZUtW7ZU6dgiIlKKSITc7hmkbIuSMyZA6uxM38JeLAzG6Jb3/FXecwfgixLWWwJcYGYNnXOlNRd1ALYBy4otX5L33B6vZVB20Lp16wDYbbfdtntv1113LXh/p512Yvz48QwePLhCrT/t2rWr1HHT0tJo1qxZwfurV68mGo0WCWqF/fbbb+XW0rJlyxKXLVmypOAY4LUUlqS8UFsRq1evZsWKFdSpU6fE94t/jp49e+7Q/q+77jp23XVXhgwZwp133lmlY4uISCnCYYhGSSMHlx31Xidj0DOzVsAdwCzn3MK8xU2B5SWsvi7veWegtKDXFPjdOedK2bZp5atNbvnXqK1atWq791atWsURRxxR8HrAgAGcffbZLFu2rOBen6W1BL388svsscceBa8XLVrE//3f/5V43A4dOhQsz87O5rfffit4v1mzZtStW5d58+aVeJzdd9+93M/466+/lrisVatWBccAbyBJ4VryVfX6vPxj7LXXXjz//PMlvl988MSjjz7KUUcdVfD6l19+KfVcv//++0ydOpV3332XQCBQ5WOLiEjJtgVD5LgA6RYlNRCAYgPiapNvQc/MGgKvAtnAAL/qyGdmlwCXALRu3drnamLPAQccQMuWLZk+fToDBw4sWD5//nxWrFjB0KFDi6zfoEEDOnbsWPC6pGABcNBBBxUZdVr82r7OnTsTCASYPn16wfViAM899xzZ2dkFo0lPPPFE7r77bv74448i6+2IN998k82bNxe0Ci5fvpwFCxZw4403AtClSxcaNWrEsmXL6NevX6WOUZ4TTzyRl156iYYNG5bb2gmw//7706lTp4LXy5cvL3G9nJwcLr/8cs4444xSWyR39NgiIlKymWuD3EcmU/qH2e/iUPJco5fPzOrhjazdG+hWbCTterxWu+KaFnq/NOuBnczMirXq5W+7roRtAHDOTQQmAnTq1Kl4i2DSS01N5Y477mDQoEH07duXvn37snLlSoYNG8Z+++3HhRdeWCPHbdq0KUOHDmXMmDE0aNCAk046ia+++opbbrmFY489lpNPPhmAUCjEP//5T84880yuueYajjrqKFJSUli+fDlvvvkmd999N/vvv3+Zx6pXrx4nnHAC1113Hdu2bWP48OE0btyYIUOGANC4cWPGjh3L4MGDWbNmDb169aJJkyasXLmSOXPmEAqFOO+88wr2t2HDBr7++uuC11u2bCE1NbXIso0bNxapoU+fPjz11FNkZGQwdOhQOnbsSDQa5dtvv+W1117jlVdeoX79+jt8HiORCHXr1mXmzJmlrlNTxxYRSTZTpsAPuwfZ+4kgpJa/fk2q9aBnZnWAF4FOwN+cc58XW2UJcEIJm7YHfijj+rz8bdOBfSh6nV77vOcvK1W0AHDJJZdQv359xo4dy2mnnUbDhg056aSTuOeee0q9Nq46jB49mhYtWjBhwgTGjx9Ps2bNuOCCCxgzZkzB1CrgzfH38MMP8+STTzJ69GjS09Np27YtPXv2LPH6u+IuuOACGjRowOWXX87atWs58sgjmT59ekH3MMCgQYPYc889GTt2LM888wzZ2dm0atWKrl27bjfYY+bMmSUGqwMPPLDI63322afgz3Xq1OGdd97hrrvuYuLEiXz//fc0aNCAffbZh5NPPrnUltHy5OTkcMstt7DnnnuWuk5NHVtEJJmsXg1vvQXXXAOpPoc8ANv+crYaPJhZCjAdOBU4xTmXWcI6pwMvAyHn3Jy8ZY3xBlE845y7ooz974I3P99o59zthZbPAlo65yo06XKnTp3cwoULS33/q6++2u6XtcS3/AmTR40a5XcpkkD0XSGSfB56CK66Cj7/HA46qHaOaWaLnHOdSnqvtlv0HgXOAkYDm82s8H22fsrrwn0NiABTzew6/pow2YB7Cu/MzLKBp51zAwGcc6vN7H7gJjPbCHwCnAN0x5u2RURERKTGTJkChx9eeyGvPLUd9HrlPQ/LexR2OzAi7+4YpwD3AuOBunjB73jn3I/Ftkll+97vYXijcq8CdgWWAmc7516vtk8hIiIiUsySJbBoUWzNrVvbEya3reB664AL8x5lrWclLMsBRuU9RCqkNi9hEBGRxPTvf3vX5f3zn35X8peU8lcRERERkbLk5MDUqdCrF8TS3SIV9ERERESqaPZsWLkS8m63HjMU9ERERESqaMoUaNIETj3V70qKUtATERERqYJNm2DGDDj7bKhb1+9qilLQExEREamCGTNg8+bY67YFBT0RERGRKnnqKdhnHzjmGL8r2Z6CnsSsnJwc1q0r9fbEIiIivvv+ewiHoX9/sO0mffOfgp7EjOzsbB544AGCwSDNmzenTp06tGzZkjVr1vhdmoiISImeftoLeLHYbQsKegJMnjwZMyvzMWLEiBqtISsri7/97W/ccsstnHTSSbzyyit89NFHfPbZZ7Ro0aJGjy0iIlIZubkweTJkZEDr1n5XU7LavgWaxLAXXniBPfbYo8iynJwcjj322Bo/9t13382HH35IOBzmqKOOqvHjiYiIVFU4DCtWwJ13+l1J6RT0pMChhx7KvvvuW2RZdnZ2rRx7/PjxXHnllQp5IiISNyZP9ubO+/vf/a6kdOq6lR2W39U7d+5cTj/9dBo2bEizZs0YPHgwW7ZsKVhv+fLlmBnhcLjI9j169MDMmDx5MgC//fYbv/zyC3Xq1OH4449n5513pkmTJpx++uksXbp0u+OHw+ESu5dDodB2NRa2fv16WrRogZmxfPlyANatW0f79u3p0aMH0Wi0YN22bdsW6a5evHgxO+20E9dee22RfS5evJjevXuz8847U69ePY455hjmzZtXZJ3+/ftv11IKMGLECMysSJg2M2655Zbt1m3bti19+/Ytsuyjjz6iR48eNGzYkAYNGpCRkcFHH3203bZz5swhIyODRo0a0aBBA3r27MkXX3yx3XrF5dc9f/58jjzySOrWrUvbtm15+OGHt1v3+++/p0+fPrRo0YL09HQOPfRQXn755XI/76RJk4r8fQC8/fbbmBnvv/9+ke1nzJhB586dqV+/PjvttBNnnXUWP/zwQ7nnCSAUChVpmc7/GSp83KysLA488MASf2YrcmwRSS4bNsCLL8K550K9en5XUzoFvVgRicCYMd5znOjbty/77rsvM2bMYMiQITzxxBNceumlZW7z/PPPb/dLdNOmTQCMGjWKtLQ0nn76aR577DG++OILjj32WFauXFnivh599FEikQiRSITDDjus3HqHDRvG+vXriyxr2rQp77zzDkuXLqVfv34457bbbvny5fTq1YvevXszduzYguWffPIJXbp0Yd26dTzxxBO89NJLNGvWjB49erBo0aJy66mKzz77jG7durF+/XomT57MlClT2LBhA926dWPx4sUF673xxhtkZGTQsGFDpk6dyjPPPMPGjRvp2rUrP/74Y7nH2bBhA+eccw79+vXjlVdeIRQKceWVVxaEdIAff/yRo48+msWLFzNu3Dhee+01Dj/8cM444wxee+21avm8EyZM4IwzzqB9+/a8+OKLPP7443zxxRd069aNjRs3Vssxxo0bxzfffOPLsUUk/jz/PGzZ4o22jWnOOT2KPY444ghXli+//LLM93fY/PnO1avnXGqq9zx/fvXuvxxPPfWUA9w333yz3XtZWVkOcMOHD99u/UGDBhVZd9SoUS4lJcUtXbrUOefc999/7wA3e/Zs55xzmzZtcnvssYe78sorHeCeeuqpIuvtu+++Lisrq2B/3333nUtLS3NDhgwpcpx33nnHAW7evHkFy7p16+a6deu2XY35Fi1a5FJSUgqO/f333xfZ55IlS9zOO+/srr76auecc23atHHDhw93q1evdvvvv7878cQTi9TmnHPdu3d37dq1c9u2bStYlp2d7dq1a+dOO+20gmX9+vVzrVq12u7cDh8+3AFF9gu4YcOGbbdumzZtXJ8+fQpen3HGGa5JkyZu/fr1Bcv++OMPt/POO7u///3vBcv22Wcf17179yL7+uOPP1yzZs3cVVddtd1xCuvXr58D3LPPPltkeY8ePVzr1q1dbm6uc865Cy+80DVv3tytXbt2u/U6duxY5ud94okntvv7eOutt4r8/W7cuNE1btzYDRgwoMj+v/vuO1enTh03bty4gmXFz1O+bt26uWOOOabg9ezZs4sc96effnINGzYs+PnI/5ndkWOXpNq/K0QkZnTp4ly7ds7lfRX6CljoSsk0atGLBeEwRKOQk+M9F2vxilVnn312kdfnnnsuubm5JXYfAtxxxx1kZWVxxx13lPj+OeecQ1raX5eN7rXXXhxzzDHMmTOnyHr53cN1K3ifGeccgwcP5oQTTuDvpVxI0b59e0aPHs0DDzzAPffcA8DmzZs5+eSTWb58OVOnTi1S25YtW5gzZw5nnXUWKSkpZGdnk52djXOOHj16MHfu3O2Okb9O/iM3N7fUeouvW9zcuXM55ZRT2GmnnQqWNW7cmN69execr2+++YZvv/2WPn36FNlX/fr1CQaDJdZYXGpqKmeccUaRZeeeey4//PBDQUvr22+/zUknnUSTJk2KHKdnz54sXryYDRs2lHucskQiETZs2LDd59hzzz1p167ddp+jpPPnSmipLeyaa66hbdu2XHHFFVU6togkh6VLYf58GDAgNufOK0yDMWJBKASBgBfyAgHvdRxo2bJlia9L6mr9+uuvGTduHJMmTaJJkyZF3qtTpw4Au+2223bb7brrrqxYsaLIst9++w2AZs2aVajOp556ik8//ZTPP/+81G7gLVu2MG7cOI4++miGDRuGmfHQQw+x11570bhxY+69917GjBlTsP66devIyclh5MiRjBw5ssR95ubmkpLi/V9q5cqVBZ+zPHfeeSd3ljCEq/A1ZuvWrSv1fOV3T69evRqAgQMHMnDgwO3WbV2BuQB23nnn7eou/Pe8xx57sHr1aqZMmcKUKVNK3Mdvv/1G48aNyz1WafI/R48ePUqtsbBnnnmGZ555Zrv1jillyvr33nuPF154gXA4XCTMV+bYIpIcnn4aUlKghEuCY46CXiwIBiEz02vJC4W813Hg119/pUOHDkVeA7Rq1Wq7da+44gqOPvpoLihhRslmzZqRlpbGqlWrtntv1apVNG3atMiyb775hvT09BIHOBT3+++/c+ONN3Lttdey3377lRr0hg8fzh9//EEkEuGVV17hoosuolWrVrz77rvMmzeP/v37c/bZZxdcC7jTTjuRkpLC4MGDS/xMQEHIA9hll1144403irw/ceJEnnjiie22u/DCC7e71rF3795FXjdt2rTU85UfPvKD8JgxY0oMKoFAoMS6C1u/fj1ZWVlFwl7xv+dmzZrRtWtXbrjhhhL3sfvuu5d7nLLkf47JkycX+XnL16hRoyKve/XqtV2r8aBBg0rcd1ZWFpdffjnnnXcexx13XJHBGZU5togkvpwcmDIFTjwRqvj1VisU9GJFMBg3AS/f888/T/fu3QteT58+nZSUFI4++ugi67344ovMnj2bTz75pMT91K1bl2AwyAsvvMCIESNITU0FYMWKFcyfP79Id1p2djZvv/02nTt3rlAL2S233EL9+vW5+eabS11n4cKF3H///UybNo1mzZoxcOBARo4cSf/+/WndujV9+vThmWee4cILL+Tjjz8mLS2NBg0a0LVrVxYvXszhhx9eJNSVpE6dOnTq1KnIstdff73EdXfbbbft1i0eyrp168abb77Jxo0bC8LGxo0bmTlzZsHo4wMOOIC2bduyZMkSbrzxxjLrK01OTg4vvfQS5557bsGy6dOn07p164Kgd+KJJxKJROjQoQP1amDoWZcuXWjUqBHLli2jX79+5a7ftGnT7c5fo0aNSuwCf/DBB1m5ciWZmZnVcmwRSXwfPxTh/JVh/nZpCIj939sKelJpb775Jtdddx0nnHACH330EbfffjsXXHAB++23X5H1JkyYwODBgznkkENK3deIESM44YQTOOWUU7jsssvYtGkTw4cPp0mTJgwdOhTwphMZOXIkixcvrvBozgkTJvDCCy9Qv379Et/Pyspi4MCBnHzyyZxzzjll7qdDhw7cc889BaHx/vvv57jjjqNnz54MHDiQ3XbbjbVr1/LJJ5+Qk5PDXXfdVaEaK+PWW2/l9ddfJyMjgxtuuAEz4+677+bPP//ktttuA7ypWh599FFOO+00otEoZ599Ns2bN+fXX39l/vz5tG7dmmuuuabM4zRq1Ijrr7+etWvXst9++/Hss88ya9asItPX3HHHHRx11FEcd9xxXH755bRt25b169fzxRdf8N133/Hkk08W2efSpUsLwnx+q+S3337L1q1bAfjpp5+KrN+4cWPGjh3L4MGDWbNmDb169aJJkyasXLmSOXPmEAqFOO+88yp1HidMmMDYsWNL7Aav6WOLSByKRDjsugw6ESV1dAC6Z8Z8I42CnlTa1KlTue+++3jssccIBAJcfPHF3Hvvvdut16xZs1IHYOTr3r07b7zxBsOHD+ess86ibt26HH/88dx9990FXX+TJk3ijz/+YObMmZx88skVqrFHjx6lDsAAuOuuu1ixYgVvvfVWmfvZc889GTNmDEOHDuUf//gH7dq14/DDD+fjjz/m9ttv58orr+SPP/6gRYsWHH744fzf//1fheqrrEMOOYRwOMywYcMKpoXp3Lkzc+bMoWPHjgXrnXTSScydO5fRo0dz0UUXsWXLFnbddVc6d+5cZrDN17hxY6ZPn85VV13F559/TsuWLXnwwQeLtG61bt2ahQsXMmLECG6++WbWrFlDs2bNOOigg0psBTvooIO2W1baNXD5Bg0axJ577snYsWN55plnyM7OplWrVnTt2pVDDz203M9Rmnbt2m03AKO2ji0i8WfzG2HSc6KkUWjwZIwHPStvNFoy6tSpk1u4cGGp73/11VcceOCBtVhRbJk8eTIDBgzgm2++2e5OGpI4+vfvz6xZs7ZrYZOKS/bvCpFEM/2qCL0fyqBeahQLBLzr62Mg6JnZIudcp5LeU4ueiIiISDmcg5Gzgsxqn8mkvuG4GTypoCciIiJSjgUL4MsvYcgTQbgo9gNePk2YLDusf//+OOfUbZvgJk+erG5bEZE8//oXNGgAFbi8OaYo6ImIiIiUYeNGmD7dC3nxNn2mgl4laRCLiJRF3xEiieO552DzZrjoIr8r2XEKepWQlpZW4uSrIiL5srOzt7ulmojEp0mToH176NzZ70p2nIJeJdStW5dNmzb5XYaIxLCNGzdSt25dv8sQkSr64gv48EOvNS9vnvi4oqBXCS1atGDNmjX8+eef6p4RkSKcc/z555+sXbuWFi1a+F2OiFTRv/4FderA+ef7XUnlqF+hEurWrUvLli1ZtWoV27Zt87scEYkx6enptGzZUi16InFu2zaYMgVOPx2aN/e7mspR0KukJk2a0KRJE7/LEBERkRryyiuwbl18DsLIp65bERERkRJMmgStW0M5t+OOaQp6IiIiIsUsWwazZsHFF0NKHKelOC5dREREpGY88QSkpsKFF/pdSdUo6ImIiIgUEo3CU0/BqafC7rv7XU3VKOiJiIiIFPLyy7BmDQwa5HclVaegJyIiIlLI449D27Zwwgl+V1J1CnoiIiIief73P5g9O/4HYeRLgI8gIiIiUj2eeALS0mDAAL8rqR4KeiIiIiJ4d8KYPBl694bddvO7muqhoCciIiICzJgBa9cmxiCMfAp6IiIiIniDMPbeO77vhFGcgp6IiIgkvaVLYc6cxBmEkS+BPoqIiIhI5bwzIsLNKWO4+KCI36VUqzS/CxARERHx07ZwhIumZ5BOlNSzA5CZCcGg32VVC7XoiYiISFL74tEwAaKkkuPd/ywc9rukalPrQc/M9jCzh80sYmZ/mpkzs7bF1hmRt7ykx9YKHCNcyrZX19TnEhERkfg0fkmILAvgUlMhEIBQyO+Sqo0fXbf7AmcDi4B5QEk3GJkEvF1sWYO8Za9V8DifAcUHSC+vcJUiIiKS8BYuhCe/CtLrmkzObB72Ql6CdNuCP0FvrnOuJYCZXUQJQc859xPwU+FlZnY+Xr1PV/A4G51zC6pYq4iIiCSw8eOhQQP4221BaJI4AS9frXfdOudyK7lpP+BX4J1qLEdERESS1Lp18Oyz0LcvNGnidzU1Iy4GY5jZnsDxwDTnXHYFNzvMzP4wsywz+8zMBtZgiSIiIhJnJk+GrVvh0kv9rqTmxMv0Kn3xQmlFu23nAtOA/wE7ARcAk8xsN+fcqJI2MLNLgEsAWrduXdV6RUREJIbl5sJjj8Exx0DHjn5XU3PiJehdAHzqnPusIis7524rtuhVM3sZGGZmDzjnNpWwzURgIkCnTp1cVQsWERGR2DVrFixbBrff7nclNSvmu27N7CigHRVvzSvNs0Bd4OAqFyUiIiJxbfx4aNECzjjD70pqVswHPbxBGFnAM9W0P7XWiYiIJLEffoCZM+GiiyA93e9qalZMBz0zCwDnAm8559ZUcXd9gC3A51UuTEREROLWxIngHAwqPttuAvLlGj0zOzPvj0fkPfcyszXAGufcnEKrngI0pYxuWzNbBqxwzmXkve4K3AjMwJsguQleq2Bv4Ebn3OZq/CgiIiISR7ZtgyeegJNPhjZt/K6m5vk1GOOFYq/H5z3PAUKFlvcD1gGvl7GvNCC10Otf8Foq7wCa43X7fgac55x7tvIli4iISLx74QVYvRouv9zvSmqHOadL1orr1KmTW7hwod9liIiISDU7+mj44w/48ktIiekL2CrOzBY55zqV9F6CfEQRERGRsn30kfe4/PLECXnlSZKPKSIiIsnu4YehUSPo18/vSmqPgp6IiIgkvFWr4LnnoH9/L+wlCwU9ERERSXgTJ0JWVvIMwsinoCciIiIJLRqFCRPgxBNh//39rqZ2xcu9bkVEREQqZcYM+OUXmDTJ70pqn1r0REREJKE9/DDsu6/XopdsFPREREQkYX3yCcyfD4MHJ8+UKoUl4UcWERGRpBCJ8N3FYzi+boQBA/wuxh+6Rk9EREQSTySC657B6Vuj9E4LEPgyE4JBv6uqdWrRExERkcQTDuO2RUkjhzouCuGw3xX5QkFPREREEk60S4htLkA2qVggAKGQ3yX5QkFPREREEs6zy4N0J5PvB4yEzOTstgVdoyciIiIJxjkYNw6yOwTZ919BML8r8o+CnoiIiCSUOXNg8WJ44gmwJA55oK5bERERSTDjxkHz5tCnj9+V+E9BT0RERBLGsmUwcyZceinUq+d3Nf5T0BMREZGE8dBDkJbmBT1R0BMREZEE8fvv8OST8M9/wm67+V1NbFDQExERkYTwr3/B5s1w9dV+VxI7FPREREQk7mVnw8MPQ7ducNhhflcTOzS9ioiIiMS9GTNgxQp48EG/K4ktatETERGRuOYc3Hsv7LcfnHqq39XEFrXoiYiISFybNw8+/hgmTIAUNWEVodMhIiIice3ee70Jki+4wO9KYo+CnoiIiMStr7/2Jki+/HJNkFwSBT0RERGJW/fdB3XrwmWX+V1JbFLQExERkbi0ahVMmQL9+0OLFn5XE5sU9ERERCQuPfooZGXBkCF+VxK7FPREREQk7mzeDOPHw2mnwf77+11N7FLQExERkbgzeTKsWwfXXut3JbFNQU9ERETiSs77Ef68dQwXdYjQpYvf1cQ2TZgsIiIi8SMSwWVkMCQahc0BbEEmBIN+VxWz1KInIiIiccPNDkM0Sho5pOZEIRz2u6SYpqAnIiIicWNhoxBRAuSmpGKBAIRCfpcU09R1KyIiInHj5teC1G2WyctXhUnpEVK3bTkU9ERERCQuLFwIs2bBPfcESbtOAa8i1HUrIiIiceHuu6FJExg0yO9K4oeCnoiIiMS8b76Bl17y7mnbuLHf1cQPBT0RERGJeWPHQiAAV13ldyXxRUFPREREYtovv8DTT8OAAdCypd/VxBcFPREREYlpDzwA2dm63VllKOiJiIhIzPr9d3jsMTj7bNhnH7+riT8KeiIiIhKzxo+HjRvh+uv9riQ+KeiJiIhITNq8GcaNg1694LDD/K4mPtV60DOzPczsYTOLmNmfZubMrG0J67lSHodW8DgXm9nXZrbNzJaa2f9V92cRERGRmjNxIqxdC7fc4ncl8cuPO2PsC5wNLALmASeUse5k4PFiy/5X3gHM7OK87cYAs4AMYLyZmXPusUrULCIiIrVo2za4917vVrZduvhdTfzyI+jNdc61BDCziyg76K10zi3YkZ2bWRowGvi3c25Y3uLZZrY7MNLMJjnnsipTuIiIiNSOyZPh55+9aVWk8mq969Y5l1vDhwgCLYCpxZb/G2gGHFvDxxcREZEqyMqCu+6Co4+GjAy/q4lvsT4Y49K8a+z+NLP3zKxrBbbpkPf8RbHlS/Ke21dfeSIiIlLdnn0Wli+HYcPAzO9q4lssB72pwGVAD+ASvNa498wsVM52TfOe1xdbvq7Y+0WY2SVmttDMFq5Zs6ZSBYuIiEjV5OTAmDFwyCFwyil+VxP//LhGr0Kcc+cXejnPzF7Fa6UbRQ10vzrnJgITATp16uSqe/8iIiJSvhkz4Ouv4bnn1JpXHWK5Ra8I59xG4A3gyHJWzW/J27nY8vyWvHWIiIhIzHEORo+GAw6AM87wu5rEEDdBr5DyWtvyr8XrUGx5/rV5X1ZvOSIiIlId5t8XodfiMdx3ZoTUVL+rSQwx23VbnJk1Bk4BPipn1QiwFuiDN4devr54rXkf1EiBIiIiUmlufoQjbsjgaKKk3h+AkzMhGPS7rLjnS9AzszPz/nhE3nMvM1sDrHHOzTGza4EDgNnAz0Ab4FpgV7wAV3hfy4AVzrkMAOdclpndijdB8kq8sNcduBC4wjkXrdlPJyIiIjvqmyfC7J0bJY0ciEYhHFbQqwZ+tei9UOz1+LznOUAIWAr8Pe/RBNiA1xI30DlXvEUvDSjSwOucm2BmDhgKXAf8AFzunBuPiIiIxBTnYOzHIR6yAKkpUSwQ8G6JIVVmzmmAaXGdOnVyCxcu9LsMERGRpPDuu9CzJ7x8fYTTdwp7IU+teRVmZoucc51Kei9urtETERGRxOMc3H477LknnDQyCAEFvOqkoCciIiK+ycyE+fNh/HgIBPyuJvHE4/QqIiIikgCcgxEjYI894MIL/a4mMalFT0RERHzx3nvwwQfwyCOQnu53NYlJLXoiIiJS6/KvzWvVCgYO9LuaxKUWPREREal14TDMmwcPPwx16/pdTeJSi56IiIjUqvxr83bbDS66yO9qEpta9ERERKRWZWbC3LnetXlqzatZatETERGRWuMc3HqrN2+eWvNqnlr0REREpNa89RYsWAATJ2qkbW1Qi56IiIjUivzWvL33hv79/a4mOahFT0RERGrFK6/AJ5/A5MlQp47f1SQHteiJiIhIjcvNhdtug/33hz59/K4meahFT0RERGrcCy/AF1/AtGmQpvRRa9SiJyIiIjUqJ8ebN699ezjnHL+rSS7K1CIiIlKjnnkGvv7aa9VLTfW7muSiFj0RERGpMVlzI6y6agzn7xvhH//wu5rkoxY9ERERqRmRCPTIYEhWFNscIOXDTAgG/a4qqahFT0RERGpE9N0wlhUljRxScqIQDvtdUtJR0BMREZEa8dyvIaIEyE1JxQIBCIX8LinpqOtWREREqt3vv8NV04N82jmT+3uHvZCnbttap6AnIiIi1W7sWFi/Hs4fH4TDFPD8oq5bERERqVarVsEDD3hz5h12mN/VJDcFPREREalWo0fDtm0wcqTflYiCnoiIiFSb77+Hxx+HCy+E/fbzuxpR0BMREZFqM2KEd/eL227zuxIBBT0RERGpJp99Bv/+N1x+Oeyxh9/VCCjoiYiISDW58UZo0gRuusnvSiSfplcRERGRKnvvPXjrLbjnHmja1O9qJJ9a9ERERKRKcnPh+uthzz3hiiv8rkYKU4ueiIiIVMnzz8OiRTB5MtSt63c1Upha9ERERKTSolEYNgwOOQT69vW7GilOLXoiIiJSaRMmwHffedfnpab6XY0UpxY9ERERqZQNG7y7X3TvDj17+l2NlERBT0RERCrlnntg7Vrv2czvaqQkCnoiIiKyw9a8FiHl7jHc2iPCEUf4XY2URtfoiYiIyI6JRGj8jwxuy4mS8n4AIpkQDPpdlZRALXoiIiKyQ1ZOC5OaEyWNHFKyohAO+12SlEJBT0RERCrMObhzfogoAVxqKgQCEAr5XZaUQl23IiIiUmGvvQbjPw3SfWgmZzQLeyFP3bYxy5xzftcQczp16uQWLlzodxkiIiIxJRqFgw7y5sv7/HNIU3NRTDCzRc65TiW9p78iERERqZAJE+Cbb+D11xXy4oWu0RMREZFyrV8Pt98OGRlw0kl+VyMVpaAnIiIi5Ro1ygt7992nyZHjiYKeiIiIlGnZMnj4YRgwADp29Lsa2RG1HvTMbA8ze9jMImb2p5k5M2tbbJ1OZjbRzL7OW+cHM5tmZntV8BjhvP0Wf1xdE59JREQkkV17LaSne616El/8uJRyX+BsYBEwDzihhHXOBToADwFLgFbArcBCMzvUOfdjBY7zGTCo2LLllaxZREQkKf3nP/Dqq3DXXbDbbn5XIzvKj6A31znXEsDMLqLkoHe3c25N4QVm9gHwPXAxcFsFjrPRObegqsWKiIgkq+xsuPpq2Gcf71niT60HPedcbgXWWVPCshVmtgavdU9ERERq2IQJ8OWX8PLLXtetxJ+4GYxhZgcCuwBfVXCTw8zsDzPLMrPPzGxgDZYnIiKSUH77DW67zZtO5bTT/K5GKisupjs0szRgArAG+FcFNpkLTAP+B+wEXABMMrPdnHO6lFRERKQcw4fDH3/AAw9oOpV4FhdBD3gE6AKc7JxbX97Kzrni1/C9amYvA8PM7AHn3Kbi25jZJcAlAK1bt66GkkVEROLT55/DY4/BpZd6tzyT+BXzXbdmdhdeALvQOfduFXb1LFAXOLikN51zE51znZxznVq0aFGFw4iIiMQv52DIEGjSxLsThsS3mA56ZjYMuAG40jn372raraum/YiIiCScuXdHODJzDBMHRGjWzO9qpKpituvWzK4ERgHDnHOPVMMu+wBbgM+rYV8iIiIJZ+vsCEfdnMExREl9LABnZkIw6HdZUgW+BD0zOzPvj0fkPffKmzpljXNujpmdCzwAvA28Z2adC22+wTn3ZaF9LQNWOOcy8l53BW4EZuBNkNwE6Af0Bm50zm2usQ8mIiISx+aNDHO8i5JGDkSjEA4r6MU5v1r0Xij2enze8xwgBJwIWN7zicXWzV8nXxqQWuj1L3hd0ncAzYEsvLtknOece7bqpYuIiCSeb7+FUe+HOC41QBpRCAQgFPK7LKkiX4Kec67MgdrOuf5A/wruq22x18uAXpUsTUREJCldfTV8kh5kw7RMWiwJeyFPrXlxL2av0RMREZHa8frr3mPsWGjROwi9FfASRUyPuhUREZGatXUrXHUVtGsHV17pdzVS3dSiJyIiksTGjoXvvoP//Me7LE8Si1r0REREktSKFXDnnXDmmdCjh9/VSE1Q0BMREUlSV14JKSlw331+VyI1RV23IiIiSei117zH3XeDbvGeuNSiJyIikmQ2b4YrroAOHbz72kriUoueiIhIkhk5En74AebOhTp1/K5GapJa9ERERJLIkiXeNXn9+0PXrn5XIzVNQU9ERCRJOAeXXQaNG8M99/hdjdQGdd2KiIgkiSlTvO7aJ56AFi38rkZqg1r0REREksC6dXDttd7tay+80O9qpLYo6ImIiCS6SIRwzzEcsC7ChAne3HmSHNR1KyIiksgiEXKOz6D3tiinpAUIbM4Egn5XJbVEmV5ERCSBZc0K47ZFSSOHOi4K4bDfJUktUtATERFJYJO/DxElQG5KKhYIQCjkd0lSi9R1KyIikqC+/BIGTw2y8oRMRoTCXsgLqts2mSjoiYiIJKDcXLjkEmjUCC77dxB2UcBLRgp6IiIiCeiJJ+CDD+Cpp2CXXfyuRvyia/REREQSzM8/w/XXw/HHQ79+flcjflLQExERSTBXXgnbtsHjj4OZ39WIn9R1KyIikkBeesl73Hkn7Lef39WI39SiJyIikiDWrYPBg+Hww+G66/yuRmKBWvREREQSxJAh8Ntv8M47kKbf8IJa9ERERBLCW2/BlClw443QsaPf1UisUNATERGJcxs2wKBB0L493HKL39VILFHDroiISJy74Qb46SeYPx/S0/2uRmKJWvRERETiWDgMEybA1VdD585+VyOxRkFPREQkTm15L8LCM8Zwxu4RRo70uxqJReq6FRERiUeRCKk9M7g6O4qlB0j9LBOCup+tFKUWPRERkTj03ZNhUrKjpJFDanbU68MVKUZBT0REJM5s2gTXvh4iywK41FQIBCAU8rssiUHquhUREYkz118Pr/wa5JvHMjlkXdgLeeq2lRIo6ImIiMSRWbPgscdg6FA4ZFAQUMCT0qnrVkREJE5s2AADB8IBB6BRtlIhatETERGJE0OHehMjf/AB1KvndzUSDyrcomdm883sfDPTnNsiIiK17PXXYdIkuO46TYwsFbcjXbdR4GngZzO738za1VBNIiIiUsiaNXDRRXDIIXD77X5XI/GkwkHPORcC2uOFvQuAJWYWNrNzzKxODdUnIiKS1JyDQYNg/Xr49791L1vZMTs0GMM597Vz7hqgFdAfSAWeAX4ys7vMbO/qL1FERCR5TZkCL78Mo0Z5LXoiO6JSo26dc9ucc/8GrgLmAS2A64H/mdkLZrZrNdYoIiKSlJYvhyuugK5d4Zpr/K5G4tEOBz0zq2dmF5rZR8DHwC54gW934FKgCzCtWqsUERFJMrm50L+/9+cpUyA11ddyJE5VeHoVMzsYGAT0ARoArwI3OOdmF1rtCTNbBbxQrVWKiIgkmXHjYM4cePJJaNvW72okXu3IPHqLgZ+BB4CJzrlfSllvGRCpYl0iIiJJa9m/I6y/Icz1XUP07687X0jl7UjQOxN41TmXU9ZKzrmvgOOrVJWIiEiS2haO0KpfBiNclNSPA9iCTN3HViptR6ZXmVFeyKsIM9vDzB42s4iZ/WlmzszalrBeXTMba2a/mNmWvPWP24HjXGxmX5vZNjNbamb/V9XaRUREato7N4Wp46KkkYNlRSEc9rskiWN+3Ot2X+BsYD3eiN3S/Au4GLgNOAX4BXjHzA4t7wBmdjHwOPAScCLeNYPjzezSKlUuIiJSg15/HcYsCJGbFvBGXwQCEAr5XZbEMXPO1e4BzVKcc7l5f74IeALYyzm3vNA6HYH/Ahc6557KW5YGLAGWOud6l7H/NLxrCd9yzvUrtPxJoDewm3Muq6waO3Xq5BYuXFi5DygiIlIJq1bBwQdDq1bw0YMRAvPDXshTt62Uw8wWOec6lfTejlyjVy3yQ145egNZwHOFtss2s+nAjWaW7pzbVsq2Qbx5/aYWW/5vYABwLDC7+EYiIiJ+yZ9KZdMmeOYZCLQPQjcFPKk6P7puK6ID8L1z7s9iy5cAAbzu37K2BfiihG3Bu42biIhIzHjoIXjnHbj/fmiv31JSjWI16DXFu4avuHWF3i9rW0rYviLbioiI1Kr//hduuAF694b/07BBqWaxGvRqnZldYmYLzWzhmjVr/C5HRESSwKZNcM450Lw5TJoEZn5XJIkmVoPeemDnEpbnt8atK+G9wttSwvZlbuucm+ic6+Sc69SiRYsKFyoiIlJZgwfDsmUwbRroV4/UhFgNekuAvcysfrHl7YEo3t03ytoW/rpWr/C2AF9WvTwREZGqmTLFe9x6q2ZQkZoTq0FvJlAHOCt/Qd60KecA75Yx4ha826+txbsnb2F98VrzPqjeUkVERHbM0qVw2WVw3HFwyy1+VyOJrNanVwEwszPz/nhE3nMvM1sDrHHOzXHOfWpmzwEPmFkd4HvgUmAvigU4M1sGrHDOZQA457LM7Fa8CZJXArOA7sCFwBXOuWhNfz4REZHSbN0K554Ldet6U6mk+fKbWJKFXz9eLxR7PT7veQ4QyvvzAGA0MArYCVgMnOic+6TYtmlAauEFzrkJZuaAocB1wA/A5c658YiIiPjouuu8kbavv+5NjixSk3wJes65cscVOee2ANfkPcpar20pyx/Huw2aiIiI/yIRvng0zMJpIYYMCXLyyX4XJMlADcYiIiI1LRIht3sG7bZGmZ0SIPX0TLwbOYnUrFgdjCEiIpIwsmaFyd0aJY0c0i1KnQ/CfpckSUJBT0REpIaN+yRElAC5KalYIKD5VKTWqOtWRESkBj3zDNzwSpCGfTO5rH3YC3lBddtK7VDQExERqSFffQWXXAJdu8IlTwUhTQFPape6bkVERGrA5s1w1llQvz48+6zmyxN/6MdORESkmjkHgwbBl1/Cu+9qvjzxj4KeiIhINXv0UZg2DUaNgh49/K5Gkpm6bkVERKrR/PkwZAiceircdJPf1UiyU9ATERGpJqtWwZlnQtu2MGUKpOi3rPhMXbciIiLVICsLzjkHfv8d3nkHdtrJ74pEFPRERESqxY03wty5MHUqHHyw39WIeNSoLCIiUkXPPQf33w9XXAF9+vhdjchfFPRERESq4JspEZb0HcMlB0e4916/qxEpSl23IiIilfT7WxH26J/BbS5K6jcBbFGmbm8mMUUteiIiIpWQnQ0vXh6mjouSRg6WFYVw2O+yRIpQ0BMREamE666Df30XgkAAUlO951DI77JEilDXrYiIyA6aMgUeeACuuipI2jmZXkteKKRuW4k5CnoiIiI74OOP4ZJLoHt3vMEXaUEFPIlZ6roVERGpoJUr4fTTYdddvSlV0tRcIjFOP6IiIiIVsGWLF/I2bPDuZ9u8ud8ViZRPQU9ERKQczsGFF8KiRfDKK7rzhcQPBT0REZFyjBoF06fDXXdB795+VyNScbpGT0REpAwvvQS33QYXXADXX+93NSI7RkFPRESkFJ98Auef7w2qffxxMPO7IpEdo6AnIiJSgjWvRXjn+DGc0CjCyy9D3bp+VySy43SNnoiISDF/ZkZodHoG17koKdsCpHyXCS01V57EH7XoiYiIFJKTAy9cHiYt7x62Kdm6h63ELwU9ERGRQq65BiZ8HcLV0T1sJf6p61ZERCTPww/DQw/BkCFB6pyle9hK/FPQExERAd54A66+2psnb+xYIFX3sJX4p65bERFJeosWwTnnwKGHwjPPeD22IolAQU9ERJLa99/DySd79659/XVo0MDvikSqj7puRUQkaf32G/TqBdEozJ4Nu+3md0Ui1UtBT0REktKWLd71eMuXw6xZcOCBflckUv0U9EREJOnk5EDfvhCJwPPPw7HH+l2RSM1Q0BMRkaTinDdX3owZMG4cnHmm3xWJ1BwNxhARkeQRiTCn1xg+eijCkCHedCoiiUwteiIikhwiEbK7ZXBsVpRwaoA6Z2QCmidPEpta9EREJCl8+VgYsrz71waIkjI37HdJIjVOQU9ERBLevHlw2XMhslMCuNRUTPevlSShrlsREUlon30Gp54Ku+4VZOu4TOr+N6z710rSUNATEZGE9f33cOKJ0LAhvPMO7NQmCL0U8CR5KOiJiEhC+vln6NEDtm6FuXOhTRu/KxKpfQp6IiKScH77DU44AVavhsxMOOggvysS8YeCnoiIJJSNG7371y5bBm+9BUcd5XdFIv6J2VG3ZhY2M1fK4+1yti1tu0NrqXwREfFB/v1rP/kEXngBjj/e74pE/BXLLXqXAY2LLQsC9wOvVWD7ycDjxZb9r+pliYhILMrKgnPOgTlzYOpUb6StSLKL2aDnnPuy+DIzuxiIAtMrsIuVzrkF1V6YiIjEnOx5EV4cHGbN5yEeHR/kvPP8rkgkNsRs0CvOzOoDZwEznXPr/K5HRERiQ+4HEXKOz+CsnChn1glQ51Dd2kwkX8xeo1eCvwONgKcruP6lZrbNzP40s/fMrGsN1iYiIj5wDl4ZEiY1x7u1WZ3cKITDfpclEjPiKehdAKwG3qrAulPxrvHrAVwCNAPeM7NQaRuY2SVmttDMFq5Zs6bq1YqISI1yDq66CsZ+HCI3LQCpqaBbm4kUYc45v2sol5ntDvwIPOicu6YS2zcCvgB+dM4dW976nTp1cgsXLtzxQkVEpFY4B9dfD/feC9dcA/eeEcHmhHVrM0lKZrbIOdeppPfi5Rq9vnitjxXtti3CObfRzN4ABlZrVSIiUuucg1tu8ULeZZd5z2ZB6KKAJ1JcvHTd9gMWO+cWV3E/sd98KSIipXIObr0V7rwTLr4YHn4YzPyuSiR2xXzQM7NOQHsq2ZqXt4/GwCnAR9VVl4iI1C7n4LbbYPRouOgimDABUmL+t5iIv+Kh6/YCIBuYVvwNM2sDfAvc4Zy7I2/ZtcABwGzgZ6ANcC2wK9CnlmoWEZFq5BwMHw6jRnkh7/HHFfJEKiKmg56Z1QH+CbztnFtd0ipAKkVbJpfiTcXyd6AJsAH4ABjonFOLnohInHEORoyAkSNh4ECFPJEdEdNBzzmXBbQo4/3leGGv8LKZwMyarUxERGpDfnftqFFeyJs4USFPZEfon4uIiMQkNz/C293GMGtURCFPpJJiukVPRESSk5sfIatbBn/LjpKRFiBtQCYpKZo+RWRH6f9GIiISU3Jz4dUhYVKy825r5qKkzA37XZZIXFKLnoiIxIycHLjkEvjyoxAnpQVwLorptmYilaagJyIiMSErCwYMgGnT4LbbgtTpmanbmolUkYKeiIj4butWOPdcePVV764XN90EoNuaiVSVgp6IiPhq82Y4/XSYNQseeQQGD/a7IpHEoaAnIiK++f13OPlkWLAAJk+Gfv38rkgksSjoiYiIL1avhp49YckSeP55OOMMvysSSTwKeiIiUrsiEda/HObK50IsXRNk5kwv8IlI9VPQExGR2hOJkNs9g0ZbozxJgG8ey6RjTw24EKkpmjBZRERqzYopYXK3ehMh10uN0nF92O+SRBKagp6IiNSKt96C/k+FyLIALjVVEyGL1AJ13YqISI2bNg3694eDDw6yZWQm9T4LayJkkVqgoCciIjXGObj3Xrj+ei/XvfoqNG4chJMV8ERqg7puRUSkRuTkwFVXeSHv7LPh7behcWO/qxJJLgp6IiJS7fJvafbwwzBkCDz7LKSn+12VSPJR162IiFSr9evhtNNg3jy47z645hq/KxJJXgp6IiJSbZYv925ptmyZ14p37rl+VySS3NR1KyIi1eLLf0WYdvAYWv0Q4Z13FPJEYoFa9EREpMrm3BXhyJsyuIEoN9UNkJKeCWhkrYjf1KInIiKV5hzcfz+8c1OYAN4dL1KyohAO+12aiKCgJyIilZSdDZdfDkOHAqEQqfUCkJoKuuOFSMxQ162IiOyw33+Hc86Bd9+F666DUXcFsQ8zvZY83fFCJGYo6ImIyA5ZtgxOPdV7njQJBg7MeyMYVMATiTEKeiIiUmHhMJxxBpjBrFnQrZvfFYlIWXSNnoiIVMikSfC3v0HLlvDhhwp5IvFALXoiIlK6SISczDAPLg4x9MUgPXvCc89BkyZ+FyYiFaGgJyIiJYtEcN0zYGuU/yNA6jmZDJ4aJE2/OUTihrpuRUSkRL88GyZna5RUcqibEuWqjmGFPJE4o6AnIiLbeeEFOG9iiCwCuNRUUtI1N55IPFLQExGRAjk5cPPNcPbZsO3wIJtfy8RGjoTMTE2dIhKH1AgvIiIArF0L550H//kPXHwxPPwwpKcH4VQFPJF4paAnIiJ88gn84x/wyy/wxBNw0UV+VyQi1UFdtyIiSW7yZOjSBXJz4f33FfJEEola9EREklEkQtasMPcvCnHjq0G6d4fp06FFC78LE5HqpKAnIpJsIhFyu2dgW6NcQYCGfTIZNFnz44kkInXdiogkmS/Hh8ndGiUtb368wR00P55IolLQExFJEllZcP31MHBqiGzT/HgiyUD/hxMRSQI//gj//Cd88AFcemkQOzsTi4S9kKf58UQSloKeiEiCmzkT+veHaBSeecYLfBCEkAKeSKJT162ISIKKRmHIEOjdG9q08ebK80KeiCQLteiJiCSgb7+Fc8+FhQvhiitg7FhIT/e7KhGpbQp6IiKJJBLh03FhrnsjxLJAkJdfhtNP97soEfGLgp6ISILYPCtC2okZHJwT5fWUAOv/nclup+s6PJFkFrPX6JlZyMxcCY/fK7BtXTMba2a/mNkWM4uY2XG1ULaIiC8iERh/dpjUHG9+vHSLstvSsN9liYjPYjboFXIlECz06FGBbf4FXAzcBpwC/AK8Y2aH1lCNIiK+yM6GkSOha1eIpIew9ACkpmIBzY8nIvHRdfuVc25BRVc2s47AecCFzrmn8pbNAZYAdwC9a6RKEZFa9u23cP75XmveP/8Jjz0WJPXLTAiHNT+eiADxEfR2VG8gC3guf4FzLtvMpgM3mlm6c26bb9WJiFSRczBpkjd1Slpa4bnx8MKdAp6I5ImHrttpZpZjZr+Z2TNm1rqc9TsA3zvn/iy2fAkQAPatkSpFRGrB6tXeKNpLLoGjj4bPP9fceCJSulhu0fsDuA+YA2wADgNuBiJmdphzbnUp2zUF1pewfF2h97djZpcAlwC0bl1elhQRqUWRCITDzLEQZ90fZMMGGDcOrrwSUuLhv+si4puYDXrOuU+BTwstmmNmc4GP8AZo3FLNx5sITATo1KmTq859i4hUWiSCy8ggd0uUIwlw0v6ZXPtekIMO8rswEYkHcfV/QefcJ8D/gCPLWG09sHMJy/Nb8taV8J6ISExa+niYnC1RUvOmTPnX+WGFPBGpsLgKeoWU1eK2BNjLzOoXW94eiALLaqwqEZFq8scfMHAg9H86RJYFcKmppNYNkJoR8rs0EYkjcRX0zKwTcABe921pZgJ1gLMKbZcGnAO8qxG3IhLr3ngDOnSAyZMhdGOQ1NmZ2MiRkJmpEbUiskNi9ho9M5sGfA98AvyONxjjJmAl8FDeOm2Ab4E7nHN3gHdtn5k9BzxgZnXy9nEpsBfQp5Y/hohIhf32G1x9NUyd6gW9l1+GI48ECEI3BTwR2XExG/SAL4B/AlcA9YFVwAxguHNubd46BqSyfcvkAGA0MArYCVgMnJh3jZ+ISMyZMQMuu8wLe7fdBjffDOnpflclIvHOnNMA0+I6derkFi5c6HcZIpLoIhE2vBbmzvkh7p4b5PDD4cknoWNHvwsTkXhiZoucc51Kei+WW/RERBJW7gcRco7PoH5WlNsI0OHSTM59MEidOn5XJiKJJK4GY4iIJIKvvoIn+oSxrChp5FAvNcr5e4YV8kSk2inoiYjUkq1bYfhwOPRQmLEuBAFv2hQLBCAU8rk6EUlE6roVEakF777rDbb49ls47zwYNy5I2reZEA57IU/TpohIDVDQExGpQb/8AtdcA9Onw377waxZkJGR9+YuQQU8EalR6roVEakB2dnw8MPQrp03H97tt8NnnxUKeSIitUAteiIi1eyzxyOER4R5dlWIo/8W5NFHvdY8EZHapqAnIlJNfv0VJg6IMPStDNoT5bJAgNQRmdh+6p4VEX+o61ZEpIqysuDBB+GAA2DbO2HSzZs2JS0nis0J+12eiCQxBT0RkSr4z3+86VKuvhqOOgounhYitW4AUlNB06aIiM/UdSsiUgnffuuNpn3tNdh7b3jlFejdG8yC0EbTpohIbFDQExHZARs2wJ13wrhxUKcOjBkDQ4ZAenqhlYKaNkVEYoOCnohIBWTPi7Do/jC3h0O89XuQ88+Hu+6C3Xf3uzIRkdIp6ImIlOPDByIcck0GR7goM1ICfP+vTA68UC12IhL7NBhDRKQUX3wBJ50ErwwJU8d5I2nTLcqBv4b9Lk1EpEIU9EREivnpJxg4EDp2hPnz4aDBIVLreSNpTSNpRSSOqOtWRCTPH3/APfd4Ay1ycrwpU26+GZo1C0IfjaQVkfijoCciyS0SIWtWmJfWhrh8WpDffoM+fWDUKGjbttB6GkkrInFIQU9Eklb2vAhkZGBZUXoTIHJkJhe8E+SII/yuTESkeugaPRFJOs7Byy/Dw2eEIcsbZFE3JcqDfw8r5IlIQlHQE5Gk4Ry8/bZ3q7J//AM+rBeCQACXmkpKugZZiEjiUdATkaQwezYceyz06gVr18KTT8LUb4OkhTOxkSMhM1PX4IlIwtE1eiKS0N5/H4YPh/feg1at4LHH4MILIRDIW0GDLEQkgSnoiUhC+u9jERbdF2bStyG+2yXIAw/AoEFQt67flYmI1B4FPRFJKPPmwfPXRLh7YQYHEeWCOgFypmdS93i12olI8tE1eiIS95zzLrE7/ng47jjY9aswdc0bTVsnN0rdBWG/SxQR8YWCnojELefgzTfhmGOgRw9YuhTuvx+GzgyRUte7ZRm6ZZmIJDF13YpI3MnJ8ebBu/NO+PRTaN0axo+HAQPyr8ELek18umWZiCQ5BT0RiRvROREWPxTm3o9DPP9jkH339aZJ6dsX6tQptrJG04qIKOiJSOzbuBFeHxbh9EcyOMxFedoCXDIqk9CNQVJT/a5ORCR26Ro9EYlZv/wCN93kdc1+9nCYgPMGWKSnRMlICSvkiYiUQ0FPRGLOV1/BwIHQti3cc4830OL8SSFS63kDLEwDLEREKkRdtyLiv0gENzvMokYhRrwT5I03oF49uOgiuOYa2GcfgCC01wALEZEdoaAnIr6KzomQckIGRKO0J0DuTpmMGBFk8GBo3rzYyhpgISKyQxT0RMQXv/4Kjz8OqWPD3BD1rr1LSYny6jVh6tyqMCciUh10jZ6I1KqFC+GCC7wBFsOHw28HhbD0AC41lZT0AHV6hPwuUUQkYahFT0RqXDQKM2bAQw9BJAING8KgQXD55bD//kGI6No7EZGaoKAnIjVm9asRFj8Y5oH/hnhzvTfB8YMPQv/+0LhxoRV17Z2ISI1Q0BORapWbC7Nnw3/uiHDb3AyOJ8pxKQE+vT+To64KkqILRkREao2+ckWkWqxdC/feC+3aefPeNVgYJt3yJji2KJ23hhXyRERqmb52RaTSnIN587x7zbZqBdddBy1bwr//Dde/ESK1rjfBMZrgWETEF+q6FZEdE4mw6Y0wr/0RYuSsIF9/DU2aeIMrBg2CDh3yVwxCpgZZiIj4SUFPRCokJwc+fijCYddlUDcnyukEmHNwJtc/GeScc6B+/RI20iALERFfKeiJSJm+/RYmT4ann4Y+P4bphHfdXWpqlMf/GYYBCnIiIrFK1+iJyHY2bfKCXSgE++4Ld97pdcn2GBkitZ533Z3pujsRkZgXsy16ZnYm8E+gE7AL8AMwA7jTObexnG1dKW8d5pz7b3XWKZIocj+I8P1TYab9HOKeuUE2b/ZC3ujR3p0s9tgDIAgZuu5ORCRexGzQA67FC3c3Az8BhwEjgOPNrItzLrec7ScDjxdb9r9qrlEk7i1dCrPvjNDv3xm0cVGuJUCdUzM59rogxx4LZsU20HV3IiJxI5aD3qnOuTWFXs8xs3XA00AIeK+c7Vc65xbUVHEi8WzVKpg+HaZOhUWL4CYLE3BRUvOuvbspGIauCnMiIvEuZoNesZCX7+O851a1WYtI3IpECrpZN3QI8sorMG0azJrl3cHi8MPh/vvh/H1DpJ4TgGhU196JiCSQmA16peiW9/xVBda91MyuA3KABcBw59y8GqtMJNZEIriMDNy2KFkWoHdqJnOiQdq2hZtugj594MAD81fWnHciIokoboKembUC7gBmOecWlrP6VOB14GegDXAd8J6Z/c05F67RQkV8Fo3Cf/4Dm28J848t3lQoKUQZelSYMfcF6dy5hOvuQNfeiYgkIHOutAGqscPMGgJhYHfgKOfcTzu4fSPgC+BH59yxpaxzCXAJQOvWrY9YsWJFlWoWqU3RqNcg9/zz8Mor8Pvv8LeGEWZuyaCOi2LpASwzU0FORCQBmdki51ynkt6L+RY9M6sHzAT2BrrtaMgDcM5tNLM3gIFlrDMRmAjQqVOn2E+/ktwiEbJnhfmwXohJS4K8+iqsX+/diuz00+Hss6FHjyCBReqOFRFJZjEd9MysDvAi3lx6f3POfV7FXSrASVz780/vNmSdb8kgNSfKYQT4qUEmp/wjyJlnQs+ekJ5eaAN1x4qIJLWYDXpmlgJMA7oDp1RlqhQzawycAnxUTeWJ1Jr16+H11+Hll+Htt+GqLWGOybsNWUpKlLduDJN2i8KciIhsL2aDHvAocBYwGthsZp0LvfeTc+4nM2sDfAvc4Zy7A8DMrgUOAGbz12CMa4FdgT61WL/IjsubDuXXA0O8uNLrkp09G7KzYffdYcAA+McBIVJv9KZCSQkESMkI+V21iIjEqFgOer3ynoflPQq7He8uGQakUvSevUuBv+c9mgAbgA+Agc45tehJTHIOvpkSYa+LMrDsKI0IMJVM1h8QZOhQ+Pvf4cgjISUFIAhH6to7EREpX8wGPedc2wqssxwv7BVeNhNv8IZITNu6Fd57z+uWff116PNjmJF5XbJmUV67OkyL+0sJcbr2TkREKiBmg55Iwih0d4of9wjy1lvwxhve3Sn+/BMaNIATToAufUOkjgtAVpTUQIAWZ4X8rlxEROKcgp5IDcqeF8H+lgHRKFECnO0yWUCQNm3gwgvhlFO83ldvpGwQTlWXrIiIVB8FPZFq9sMP8M473gjZQ94IM2yb1x1bhyh39wrT/N4gBx6ou1OIiEjNU9ATqay8LtmtnUOEtwV5910v4H35pff2HntApxNC8E4AlxMlLRDguFtD0N7PokVEJJko6InsoNxcb4Ts3pdkkJIVJZcAt5PJp+lBunb1umRPPBHatwezIETUHSsiIv5Q0BOpgO++8wZPzJrljZS9+DdvhGwqOaRblKf7hdnj0SD165ewsbpjRUTEJwp6IsVFIvzxWphIIMQLPwV57z1Yvtx7q1UrbwBFtzYhUu75a4Ts/peEoKSQJyIi4iMFPRFg1SqYMwdWTI9wxasZNHBRjiPAuEaZHJoR5NproUcP2H///EEUQThRXbIiIhLbFPQkORSay45gkJ9/hrlzvUXhMCxd6q02PBAm4Lwu2dTUKG/dECZlmCYtFhGR+KSgJwnPzY/gMjJgW5SslAB9d83kxZVeQGvcGLp2hYsugm7d4LCtIVJ7eveRtUAA6x7yt3gREZEqUNCThJOdDZ99Bu+/7z0OfTvM9Vu9uexScqL0bhKmy1BvhOyhh0JakX8FQchUl6yIiCQGBT2Jb5EIW94Ks3jnEG/9HmT+fFiwADZt8t5u0wbaB0O42QFcrjeX3fmTQlBWflOXrIiIJAgFPYkrubne9XSRCKx+NcJVMzOo46IcQoChlsmfHYNccIHXHXvMMbDnngCay05ERJKTgp7EprzBE78fGmK+C/LhhxQ8fv/dW+X2un8NnEhJifLerWHSR2jghIiISD4FPYkZW7bAp5/Cj89HOP2RDFJzogQIMJJMPkoJ0qEDnH22l9c6d4b9fwuR8jdv4ERKIEB6z5DfH0FERCSmKOhJ7Sk0xUn0iCBffAELF8LHH3uPL76AnBy4kTBn4A2eMIsy7aIwu9wfpGHD4jvUwAkREZGyKOhJjdu2DZY/G2GfSzKw7ChZBDghNZN52V4w23lnOPJI744TRx4JXSxE2rleS11qIMDeA0KwXcjLoy5ZERGRUinoSdUVaqnbdHCQzz6D//4XPvnEe3zxBQzN+uvesI4oNwXDXH55kCOOgL33zr/bRD611ImIiFQHBT2pFOe824atmB7hiBsySMmKErUAJ7hMInlzlzRrBkccAUOHQo+GIVJGBXBZ3hQnve4OaYoTERGRGqagJ6XLa6mLdgnxZROvpe6zz2DxYu+xZo13PV2nvJa6Oi7KyIwwm68Mcuih3tQmf7XUBaG7WulERERqk4KeFMjNheXLva7W9W9GOHeSN/I1mwCXkskCgqSnw0EHwamnQseO0DUtROq13vV0aYEAGSNDpbfUqZVORESkVinoJZtIBDc7zOr2IT6tG2TJEoo8Nm/2VruRMKmFRr4+fk6YwPAg++5bwi3DDlNLnYiISCxS0Etgubnwww/w5ZfeIzonwjVvZpCWG6URAW7Pa6Vr2RI6dICLLvJa6w46CA7eFCKt918jXw+5MgTtSjmQWupERERikoJeAti6FVa+GOHPN8N83CDErM1BvvrKu1XYli1/rTeqYZg6uX/dSWLawDCN7wzSvHlJe9XIVxERkXinoBfr8gZE5B4X4uc2Qf73Py/A5T++/hp2Wx5hFhkEiLIPAV7fNZNdDw1y/PFw4IHQvr333HRpCDL+upPE3gNCUGLIy6OWOhERkbimoBdDnIPVq+Gbb2DZMtg6O8KAad6AiCgBzsrragWoXx8OOMC7FdjAvcPUDUdJyc0hNTXKjCvDcFMJAS2oVjoREZFkoqDng/VvRvj9lTBfNA8RIci333rBbtky2LDhr/VutjCp7q8BEQ/09qYu2W8/aNUKUlLyVoyEClrqLBDwQlxp1EonIiKSNBT0alskQoPTMmiUHaUlAe5JzeTXvYPssw906QL77ffXo+0vIdJ6/jUg4ugbQiVPXaKWOhERESmBgl5tC3sDIgyvmzV8e5jUYaUEs313IMCppU5ERESKUdCrbaEQlv5XN2tq91DZ6yvAiYiISCUp6NU2dbOKiIhILVHQ84Na6URERKQWpJS/ioiIiIjEIwU9ERERkQSloCciIiKSoBT0RERERBKUgp6IiIhIglLQExEREUlQCnoiIiIiCUpBT0RERCRBKeiJiIiIJCgFPREREZEEpaAnIiIikqAU9EREREQSlIKeiIiISIJS0BMRERFJUAp6IiIiIglKQU9EREQkQSnoiYiIiCQoBT0RERGRBGXOOb9riDlmtgZYUcOHaQ6sreFjJBud0+ql81n9dE6rl85n9dM5rV61dT7bOOdalPSGgp5PzGyhc66T33UkEp3T6qXzWf10TquXzmf10zmtXrFwPtV1KyIiIpKgFPREREREEpSCnn8m+l1AAtI5rV46n9VP57R66XxWP53T6uX7+dQ1eiIiIiIJSi16IiIiIglKQa+amdmeZvaimf1hZhvMbIaZta7gtnXNbKyZ/WJmW8wsYmbH1XTNsayK59OV8ji0hsuOWWa2h5k9nPez9Wfe+WhbwW1TzOwmM1tuZlvNbLGZnVHDJce8Kp7T5aX8jJ5es1XHLjM708xeMrMVed+DS81sjJk1qsC2+g4tpornU9+hJTCznmb2npmtMrNtZvaTmT1vZu0rsO3OZjbJzNaa2WYzm2VmB9doveq6rT5mVh9YDGwDbgEcMAqoDxzinNtczvbTgJOB64DvgMFALyDonPtvzVUem6rhfDpgMvB4sbc+c879We0FxwEzCwHPAYuAVOAEYC/n3PIKbDsauBYYlrf9ucDFwCnOuTdrpuLYV8Vzuhz4GhhR7K2lzrn11Vhm3DCzBcAPwKvAT8BheOfna6CLcy63jG31HVpMFc+nvkNLYGb/BA4HPgTWAK2BG4E9gYOdcyXOw2tmBswD2uL9jK4HbgI6AIc6536qkYKdc3pU0wO4CsgB9i20bC8gG7imnG074gWZAYWWpQFLgdf8/mzxdj7z1nXAKL8/Ryw9gJRCf74o7xy1rcB2u+AF7tuLLc/E+9L3/bPF2znNW385MNXvzxBLD6BFCcsuyDuv3cvYTt+h1Xg+89bTd2jFz/MBeedraBnrnJa3zvGFljUB1gEP1VRt6rqtXr2BBc65ZfkLnHPfAx/g/QWXt20WXstA/rbZwHSgp5mlV3+5Ma8q51NK4Mr433s5egIBYGqx5VOBg81sryoVFseqcE6lBM65NSUs/jjvuVUZm+o7tARVOJ+yY37Le84uY53ewM/Oudn5C5xzfwAzqcHfaQp61asD8EUJy5cA5fXddwC+d9s3hy/B+wW7b9XLiztVOZ/5Ls27huLPvGsqulZfeUmlA16L3rJiy5fkPVf070O2d2rez+c2M1uQzNfnlaFb3vNXZayj79CKq8j5zKfv0FKYWaqZBcxsP7zu7VXAs2VsUtbvtNZm1rAGylTQq2ZN8frci1sH7FyFbfPfTzZVOZ/gtTZdBvQALgGaAe/lXVMlO6Yp8LvL62soJJl/PqvDTOAKvBbTPsBW4GUz6+trVTHEzFoBdwCznHMLy1hV36EVsAPnE/QdWp4P8f4D/D/gELyu8NVlrF/ez2hFfq/tsLSa2KlILHDOnV/o5TwzexXvf1OjgGP9qUrkL865Kwq/NrOXgQXAGLbvJk86eS0cr+J1hw3wuZy4t6PnU9+h5TofaAzsjTdQ7T9mdqyrwECs2qQWveq1npITeWkpvqLbwl+JP5lU5Xxuxzm3EXgDOLKKdSWj9cBOeaPGCkvmn89q55zLAV4A9jCz3fyux09mVg+vxXNvoKcrf0SivkPLUInzuR19hxblnPvKOfehc+5ZIANoiDf6tjTl/YzWyEh7Bb3qtQSvD7649sCXFdh2r7wpRYpvG2X7a6OSQVXOZ1k0p9COWwKkA/sUW55/bV5V/j6kZEn7c2pmdYAXgU7ASc65zyuwmb5DS1HJ81mWpP3ZLI1z7ne8n7GyrgUt63faD865TTVQmoJeNXsN6Gxme+cvyJs49Zi898oyE6gDnFVo2zTgHOBd59y2aq829lXlfG7HzBoDpwAfVVeBSeRtvBGNfYot7wt8kTcaWqqo0L/5H5xzq/yuxw9mlgJMA7oDpzvnFlRwU32HlqAK57Okfek7tBRm1hJoB3xbxmqvAa3MLH8wTP45PZVK/E6rKF2jV72eAC4HXjWz/Al+RwI/UmjCSTNrg/fDcIdz7g4A59ynZvYc8EDe/76+By7Fmzeu+C/XZFHp82lm1+LNazQb+Blog3cNxa4k7/kEvJny8/54RN5zLzNbA6xxzs3JWycbeNo5NxDAObfazO4HbjKzjcAneL9Au+NNGZDUKnNO8yZdPQ14E+9nuiXeBL+HA/+sxfJjzaN4YW00sNnMOhd67yfn3E/6Dt0hlTqf+g4tXd61tJ8AnwEbgP2BIXjXPt6Xt043vHlGL3TOTcnb9DUgAkw1s8ITJhtwT40V7Pckg4n2wJsh+6W8v/yNwCsUmzwVb1ZsB4wotrwecD/eEO2teCN6Qn5/png8n3j/Q/oAWIvXEvUb3j+yo/z+TH4/8s5VSY9wsXUmF9suFe8OJSvwRpp9Bpzp9+eJhUdlzinQGXgP+DXvZ/R3YBbe9VO+fyYfz+XyMs7niLx19B1aw+dT36FlntMb8O6E8zvwJ96k3I8X/t0EhPLOaf9i2zYFnsS7ZvRPvDDYsSbr1S3QRERERBKUrtETERERSVAKeiIiIiIJSkFPREREJEEp6ImIiIgkKAU9ERERkQSloCciIiKSoBT0RERqmJmdbmbX+F2HiCQfBT0RkZp3OqCgJyK1TkFPREREJEHpzhgiIjXIzCYD/YotXuGca1v71YhIsknzuwARkQQ3EmgBHAn0zlu2zb9yRCSZKOiJiNQg59y3ZrYGiDrnFvhdj4gkF12jJyIiIpKgFPREREREEpSCnoiIiEiCUtATEal524B6fhchIslHQU9EpOZ9CTQ1s0vN7EgzO9jvgkQkOWgePRGRGmZmDYBJwInATmgePRGpJQp6IiIiIglKXbciIiIiCUpBT0RERCRBKeiJiIiIJCgFPREREZEEpaAnIiIikqAU9EREREQSlIKeiIiISIJS0BMRERFJUAp6IiIiIgnq/wFmSejxrgzf2wAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "sol = integrate.solve_ivp(f, (t_0, t_final), y_0, t_eval=np.linspace(t_0, t_final, 50))\n", "\n", "fig, ax = plt.subplots()\n", "fig.set_size_inches((10, 9))\n", "plot(ax, np.linspace(t_0, t_final, 100), exact_solution, sol.t, sol.y[0])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Выбор метода решения ОДУ\n", "\n", "Решение таких систем ОДУ отнюдь не тривиально. Разработано множество методов их решения и ряд из них \"зашит\" в подмодуле `scipy.integrate`, среди которых:\n", "- Явные [ме́тоды Ру́нге — Ку́тты](https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%A0%D1%83%D0%BD%D0%B3%D0%B5_%E2%80%94_%D0%9A%D1%83%D1%82%D1%82%D1%8B) 2-го (`RK23`), 4-го (`RK45`) и 8-го (`DOP853`) порядков;\n", "- Неявный метод Руне --- Кутты 5-го порядка `Radau`;\n", "- Неявные методы [BDF](https://en.wikipedia.org/wiki/Backward_differentiation_formula) и `LSODA`.\n", "\n", "Основным критерием выбора является [жесткость системы ОДУ](https://ru.wikipedia.org/wiki/%D0%96%D1%91%D1%81%D1%82%D0%BA%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0): явные методы плохо проявляют себя на жестких системах. `SciPy` рекомендует использовать по умолчанию метод `RK45` и если он плохо/долго сходится переключаться на метод `Radau` иди `BDF`. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Краевая задача\n", "\n", "Функция [scipy.integrate.solve_bvp](https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.solve_bvp.html#scipy.integrate.solve_bvp) (`Solve boundary value problem`) предназначена для решения системы ОДУ с краевыми условиями\n", "\n", "$$\n", "\\begin{cases}\n", "\\dfrac{dy}{dx} = f(x, y) \\\\\n", "y(a) = y_a \\\\\n", "y(b) = y_b.\n", "\\end{cases}\n", "$$\n", "\n", "В качестве аргументов функция `solve_bvp` принимает: \n", "- функцию `f`, задающую правую часть уравнения,\n", "- функцию `bc` (сокращение от `boundary condition`), задающую невязку для граничных условий,\n", "- массив `x`, определяющий сетку значений независимой переменной $x$, \n", "- массив `y`, задающий \"догадку\" об итоговом решении $y = y(x)$.\n", "\n", "В качестве примера решим уравнение\n", "\n", "$$\n", "\\begin{cases}\n", "y'' + y = 0 \\\\\n", "y(0) = 1 \\\\\n", "y(\\frac{\\pi}{2}) = 0,\n", "\\end{cases}\n", "$$\n", "\n", "на отрезке $x \\in [0, \\frac{\\pi}{2}]$. Чтобы это сделать, необходимо свести это уравнение второго порядка к системе уравнений первого порядка. Для этого введем обозначения $z_1 = y$ и $z_2 = y'$. Тогда систему выше можно записать в виде\n", "\n", "$$\n", "\\begin{cases}\n", "z_1' = z_2 \\\\\n", "z_2' = - z_1 \\\\\n", "z_1(0) = 1 \\\\\n", "z_1(\\frac{\\pi}{2}) = 0.\n", "\\end{cases}\n", "$$\n" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAm8AAAIgCAYAAADTOI4xAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABbaElEQVR4nO3deZxN9ePH8ddnZtwZ+5ZU9lCWim9N5RJuRpYU9VXytUulfnxTqSREhihFi0rakEppX319Gy6qUVHpm1ZFi8oSWQp3ls/vjzMmszBj5t575t77fj4e8xhz5p573vcYd94+55zPMdZaRERERCQyxLkdQERERESKT+VNREREJIKovImIiIhEEJU3ERERkQii8iYiIiISQVTeRERERCJIgtsBwumYY46xDRs2dDuGiIiISJHWrl273VpbK//ymCpvDRs2ZM2aNW7HEBERESmSMeaHwpbrsKmIiIhIBFF5ExEREYkgKm8iIiIiEUTlTURERCSCqLyJiIiIRBCVNxEREZEIElNThYiIhMP+/fvZtm0b+/fvJzMz0+04IlLGlCtXjmOPPZYqVaqUaH2VNxGRINq1axdbtmyhVq1aHHfccSQkJGCMcTuWiJQR1lr27dvH5s2bAUpU4HTYVEQkiLZv307dunWpXr065cqVU3ETkTyMMVSoUIE6deqwdevWEj2HypuISBAFAgHKly/vdgwRKePKly9PRkZGidZVeRMRCTKNtolIUUrzPqHyJiIiIhJBVN5EREREIojKm4iIHJYxpsiPhg0buh1TJKaEfaoQY0xdYAyQDLQCygONrLWbirFuXM66w4HjgK+BydbaF0MWWEQkhqWnp+f5+uKLL6ZVq1ZMmjQpd1liYmKYU4nENjfmeWsC9AHWAquALkexbipwIzAuZ/2+wGJjzAXW2reCHVREJNa1adMmz9eJiYkcc8wxBZaLSPi4cdh0pbW2trX2fGBxcVcyxhyLU9ymW2vvttYut9YOB5YD00OUVUREjsLChQtp1aoVSUlJHHPMMQwcOJBff/019/t+vx9jDH6/P896DRs2ZMiQIblfz5s3D2MMGzZsyPO4g+u/8847ucustcyaNYuTTz4Zj8fD8ccfz8iRI9m9e3eedTMzM5k2bRrNmjUjMTGRE044gdGjR7N///4iX5cxhnHjxjF16lTq1q1L+fLl6dChA59++mmBx7700ku0adOGChUqUK1aNS699FJ+/PHHAq93wIABeZadc845+Hy+PMv69u1LkyZN8iz766+/GDNmDI0aNcLj8dCoUSOmTp1Kdnb2EfcTwKZNmzDG8Nhjj+UuGzJkSIHtrlq1qtBD4sXZtoRe2EferLUl/RvuCniAhfmWLwSeMMY0stZuLFU4EZEQue46KOT3fFi1bg333hu65587dy7Dhw/nsssuY9q0afzyyy/ceuutfPDBB3z88cdUqlQpJNsdN24c06ZNY8SIEVx44YV88cUXTJgwgXXr1rFixQri4pxxigEDBvD6668zZswY2rZty5dffsmECRPYtGkTL75Y9Nk3CxYsoH79+syePZsDBw5w2223kZKSwrfffkuNGjUAmDNnDtdccw1Dhw7ltttuY8+ePUyaNImOHTvy2WefUbly5VK91szMTLp27Zr7Gk899VRWr15NamoqO3bs4J577inV8wNkZWUxYsQI4uPjw75tKZ5Iuj1WS+AAsCHf8vU5n1sA7pa39HTw+8HnA6/X/ecREQmTrKwsJkyYgM/nY9GiRbnLmzVrRvv27XniiSe49tprcycw3rt3b1C2e7A0DB48mNmzZwPQtWtXatWqxcCBA3njjTfo2bMnq1at4rnnnmP+/PkMGjQIgM6dO1OjRg0GDBjAp59+SuvWrY+4rX379rF06VIqVqwIwNlnn03Tpk2ZNWsWqamp7N27lzFjxjB06FCeeOKJ3PXOOussTj75ZB5//HGuu+66Ur3eZ599lnfffZcVK1bQoUMHAFJSUgC4/fbbGTNmDMcee2yptjF79my+//57hgwZkmfkLhzbluKJpPJWA/jDWmvzLd9xyPfdk57OgfYpxGcFyMDDwBPS+Kq6lwoVoHx58nwubNnBz/V+TufcKSnEZQbA48G+k0ZcOxU4kUgXyhGvsuDrr79m69atTJ06Nc/yc845hwYNGrBixQquvfZaTj75ZJKSknj44Yc5++yzqV69+hGfNysri8zMzDxfH2r16tUEAoEChyD79u3L0KFDWbFiBT179mTJkiV4PB4uueSSPM/XpYtz2vXKlSuLLG/nn39+bnED59BnmzZtci/qSE9PZ/fu3fTv3z/PNurVq0ezZs1YuXJlqcvbkiVLaNCgAW3bti3wOsaPH8/q1avp2bNn7vLs7Owj7r/8tmzZwsSJE5kwYQL79u0r1bYldCKpvJWIMeYq4CqA+vXrh25Dfj/lsgPEkYUxAfoc6+e5E7389Rfs2we//+58Pvj1wc+BQN6nuQU/PgIYssjYH+D2jn6eqe+lXj2oVw/q1s37uV49OOYYKDBRs0bvRCSMduxw/h99/PHHF/jecccdl/v9atWq8dBDDzFixIhijdI0a9asRNtNSEigZs2aud/funUrgUAgT/k61O+//15kltq1axe6bP369bnbAGdErzBFFdXi2Lp1Kz/88APlypUr9Pv5X0fXrl2P6vlvuukmjjvuOK6//nruuOOOUm1bQieSyttOoJoxxuQbfTs44rajkHWw1s4F5gIkJyfnH7ULHp+PuCQPBALEezz0echHn2J0psxMp8QdLHSk+zBDPWRnBCDew/F9fHgt/PQTvPcebN4M+W+FlpiYt9S1NelcscgZBTQeD2ZZmgqciITUwXO+fvvttwLf++233zjjjDNyvx46dCh9+vRhw4YNufd2PNyIzcsvv0zdunVzv167di1XX311odtt2bJl7vLMzEx+//333O/XrFmTpKQkVq1aVeh2TjjhhCJf45YtWwpdVqdOndxtgHOxxaFZDirt+W4Ht9GoUSOef/75Qr+f/wKDBx98kLPOOiv3619//fWw+/rdd99l4cKFLF26FI/HU+ptS+hEUnlbDyQCjcl73luLnM9fhD3RobxeSEs76tGuhASoXNn5AKChFxo6zxPn8zHC62XEIY/PzoatW+Hnn51C99NPf//5559h1Sqo/5MfkzMKmLE/wIwufla289K6tXPCcqtWcNJJkO9cVBGREjv55JOpXbs2ixYtYtiwYbnL33//fX744QdGjx6d5/EVK1akVatWuV8XVhYATjnllDxXW+Y/V65NmzZ4PB4WLVqUe/4VwHPPPUdmZmbuVZTdunXjzjvvZNeuXXkedzTeeust/vzzz9zRu02bNrF69WpuueUWANq2bUvlypXZsGEDgwcPLtE2itKtWzdefPFFKlWqVOSoJMBJJ51EcnJy7tebNm0q9HFZWVmMHDmS3r17H3bk8Gi3LaETSeVtCZAB9AduP2T5AODzMnGlqdcbnBGuIzxPXBwcd5zzcci/xzyy3vVhzvOQHXBG77La+9jyK8yc+feoXfnycMop5Cl0p512SIkUETkK8fHxTJ48meHDhzNgwAAGDBjA5s2bGTduHE2bNuXyyy8P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+wBYsmQJxhjefffdPOu/9NJLtGnThgoVKlCtWjUuvfRSfvzxxyL3E4DP58szgnzwZ+jQ7WZkZNC8efNCf2aLs+1gUnmTqFGz5t9lbdkyOO88mD0bmjeHc8+FRYsgsELTjUiEisCpcgYMGECTJk146aWXuP7663n00Ue55pprjrjO888/X+AX4969ewGYMmUKCQkJzJ8/n4cffpjPP/+cc845h82bNxf6XA8++CDp6emkp6fzj3/8o8i848aNY+fOnXmW1ahRg//85z98/fXXDB48uNAb1G/atInu3bvTs2dPZsyYkbv8448/pm3btuzYsYNHH32UF198kZo1a9K5c2fWrl1bZJ7S+Oyzz+jYsSM7d+5k3rx5LFiwgN27d9OxY0fWrVuX+7g333yTlJQUKlWqxMKFC3nmmWfYs2cP7du356effipyO7t37+ayyy5j8ODBvPLKK/h8Pq699trc4g3w008/cfbZZ7Nu3TpmzZrFa6+9xumnn07v3r157bXXgvJ658yZQ+/evWnRogUvvPACjzzyCJ9//jkdO3Zkz549QdnGrFmz+Pbbb13ZdgHW2pj5OOOMM6zEli1brJ0+3dpGjaxtw/v2L8rbTBNvs5PKW/v++27Hkyj0xRdfBP9J33/f2vLlrY2Pdz6H+Wf3ySeftID99ttvC3wvIyPDAnbixIkFHj98+PA8j50yZYqNi4uzX3/9tbXW2o0bN1rALl++3Fpr7d69e23dunXttddeawH75JNP5nlckyZNbEZGRu7zff/99zYhIcFef/31ebbzn//8xwJ21apVucs6duxoO3bsWCDjQWvXrrVxcXG52964cWOe51y/fr2tXr26ve6666y11jZo0MBOnDjRbt261Z500km2W7duebJZa22nTp1ss2bN7IEDB3KXZWZm2mbNmtlevXrlLhs8eLCtU6dOgX07ceJEC+R5XsCOGzeuwGMbNGhg+/fvn/t17969bdWqVe3OnTtzl+3atctWr17dXnzxxbnLGjdubDt16pTnuXbt2mVr1qxpR40aVWA7hxo8eLAF7LPPPptneefOnW39+vVtdna2tdbayy+/3B5zzDF2+/btBR7XqlWrI77eRx99tMDfx9tvv53n73fPnj22SpUqdujQoXme//vvv7flypWzs2bNyl2Wfz8d1LFjR9uuXbvcr5cvX55nuz///LOtVKlS7s/HwZ/Zo9l2YYp6vwDW2EL6jEbeJKode6wz5ciGDbBgqB8PAeJtFpn7A7w+2k8IR7VFgsfvd+4nl5XlfM43MlVW9enTJ8/Xffv2JTs7u9BDdwCTJ08mIyODyZMnF/r9yy67jISEv0/VbtSoEe3atWPFihV5Hnfw0GxSUlKxclprGTFiBF26dOHiiy8u9DEtWrRg6tSp3Hvvvdx1110A/Pnnn/To0YNNmzaxcOHCPNn27dvHihUruPTSS4mLiyMzM5PMzEystXTu3JmVK1cW2MbBxxz8yM7OPmze/I/Nb+XKlVxwwQVUq1Ytd1mVKlXo2bNn7v769ttv+e677+jfv3+e56pQoQJer7fQjPnFx8fTu3fvPMv69u3Ljz/+mDsiumTJEs4//3yqVq2aZztdu3Zl3bp17N69u8jtHEl6ejq7d+8u8Drq1atHs2bNCryOwvafLWRE9VA33HADDRs25N///nepth0sKm8SE+LioOmVeacbuetDH40bw9ChOi9OyjifDzweiI93Ph9y7lZZVrt27UK/Luww51dffcWsWbO46667qFq1ap7vlStXDoDjjz++wHrHHXdcgYl6f//9dwBq1qxZrJxPPvkkn3zyCffff/9hH7Nv3z5mzZrF2Wefzbhx4/jll1+4//772b17N1WqVOHuu+/O8/gdO3aQlZVFamoq5cqVy/Mxe/Zsdu7cmaecbd68ucDjUlNTC81yxx13FHjsD/luDL1jx47D7q+Dh4a3bt0KwLBhwwo83xtvvJG7H4+kevXquX8/B+X/e966dSsLFiwosI2bbroJoFjbOZKDr6Nz584FtvG///2vwPM/88wzBR53pJK1bNkyFi9ezIMPPpinoJdk28Giq00ldni9kJaGyZlu5Jm6Xu65B+bOhfnz4Z//dO65esYZbgcVySfnZxe/3yluOVddl3VbtmyhZcuWeb4GqFOnToHH/vvf/+bss89m0KBBBb5Xs2ZNEhIS+O233wp877fffqNGjRp5ln377bckJiYWehFAfn/88Qe33HILN954I02bNj3s+XMTJ05k165dpKen88orr3DFFVdQp04dli5dyqpVqxgyZAh9+vTJPbeuWrVqxMXFMWLEiEJfE0Bc3N/jJ8ceeyxvvvlmnu/PnTuXRx99tMB6l19+eYFzB3v27Jnn6xo1ahx2f1WvXh34u9xOmzaNzp07F3isx+MpNPehdu7cSUZGRp4Cl//vuWbNmrRv354xY8YU+hwnnHBCkds5koOvY968eXl+3g6qXLlynq+7d+9eYHR3+PDhhT53RkYGI0eOpF+/fnTo0CHPBQwl2XawqLxJbDlkupF6wL33wrhxcP/98MAD8OKL0KUL3HordOjgXM0qUiYc8rMbKZ5//nk6deqU+/WiRYuIi4vj7LPPzvO4F154geXLl/PxYW6bkpSUhNfrZfHixUyaNIn4+HgAfvjhB95///08h7IyMzNZsmQJbdq0KTAiVJjx48dToUIFbr311sM+Zs2aNcycOZOnn36amjVrMmzYMFJTUxkyZAj169enf//+PPPMM1x++eV89NFHJCQkULFiRdq3b8+6des4/fTT8xS1wpQrV47k5OQ8y954441CH3v88ccXeGz+otWxY0feeust9uzZk1sg9uzZw+uvv5571e3JJ59Mw4YNWb9+PbfccssR8x1OVlYWL774In379s1dtmjRIurXr59b3rp160Z6ejotW7akfAjmb2rbti2VK1dmw4YNDB48uMjH16hRo8D+q1y5cqGHn++77z42b95MWlpaULYdLCpvEvNq1YLUVLjpJpgzB2bO/Htw49ZboUcPlTiRknjrrbe46aab6NKlCx9++CG33347gwYNomnTpnkeN2fOHEaMGMFpp5122OeaNGkSXbp04YILLuD//u//2Lt3LxMnTqRq1aqMHj0acKbGSE1NZd26dcW+inHOnDksXryYChUqFPr9jIwMhg0bRo8ePbjsssuO+DwtW7bkrrvuyi2CM2fOpEOHDnTt2pVhw4Zx/PHHs337dj7++GOysrKYPn16sTKWxIQJE3jjjTdISUlhzJgxGGO48847+euvv7jtttsAZ9qRBx98kF69ehEIBOjTpw/HHHMMW7Zs4f3336d+/frccMMNR9xO5cqVufnmm9m+fTtNmzbl2Wef5Z133skzFcvkyZM566yz6NChAyNHjqRhw4bs3LmTzz//nO+//54nnngiz3N+/fXXuQX94Ojhd999x/79+wH4+eef8zy+SpUqzJgxgxEjRrBt2za6d+9O1apV2bx5MytWrMDn89GvX78S7cc5c+YwY8aMQg9Bh3rbR6LyJpKjShW4+WZn8t8nn4QZM+DCC507NowdC5deCgn6FyNSbAsXLuSee+7h4YcfxuPxcOWV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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "from scipy import integrate\n", "from matplotlib import pyplot as plt\n", "\n", "\n", "def f(x, z):\n", " return [\n", " z[1],\n", " -z[0]\n", " ]\n", "\n", "def R(za, zb):\n", " return np.array([za[0] - 1, zb[0]]) \n", "\n", "def exact_solution(x):\n", " return np.cos(x)\n", "\n", "a, b = 0, np.pi/2\n", "N = 30\n", "x = np.linspace(a, b, N)\n", "z_guess = np.zeros((2, N), dtype=float)\n", "\n", "sol = integrate.solve_bvp(f, R, x, z_guess)\n", "\n", "fig, ax = plt.subplots()\n", "fig.set_size_inches((10, 9))\n", "plot(ax, x, exact_solution, sol.x, sol.y[0], xlabel=\"x\")" ] } ], "metadata": { "interpreter": { "hash": "8617202e12f254480e1fae3258716b685f1a56bcbf234a446366b4fd3345ed22" }, "kernelspec": { "display_name": "Python 3.8.10 64-bit", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.10" } }, "nbformat": 4, "nbformat_minor": 2 }