{
"cells": [
{
"cell_type": "markdown",
"id": "3d0a47e3-7c72-43fc-8563-d44cf886a24b",
"metadata": {},
"source": [
"---\n",
"title: \"A1\"\n",
"subtitle: \"Jupyter Notebooks, LaTeX, Julia & Prerequisites\"\n",
"date: 2026-01-21\n",
"format:\n",
" html:\n",
" other-links:\n",
" - text: This notebook\n",
" href: A1.ipynb\n",
"---\n",
"\n",
":::{.callout-note}\n",
"\n",
"* Complete the following and submit to Canvas before Jan 28, 23:59\n",
"* Late work will recieve 0%,\n",
"* Each assignment is worth the same, \n",
"* Please get in contact with the TA/instructor in plenty of time if you need help,\n",
"* Before submitting your work, make sure to check everything runs as expected. Click **Kernel > Restart Kernel and Run All Cells**.\n",
"* Feel free to add more cells to experiment or test your answers,\n",
"* I encourage you to discuss the course material and assignment questions with your classmates. However, unless otherwise explicitly stated on the assignment, you must complete and write up your solutions on your own,\n",
"* The use of GenAI is prohibited as outlined in the course syllabus. If I suspect you of cheating, you may be asked to complete a written or oral exam on the content of this assignment.\n",
"\n",
":::"
]
},
{
"cell_type": "markdown",
"id": "93f519cf",
"metadata": {},
"source": [
"::: {.box}\n",
"\n",
"***Approx. time spent on this assignment:***\n",
"\n",
"***Did you do the suggested reading?*** Yes/No\n",
"\n",
":::"
]
},
{
"cell_type": "markdown",
"id": "1cdd630f",
"metadata": {},
"source": [
"\n",
"\n",
"## A: Jupyter Notebooks\n",
"\n",
"::: {.callout-tip}\n",
"\n",
"You may do this part (**part A only**) with the help from your classmates\n",
"\n",
":::\n",
"\n",
"***Exercise 1.***\n",
"\n",
"* Follow the steps [here](https://jack.thomaslabs.co.uk/teaching/Math5486/InstallingJulia.html) to install Julia and Jupyter, \n",
"* Upload and run this .ipynb file, \n",
"* Double click on the following cell to replace YOUR NAME HERE with your name"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "ccfc9a8e",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\"YOUR NAME HERE\""
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Name = \"YOUR NAME HERE\""
]
},
{
"cell_type": "markdown",
"id": "626e8c83",
"metadata": {},
"source": [
"## B: $\\LaTeX$"
]
},
{
"cell_type": "markdown",
"id": "7a01644d",
"metadata": {},
"source": [
"***Exercise 2.*** Write down the degree $n$ Taylor polynomial of $f:\\mathbb R \\to \\mathbb R$ about some point $a$.\n",
"\n",
":::{.box}\n",
"\n",
"***Answer.***\n",
"\n",
"Your answer here\n",
"\n",
":::\n",
"\n",
"\n",
"\n",
"***Exercise 3.*** Apply the Taylor remainder theorem to $f(x) = e^x$ about $x=0$ to show that \n",
"\n",
"\\begin{align}\n",
"0 \\leq 1+x \\leq e^x\n",
"\\end{align}\n",
"\n",
"for all $x \\geq -1$. \n",
"\n",
":::{.box}\n",
"\n",
"***Answer.***\n",
"\n",
"Your answer here\n",
"\n",
":::\n",
"\n",
"\n",
"\n",
"***Exercise 4.*** Fix $\\alpha, \\beta > 0$ and suppose that $x_n$ is a sequence such that $x_{n+1} \\leq (1 + \\alpha) x_n + \\beta$ for all $n \\in \\mathbb N$. Show that \n",
"\n",
"\\begin{align}\n",
" x_{n+1} \\leq (1 + \\alpha)^{n+1} \\left( x_0 + \\frac{\\beta}{\\alpha} \\right) - \\frac{\\beta}{\\alpha} . \n",
"\\end{align}\n",
"\n",
":::{.box}\n",
"\n",
"***Answer.***\n",
"\n",
":::"
]
},
{
"cell_type": "markdown",
"id": "86a45812",
"metadata": {},
"source": [
"## C. Julia\n",
"\n",
"Suppose $u : [0,T] \\to \\mathbb R$ solves the *initial value problem* \n",
"\n",
"\\begin{align}\n",
" u'(t) &= f\\big( t, u(t) \\big) \\qquad \\text{on } (0,T) \\nonumber \\\\\n",
" u(0) &= u_0. \\tag{IVP}\n",
"\\end{align}\n",
"\n",
"Recall from [L1](L1.html) that, in order to approximate the solution $u$ at *mesh points* $t_j = j h$ where $h := \\frac{T}{n}$ (for $j=0,\\dots,n$), we may approximate the integral\n",
"\n",
"\\begin{align}\n",
" u(t_{j+1}) - u( t_j ) = \\int_{t_j}^{t_{j+1}} f\\big( s, u(s) \\big) \\mathrm{d}s.\n",
"\\end{align}\n",
"\n",
"In Math 5485, you used the Rectangular rule: $u(t_j) \\approx u_j$ where $u_0$ is given as the initial condition and \n",
"\n",
"\\begin{align}\n",
" u_{j+1} := u_j + h f( t_j, u_j ).\n",
"\\end{align}\n",
"\n",
"This is Euler's method:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "362fccd4",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Euler (generic function with 1 method)"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"function Euler( u0, f, T, n )\n",
" h = T/n \n",
" t = 0:h:T \n",
" u = zeros(n+1)\n",
" u[1] = u0\n",
" for j = 1:n\n",
" u[j+1] = u[j] + h * f( t[j], u[j] )\n",
" end\n",
" return u\n",
"end "
]
},
{
"cell_type": "markdown",
"id": "84229339",
"metadata": {},
"source": [
"***Exercise 5.*** Use Euler's method to approximate the solution of $\\text{(IVP)}$ for \n",
"\n",
"\\begin{align}\n",
" &u_0 = 1, \\quad T = 1, \\quad \\text{and} \\\\\n",
" &f(t, u) := \\frac{2(1 - t u)}{1 + t^2}. \n",
"\\end{align}\n",
"\n",
"In this case the exact solution is known and given by $u(t) = \\frac{1 + 2t}{1 + t^2}$. Use the exact solution to compute the approximation errors $\\max_j | u(t_j) - u_j |$ (where $u$ is the exact solution and $u_j$ is the approximation at $t_j$). At what rate does the approximation error decay as a function of $n$?\n",
"\n",
"Hints: \n",
"\n",
"* some of the code has been written for you, \n",
"* ```mesh``` is the array $( t_j )_{j=0}^n$,\n",
"* ```u_exact``` is the exact solution,\n",
"* You may use ```maximum( @. abs( u - u_exact(mesh) ) )``` to compute the error between the exact solution ```u_exact``` and the approximation ```u```,\n",
"* You may need to change the scale of the final graph to find the rate of decay."
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "a7059ca8",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQCAIAAAD9V4nPAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nO3deVwU9f8H8PfswbGwsIDIpYggKpKKouARKuaJed+SZlrmV+1XaX3127e077d+mZb1M03LC9PK8ko8vpapeN8XyqGCeKGgXMsu5+7OfH5/TG77BTREYIF5PR/+MTN+duazs8y+9jPzmc9wjDECAACQKpm1KwAAAGBNCEIAAJA0BCEAAEgaghAAACQNQQgAAJKGIAQAAElDEAIAgKQhCAEAQNIQhAAAIGkIQgAAkDQrBOHBgwd3795d+fJGo7HmKgOVwRjjed7atZA6HAhWxxgzmUzWroXU1cSBYIUgPH369IkTJypfvqSkpOYqA5XB87zBYLB2LaQOB4LVCYKAA8HqauJAwKlRAACQNAQhAABIGoIQAAAkDUEIAACShiAEAABJQxACAICkIQgBAEDSEIQAACBpCmtXAADqLpNAeiMVmlgpT1rDH7NEVGhiBoEYI+2j+8uLTVTy36MPCUT5BkZELjZchSu3V5CdnIjIVk4qBRGRUkaOCo6INLYkI9LYkpwjJyWnlJGjsobeIgCCEEBKdEZ6UMSySym7hOUb6NE/pjWQ1kD5BpZvIJ2B8o1UZGL5BpJxpFaSSsHZysjFlhQyUiuJiBwUnI2MiMjF9o81m1PNTPYoAvMMrMLK3CuiUp6IqISnYhMRkUGgQpNARNpSEoi0pcQz0hmZUaACI9nKyUFBGhtOrSQHZQXTLraksSEXW05j8+eEAqe94K/UmyDMzc2dOXMmRry0CsYYY0wmwzfKU5PL5cuXL3dzc6udzT0opgfFLL2QMovZvULKLmHZJZRVwh4WU1YJZZcwWzk1tufc7aiRHTnbcM425KwkV1suwImcbcjZRuZsQ05KcrYhBwXnZEPyitty1lHCU6GJ8g1Mb6QCY9np3FKWpqe8UsozCNpS0hoor5RpDWSvII0N52ZLjeyokR3XyI7cbMnNjnOzJXd7ztOeGtmRux2nxF+3hNWbIMzIyDh+/PiSJUusXRGApzBnzpyMjIzqDcKsErpTwO4Wstt6ul3A7hbSvUKWXkgPipnGljzsuaYO5GHPeavIX82FuVMjO5mH/R8xUKbRVr/YyclOTm62luH810GtN5LWwHJK/vgpkFNKOSWUqmOnS+hBsfCwhLKKWVYJaWz++IngpeI8VeRlz3mp/tiNHvZcY/uae1tgffUmCInIyclp9OjR1q4FwFP497//XeXXGgS6pWc3dJSqYzf07GqO8k6x6VYBU8nJ15Fr6sj5OZKvI9fVg3xUsiYO5Kn643QlWFIrSa3kmjqIcxUHJyMSm85ZxZRRxB4UU0YxS9JSZpFwv4gelrC8Umpsz/momKedws+J93HgvFXk68h5q6iJQ/3+eQFUv4IQoAG7U8Cu5lNSHruqZTf0LFVHGUWsiQMXoKYWzlyAmuui4Z/zsPVXcyoctdWNI3K3I3c7jjRUYVgaBXpQzO7ohdv5hiyTIr2QXc6lOwXC/SK6V8gcleSj4nwduWaO5OvINXUgcdpLxcnq0rlleBwcUgC1jWeUpmNJWpaspWQtS9ayq1rmZMMFaShIw7Vz5UY0lwWoqZkjZ9nRQ68X1Gp8rVqHUkZNHDgvOwpxYipV2XZ3VgmlF7K7BexWAd0tYOey6W6BcLuAckqZl4rzc6Tmas5P/cdEczV5IyDrGAQhQI3TGig+h8Xnssu57FIOS9YyLxUXpKE2Gq6XFzcjSNZawznbWLuWUFVia7KDW9lwMwiUXshu6emmnt0qYL/fo5t64aaeckpZUweuuZpaOHEtnLgAJ2rhxAU44RSr1SAIAWpQkYn67+X1541tXbn2rlxnd+7VVrK2rpwDjjwJsJGRv5rzV1OZ062lPN0uYGl6StWxVB07eJ+l6uh2AXO341o4UYBFOrZw4nADZS3A4QhQg5QyWh4hG9BFiTNhYGYrp5bOXEtnsgxIntHdAnZDTMd8djqLUnXCDR1TK/9IxBZOXAsnaqXhWjnjOnE1w+4EqEFKGTV15JCC8JfkHPmpOT81veD9X38v9wr/TMftt+h6vnBdxxrbca2cqbWGa63hWjlzrTXkrcJfWdUhCJ/Jp59++vDhQ/Nsly5dxowZ84zrTExMVKvVvr6+VV7DwIED58yZ06dPn8cVOHDgQEREhI2NDRHt3r173bp127dvr/LmAKDm+DhwPg7Uw/O/cu5+EUvKozQ9S8xj228JaTq6X8T81VywC+fvRG00XLALF6RBw7GysJ+eybp163r06NGuXTtxtlrum160aFHHjh3feuutKq9Bq9UaDIYnFOjXr19mZqa7uzsRBQUFTZw4scrbAoDa563ivFVkeWZVa6BrWpasZdfy2Y7bbGG8cLuA+ai41hpqo+HauHDPIRofD3vlWQ0aNGj48OGWS7Zu3dq6devnnnuOiBITE5OSkkaPHq3X6/fs2ZOUlOTo6Dh06NBWrVqJhXme37ZtW0JCgkajGTFiRGFhYUpKSmlpqUqlatmyZa9evSzXvHfv3pMnT8pksg4dOgwdOpSITCbTpk2bUlNTW7VqNXbsWLn8v7qdHT16VK1Wh4SEEFFmZubRo0dHjx4dGxvLGNuwYYNarY6KipLJZGLTkIiMRuNPP/2UmpraunXrMWPGiGvbunVr165df/vtt1u3bvXv37979+41tCcBoMo0NhTemAtv/Gc0GgW6qWfJWpaspd/vsaUJwtV85q3innPh2miorSsXpOGCNJwtuqriMUzPThAE0yOMMSKyt7cfNGhQTk6OVqsdPHiwQqEgolOnTp04ccLPz89oNEZERFy5coWIeJ7v06fP2rVrmzRpUlJSsn///ids6Lvvvps7d66vr6+Pj8++ffuIiDE2cODAH3/80dvbe+3atWXymIh+/PHHX3/9VZy+cePGv/71r/KrvXDhwhdffCGubcCAAZs2bfL29l6zZs2IESPEAv/+97/HjRt3584dBweHQYMGnTlz5hn3GADUAqWMWjpzQ5vJ5rWXfd9LfmG4Qv+y8j/95ZMCOZWCi73NJh7iXTYaW28xjTrALzjPb04TkrTMKFi73tZQj1uEJoFG7OeL+YoHtq8Jr7eWjWpe9qfD+PHjzaNRf/HFFzNmzBg0aNDIkSOnTJnCcdyQIUPEfOrbt2/fvn3Nr/ruu+8+//zzn3/+OTs7Oz4+3nI868DAwI4dO06bNq3Mhk6fPj1s2LBXX33VvOT333+/du3ajRs3lErlpEmTmjVrdvz48b9ssQ0dOpTjuEmTJomnRk+fPi0u37dvX2pqampqqnltJ06c6NatGxENHz589uzZRHT//v3Y2NiwsLCn2GsAUDfIObG3KjfC748lRoGu57PEPJaYxzbfZPPPC3cKWYCaC3bhnnPh2rpSO1euuQSGcajHQaiQ0dz2MvHpLbWjrWsFfxA///xz+abYp59+GhwcrFAofv75Z3HJnTt3/va3v6WkpNjY2BQUFISHhxPRpUuXevXqVcmnOkyePHnIkCGxsbFRUVFTpkwJDAxMTEwMCwtTKpVEZG9vHxoampCQUOVTl4mJieHh4ea1dezYMSEhQQxC8eQqEfn4+KSmplZt/QBQ1yhlFOzCBbv8+c1WylOyliVp2ZVctuoqu5JL+QbW1pVr58q1d+PauXLPuXDqBndrYz0OQiLq7lFHf6ocOnSouLjYYDBcvny5c+fORDR37tzOnTvv3r2b47jPP/9cbIc5ODjk5ORUcp1hYWHp6enHjx/fsmVLp06drl27plKpiouLzQWKi4tVKpXlS+RyufnBVUVFRU9e/xPWVubSIwA0VLZyCnHjQtw4CvhjSV4pxeeyK7nsXBZbe01IymMe9lx7N66tC4np6K+u9yPG4Rph9Xvw4MGUKVPWr1+/YsWK8ePH5+fnE9HDhw8DAgI4jispKfnpp5/Ekv369YuNjb1//744W1paSkQajSY3N7f8arOzsxUKRc+ePb/66itnZ+c7d+5EREQcPXr07t27RJSSknLu3LkyzcFmzZpduHBBnN66dat5eYWbiIiIOHz4cHp6OhFdv379/Pnz6BcDAC621MuLeyNYtjpCfmaoIv9l5d4B8vEBnEC0IZX128s7bzB222maeYJfc024kM0M9fAqY/1uEdYFU6dOnTlzpjjdu3fvDRs2vPTSS6+++qp4G9+BAwdeffXVLVu2zJgx4/XXX9++ffuNGzfMXUa7du06d+7cDh06hIWF5eTkREVFvf/++xMmTBgxYkRsbOzw4cM//PBD84bmzJlz6dKlFi1a3Lx5MzQ0tGPHjgqFYv78+WFhYaGhoWfPnv3000/9/f0t6/byyy+vWLHi+eefLy0tbdOmjXn5rFmzIiIifH19ly9fbl4YHBz8/vvvd+7cOTQ09Ny5c4sWLWrevHmN7TYAqJfMFxpHP/p6yDdQfC67kM2OZrKvEoVUHWvtzHVw4zo04jq4ce1d68EocZzY0bE2LVy4UK/Xf/LJJ5Usr9fr1Wp1YmLi2LFjExISarRuTys3N9dk+vMqpa2traOjo06nc3Z2Fq/88Tyv0+k0Gg3HcZmZmTdv3mzdurVKpTKZTA4OfzwhTavVXrt2zc3NrUWLFuZVabVapVJpLiO6efNmZmamp6enZUTl5uampqYGBga6uLiIS/Ly8hwcHMSbIoqLixMSEry9vT08PIqKipycnMQyRqOxoKDA0dFREITi4mKNRmO5tpYtW5qX6HQ6lUol9n0tKSkRBKHMCVh4grZt227atEm8l+YZiQfCs68HqoznefHWJmtXpE4r4elyLruYwy5ks4s5LDGP+TpyHdy4jo24Dm5cRzfOxfaZ1l8TB0JlW4SZmZlxcXGJiYlNmzZ9/fXXyxe4d+/esmXLzLMjR44Ur401bK6uruUXmgOJiORyuXnW09PT09NTnLa1/fNvQaPRiH1nLJlzyFLz5s3Lt9JcXV3LdOO0rIC9vb35gzCnIBEplUpzMcvKlF+b5avs7OzK1woAwMxOTmHuXJj7H5cNTQJdy2fns1mSlv1fgnDyAbORU2gjTvwX7ML514FeqZUNwu3bt+/atctgMBw7dqzCIMzMzFy7du3//u//irP46QoAAIr/7pjKiFLz2cUcdiGHLU8ULuYwGUdiY1FsNVolFysbhDNmzJgxY8Y333xj7uhRnlqtLn/3GwAAgIgjCnTmAp25MY/6M9wtZBez2cUc+j6VzT4l6I0s5NF51A5uXGsNJ6/5ZKzOzjL5+fkzZ85UqVSDBg0qMzZYg7dq1aq0tLRPP/20Njd67dq1qKioGzduVHkNRqPxyJEjL7zwgji7evXq48ePr1+//llqderUqSVLlmzZsoWI3nnnnYKCAvN/9evXzzxgTXmurq5JSUnms8dWd+bMmePHj1+/fn3MmDGRkZHm5RcuXFiyZIlWqx0yZMi0adM4jhMEoVevXhs3bmzWrJkVKwxQHzV14Jo6cEMeHTrZJSReX9x9h/37onC/kLV15Tq4caGNuE7uXLCmRlKx2oJQrVZPnTo1KCjo9u3bw4cPX7hw4fTp0yssmZKScvDgwVOnTomzHMctW7bsCQ9bKCws5DiuqKio9vv1VFJxcfG8efOIaOzYsR06dKi17Xp6en788cfPsob8/Px+/fqZ7zWMiIgIDAx8xlrNmzdvwYIF4vT69eunTp3asmVLcbZp06ZPeGFd+4i//PJLOzu7I0eOBAcHm4MwMzPzhRdemD9/fnBw8KxZs3ienzFjhkwme+WVVz788MOYmJgyK2GMFRUVWf4aqDLxQHj29UCViZ1lBKEe3h9Qf9gRdXWmrs4k3shYYOIu53HxeVxcumzJZe52AQU7K3ZEFjopK/tdoVKp/nLQkmoLwpYtWy5evNg8PW/evMcFYZMmTbp16zZlyhRx1tbWtmXLlmKnxAoxxhwdHVUqVZ39Fti+fXu7du06d+68fv16cxD+8MMPISEhcXFxt2/fHjBggNjqSk9P/+233zp16vT999+7u7u/9tprYo+VLVu2tGrV6syZM5cvX/700085jouJiblx40bbtm1feuklhUKxb9++oqKiYcOGEdGDBw82bNgwa9YsQRDM37DLly8fNGjQli1bMjMzJ0+eHBwcvG7duqtXrw4aNKh3795EVFhY+Msvv8THx9vZ2Q0ZMkTsQbNx40bG2KJFi4jolVdeMRgM5nvq9Xp9TEzMnTt3OnToYB5Gbvny5YMHD966dWtmZubw4cPFcWcsJSUl3bx50/J8QFRUVM+ePS3L7Nu3T61Wd+3alYju3bu3d+9ey3HjROfPn9+9ezfP8yNGjBDHtblw4cK9e/fUanVsbGx0dHSnTp3KfxCCIHz22WcTJ06MiYnR6/XR0dFt27Z96o/zkU2bNhGR5cB4RBQTExMREfH2228T0aJFi+bOnTtjxgwiGjVq1Jw5c3Jzc8v0n+I4TqVSOTo6VrkaZuKB8OzrgSrjeV6pVKLXaG1yJPLUUL9HfQQLTXQ5o8DLxbF6w6BGbqgPCgp6+PDh437d29vb+/n59XkkIiLiCSlYL8TExEycOHHy5Mk//PCDeFM8EX377bdDhw7V6XStWrV6+eWXxbHWbt68OXfu3Dlz5oSEhKSkpDz//PPi85JiYmJGjhyZmpoaFBRkMpl69ux5+PDhkJCQH3/8UTyX2KZNm7/97W/Hjh0TBGHixIl6vd7e3j4zM3P+/Pni5j7++OPx48erVConJ6devXq99tprGRkZ/v7+I0aMuHTpEhFdvXr10qVLISEhHh4ew4cPj4uLo0d9mlxcXFxcXORy+bFjxzZs2EBEpaWlXbp0uXDhQrt27b755pvJkyebtzJ27FiFQuHp6dm/f/+rV6+W2RV79uzp2bOn5U+WoqIi3SNGo5GIduzYIW6diG7fvi0O+W3p559/HjdunKenp7e399ChQ48cOUJEJ06cmDVr1ldffdWmTRvz4zLKEARh3rx5EydOdHNzs7e3f/7557OyssqUuXTp0uZy9u7dW8nP+vz58+b479atW0pKik6nE/dkcHCw+X0BQE1wUNBzGlbtTaJnTaB169ZFRUV5enqmp6d7e3vLZDKe51etWhUWFlbjDThByFoxl5WW1OxWLDj2HqXq0LPMwtu3b588eXLr1q0ajcbX13fXrl2jRo0S/2vIkCHvvfceEbm6ui5YsGDs2LFEpNPpNm7c6OXlFR0d3blz523bto0fP56IBgwYIF5i/OWXX3Q63aZNm2Qy2YgRI3x9fc+cORMWFrZ69ero6OjRo0eXlpaa88/S22+/LW5i165d7u7uYplLly795z//CQkJCQ0NDQ0NJSKtVms0GtevXx8ZGTls2LDXX3+9fBenTZs2qVQq8WLhiy++6Ovr+89//lMcB+DNN98UK3zhwoVff/21devWli9MTEy0vBuSiMTgFKe/+eabyjy4+J133tmyZUuXLl2IyMnJ6bPPPuvRowcR2djYbNmy5S/He1uwYIFYPi4u7tChQ6NHj7b836SkJPMTOcw8PDwGDhz4lxUjogcPHpjbfOLjJzMzM8U7TAIDAxMSEkaOHFmZ9QBA3VHZINyzZ8/EiRNLS0sNBoOrq+uwYcPWrVtHRNOnT//99989PT2//vrrmJgYf3//u3fvuri4mAebrkEymWbkTGYy1viGHlG4eZVfuH79+h49euTm5ubm5vbv33/dunXmIDTfwBceHn7t2jXxUlyTJk28vP5YT1hYWFJSkjjdsWNHcSI5Oblz587iqUgHB4f27dsnJSWFhYW9+OKLmzdvXrZs2Y0bNypsQ5vv2m7cuLHltDiaWkZGxuTJk1NTU11cXLRarZ+f3xPeaXJysvnWRldX11atWiUnJ4tBaH4KsZeXV3Z2dpkXFhUV2dvbWy7ZtWtXmVOjT5aVlZWeni5eeCOiwsJC8yWZkJCQyox6aj4d6uXlVX4o1wkTJkyYMKHy9SnD0dHRfPZYnDDfKaRSqarlWiAA1LLKBmG/fv0seyeaz02Zfw4vXLhw5syZ9+/fb9SokZ+fXyWfqPCMlF5+tbCVJxAEYf369Y6OjuaGTmJi4r1793x8fMhinOuCggJ7e3vxS7ywsND88sLCQnP/EfMudXR0tCwjjv9CRLdu3frtt99atGixefNm8aFIZZj3OcdxltPixL/+9a927dr99ttvRLR27doffvjhCe/L0dHx4cOH5etQZivlX+ju7l7hQKmWFAqFeTgey3cqcnBwkMlkW7duNd/vb97i486IlmEOS46rYOCkd999d+nSpWUWtmjRwvyL5MmaNm168+ZNcTotLc3Ozq5x48bibE5OjtjmBoD6pbJxJQ5EYmYe+svV1dXcOmnSpElYWJi/v3/tpGBdcPDgwcLCwosXL557pE+fPuJlNiL64YcfxG/87777TuyxQkQPHz4UT81lZWXt2bPHvNysV69eBw4cuHPnDhFduHAhKSmpW7duJpMpOjr673//+969excvXnzy5MmnrWpubq6HhwcRlZaWfvfdd+JCZ2dnjuPKN+x69+69e/duMQsPHz788OHDSn7Fh4eHx8fHP7lM8+bNz549S0SMMbFDiiWVShUZGRkTEyP+pWk0mgqbWZmZmWvWrKlMlcpYvHhxSTmJiYmVfPnYsWO3bdsmhv2aNWtGjRplzt34+Hg8qRGgPpJKYtWQmJiY8ePHW56ojI6OjomJERsiXl5eHTt27N69++bNmz///HOxQEBAwJIlS/r06dO2bdtp06aV/+ps167dggULOnfuHBkZOWDAgJUrV3p7e//jH/9wdnaePXu2r6/v119/PW7cuL9seJUxc+bMTz/9tH///qGhoeZx2pRK5dtvv922bduAgIDk5GRz4e7du8+aNatdu3aRkZFjxoxZt26d5bBtTzBkyJBz587p9XrzkhdffFHziHgxctKkSSkpKSEhISEhIRWOJLd27dpDhw4FBwf37du3RYsWq1atKl8mMTHx3Xfffao9IBKby2VU2Lp9/fXXXV1dDx8+PHfuXFdX19jYWCLq3bt3VFRUmzZtOnTosG/fvo8++kgsfOvWLZ1OJ3aFBYB6htW6Tz755B//+Efly+t0OsZYQkJCcHBwjVWqivLz80tKSiyXmEym3NxcQRAiIiJ27NiRm5ubmJhoMpnE/xVvShMEISkpSexYK9Lr9aWlpZbrKSgoSExMLC4uFmfz8vIMBoP5f/Py8sT7mcR77xhjWq3WvBXLtRUVFZnL6HS6+Ph4nU5nMBjEvWomjh5uNBot345Op0tMTLSsmOVWLNdsaebMmStXrhSnCwsLCyyYV24wGBISErKzs41GY35+vrmwIAjm9WRmZl6+fDkvL0+cLSkpKSgoMP/vxx9/PH/+/PJbF3e+eR+W+XSeSkFBQa4Fy/2Qnp6ekJBg3hWMsblz53722WflV/Lcc89duXKlynWwVOYjg9pnMpkKCwutXQupq4kDoX7ft2B1lgNSiyxH2aZHdyaUKcNxXFBQkOWS8veHOTg4WD44qUzLyTxr7pni7Oxc4dosu66o1WpzVxfxSfSW9RQnLFu3arXasg5ltlKmU4zZggULvv32W3H6cXdcKZXK4OBgcdq8D8sU9vDwEM/limxtbS0HB+/SpUuFtxJa7u0yz+54Wg4ODo9bg4+Pj3gZWCQIAsdxb7zxxrNsDgCsBUFYUyZMmFB+lJamTZtOnTrVKvWpNe7u7u+//35Nb8U8LFxdIJPJFi5caO1aAEAVIQhrSoUD6/j5+YmDkgAAQB2BzjIAACBpCEIAAJA0BCEAAEgaghAAACSt3nSWUSgUaWlpFfaYh1rAGDPfdW4QqIQnGZGtnJT4KfVEjxsYFgDqjnpziLZq1erUqVPic3yglvE8bzKZBIXtjlvCxlTmp6bZrWVtXevo4yHrFHt7+zIP6ACAuqbeBCFZPPcAallOkWlZIr/yuqyXl2xfH1l7RCAANCD1KQih9umM9H8JwvJE1t+bO/KiopUzIhAAGhoEIVSs0ETLE4XPr/CRXrIjUVwze5O9faWeggQAUL8gCKGsQhOtuSosusw/7yE7NljRypkzmUy4OAsADRWCEP5UZKLVV4XFl4XuHtzBKEVrDU6EAkDDhyAEIiKDQKuuCp9c4p/3kO0bKA92QQQCgFQgCKVOYLTphvDBeSFIQ3sHKNAjFACkBkEoafvvsb+f4W3ktLaHPNILEQgAUoQglKjTD9k/zvKZxfSvUNmo5jJkIABIFoJQcpK1bMF54dRD9n4H2dRWMjkyEACkDUEoIfcK2fvnhb13hXnt5Rt7yW3l1q4QAEAdgCCUhEITLY7nv04SprWWXR+jdFJau0IAAHUGgrCBExhtuyW8e1oIc+fODlM0V+NMKADAf0EQNmQH77M5p3lbOf0QKe/ugQgEAKgAgrBhupbPPjgnnM5iH4XKJgaiUygAwGMhCBuanFKaf57fkibMay//PlJugwfnAgA8Eb4mGw6TQF8nCW22GmVEyaOVs9vKkIIAAH8JLcIG4lAGe/Mk72pLvw9UtMMwaQAAlYYgrPfSC9l7Z4W4DPa/nWSTAtEGBAB4OvjerMeKTfSvC0LIdlMLZ+76aAVSEACgCtAirK9232FvnuQ7uXMXhit8HXEuFACgihCE9c+9QvaPs8KpLLaiu7x/E0QgAMAzwcm0+sQo0NIEoeMOk78TXRmhQAoCADw7tAjrjUMZbOZx3t+JTg9R+GGkNACAaoIgrAfuF7G3Twnns9lXXeVRTRGBAADVCadG6zSB0YokIWS7qbUzJYxUIAUBAKodWoR115Vc9voxXi6jQy8q2mgQgQAANQJBWBcVm2jRZX5lsvBee/kbwTKMmQ0AUHMQhHVOXAabfoxv78pdGaFsbG/t2gAANHQIwjrkQTG9dYo/l8VWdJf39UEzEACgNqCzTF2xIUVov93Y3JEuj1AgBQEAag1ahNZ3v4jNOC7c1LPd/RWdGiECAQBqFVqE1sSIVl0VQrabQtzo7DCkIACAFaBFaDU3dOy1o507cMQAABqlSURBVHypQIdfVATh7ggAACtBi9AKTAItjBe67jSNbC47ihQEALAqtAhrW2Iee+UI72ZL54bh8UkAANaHFmHtERgtTRAi95hebSX7zwCkIABAnYAWYS25oWOvHOHt5GgIAgDULWgR1jixa2iXnaZBTWW/oiEIAFDHoEVYs9L0bMoR3iTQySGKFk6IQACAOgctwpryR0Mw1jSwiezIi0hBAIA6Ci3CGnFTzyYf5ono5BBFACIQAKAOQ4uw+sVcF8JjTUObyeIGIQUBAOo6tAirU3YJTTvGp+SzfQMVIW6IQACAegAtwmqz7x7r8IupqQOdG4YUBACoN9AirAbFJpp3lt95h33fS97TCxEIAFCfIAif1ZksNvEQ396VuzBM4WJr7doAAMBTQhBWnUmgJVeELxL4/+siHx+Ak8wAAPUSgrCKUvJZ9CHe3Y7iRyg97a1dGwAAqCq0Y6piQ4rQbZcpOkC2u78CKQgAUK+hRfh08g008wR/MZvtj1K0d0W/GACAeg8twqdw6iEL3WFyUNDZYUhBAIAGAi3CSjEJ9PEl/ttkYXWE4kVfRCAAQMOBIPxrt/RsfBzvYkuXRig9cEUQAKBhwanRv7DlphC+0zTWX7anvwIpCADQ8KBF+FglPM09w++8w2L7Kro0xulQAICGCUFYsWQtG3eQb+nMXRyu0NhYuzYAAFBjcGq0AhtShB67TVNayra8IEcKAgA0bGgR/pd8A712lE/RsWODFa2ccToUAKDhQ4vwT+ezWegOk4c9nRyCFAQAkAq0CP+w6qrw/jl+WTf5WH/8OAAAkBAEIemMNO0on6JjJ4coApzQEAQAkBapt34uZLOOv5icbejEYKQgAIAUSbpFiNOhAAAg0SDUGmjqEf5uITs9VNFcjYYgAIB0SbEldDGHddph8nGgY4ORggAAUie5FuGGFOHdM/zSLvJxAVL8EQAAAGVIKAhLeHrjBH/sATsYpQh2QUMQAACIpHNqNCWfhceaink6NwwpCAAAf5JEEMbeFiJ2m6a0lH3fS+4goTYwAAD8tQYeC0aB3j3D77rN/tNf0bERGoIAAFBWQw7C+0VszAHe1ZY7N0zhYmvt2gAAQJ3UYE+NHs1knXfwz3tyO/rKkYIAAPA4DbNFuOqqsOA8v76non8TnA4FAIAnaWhBWGCkqUf5VB07MQQ3ywMAwF9rUKdGr+ezrjtNtjI69iJSEAAAKqXhBOHWm8Lzu0xvt5Vt6CW3b2gNXQAAqCkNITF4Rv88x29OY78OwD0SAADwdOp9EOaW0viDplKBTg1RNLa3dm0AAKC+qd+nRuNzWecdJj81t38gUhAAAKqiHrcIN90Q3jrFL+sqH4PH6gIAQFXVyyA0CfT+eX7bTbZ/oKKtKy4KAgBA1dW/IHxYTGMPmlQKOjMUA6cBAMCzquxJxSNHjixYsGDcuHGbN29+XJmffvqpR48e3bt3X716dTVVr6zz2Sws1vS8J7erH1IQAACqQWVbhHv27DEYDKmpqUlJSRUWOHbs2IwZM3766SeVSjV27NjGjRsPHTq0+upJ9Oii4Ipu8pHNcVEQAACqR2WDcNGiRUQ0YcKExxVYsWLF9OnT+/XrR0TvvvvuihUrqjEITQL9/Qy/+y4eLg8AANWs2ppW8fHxYWFh4nRYWFh8fHx1rTnXwA38zZSsZaeHIAUBAKCaVVtnmaysLI1GI067uLhkZWUJgiCTVRC0iYmJu3fv3rRpkzhra2u7ZcuW5s2bP27Nw+PkPT2NH7bn5UYqMFZXfeEpmEwmo9HI87y1KyJphYWFHIcfgtbE83xpaakgCNauiKQ97YGgUqkqTCJL1RaETk5ORUVF4nRBQYGTk9Pjtt2qVSsnJ6d33nlHnOU4zs/P7wlvbGfvgiaujtVVT6gCMQjt7TFmgTUxxhwdcSBYE8/zSqVSpVJZuyKSVhMHQrUFoZ+fX0pKijidkpLi5+f32E0qFBqNxt/fv5JrdlayZ68eAABAhZ7pGuHdu3c//PBDcTo6Onrt2rVFRUVGo/Gbb755QrcaAACAuqOyQfjee++5urr++uuvX331laur69q1a4no/v37ixcvFgtMnDixffv2vr6+TZo0cXV1nTVrVk1VGQAAoPpwjFXniUetVsvzvJub2xPKLFy4UK/Xf/LJJ5Vcp16vV6vV1VE7qCJcI6wLcCBYndhZBtcIrasmDoRqHmLN3HEUAACgXsAQLQAAIGkIQgAAkDQEIQAASBqCEAAAJA1BCAAAkoYgBAAASUMQAgCApCEIAQBA0hCEAAAgaQhCAACQNAQhAABIGoIQAAAkDUEIAACShiAEAABJQxACAICkIQgBAEDSEIQAACBpCEIAAJA0BCEAAEgaghAAACQNQQgAAJKGIAQAAElDEAIAgKQhCAEAQNIQhAAAIGkIQgAAkDQEIQAASBqCEAAAJA1BCAAAkoYgBAAASUMQAgCApCEIAQBA0hCEAAAgaQhCAACQNAQhAABIGoIQAAAkDUEIAACShiAEAABJQxACAICkIQgBAEDSEIQAACBpCEIAAJA0BCEAAEgaghAAACQNQQgAAJKGIAQAAElDEAIAgKQhCAEAQNIQhAAAIGkIQgAAkDQEIQAASBqCEAAAJA1BCAAAkoYgBAAASUMQAgCApCEIAQBA0hCEAAAgaQhCAACQNAQhAABIGoIQAAAkDUEIAACShiAEAABJQxACAICkIQgBAEDSEIQAACBpCEIAAJA0BCEAAEgaghAAACQNQQgAAJKGIAQAAElDEAIAgKQhCAEAQNIQhAAAIGkIQgAAkDQEIQAASBqCEAAAJA1BCAAAkoYgBAAASUMQAgCApCEIAQBA0hCEAAAgaQhCAACQNAQhAABIGoIQAAAkDUEIAACShiAEAABJQxACAICkIQgBAEDSEIQAACBpCEIAAJA0BCEAAEgaghAAACQNQQgAAJKGIAQAAEmrbBAyxj766CM/Pz9/f//FixeXL5CcnNzJwo4dO6q1ngAAADVCUclyP/300/r16/fv328ymfr169e6deshQ4ZYFigqKsrIyNi5c6c426xZs2quKQAAQA2obBCuXr36zTffbNGiBRHNnDlz9erVZYKQiGxtbUNDQ6u5ggAAADWpsqdGk5OTQ0JCxOmQkJDk5OTyZR48eNCxY8eIiIjFixcbDIZqqyMAAECNqWyLMCcnx8nJSZx2dnbOysoqU8DT03Pjxo1BQUG3bt2aPXt2RkbGl19+WeGqLl++vGPHjpUrV4qzHMfFxcX5+/s/btMFBQWVrCTUEJPJZDQaTSaTtSsiaTgQrI7neYPBwPO8tSsiaU97IKhUKrlc/uQylQ1CFxcXvV4vTut0ukaNGpUp4OPjM2LECCIKCgpSKpXjxo17XBC2a9fOy8vrgw8+EGeVSqWjo+OTt65WqytZT6gJYhDa29tbuyJShwPBunieLy0tValU1q6I1FX7gVDZU6OBgYFJSUnidFJSknix8HEcHR0NBgNj7HEF7OzsXB75yxQEAACoOZUNwsmTJy9fvjwnJ+fhw4crV66cPHmyuPz111+/fv06ER0/fjwtLY0xdvfu3ffeey8qKorjuBqqNAAAQHWpbBC+8sorkZGRAQEBrVq1Gjp06Lhx48TlR48e1Wq1RHTlypWePXsqlcpOnTr5+/uvWLGipqoMAABQfbgnnMCsIQsXLtTr9Z988kkly+v1elwasS5cI6wLcCBYHa4R1gU1cSBgiDUAAJA0BCEAAEgaghAAACQNQQgAAJKGIAQAAElDEAIAgKQhCAEAQNIQhAAAIGkIQgAAkDQEIQAASBqCEAAAJA1BCAAAkoYgBAAASUMQAgCApCEIAQBA0hCEAAAgaQhCAACQNAQhAABIGoIQAAAkDUEIAACShiAEAABJQxACAICkIQgBAEDSEIQAACBpCEIAAJA0BCEAAEgaghAAACQNQQgAAJKGIAQAAElDEAIAgKQhCAEAQNIQhAAAIGkIQgAAkDQEIQAASBqCEAAAJA1BCAAAkoYgBAAASUMQAgCApCEIAQBA0hCEAAAgaQhCAACQNAQhAABIGoIQAAAkDUEIAACShiAEAABJQxACAICkIQgBAEDSEIQAACBpCEIAAJA0BCEAAEgaghAAACQNQQgAAJKGIAQAAElDEAIAgKQhCAEAQNIQhAAAIGkIQgAAkDQEIQAASBqCEAAAJA1BCAAAkoYgBAAASUMQAgCApCEIAQBA0hCEAAAgaQhCAACQNAQhAABIGoIQAAAkDUEIAACShiAEAABJQxACAICkIQgBAEDSEIQAACBpCEIAAJA0BCEAAEgaghAAACQNQQgAAJKGIAQAAElDEAIAgKQhCAEAQNIQhAAAIGkIQgAAkDQEIQAASBqCEAAAJA1BCAAAkoYgBAAASUMQAgCApCEIAQBA0hCEAAAgaQhCAACQNAQhAABIGoIQAAAkDUEIAACShiAEAABJQxACAICkPV0QGo3GJxcQBIHn+WeoDwAAQK2qbBBmZmb27t3bzc3N3d39u+++K1+AMTZ79myNRuPi4vLqq6+aTKZqrScAAECNqGwQzpkzx8/PLy8v77fffps1a9bt27fLFNi8efOuXbvS0tLu379/8eLFVatWVXdVAQAAql+lgrCgoGDbtm3z5s2Ty+UdO3bs27fv999/X6bM+vXrp02b1qhRI0dHxzfeeGP9+vXVX1kAAIDqpqhMoTt37vA8HxgYKM62adMmNTW1TJnU1NRZs2Y9oYCZIAglJSV5eXniLMdxGo3mSZs3GoSigsrUE2qIYDIxk0lguPprTay4UJBz1q6FpAk8zwwGgQRrV0TSWGkxqdXVu85KBaFWq3VwcOC4Pw5CtVqdm5tbvoyjo6O5gFarFQRBJqugxZmYmPjLL7/ExMSIsxzHHTp0yN/f/3Fb1637UJdzvzL1BGjAGGN6DkFofVprV0DqZApu9jLOVlXJ4iqVqsIkslSpIGzUqJFerzcHW15enoeHR/ky+fn54rRWq3V3d3/cttu2bevn5/fJJ59UZtNExF7/RF3d+Q9PxWQyGY1Ge3t7a1dE0vR6PQ4E6+J5vrS0VKWq7Fcw1ISaOBAqdY2wadOmKpXq8uXL4uylS5dat25dpkybNm0uXrz4hAIAAAB1UKWC0N7efuLEiR988EFmZub27dtPnjz50ksvEVFycvKAAQPEMtOmTfvmm28uXbqUkpKyZMmSadOm1WCtAQAAqkmlTo0S0aJFi95+++2wsDBPT89t27Y1btyYiARBKC0tFQv079//n//85/jx400m05QpUyZMmFBTVQYAAKg+lb2PUK1Wr1mz5s6dO2fOnOnTp4+4MDg4OC4uzlxm1qxZycnJKSkp7733Hld9V/W/+OIL3J5vXfHx8Xv37rV2LaTuq6++KikpsXYtJC0pKSk2NtbatZC6FStWFBRU830E9WCs0aVLl+p0OmvXQtJOnTr166+/WrsWUrdy5crs7Gxr10LSzp07t2fPHmvXQurWrFlz/34130dQD4IQAACg5iAIAQBA0hCEAAAgaRxjrJY3+corr8TGxrq4uFSy/O3bt5s2bfqXQwNAzdHr9aWlpY0aNbJ2RSTt7t273t7ecrnc2hWRroKCguLiYnd3d2tXRNLS09M9PT0Visre8jBhwoSPPvroyWWsEITFxcXp6emVP55LS0ttbW1rtErwZOJjJpVKpbUrImk4EKwOB0Jd8LQHgpeX11+OimWFIAQAAKg7cL4RAAAkDUEIAACShiAEAABJQxACAICkVbYHas1JT0+PiYnR6XQjRozo2rVr+QIGg2Ht2rUpKSkhISEvvfSS+T6KxMTEH3/8kYheeumloKCgWq10g3Pw4ME9e/Y0atRo6tSp4ojqljIyMnbv3n3t2jU3N7cJEyY0a9ZMXP7zzz+bH0Lp4+MzaNCgWq10w5KRkRETE5OTkzNs2LCIiIjyBVatWmWeDgoKMpe5du3axo0beZ6Pjo5+7rnnaqm6DdTRo0fFm7umTJni5eVV5n8PHDhw48YN86yDg0N0dDQRbdu2LScnR1zo4eExdOjQWqtwA1NSUhIfH5+YmOjh4fG475O8vLzVq1dnZmb269fP/PgjIjp8+PDOnTvd3NymTp1a/om5T2blFmFOTk5YWNjDhw+9vLwGDRq0b9++8mWio6N//vnnwMDApUuXvvXWW+LCxMTEbt262draKpXKrl27Xr16tXYr3qBs3rx5/PjxzZo1S01N7dq1a2FhYZkCU6dOPXz4sI+Pz507d4KDg+Pj48Xl8+fPP3bsWFpaWlpaWkZGRq1XvOHQ6XTh4eHiLbPDhw/fuXNn+TLTp09PTEwU97Z50NGUlJTw8HCO4xwdHbt3727+aKAKdu3aNWzYsCZNmqSnp4eHh5t/5Jk9ePAg7ZGVK1d+99134vKPP/44Li5OXH7v3r1ar3jDsWjRokmTJn355ZdLly6tsIDRaHz++ecvXbrk7+//2muvrV27Vlz+yy+/jBo1ytfX99atW+Hh4Xq9/uk2zKxq8eLFAwYMEKeXLVsWGRlZpsDVq1ft7e21Wi1j7ObNm3Z2dg8fPmSMvfrqq2+++aZYZtasWdOnT6/FWjc07du337hxozgdHh6+Zs2aMgWKi4vN0+PGjXvrrbfE6ZYtW548ebJ2KtmwLV++vEePHuL0mjVrwsPDy5fhOC47O7vMwjfeeOO1114Tp//+979PmjSpRuvZsHXt2vXbb78VpyMjI5ctW/a4koIgBAQE/PTTT+JsSEjIgQMHaqOKDR3P84yxr776qm/fvhUW2Lx5c5s2bcRiO3fuDAgIEKc7d+68bt06sUxERMTKlSufartWbhEeOXKkb9++4nTfvn2PHTsmCEKZAp07d3Z2diYiPz+/Zs2anT59mogOHz5s+cLDhw/XbsUbjvz8/Pj4+CfvTDs7O/N0SUmJWq02z27btu2LL744cOBALVS1ATty5Ei/fv3E6b59+545c6bCJy6tWbNm6dKl586ds3whDoRqYTAYTp06VcmdefDgwby8PMtToDt37vziiy8qPKcFlfeXI4gdOXKkT58+YrE+ffqkpaWlp6cXFRWdPXvW/HzAKhwIVg7CjIwM83hFjRs3NhqNWVlZlgUyMzMtBzRq3Lix+ACOMi/Eebkqy8jIkMlk5uHTPDw8nvCIk99///3w4cPTp08XZzt27EhE9+7dmzRp0ssvv1wLtW2oyvw9M8bK/0lHRkbm5+dfv369b9++H3/8cYUvzMzMZBgio0rEXWe+QO7h4fGEb5V169ZFR0ebfyC2a9dOLpdnZGS89tprY8aMqY3qSpXlH7y9vb1arc7IyBA/KcvP7mmf02TlzjIKhcL80F1xwsbGpkwBnufNs0ajUSxQ5oVlXgWVp1QqxYGjxEHvjEbj44YvunTp0sSJE7///ntvb29xyaZNm8SJ2bNnBwYG/s///E9oaGjtVLuB+csDgYjMze5JkyZ179595syZLi4uZV6oUCiq8ZnYkiKOXWnemeavmvLy8/N37Nhx/Phx8xLzxcJ33303MDDw6NGjFXZ3gmdn+QdPjz4mcdA7k8kkfnc94UvscazcIvTx8TFH97179+zt7TUaTZkClhef7927J34Ll3mh+asZnpaXlxfHcZY7s3xnOSK6fPnywIEDv/nmm6ioqPL/6+Pj4+fnd/PmzZqta8Nl+fcsjsRbvu+uWefOnWUy2Z07d6jcgeDj41MLtW2QPDw8FAqF+dvmcQcCEX3//fdBQUEhISHl/6tx48aBgYE4EGqO5R98bm5ucXGxt7e3p6enTCarzGf3OFYOwsGDB//yyy9im2/Lli2DBw8Wf8+ePXtWfLf9+/e/cuVKWloaEZ0+fbqgoED8qTVkyJAtW7aIKxFfaLX3UM+pVKoXXnhB3JmlpaW7du0aMmQIERUWFh48eFD8aK5evRoVFfXll18OGzbM/EKDwWC+oJuUlJSWltamTRtrvIOGYPDgwTt27DAajUS0devWgQMHij9yz58/f/fuXSKyvGT466+/yuXygIAA8YU4EKqFXC6PiooSd6bRaNyxY4d4IJSUlBw8eFD8aETr1q2bMmWKedZgMJjPWqWmpiYnJwcHB9du3Ru+uLg4nU5HRIMHD/7Pf/4j9mzfunVrWFiYh4eHjY3NgAEDtm7dSkQGgyE2Nlb87J5C1fv3VIfi4uIuXbp079593Lhx7u7uV65cEZe3b9/e3O1n/vz5vr6+U6ZM8fT0/Prrr8WFGRkZzZs3f/HFFwcNGhQQEPDgwQPrvIEG4cSJE25ubi+99FKnTp369u1rMpkYYwkJCUSk0+kYY127dnVycgp95J133mGMnTp1qlmzZqNHjx4xYoSTk9MHH3xg5bdRnxkMhh49eoSHh0dHRzdq1OjcuXPi8q5duy5ZsoQxtnHjxqCgoAkTJkRFRanV6rVr14oFsrKyWrZs2b9//6FDhzZr1iw9Pd1q76H+O3/+vHinbJcuXXr06FFaWsoYE28cFK8gMsbi4+Pt7Oxyc3PNr7p8+XKTJk1Gjhw5atQoZ2dn8eiAqtm3b19oaGjTpk3FL5z3339fXE5EJ06cYIwJgjBs2LB27dpNmjTJzc1t//79YoGzZ8+6ublFR0eHh4dHRkYaDIan2q71nz5hMBji4uLy8/NfeOEFNzc3cWFiYmLjxo3NF0XPnz9//fr19u3bW7Y5CgoK9u/fz3Fcnz59HBwcrFD1BiQzM/Pw4cNubm6RkZHixcLi4uIrV6506tRJJpMlJycXFRWZC2s0moCAAEEQEhMTr169qlAoQkJCmjdvbr3qNwQmkykuLi4vL69Xr17m86LJyckuLi6enp4mk+nChQs3btwQvyA8PT3NLywqKtq/fz/P83369LHs0AtVkJWVFRcXp9FoevfuLV41LC0tjY+P79ixoziblZWVnZ1tOYIHYywpKSk5OVkmk7Vv315sqUPV5OXlief/RK6uruIXy9mzZ4OCghwdHYlIEITDhw8/ePAgIiLC8lrAgwcPDh065OrqGhkZWfmnFYqsH4QAAABWhLFGAQBA0hCEAAAgaQhCAACQNAQhAABIGoIQAAAkDUEIAACShiAEAABJQxACAICkIQgBAEDSEIQAACBpCEIAAJC0/wcKAaSLfXKRdQAAAABJRU5ErkJggg==",
"image/svg+xml": [
"\n",
"\n"
],
"text/html": [
""
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"using Plots, LaTeXStrings\n",
"u0, T, n = 1, 1, 10\n",
"mesh = 0:T/n:T\n",
"f(t, u) = 2*(1-t*u)/(t^2 + 1)\n",
"u_exact = t -> (2*t+1)/(t^2 + 1)\n",
"\n",
"# YOUR ANSWER HERE\n",
"u = zeros( n+1 ) # (change this)\n",
"\n",
"plot( u_exact, 0, 1, \n",
" label=\"Exact solution\" )\n",
"plot!( mesh, u, \n",
" label=\"Approximation (Euler, n = $n)\" )"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "2d02cadc",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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5ytXrly5ciURdejQYe7cuT179vSzVQ8//PDkyZO//PLLxMREftbwao0notWrVwtCxWmh8PDwyoVVUo8mOf5EJXetVisRRUVFVajG89JisSh1KlyJykVFRWVnZ/vTEoAbgSAEqLj7VvB99NXwK1BCQkIuX75c5QchroNer582bdq0adOys7P5wG79+vX9+vU7fPiw+tOB1QgKCho5cuQXX3xhMpl69erVrFmzKqvxucp169apx6y1jneRMkBU8Ktg+EQxb0l+fn7lp1d+IsDNgHOEAMQ/9ldht+t0OvkM59WEhoYmJycXFRXxKb7alZSU9MQTT6xdu/bpp58uKytbt26d/88dP368JEl2u73yt8wo+HRl5e9Oq4B/fvG6v+3zjjvuIKLK89L8Uh3+aEhISEJCwqVLl3JyctR1MjIyysrKru91AWoEQQhAfNi0fv16SfU9ZB988ME1d8Q8aV5//fUKs6B0rdFklRwOh9PprFDIP13ncDj8X06PHj1+/vnnTZs2VflBQG7ChAmMsffff7/yqMvj8dhsNn6bn7c7e/as/6+uNmLECCL65JNP+Cwol56evnbt2sDAwAEDBvCS4cOHE9GcOXPUz509e/b1vShATWFqFOq/s2fPTp48uXL5gAED+Gfh27dv37Zt22PHjj3yyCNPP/20x+NZvXr1kiVL4uLiLly4UM2Sp02btmrVqlWrVt17773PPPNM69atnU7n6dOnN27cuHbt2prO7GVnZ/fq1evxxx/v2bNns2bNRFHcvn377NmzTSbTkCFD/F8OY0z92cQqde7c+YUXXpg9e3bnzp1ffPHFjh07hoWFZWdn792798svv1y2bBn/HEXz5s0bNGiwfv36KVOmtGrVymAw9OjRo23btn62pEePHiNGjFixYsX999//9ttvJyYm7t+//9VXXxVF8a233goPD+fVXn311aVLl3788ccmk+lPf/qTKIpffPHFt99+GxERceXKFf9XHOA61emHNwBuLv45wquZPn26UjM9PV191WJkZOTGjRv9+WaZ4uLiCRMmVPgONpPJNHToUKUO/xzhli1bqm9tTk5OXFxchUbGxcX9+OOP1T9R+Rzh1SpU/hyhJEmiKL7//vtKGnGMsZSUFPWifvrpp+bNmysVKnyzTIUX4p8I/Omnn5QSm802YcIE9dU3AQEB7777boUn7t27NzEx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kZG8/L777nvppZcuXLhw9913q3/kb86cOU888cSkSZPOnDmTmpq6e/duf15l5MiR33777T333DN06FCbzZaamrpgwYIWLVpU85R33313zJgx2dnZJSUl33777ebNm/1fqVrHpOudH//fiImJSU9Pj46OvmZNi8VSJ2Pq25TVag0KCrrBjyJpR1lZmdlsFgTMoPjFbrfr9fpa/wXdwMDAy5cvX9/vEa5YsWL8k09JjZqVtepD5hB9wSnh0OpOd3X4/tuvY2Njr689Lpdr+fLlFy9evPfee00mExG1b9/+hx9++PDDDz///PM1a9bEx8c//PDDvB+6du369ttvl5SU+DLNOQAAErVJREFU5Obm9unTh5+ly8vLO3LkSO/evZVl/vbbb5s3bw4ICBg4cGCjRo2ys7NPnDjRv39//uiBAwecTucf//jHnTt3JiYmNm7cOCMjo7S0lM9DqpfmdDpXrVrFz/adP3+eX8IzYsSIffv2de/evUGDBkR04sSJ3377jZ+3W7lyZb9+/fj859GjR7du3RoaGjpo0KDw8HAiUr+KzWZbt26dcr5TbevWrYcOHTIajX/4wx945R9//LFnz55hYWFEdOnSpf379z/44INK/VOnTv38888Gg2HAgAExMTFEdObMmbNnz/bo0aPywrOysvr06ZOZmelyuTweT+1+9BNBqFEIwhpBENbILRiERFRcXPzNN9/s2P1LsaW0ZbPEAf0fuhlfscaDUJldVHTt2vWdd95RxwDUyE0NQkyNAoAmhIWFPfPMM88888xNfZUGDRq0bNmycnnr1q1DQ0Nv6kvDdUMQAgDUmvvuu+++++6rXP7VV1/97xsDfsJUDwAAaBqCEAAANM2vIMzPz3/vvfceffTRfv36Xa3OgAED+njxL0TgFi9enJKS0qFDB3VhQUHBuHHjWrZs2b9//2PHjt3ICiiOHDnyzTff/PzzzxaLpVYWCAAAWuDXOcKLFy/+9ttvzZo1e++9965WJzU1dfHixfxDKnFxcbwwLS3txRdf/OGHH8LCwvgnOseMGUNETz75ZHh4+KZNm5YtWzZgwIBTp07dyAVm+fn5Q/70xO+2AGuTrgFlB8yTX/rgH28+MmLYdS8QAAC0owYfnzhy5EinTp2UbwaqICAgIDMzU4lAbuzYsU2aNJk1axYRffbZZ19//fX27dvPnj2bnJx8/vz5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",
"image/svg+xml": [
"\n",
"