From fab60021bdc13cf22c080b4bc8856cab603bfe52 Mon Sep 17 00:00:00 2001 From: Andrew Cumming Date: Thu, 5 Oct 2023 11:29:30 -0400 Subject: [PATCH] Add material on linear least squares --- _toc.yml | 5 + linear_least_squares.md | 45 +++ matrices.ipynb | 649 ++++++++++++++++++++++++++++++++++++++++ polynomial_fit.ipynb | 241 +++++++++++++++ 4 files changed, 940 insertions(+) create mode 100644 linear_least_squares.md create mode 100644 matrices.ipynb create mode 100644 polynomial_fit.ipynb diff --git a/_toc.yml b/_toc.yml index b64a13f..c60231a 100644 --- a/_toc.yml +++ b/_toc.yml @@ -36,6 +36,11 @@ parts: - file: prob_distributions_solutions_part2 - file: montecarlo_solutions.ipynb - file: metropolis_solutions.ipynb + - caption: Solving equations + chapters: + - file: matrices + - file: linear_least_squares + - file: polynomial_fit - caption: Homework chapters: - file: hw1 diff --git a/linear_least_squares.md b/linear_least_squares.md new file mode 100644 index 0000000..4d53477 --- /dev/null +++ b/linear_least_squares.md @@ -0,0 +1,45 @@ +# Linear least squares + +Linear least squares refers to the problem of minimizing $\chi^2$ with a model that can be written as a linear combination of *basis functions* $f_j(x)$ as + +$$m(x) = \sum_{j=1}^M a_j f_j(x)$$ + +where $a_j$ are the model parameters. For example if we wanted to fit a polynomial we would choose $f_j(x) = x^{j-1}$ and minimize $\chi^2$ to find the polynomial coefficients $\{a_j\}$. + +We'll follow the analysis of Numerical Recipes with some small changes in notation. Write out $\chi^2$ and minimize it: + +$$\chi^2 = \sum_{i=1}^N \left[ {y_i - \sum_{j=1}^M a_j f_j(x_i)\over \sigma_i}\right]^2$$ + +$${\partial \chi^2\over\partial a_k} = 0 \Rightarrow \sum_{i=1}^N {1\over\sigma_i^2}\left[ y_i - \sum_{j=1}^M a_j f_j(x_i)\right] f_k(x_i) = 0$$ + +$$\sum_{i=1}^N {y_i\over\sigma_i}{f_k(x_i)\over\sigma_i} - \sum_{i=1}^N\sum_{j=1}^M a_k {f_j(x_i)\over\sigma_i }{f_k(x_i)\over \sigma_i} = 0$$ + +At this point it is useful to define the *design matrix* + +$$A_{ij} = {f_j(x_i)\over \sigma_i}$$ + +and also the vector $\vec{d}$ which is the data weighted by the errors at each point: + +$$d_i = {y_i\over\sigma_i}.$$ + +Then we have + +$$\sum_{i=1}^N A_{ik} b_i - \sum_{i=1}^N\sum_{j=1}^M a_k A_{ij}A_{ik} = 0$$ + +$$\sum_{i=1}^N (A^T)_{ki} b_i - \sum_{j=1}^M \sum_{i=1}^N (A^T)_{ji}A_{ik} a_k = 0$$ + +So in matrix form, we have + +$$\mathbf{A^T} \mathbf{d} = \mathbf{A^T}\mathbf{A}\mathbf{a}.$$ + +These are known as the **normal equations** for the linear least squares problem. + +We've assumed here that the noise is uncorrelated between measurements (the noise on one measurement does not depend on the noise on a previous measurement). The normal equations can be generalized to include correlated noise, but we'll leave this for later and for now focus on how we can solve these equations. + +```{admonition} Exercise: + +Show that $\chi^2$ can be written in our matrix notation as + +$$\chi^2 = (\mathbf{d} - \mathbf{A}\mathbf{a})^T (\mathbf{d} - \mathbf{A}\mathbf{a}).$$ + +``` \ No newline at end of file diff --git a/matrices.ipynb b/matrices.ipynb new file mode 100644 index 0000000..0f5b53c --- /dev/null +++ b/matrices.ipynb @@ -0,0 +1,649 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "96c50950", + "metadata": {}, + "source": [ + "# Matrices in numpy" + ] + }, + { + "cell_type": "markdown", + "id": "97abd76c", + "metadata": {}, + "source": [ + "We're going to be dealing with matrices quite a bit in this section, so let's have a review of how numpy handles matrices." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "076056cc", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "f14947d5", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[0.57487069 0.9823841 0.09112579]\n", + " [0.85884055 0.89054154 0.77408934]\n", + " [0.786177 0.65692552 0.72699611]\n", + " [0.66648673 0.92769796 0.33097987]]\n", + "[0.85884055 0.89054154 0.77408934]\n", + "0.7740893379034613\n", + "0.7740893379034613\n" + ] + } + ], + "source": [ + "# Matrices are 2D arrays in numpy\n", + "# A[i][j] = ith row and jth column\n", + "A = np.random.rand(12).reshape(4,3)\n", + "print(A)\n", + "print(A[1])\n", + "print(A[1][2])\n", + "print(A[1,2])" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "78a723e8", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[0.57487069, 0.85884055, 0.786177 , 0.66648673],\n", + " [0.9823841 , 0.89054154, 0.65692552, 0.92769796],\n", + " [0.09112579, 0.77408934, 0.72699611, 0.33097987]])" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Can also use np.transpose(A) or A.T\n", + "A.transpose()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "01bcc062", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([2.81301628, 4.96219165, 4.28101637, 3.51482228])" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Matrix multiplication uses the @ operator\n", + "y = np.array((1,2,3))\n", + "A@y" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "c5653f87", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[1, 0, 0, 0],\n", + " [0, 2, 0, 0],\n", + " [0, 0, 3, 0],\n", + " [0, 0, 0, 4]])" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Diagonal matrix\n", + "np.diag((1,2,3,4))" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "7f4e7ee1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[1. , 0. , 0. , 0. ],\n", + " [0. , 0.5 , 0. , 0. ],\n", + " [0. , 0. , 0.33333333, 0. ],\n", + " [0. , 0. , 0. , 0.25 ]])" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Inverse\n", + "np.linalg.inv((np.diag((1,2,3,4))))" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "11a0999c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 1.00000000e+00, -6.01445136e-16],\n", + " [-6.60539330e-16, 1.00000000e+00]])" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "A = np.random.rand(4).reshape(2,2)\n", + "B = np.linalg.inv(A)\n", + "B@A" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "7f3959e8", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "-0.10191999972462222\n", + "-0.10191999972462229\n" + ] + } + ], + "source": [ + "# Determinant\n", + "print(np.linalg.det(A))\n", + "print(A[0,0]*A[1,1] - A[0,1]*A[1,0])" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "826cced3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "23.999999999999993" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# should be 1 * 2 * 3 * 4 = 24\n", + "np.linalg.det(np.diag((1,2,3,4)))" + ] + }, + { + "cell_type": "markdown", + "id": "e619e0da", + "metadata": {}, + "source": [ + "# Matrix decompositions" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "aa6ee144", + "metadata": {}, + "outputs": [], + "source": [ + "# We need scipy.linalg for eigenvalues\n", + "import scipy.linalg\n", + "\n", + "# Visualize matrices as a color map\n", + "def plot_matrices(A,titles=[]):\n", + " plt.clf()\n", + " n = len(A)\n", + " if titles==[]:\n", + " titles = [\"\"]*n\n", + " plt.figure(figsize=(n*4,4))\n", + " for i,AA in enumerate(A):\n", + " plt.subplot(1, n, i+1)\n", + " plt.imshow(AA)\n", + " plt.colorbar()\n", + " plt.title(titles[i])\n", + " plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "6e2c140b", + "metadata": {}, + "source": [ + "## LU decomposition" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "f0f93712", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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1taqtLRUO3bsUEZGRsByn3zyif7nf/5HX/va14zfFACCEeSMdktLi9LT092nvzybLUn9+vVTcnKyWltbvc63trYqKyvLb/VZWVmGrgeAsGBG283wjPa+ffv07W9/WxdccIG6d++uYcOGafPmzeFoG4BoidCOkUY3+5Eku92uiRMn6vHHH9fFF19s/KZhRD4CCcBsPv4rI9PT070OfwPt1NRUFRQUqKGhwX3O4XCooaFBxcXFfptVXFzsdb0krV+/PuD1kUY+AgkiQn3IrsDQjPY///lPjR49Wl//+tf1u9/9Tv3799c//vEPnX/++eFqH4AupjPPH0qezX5mzpzpPneuzX4k6YknnlBGRobuvvtu/elPfwpdw4NEPgIIpYqKCk2ePFmFhYUaOXKkamtr1d7errKyMknSpEmTNGDAAPfS8+nTp+u6667Ts88+q7Fjx2rlypXavHmzFi9eHM2PIYl8BJCYDA20n376aeXm5uonP/mJ+9zAgQND3igA0WXmeZkznz88U3V1tebMmeNzvZnNft5991298soram5uNta4CCAfgcRg9nlCo2UmTJigAwcOqKqqSjabTfn5+aqvr3dn5t69e5WU5FmYOGrUKK1YsUKzZs3So48+qksvvVRvvPGGhg4daryxIUY+AokjmD5kvDE00H7zzTdVWlqqW2+9VW+//bYGDBigqVOnasqUKQHLnDhxQidOnHD//OXZLgAxKIjnazrz/KEZR44c0Z133qklS5aoX79+IakzlMhHIEEE+Yy2EeXl5SovL/f7uw0bNvicu/XWW3Xrrbcav1GYkY9AAuEZbTdDz2jv3r1bixYt0qWXXqp169bp/vvv1wMPPKBXX301YJmamhqv3TW/PNsFIAaF+flDyfhmPx999JE++eQTjRs3TikpKUpJSdFrr72mN998UykpKfroo49C8clNIx+BBBHkM9qJiHwEEgj56GZooO1wOHTVVVdp3rx5GjFihO69915NmTJFdXV1AcvMnDlThw8fdh8tLS1BNxpAeEXi1QxGN/sZNGiQPvzwQzU3N7uP//iP/9DXv/51NTc3R70TRj4CiSHY13slIvIRSBzko4ehpePZ2dkaMmSI17nBgwfrl7/8ZcAygTZCAhDDIrTsx8hmP2lpaT7PGvbp00eSYuIZRPIRSBARXDoeL8hHIIGwdNzN0EB79OjR2rFj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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "A = np.random.rand(100).reshape(10,10)\n", + "P, L, U = scipy.linalg.lu(A)\n", + "plot_matrices([P, L, U], titles=[\"P\", \"L\", \"U\"])\n", + "plot_matrices([P@L@U - A])" + ] + }, + { + "cell_type": "markdown", + "id": "5d0e2812", + "metadata": {}, + "source": [ + "## Eigen-decomposition" + ] + }, + { + "cell_type": "markdown", + "id": "19159d23", + "metadata": {}, + "source": [ + "The eigenvectors of an $n\\times n$ matrix $\\mathbf{A}$ satisfy\n", + "\n", + "$$\\mathbf{A}\\mathbf{v_i} = \\lambda_i \\mathbf{v_i}$$\n", + "\n", + "with eigenvalues $\\lambda_i$. Now consider the matrix $Q$ whose columns correspond to the $n$ eigenvectors $\\mathbf{v_i}$: you can easily show that this satisfies\n", + "\n", + "$$\\mathbf{A}\\mathbf{Q} = \\mathbf{Q}\\mathbf{\\Lambda},$$\n", + "\n", + "where $\\mathbf{\\Lambda} = \\mathrm{diag}(\\lambda_1, \\lambda_2\\dots \\lambda_n)$.\n", + "\n", + "Therefore \n", + "\n", + "$$\\mathbf{A} = \\mathbf{Q}\\mathbf{\\Lambda}\\mathbf{Q^{-1}}$$\n", + "\n", + "which is the *eigendecomposition* of the matrix.\n", + "\n", + "Since $(\\mathbf{A}\\mathbf{B}\\mathbf{C})^{-1} =\\mathbf{C}^{-1}\\mathbf{B}^{-1}\\mathbf{A}^{-1}$, the inverse of the matrix is\n", + "\n", + "$$\\mathbf{A^{-1}} = \\mathbf{Q}\\mathbf{\\Lambda}^{-1}\\mathbf{Q^{-1}}$$\n", + "\n", + "where \n", + "\n", + "$$\\mathbf{\\Lambda}^{-1} = \\mathrm{diag}(1/\\lambda_1, 1/\\lambda_2\\dots 1/\\lambda_n).$$\n" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "43a8a74f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Eigenvalues= [11.57481875 0.11814652 8.81628573 1.38184428 2.236823 3.37700902\n", + " 7.11855695 6.48539964 5.20294079 4.33568771]\n", + "Eigenvector check:\n", + "0 1.0436096431476471e-14\n", + "1 8.259872278336411e-15\n", + "2 5.440092820663267e-15\n", + "3 2.345346139520643e-15\n", + "4 4.6629367034256575e-15\n", + "5 3.3306690738754696e-15\n", + "6 2.6645352591003757e-15\n", + "7 5.218048215738236e-15\n", + "8 5.329070518200751e-15\n", + "9 1.7763568394002505e-15\n" + ] + } + ], + "source": [ + "# real symmetric matrix\n", + "n = 10\n", + "A = np.random.rand(n*n).reshape(n,n)\n", + "A = 0.5*(A + A.T)\n", + "A = A + np.diag(np.arange(n))\n", + "lam, Q = scipy.linalg.eig(A)\n", + "lam = np.real(lam)\n", + "Q = np.real(Q)\n", + "\n", + "print(\"Eigenvalues=\", lam)\n", + "\n", + "print(\"Eigenvector check:\")\n", + "for i in range(n):\n", + " # The eigenvectors are given by the columns of Q, ie. Q[:,i]\n", + " print(i, np.max(np.abs(A@Q[:,i]-lam[i]*Q[:,i])))" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "e3adf1fc", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Check eigendecomposition\n", + "plot_matrices([Q@np.diag(lam)@np.linalg.inv(Q) - A])\n", + "\n", + "# and the inverse\n", + "plot_matrices([Q@np.diag(1/lam)@np.linalg.inv(Q) - np.linalg.inv(A)])" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "3bb677c2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_matrices([np.linalg.inv(Q) - Q.T])" + ] + }, + { + "cell_type": "markdown", + "id": "f725b10f", + "metadata": {}, + "source": [ + "## Singular value decomposition (SVD)" + ] + }, + { + "cell_type": "markdown", + "id": "8c8d2cc0", + "metadata": {}, + "source": [ + "The singular value decomposition (SVD) of a $m\\times n$ matrix $\\mathbf{A}$ is\n", + "\n", + "$$\\mathbf{A} = \\mathbf{U}\\ \\mathbf{S}\\ \\mathbf{V^T},$$\n", + "\n", + "where \n", + "\n", + "- $\\mathbf{U}$ is an $m\\times n$ matrix with orthonormal columns\n", + "- $\\mathbf{S}$ is an $n\\times n$ diagonal matrix whose diagonal elements are the **singular values** of the matrix $s_i$\n", + "- $\\mathbf{V}$ is an $n\\times n$ orthogonal matrix ($V^TV = VV^T = 1$)\n", + "\n", + "If we have a square matrix ($m=n$), we can write the inverse as\n", + "\n", + "$$\\mathbf{A^{-1}} = \\mathbf{V}\\,\\mathbf{diag}(1/s_i)\\,\\mathbf{U^T}$$" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "66806267", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Singular values are: [1.76883682 0.58748002 0.34937691]\n" + ] + }, + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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1q2bUVl3d3ejcmLzlp19IpKHjf0qS9YldmMwR1RbW4vAwECkp6fL3RSbtH//fsydOxdff/01cnNzcevWLUyYMAG1tbVyN818ZuSjSqUyOkw9bqtnz55wcnJCRUWF0fmKigp4e3u32LyVK1fi1Vdfxd69ezFixIj2+c5khBnZMuZj6+w2I80c2W/rUqe2KigogLu7O0JCQgznIiIioFQqcfjw4TZ9RmFhIYqKijBr1qxm782dOxc9e/ZEaGgoMjMzBfePagk36CMimUjpvLOzby/EbgzmiCZOnNhsOh/9Iicnx+h1VlYWPD09UVhYiAcffFCmVrUXy+ejs7MzgoODkZeXZ5gWqtPpkJeXB41GY7Le66+/jldeeQV79uwxurml9sWMbBnzsXX2m5FSB39+Wep0p+TkZCxZskRya7RaLTw9PY3OderUCR4eHm1eErVx40YEBAQgPDzc6PyyZcvw29/+Fl27dsXevXvxl7/8BTU1NfjrX//a5vaxs09E8pAyUs+RfbvQtDHYndOLxW4MRnS3qqoqALCPzeKslI8JCQmYOXMmQkJCEBoairS0NNTW1ho6mLGxsejdu7dh3f9rr72GxYsXIzs7G/7+/oYb2W7dujWbekrSMSPJEuwmI6XO9NT/stRJpVIZTpua/ZSYmIjXXnutxY88ffq0+Hbc5eeff0Z2djYWLVrU7L07z40cORK1tbVYsWIFO/tERGS7WtoY7MyZMzK1ijoynU6H+fPnY/To0Rg2bJjczekwpk2bhitXrmDx4sXQarUICgpCTk6O4b+bpaWlUCp/WfG5fv161NfX4w9/+IPR55g7MkbGmJHU3piRv2ha4tSa5557Dk899VSLZQYMGABvb+9my2tu376NysrKVpdEAcCHH36IGzdutOnxpWFhYUhJSUFdXZ3JHynuxs4+EclDp4foafncoI+IBMydOxenTp3CwYMH5W5K+7BiPmo0GpPT9vPz841eX7hwQdI1iEhedpWRUvLRUK/tevXqhV69erVaTq1W49q1aygsLERwcDAAYN++fdDpdAgLC2u1/saNG/G73/2uTdcqKipCjx492tzRB9jZJyK56HWNh9g61OGZszEY0d00Go3hUUd9+vSRuzntg/no0JiR1J7sLiOl5GNTPQsICAhAVFQU4uPjkZGRgVu3bkGj0eDxxx+Hr68vAODSpUsYP348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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAArAAAAFWCAYAAACRsa60AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA0mElEQVR4nO3df3RV1Z3//9cNkhsykABiEn6khlb5JZAgSAy0CqsZUmUxTdvpouhqMFX8akkHTWeEWCQqnzFtVZp2RDP+QGZmyYLqFOgSioOhgUFiKWBQrOCASBiGG2AoCcSahNz7/YNy7Z38MOcmJ3efzfOx1lmr99x9ztlJ4eWbffbZxxcKhUICAAAAPCIu1h0AAAAAnKCABQAAgKdQwAIAAMBTKGABAADgKRSwAAAA8BQKWAAAAHgKBSwAAAA8hQIWAAAAnkIBCwAAAE+hgAUAAICnUMACuCLt2LFDc+bM0bBhw+Tz+bRhw4bPPaaqqko33nij/H6/rrvuOq1evdr1fgKAyWKVpRSwAK5IjY2NyszM1MqVK7vU/ujRo5o9e7ZmzpypmpoaPfDAA7rnnnv0xhtvuNxTADBXrLLUFwqFQtF0GABs4fP5tH79euXn53fYZvHixdq0aZMOHDgQ3ved73xH586d05YtW3qhlwBgtt7MUkZgAaALqqurlZubG7EvLy9P1dXVMeoRAHhPT2XpVT3ZKQDork8//VTNzc1RHRsKheTz+SL2+f1++f3+bvcrEAgoNTU1Yl9qaqoaGhr0pz/9Sf369ev2NQCgJ5iao1LPZSkFLABjfPrppxp5bX8FTrVGdXz//v114cKFiH2lpaV69NFHe6B3AGC+KyVHKWABGKO5uVmBU606uvdaJQ1wNsOp4XxQIycf0/Hjx5WUlBTe31OjBmlpaaqrq4vYV1dXp6SkJEZfARjD5ByVei5LKWABGOev+l/anGj98+OoSUlJEcHbU3JycrR58+aIfVu3blVOTk6PXwsAusvEHJV6Lkt5iAuAcYIKRbU5ceHCBdXU1KimpkbSpaVdampqVFtbK0kqKSlRQUFBuP19992njz76SA899JAOHjyoZ599Vr/85S/14IMP9tjPDQA9pTdyVIpdljICC8A4QQUVjOIYJ/bs2aOZM2eGPxcXF0uS5s+fr9WrV+vkyZPhAJakkSNHatOmTXrwwQf185//XCNGjNCLL76ovLw8hz0FAPf1Ro5KsctS1oEFYIyGhgYlJyfrfw6NiGru1rDR/636+nrXbn0BgOmulBxlBBaAcVpDIbU6/Le10/YAYDPbc5QCFoBxopmLFc3cLQCwle05SgELwDhBhdRqcfACgNtsz1EKWADGsX3kAADcZnuOUsACMI7tc7cAwG225yjrwAIAAMBTGIEFYJzgnzenxwAALrE9RylgARinNYqHD5y2BwCb2Z6jFLAAjNMa+uyd3E6OAQBcYnuOMgcWxnjppZfUv39/9e/fX/Hx8erbt2/486xZs2LdPfSiYJQbcCUjQ/GXbM9RXiULI917773q37+/VqxYEeuuoBddfgXivj+kqr/DVyBeOB/UjePqPPEKRMBtZOiV60rJUUZgYaR3331XEydOjHU3AMCTyFDYjgIWrnrkkUfk8/n08ccft/v9iBEj9OUvfzliXygU0oEDBzoM32jOCW8JhqLbANsUFhYqISFBra2tHba57bbblJiYqP/+7/+W1HmGRnM+eJPtOUoBC1ft379fAwcOVEZGRpvv/vd//1cnTpxQVlZWxP4jR46oqalJN9xwQ4+dE97SKl9UG2CbsWPHqqmpSUePHm33+//8z//Uli1b9Hd/93caMWKEpM4zNJrzwZtsz1EKWLhq//79HY6k7t+/X5KUmZnZZv+oUaPk9/t77JzwFtuDF+iqcePGSZIOHjzY7vclJSUaPHiwlixZEt7XWYZGcz54k+05SgEL15w7d061tbUdFpMdFZudzd2K9pzwlmDIF9UG2OZywfnBBx+0+W7Tpk166623VFJSooEDB4b3d5ah0ZwP3mR7jrIOLFzz7rvvSuq4mNy/f7/i4uI0fvz4NsdNnTq1R88Jb4lmJMBLIwdAV2VkZKhfv35tRkxDoZCWLl2q9PR0FRUVRXzXWYZGcz54k+05yggsXPN5o6H79+/X9ddfr8TExIj9nY0eRHtOAPCiuLg4jRkzps2I6bp161RTU6PHH39cCQkJEd91lqHRnA8wESOwcM3+/fvVp0+fdkdDW1pa9Ic//EHf+MY32nx35MiRHj8nvKVVcWp1+O/rjp+pBrxt3Lhx+s1vfhP+fPHiRS1btkwTJkxQQUFBm/adZWg054M32Z6jjMDCNe+++65GjRrV7r/mDx48qObmZsdzVd04J8wTimLeVshDc7cAJ8aOHauzZ8/q1KlTkqSXX35Z//Vf/6WysjLFxTn/z3hPnw9msj1H+ZMK1/zhD3/Q2LFj2/1u165dkqTs7OyYnxPmsf3pWcCJv3zwqqmpScuXL9ctt9yi2bNnG3E+mMn2HGUKAVxx8eJFNTY2yudr/y/D2rVrNWjQIE2fPj2m54SZWkNxag05vPXloQW4ASf+cumrffv26fjx43r11VeNOR/MZHuOUsDCFVdddZXS09O1c+dONTQ0RLxT+eWXX1ZVVZUeeeSRDtd67a1zwkxB+RR0eIMoKA8lL+DAddddp/j4eP3+97/Xr3/9a33zm9/s1p2mnj4fzGR7jlLAwjWLFy9WUVGRpkyZonnz5qlv37566623tGXLFt166616+OGHjTgnAJisT58+GjVqlFavXi2fz6cnnnjCqPMBscAcWLhm4cKF+vd//3ddffXVKi8v1xNPPKG6ujr99Kc/1datW6NaqsWNc8I8ts/dApwaN26cWltb9b3vfU+jR4827nwwj+056guFQt4ZLwZgtYaGBiUnJ2v9/uv1VwP6ODq28XyrvpH5X6qvr4+YXgIAV5IrJUeZQgDAOJfmbjkbCXDaHgBsZnuOUsACME4wigW4vfTwAQC4zfYcpYAFYJzoln/xTvACgNtsz1Ee4gIAAICnuFbAnj17VnfeeaeSkpI0cOBA3X333bpw4UKnx8yYMUM+ny9iu++++9zqIgBDBRUX1WYjshRANGzPUdemENx55506efKktm7dqpaWFhUWFuree+/VmjVrOj1uwYIFevzxx8OfExMT3eoiAEO1hnxqdfhObqftvYIsBRAN23PUlQL2gw8+0JYtW/T73/9eU6ZMkST90z/9k26//XY99dRTGjZsWIfHJiYmKi0tzY1uAfCI1igePmj10MMHXUWWAoiW7TnqylhxdXW1Bg4cGA5cScrNzVVcXJx+97vfdXrsK6+8oiFDhmj8+PEqKSnRJ5984kYXARgsGIqLarMNWQogWrbnqCsjsIFAQCkpKZEXuuoqDR48WIFAoMPj7rjjDl177bUaNmyY3n33XS1evFiHDh3Sr371qw6PaWpqUlNTU/hzMBjU2bNndfXVV8vn885QOGCTUCik8+fPa9iwYYqLcx6Ito8cdFVvZSk5CpiHHO2cowJ2yZIl+slPftJpmw8++CDqztx7773h/z1hwgQNHTpUX/3qV3XkyBF96UtfaveYsrIyPfbYY1FfE4B7jh8/rhEjRsS6G8YxLUvJUcBc5Gj7HBWwP/zhD3XXXXd12uaLX/yi0tLSdOrUqYj9Fy9e1NmzZx3NycrOzpYkHT58uMMCtqSkRMXFxeHP9fX1+sIXvqBj+zKU1N87Q+Gx8o1RE2LdBVjoolq0U5s1YMCAqI4PyvnDBMGorhQbpmUpOdo95CjcQI52zlEBe8011+iaa6753HY5OTk6d+6c9u7dq8mTJ0uStm3bpmAwGA7SrqipqZEkDR06tMM2fr9ffr+/zf6k/nFKGkDwfp6rfH1j3QXY6M93oaK9/RzNci5eWv7FtCwlR7uHHIUryNFOudLTsWPH6mtf+5oWLFig3bt366233lJRUZG+853vhJ+aPXHihMaMGaPdu3dLko4cOaLly5dr7969+vjjj/XrX/9aBQUFuuWWWzRx4kQ3ugnAUJffION0sw1ZCiBatueoa+vAvvLKKyoqKtJXv/pVxcXF6Vvf+pZ+8YtfhL9vaWnRoUOHwk/GxsfH680331R5ebkaGxuVnp6ub33rW1q6dKlbXQRgqKB8CsrprS87HzYiSwFEw/Ycda2AHTx4cKcLbWdkZCj0F+/cTU9P1/bt293qDgAPie4d3t4ZOXCCLAUQDdtz1Ds9BQAAAOTiCCwARCu69Qv59zgAXGZ7jlLAAjBOMORT0OnyLx56hzcAuM32HKWABWCcYBQjB15a/gUA3GZ7jlLAAjBONO/k9tI7vAHAbbbnKAUsAOO0yqdWh8u5OG0PADazPUe9U2oDAAAAYgQWgIFsv/UFAG6zPUcpYAEYp1XOb2W1utMVAPAk23OUAhaAcWwfOQAAt9meo97pKYArxuVXIDrdorFy5UplZGQoISFB2dnZ2r17d6fty8vLNXr0aPXr10/p6el68MEH9emnn0Z1bQBwi+05SgELwDgh+RR0uIWieHp23bp1Ki4uVmlpqfbt26fMzEzl5eXp1KlT7bZfs2aNlixZotLSUn3wwQd66aWXtG7dOj388MPd/ZEBoEfZnqMUsACuWCtWrNCCBQtUWFiocePGqaKiQomJiVq1alW77Xft2qXp06frjjvuUEZGhmbNmqV58+Z97mgDANgqVjlKAQvAON259dXQ0BCxNTU1tXuN5uZm7d27V7m5ueF9cXFxys3NVXV1dbvHTJs2TXv37g0H7UcffaTNmzfr9ttv7+HfAAB0j+05ykNcAIzTnXd4p6enR+wvLS3Vo48+2qb9mTNn1NraqtTU1Ij9qampOnjwYLvXuOOOO3TmzBl9+ctfVigU0sWLF3XfffcxhQCAcWzPUQpYAMZpjeId3pfbHz9+XElJSeH9fr+/x/pVVVWlJ554Qs8++6yys7N1+PBhLVq0SMuXL9cjjzzSY9cBgO6yPUcpYAEYpzsjB0lJSRHB25EhQ4aoT58+qquri9hfV1entLS0do955JFH9N3vflf33HOPJGnChAlqbGzUvffeqx/96EeKi2NWFgAz2J6jpC0A4wQVF9XmRHx8vCZPnqzKysrPrhsMqrKyUjk5Oe0e88knn7QJ1z59+kiSQqGQw58SANxje44yAgvgilVcXKz58+drypQpmjp1qsrLy9XY2KjCwkJJUkFBgYYPH66ysjJJ0pw5c7RixQpNmjQpfOvrkUce0Zw5c8IBDABXkljlKAUsAOO0hnxqdXjry2l7SZo7d65Onz6tZcuWKRAIKCsrS1u2bAk/kFBbWxsxUrB06VL5fD4tXbpUJ06c0DXXXKM5c+boH//xHx1fGwDcZHuO+kKW3fdqaGhQcnKy/vjhF5U0gBkSnydvWFasuwALXQy1qEobVV9f36V5VJdd/vv7/+34lvz9+zq6ZtOFFv3zLf/u+Jpoixx1hhyFG8jRzjECC8A4oSje4R3y0Du8AcBttucoBSwA47TKp1aHrzR02h4AbGZ7jlLAAjBOMKQoln9xqTMA4EG256h3xooBAAAAMQILwEDBKOZuOW0PADazPUcpYAEYJyifgg7nYjltDwA2sz1He6XUXrlypTIyMpSQkKDs7Gzt3r270/avvvqqxowZo4SEBE2YMEGbN2/ujW4CMMTl9QudbjYjRwE4YXuOul7Arlu3TsXFxSotLdW+ffuUmZmpvLw8nTp1qt32u3bt0rx583T33XfrnXfeUX5+vvLz83XgwAG3uwrAEJdvfTndbEWOAnDK9hx1vacrVqzQggULVFhYqHHjxqmiokKJiYlatWpVu+1//vOf62tf+5r+4R/+QWPHjtXy5ct144036plnnnG7qwBgJHIUACK5WsA2Nzdr7969ys3N/eyCcXHKzc1VdXV1u8dUV1dHtJekvLy8Dts3NTWpoaEhYgPgbUH5FAw53Dw0d8sJchRANGzPUVcL2DNnzqi1tTX8PtzLUlNTFQgE2j0mEAg4al9WVqbk5OTwlp6e3jOdBxAzoT8/fOBkC3koeJ0gRwFEw/Yc9c5khw6UlJSovr4+vB0/fjzWXQLQTY5HDf68ITrkKGAf23PU1WW0hgwZoj59+qiuri5if11dndLS0to9Ji0tzVF7v98vv9/fMx0GYATb1y90ghwFEA3bc9TVnsbHx2vy5MmqrKwM7wsGg6qsrFROTk67x+Tk5ES0l6StW7d22B6AfWwfOXCCHAUQDdtz1PUXGRQXF2v+/PmaMmWKpk6dqvLycjU2NqqwsFCSVFBQoOHDh6usrEyStGjRIt166616+umnNXv2bK1du1Z79uzR888/73ZXAcBI5CgARHK9gJ07d65Onz6tZcuWKRAIKCsrS1u2bAk/YFBbW6u4uM8GgqdNm6Y1a9Zo6dKlevjhh3X99ddrw4YNGj9+vNtdBWAI298g4xQ5CsAp23PUFwqFQrHuRE9qaGhQcnKy/vjhF5U0wDtzOWIlb1hWrLsAC10MtahKG1VfX6+kpKQuH3f57+/sN+5R37+Kd3TNlsZmbcp70fE10RY56gw5CjeQo51zfQQWAJyKZi6Wl+ZuAYDbbM9RClgAxrE9eAHAbbbnKAUsAOPYHrwA4Dbbc5TJTQAAAPAURmABGCck50/DWvU0KgB0k+05SgELwDi23/oCALfZnqMUsACMY3vwAoDbbM9RClgAxrE9eAHAbbbnKAUsAOPYHrwA4Dbbc5RVCAAAAOApjMACME4o5FPI4UiA0/YAYDPbc5QCFoBxgvI5Xv7FaXsAsJntOUoBC8A4ts/dAgC32Z6jFLAAjGP7rS8AcJvtOUoBC8A4to8cAIDbbM9RViEAAACApzACC8A4tt/6AgC32Z6jFLAAjBOK4taXl4IXANxme45SwAIwTkhSKOT8GADAJbbnKAUsAOME5ZPP4vULAcBttucoBSwA49g+dwsA3GZ7jrIKAQAAADyFEVgAxgmGfPJZvH4hALjN9hylgAVgnFAoiocPvPT0AQC4zPYcpYAFYBzb524BgNtsz1EKWADGsT14AcBttudorzzEtXLlSmVkZCghIUHZ2dnavXt3h21Xr14tn88XsSUkJPRGNwEY4vI7vJ1uNiNHAThhe466XsCuW7dOxcXFKi0t1b59+5SZmam8vDydOnWqw2OSkpJ08uTJ8Hbs2DG3uwkAxiJHASCS6wXsihUrtGDBAhUWFmrcuHGqqKhQYmKiVq1a1eExPp9PaWlp4S01NdXtbgIwyOWHD5xutiJHAThle466WsA2Nzdr7969ys3N/eyCcXHKzc1VdXV1h8dduHBB1157rdLT0/X1r39d77//vpvdBGCYS0Hqc7jFutfuIEcBRMP2HHX1Ia4zZ86otbW1zb/8U1NTdfDgwXaPGT16tFatWqWJEyeqvr5eTz31lKZNm6b3339fI0aMaNO+qalJTU1N4c8NDQ2SpG+MmqCrfH178Kex0xv/UxPrLnhG3rCsWHfhimH7wwdOkKPmI0e7jhztPbbnqHFv4srJyVFBQYGysrJ066236le/+pWuueYa/fM//3O77cvKypScnBze0tPTe7nHAHpaKMoNl5CjAGzPUVcL2CFDhqhPnz6qq6uL2F9XV6e0tLQunaNv376aNGmSDh8+3O73JSUlqq+vD2/Hjx/vdr8BxJbz217ORxq8ghwFEA3bc9TVAjY+Pl6TJ09WZWVleF8wGFRlZaVycnK6dI7W1la99957Gjp0aLvf+/1+JSUlRWwA0FVOlqeSpHPnzmnhwoUaOnSo/H6/Ro0apc2bN7vWP3IUgOlikaOuv8iguLhY8+fP15QpUzR16lSVl5ersbFRhYWFkqSCggINHz5cZWVlkqTHH39cN998s6677jqdO3dOTz75pI4dO6Z77rnH7a4CMEU097KiuPd1eXmqiooKZWdnq7y8XHl5eTp06JBSUlLatG9ubtZf//VfKyUlRa+99pqGDx+uY8eOaeDAgc4v7gA5CsAxy3PU9QJ27ty5On36tJYtW6ZAIKCsrCxt2bIl/EBCbW2t4uI+Gwj+4x//qAULFigQCGjQoEGaPHmydu3apXHjxrndVQCmiOZWVhS3vv5yeSpJqqio0KZNm7Rq1SotWbKkTftVq1bp7Nmz2rVrl/r2vfRwU0ZGhuPrOkWOAnDM8hz1hUJeWjTh8zU0NCg5OVkz9HWenu0Cnp7tOp6e7bqLoRZVaaPq6+sd3Y6+/Pd35Ms/UlyiszdHBT/5VEcL/7HL12xublZiYqJee+015efnh/fPnz9f586d08aNG9scc/vtt2vw4MFKTEzUxo0bdc011+iOO+7Q4sWL1adPH0f9NRk56gw52nXkaNeRo51zfQQWAJzqzvIvl5eAuszv98vv97dpH83yVB999JG2bdumO++8U5s3b9bhw4f1/e9/Xy0tLSotLXXUXwBwk+05atwyWgCgkC+6TVJ6enrEklCX54X2hGAwqJSUFD3//POaPHmy5s6dqx/96EeqqKjosWsAQI+wPEcZgQVglePHj0fc+mpv1ECKbnmqoUOHqm/fvhG3ucaOHatAIKDm5mbFx8f3wE8AALHlhRxlBBaAcbrzDu//uxxUR8EbzfJU06dP1+HDhxUMBsP7PvzwQw0dOpTiFYBRbM9RClgA5umlV8gUFxfrhRde0L/8y7/ogw8+0P33399meaqSkpJw+/vvv19nz57VokWL9OGHH2rTpk164okntHDhwm78sADgAstzlCkEAIzTW+/wdro8VXp6ut544w09+OCDmjhxooYPH65FixZp8eLFjq8NAG6yPUcpYAGYqZcW+CsqKlJRUVG731VVVbXZl5OTo7ffftvlXgFAD7A4RylgARint0YOAMBWtucoc2ABAADgKYzAAjBPL73DGwCsZXmOUsACMJDvz5vTYwAAl9idoxSwAMxj+cgBALjO8hylgAVgHsuDFwBcZ3mOUsACMM9fvJPb0TEAgEssz1FWIQAAAICnMAILwDh/+U5uJ8cAAC6xPUcpYAGYx/K5WwDgOstzlAIWgHksn7sFAK6zPEcpYAEYxxe6tDk9BgBwie05SgELwDyW3/oCANdZnqOsQgAAAABPYQQWgHksn7sFAK6zPEcpYAGYx/JbXwDgOstzlAIWgHksD14AcJ3lOUoBC8A8lgcvALjO8hylgAVgHsvnbgGA6yzPUVYhAAAAgKe4WsDu2LFDc+bM0bBhw+Tz+bRhw4bPPaaqqko33nij/H6/rrvuOq1evdrNLgIw0OUFuJ1uNiJHAUTD9hx1tYBtbGxUZmamVq5c2aX2R48e1ezZszVz5kzV1NTogQce0D333KM33njDzW4CME0oys1C5CiAqFieo67Ogb3tttt02223dbl9RUWFRo4cqaefflqSNHbsWO3cuVM/+9nPlJeX51Y3AcBY5CgAtGXUHNjq6mrl5uZG7MvLy1N1dXWMegQgFnyK4tZXrDttCHIUgGR/jhq1CkEgEFBqamrEvtTUVDU0NOhPf/qT+vXr1+aYpqYmNTU1hT83NDS43k8AMBU5CuBKYNQIbDTKysqUnJwc3tLT02PdJQDddXn5F6cbokKOAhayPEeNKmDT0tJUV1cXsa+urk5JSUntjhpIUklJierr68Pb8ePHe6OrANxk+cMHbiJHAUiyPkeNmkKQk5OjzZs3R+zbunWrcnJyOjzG7/fL7/e73TUAvcnyN8i4iRwFIMn6HHV1BPbChQuqqalRTU2NpEvLu9TU1Ki2tlbSpX/1FxQUhNvfd999+uijj/TQQw/p4MGDevbZZ/XLX/5SDz74oJvdBGAY29cvdIIcBRAN23PU1QJ2z549mjRpkiZNmiRJKi4u1qRJk7Rs2TJJ0smTJ8MhLEkjR47Upk2btHXrVmVmZurpp5/Wiy++yNIvwJXG8ltfTpCjAKJieY66OoVgxowZCoU6/m2093aYGTNm6J133nGxVwDgHeQoALRl1BxYAJBk/dwtAHCd5TlKAQvAONHMxfLS3C0AcJvtOUoBC8A80axH6KH1CwHAdZbnKAUsAPNYfusLAFxneY5SwAIwju23vgDAbbbnqFFv4gIAAAA+DyOwAMxj+a0vAHCd5TlKAQvAPNG8EcZDwQsArrM8RylgAZjH8pEDAHCd5TlKAQvAPJYHLwC4zvIcpYAFYBzbn54FALfZnqOsQgAAAABPoYAFAACApzCFAIB5LJ+7BQCuszxHKWABGMf2uVsA4Dbbc5QCFoCZPBSkAGAki3OUAhaAeSy/9QUArrM8R3mICwAAAJ7CCCwA49g+dwsA3GZ7jlLAAjCP5be+AMB1lucoUwgAGOfyyIHTLRorV65URkaGEhISlJ2drd27d3fpuLVr18rn8yk/Pz+6CwOAi2zPUQpYAOYJRbk5tG7dOhUXF6u0tFT79u1TZmam8vLydOrUqU6P+/jjj/X3f//3+spXvuL8ogDQGyzPUQpYAObppeBdsWKFFixYoMLCQo0bN04VFRVKTEzUqlWrOjymtbVVd955px577DF98YtfdH5RAOgNlucoBSwAqzQ0NERsTU1N7bZrbm7W3r17lZubG94XFxen3NxcVVdXd3j+xx9/XCkpKbr77rt7vO8AYAIv5CgFLADjdGfuVnp6upKTk8NbWVlZu9c4c+aMWltblZqaGrE/NTVVgUCg3WN27typl156SS+88EKP/rwA0NNsz1FWIQBgnm48PXv8+HElJSWFd/v9/h7p0vnz5/Xd735XL7zwgoYMGdIj5wQA11ieoxSwAMzTjeBNSkqKCN6ODBkyRH369FFdXV3E/rq6OqWlpbVpf+TIEX388ceaM2dOeF8wGJQkXXXVVTp06JC+9KUvOew0ALjE8hx1dQrBjh07NGfOHA0bNkw+n08bNmzotH1VVZV8Pl+braNhaAB26o3lX+Lj4zV58mRVVlaG9wWDQVVWVionJ6dN+zFjxui9995TTU1NePubv/kbzZw5UzU1NUpPT+/uj90uchRANGzPUVdHYBsbG5WZmanvfe97+uY3v9nl4w4dOhRR+aekpLjRPQCm6sbIgRPFxcWaP3++pkyZoqlTp6q8vFyNjY0qLCyUJBUUFGj48OEqKytTQkKCxo8fH3H8wIEDJanN/p5EjgKIiuU56moBe9ttt+m2225zfFxKSkr4BwIAt8ydO1enT5/WsmXLFAgElJWVpS1btoQfSKitrVVcXGyfdSVHAZgsVjlq5BzYrKwsNTU1afz48Xr00Uc1ffr0Dts2NTVFLO/Q0NDQG10E4KLefId3UVGRioqK2v2uqqqq02NXr14d3UV7ATkKXNlsz1GjCtihQ4eqoqJCU6ZMUVNTk1588UXNmDFDv/vd73TjjTe2e0xZWZkee+yxXu6pPfKGZcW6C57xxv/UxLoLntFwPqhBo7pxgl669WUjcrT3kaNdR452HTnaOaMK2NGjR2v06NHhz9OmTdORI0f0s5/9TP/2b//W7jElJSUqLi4Of25oaHDtYQoAvcTy4HUTOQpAkvU5alQB256pU6dq586dHX7v9/t7bH0yAGbw/XlzegzaR44CVx7bc9T4ArampkZDhw6NdTcA9CbLRw56GzkKXIEsz1FXC9gLFy7o8OHD4c9Hjx5VTU2NBg8erC984QsqKSnRiRMn9K//+q+SpPLyco0cOVI33HCDPv30U7344ovatm2b/uM//sPNbgKAschRAGjL1QJ2z549mjlzZvjz5TlW8+fP1+rVq3Xy5EnV1taGv29ubtYPf/hDnThxQomJiZo4caLefPPNiHMAsF9vPj1rOnIUQDRsz1FXC9gZM2YoFOr4t/F/l0546KGH9NBDD7nZJQBeYPmtLyfIUQBRsTxHjZ8DC+AK5aEgBQAjWZyjFLAAjGP7rS8AcJvtOUoBC8A8lt/6AgDXWZ6jsX3JNwAAAOAQI7AAjGP7rS8AcJvtOUoBC8A8lt/6AgDXWZ6jFLAAjGP7yAEAuM32HKWABWAey0cOAMB1lucoBSwA81gevADgOstzlFUIAAAA4CmMwAIwju1ztwDAbbbnKAUsAPNYfusLAFxneY5SwAIwji8Uki/kLEmdtgcAm9meoxSwAMxj+cgBALjO8hylgAVgHNvnbgGA22zPUVYhAAAAgKcwAgvAPJbf+gIA11meoxSwAIxj+60vAHCb7TlKAQvAPJaPHACA6yzPUQpYAMaxfeQAANxme45SwAIwj+UjBwDgOstzlFUIAAAA4CmMwAIwkpduZQGAiWzOUQpYAOYJhS5tTo8BAFxieY5SwAIwju0PHwCA22zPUQpYAOax/OEDAHCd5Tnq6kNcZWVluummmzRgwAClpKQoPz9fhw4d+tzjXn31VY0ZM0YJCQmaMGGCNm/e7GY3ARjGF4xusxE5CiAatueoqwXs9u3btXDhQr399tvaunWrWlpaNGvWLDU2NnZ4zK5duzRv3jzdfffdeuedd5Sfn6/8/HwdOHDAza4CgJHIUQBoyxcK9d6M3dOnTyslJUXbt2/XLbfc0m6buXPnqrGxUa+//np4380336ysrCxVVFR87jUaGhqUnJysGfq6rvL17bG+A2/8T02su+AZDeeDGjTqI9XX1yspKanrx/357+9N+f9PV/VNcHTNiy2f6vcbljq+pteQo/AycrTryNHO9eo6sPX19ZKkwYMHd9imurpaubm5Efvy8vJUXV3tat8AmOPywwdOtysBOQqgK2zP0V57iCsYDOqBBx7Q9OnTNX78+A7bBQIBpaamRuxLTU1VIBBot31TU5OamprCnxsaGnqmwwBix/LlX6JFjgLoMstztNdGYBcuXKgDBw5o7dq1PXresrIyJScnh7f09PQePT+A3mf7yEG0yFEAXWV7jvZKAVtUVKTXX39dv/3tbzVixIhO26alpamuri5iX11dndLS0tptX1JSovr6+vB2/PjxHus3AJiCHAWAz7hawIZCIRUVFWn9+vXatm2bRo4c+bnH5OTkqLKyMmLf1q1blZOT0257v9+vpKSkiA2Ax4Wi3CxEjgKIiuU56uoc2IULF2rNmjXauHGjBgwYEJ5/lZycrH79+kmSCgoKNHz4cJWVlUmSFi1apFtvvVVPP/20Zs+erbVr12rPnj16/vnn3ewqAIPY/gYZJ8hRANGwPUddHYF97rnnVF9frxkzZmjo0KHhbd26deE2tbW1OnnyZPjztGnTtGbNGj3//PPKzMzUa6+9pg0bNnT6wAIAy1x++MDpZiFyFEBULM9RV0dgu7LEbFVVVZt93/72t/Xtb3/bhR4B8ALbRw6cIEcBRMP2HO21ZbQAoMuimYvloeAFANdZnqO9+iIDAAAAoLsYgQVgHNtvfQGA22zPUQpYAOYJhi5tTo8BAFxieY5SwAIwj+VztwDAdZbnKAUsAOP4FMWtL1d6AgDeZHuO8hAXAPP04vqFK1euVEZGhhISEpSdna3du3d32PaFF17QV77yFQ0aNEiDBg1Sbm5up+0BIGYsz1EKWABXrHXr1qm4uFilpaXat2+fMjMzlZeXp1OnTrXbvqqqSvPmzdNvf/tbVVdXKz09XbNmzdKJEyd6uecAYIZY5SgFLADjXH561unm1IoVK7RgwQIVFhZq3LhxqqioUGJiolatWtVu+1deeUXf//73lZWVpTFjxujFF19UMBhUZWVlN39iAOhZtucoBSwA84Si3Bxobm7W3r17lZubG94XFxen3NxcVVdXd+kcn3zyiVpaWjR48GBnFwcAt1meozzEBcA4vlBIPodzsS63b2hoiNjv9/vl9/vbtD9z5oxaW1uVmpoasT81NVUHDx7s0jUXL16sYcOGRYQ3AJjA9hxlBBaAeYJRbpLS09OVnJwc3srKylzp4o9//GOtXbtW69evV0JCgivXAICoWZ6jjMACME53Rg6OHz+upKSk8P72Rg0kaciQIerTp4/q6uoi9tfV1SktLa3Taz311FP68Y9/rDfffFMTJ0501E8A6A225ygjsACskpSUFLF1FLzx8fGaPHlyxIMDlx8kyMnJ6fD8P/3pT7V8+XJt2bJFU6ZM6fH+A0CseSFHGYEFYJ5eeoNMcXGx5s+frylTpmjq1KkqLy9XY2OjCgsLJUkFBQUaPnx4+PbZT37yEy1btkxr1qxRRkaGAoGAJKl///7q37+/8w4AgFssz1EKWADmiWZB7SgW4J47d65Onz6tZcuWKRAIKCsrS1u2bAk/kFBbW6u4uM9uVD333HNqbm7W3/7t30acp7S0VI8++qjj6wOAayzPUQpYAMaJZj3CaNYvlKSioiIVFRW1+11VVVXE548//ji6iwBAL7M9RylgAZinl0YOAMBalucoBSwA4/iClzanxwAALrE9R1mFAAAAAJ7CCCwA81h+6wsAXGd5jlLAAjBPLy3/AgDWsjxHKWABGKc7b5ABANifoxSwAMxj+a0vAHCd5TlKAQvAPCFJTp+G9U7uAoD7LM9RViEAAACApzACC8A4ts/dAgC32Z6jro7AlpWV6aabbtKAAQOUkpKi/Px8HTp0qNNjVq9eLZ/PF7ElJCS42U0Apgnps/lbXd5i3Wl3kKMAomJ5jrpawG7fvl0LFy7U22+/ra1bt6qlpUWzZs1SY2Njp8clJSXp5MmT4e3YsWNudhOAaRyHbhQPK3gEOQogKpbnqKtTCLZs2RLxefXq1UpJSdHevXt1yy23dHicz+dTWlqam10DYLKgJF8Ux1iIHAUQFctztFfnwNbX10uSBg8e3Gm7Cxcu6Nprr1UwGNSNN96oJ554QjfccEO7bZuamtTU1NTmGhfV4qmhcJiv4byH/mbHWMOFS7+rUJT/mrd97lZ3kKPwMnK068jRzvVaARsMBvXAAw9o+vTpGj9+fIftRo8erVWrVmnixImqr6/XU089pWnTpun999/XiBEj2rQvKyvTY4891mb/Tm3u0f4Dg0bFugfec/78eSUnJ8e6G9YgR+F15Khz5Gj7fKFoS3uH7r//fv3mN7/Rzp072w3QjrS0tGjs2LGaN2+eli9f3ub7/ztyEAwGdfbsWV199dXy+ZyOnbunoaFB6enpOn78uJKSkmLdHaPxu+o6U39XoVBI58+f17BhwxQX1/Wp9g0NDUpOTtZXb/gHXdXH7+iaF1ubVPn+k6qvrzfqd9GTyFEz/7ybiN9V15n6uyJHO9crI7BFRUV6/fXXtWPHDkehK0l9+/bVpEmTdPjw4Xa/9/v98vsj/w8aOHBgtF11XVJSkvF/KEzB76rrTPxddWvEwPI3yESDHP2MiX/eTcXvqutM/F2Rox1zdRWCUCikoqIirV+/Xtu2bdPIkSMdn6O1tVXvvfeehg4d6kIPARjJ8qdnnSBHAUTF8hx1dQR24cKFWrNmjTZu3KgBAwYoEAhIuvQvin79+kmSCgoKNHz4cJWVlUmSHn/8cd1888267rrrdO7cOT355JM6duyY7rnnHje7CsAklj896wQ5CiAqlueoqwXsc889J0maMWNGxP6XX35Zd911lySptrY2Ym7HH//4Ry1YsECBQECDBg3S5MmTtWvXLo0bN87NrrrO7/ertLS0zW06tMXvquts/V3Z/vSsE+ToZ2z98+4GflddZ+vvyvYc7bWHuADg81x++CB3VHFUDx+8+eEKTzx8AABuuVJytFfXgQWALrH84QMAcJ3lOUoBC8A8wZDkcxikQe8ELwC4zvIcpYAFYB7LRw4AwHWW5ygFLAADRbOci3eCFwDcZ3eOuroOLC5ZuXKlMjIylJCQoOzsbO3evTvWXTLSjh07NGfOHA0bNkw+n08bNmyIdZeMVVZWpptuukkDBgxQSkqK8vPzdejQoVh3q+dYvn4hnCNHu4Yc7Tpy1Ns5SgHrsnXr1qm4uFilpaXat2+fMjMzlZeXp1OnTsW6a8ZpbGxUZmamVq5cGeuuGG/79u1auHCh3n77bW3dulUtLS2aNWuWGhsbY901oMeRo11HjnYdOeptLKPlsuzsbN1000165plnJF16x3h6erp+8IMfaMmSJTHunbl8Pp/Wr1+v/Pz8WHfFE06fPq2UlBRt375dt9xyS6y7E7Xw8i/XFumqOIfLvwSb9OaxZzyx/AucIUejQ446Q456K0cZgXVRc3Oz9u7dq9zc3PC+uLg45ebmqrq6OoY9g23q6+slSYMHD45xT3pIKBjdBuuQo+gt5Ki3cpQC1kVnzpxRa2urUlNTI/anpqaGXwcJdFcwGNQDDzyg6dOna/z48bHuTs+wfO4Wuo4cRW8gR72Xo6xCAHjcwoULdeDAAe3cuTPWXek5wZAcPw3rofULAZiFHP3LY7yBAtZFQ4YMUZ8+fVRXVxexv66uTmlpaTHqFWxSVFSk119/XTt27NCIESNi3Z2eY/n6heg6chRuI0f/zzEewRQCF8XHx2vy5MmqrKwM7wsGg6qsrFROTk4MewavC4VCKioq0vr167Vt2zaNHDky1l0CXEGOwi3kqLcxAuuy4uJizZ8/X1OmTNHUqVNVXl6uxsZGFRYWxrprxrlw4YIOHz4c/nz06FHV1NRo8ODB+sIXvhDDnpln4cKFWrNmjTZu3KgBAwaE5wImJyerX79+Me5dDwgpipEDV3oCA5CjXUeOdh052sExHsEyWr3gmWee0ZNPPqlAIKCsrCz94he/UHZ2dqy7ZZyqqirNnDmzzf758+dr9erVvd8hg/l8vnb3v/zyy7rrrrt6tzM9KLz8S9q9uiou3tGxF4PNejPwvCeWf4Fz5GjXkKNdR4625aUcpYAFYIxw8KbcE13wnnrRE8ELAG65UnKUKQQAzGP5wwcA4DrLc5QCFoB5LA9eAHCd5TnKKgQAAADwFEZgAZjH8gW4AcB1lucoBSwA44RCQYUcvpPbaXsAsJntOUoBC8A8oZDzkQAPzd0CANdZnqMUsADME4ri1peHghcAXGd5jlLAAjBPMCj5HN7K8tCtLwBwneU5yioEAAAA8BRGYAGYx/JbXwDgOstzlAIWgHFCwaBCDm99eenpWQBwm+05SgELwDyWjxwAgOssz1EKWADmCYYkn73BCwCuszxHKWABmCcUkuT06VnvBC8AuM7yHGUVAgAAAHgKBSwA44SCoai2aKxcuVIZGRlKSEhQdna2du/e3Wn7V199VWPGjFFCQoImTJigzZs3R3VdAHCT7TlKAQvAPKFgdJtD69atU3FxsUpLS7Vv3z5lZmYqLy9Pp06darf9rl27NG/ePN1999165513lJ+fr/z8fB04cKC7PzEA9CzLc9QXCnlowgMAqzU0NCg5OVkzfN/QVb6+jo69GGpRVWi96uvrlZSU1KVjsrOzddNNN+mZZ56RJAWDQaWnp+sHP/iBlixZ0qb93Llz1djYqNdffz287+abb1ZWVpYqKioc9RcA3HCl5CgjsADM042Rg4aGhoitqamp3Us0Nzdr7969ys3NDe+Li4tTbm6uqqur2z2muro6or0k5eXlddgeAGKmF0ZgY5mjFLAAjHNRLboYcripRZKUnp6u5OTk8FZWVtbuNc6cOaPW1lalpqZG7E9NTVUgEGj3mEAg4Kg9AMRKd3K0qwMBscxRltECYIz4+HilpaVpZyC6B6PS0tK0f/9+JSQkhPf5/f6e6h4AGK+7Odq/f3+lp6dH7CstLdWjjz7aA73rORSwAIyRkJCgo0ePqrm5Oarj4+PjI4rXzgwZMkR9+vRRXV1dxP66ujqlpaW1e0xaWpqj9gDQ27qbo6FQSD6fL2JfRwMBscxRphAAMEpCQoKSkpKi2rpavEqXit3JkyersrIyvC8YDKqyslI5OTntHpOTkxPRXpK2bt3aYXsAiIXu5GhycnKbfR0VsLHMUUZgAVyxiouLNX/+fE2ZMkVTp05VeXm5GhsbVVhYKEkqKCjQ8OHDw/NoFy1apFtvvVVPP/20Zs+erbVr12rPnj16/vnnY/ljAEDMxCpHKWABXLHmzp2r06dPa9myZQoEAsrKytKWLVvCDxjU1tYqLu6zG1XTpk3TmjVrtHTpUj388MO6/vrrtWHDBo0fPz5WPwIAxFSscpR1YAEAAOApzIEFAACAp1DAAgAAwFMoYAEAAOApFLAAAADwFApYAAAAeAoFLAAAADyFAhYAAACeQgELAAAAT6GABQAAgKdQwAIAAMBTKGABAADgKRSwAAAA8JT/H+DbnT7dELmgAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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7bffRmBgYA+/CRGR61zJo0aj0e64Wq12OBhw5coVmM1mhIeH2x0PDw/v8g6WwWBw2L+nU7I6sIAlIsUICAhAREQEDhikT+gHgIiICAQEBLg1ppiYGEydOhU5OTkoKipCW1sbtFotfvKTn9hWILh48SIeeeQR/OUvf0FycjKMRiOmTJmCr776Cn/7299s83GB9sLZ39/frTESEXVwNY8GBwcjKirK7lh+fr7ipkCxgCUixQgMDMS5c+fQ2trq1PkBAQGyjHS++eab0Gq1eOSRR+Dn54fHH38cf/zjH23vt7W1oa6uDl999RUAoKamxrZCwfDhw+0+69y5c4iOjnZ7jEREgOt51Gq1QqVS2R3rairWwIED4e/vj8bGRrvjjY2NXU6xioiIkNS/K1wHloiIiIickpKSguTkZPzpT38CAFgsFgwdOhRarRaLFi3q1H/27Nn46quv8D//8z+2Y6mpqYiLi0NRUVGPr8sRWCIiIiJyik6nQ1ZWFpKSkpCcnIzCwkK0tLQgOzsbAJCZmYnBgwfbVoRZsGABJk6ciFWrVmHGjBkoKyvDsWPHsHHjRknXZQFLRERERE6ZPXs2Ll++jCVLlsBgMCAhIQHl5eW2B7Xq6+vh5/fNqq2pqakoLS3F4sWL8eKLL2LEiBHYsWMHxowZI+m6nEJARERERD6FGxkQERERkU9hAUtEREREPoUFLBERERH5FBawRERERORTWMASERERkU9hAUtEREREPoUFLBERERH5FBawRERERORTWMASERERkU9hAUtEREREPoUFLBERERH5FBawRERERORT/j+iftDWAXiqHgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "m=4; n=3\n", + "\n", + "A = np.random.rand(m*n).reshape(m,n)\n", + "\n", + "U, Sdiag, VT = np.linalg.svd(A, full_matrices=False)\n", + "print(\"Singular values are: \", Sdiag)\n", + "\n", + "S = np.diag(Sdiag)\n", + "plot_matrices([U, S, VT], titles=[r\"$U$\", r\"$S$\", r\"$V^T$\"])\n", + "\n", + "# U and V should be orthogonal\n", + "plot_matrices([U.transpose()@U,VT@VT.transpose()], titles=[r\"$U^TU$\",r\"$V^TV$\"])\n", + "plot_matrices([U@U.transpose(),VT.transpose()@VT], titles=[r\"$UU^T$\",r\"$VV^T$\"])\n", + "\n", + "# Check the reconstructed matrix\n", + "plot_matrices([U@S@VT - A], titles=[r\"$USV^T - A$\"])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d4a9ab62", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "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.11.5" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/polynomial_fit.ipynb b/polynomial_fit.ipynb new file mode 100644 index 0000000..6dec347 --- /dev/null +++ b/polynomial_fit.ipynb @@ -0,0 +1,241 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "d6186669", + "metadata": {}, + "source": [ + "# Polynomial fitting" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "c9b00a3e", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "id": "f0c00302", + "metadata": {}, + "source": [ + "Let's consider the example of fitting a polynomial to some measurements of $y_i(x_i)$ (ie. $y$ measured at a set of points $x_i$). An obvious way to solve the normal equations\n", + "\n", + "$$\\mathbf{A^T} \\mathbf{d} = \\mathbf{A^T}\\mathbf{A}\\mathbf{a}$$ \n", + "\n", + "is to calculate the inverse of $\\mathbf{A^T}\\mathbf{A}$ and write\n", + "\n", + "$$\\mathbf{a} = (\\mathbf{A^T}\\mathbf{A})^{-1} \\mathbf{A^T} \\mathbf{d}.$$\n", + "\n", + "For simplicity, let's take a constant error $\\sigma_i$ for each point, so the $\\sigma_i$'s drop out of the equations and we'll just ignore them. " + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "id": "5473e41a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Polynomial coeffs = [-0.91784457 -0.51906032 0.74800661 -0.42672864 0.14414031 0.03095307\n", + " -0.85288205 -0.6404737 0.16328377 -0.54767293 -0.32993672]\n", + "Fitted coeffs = [-1.75823981e+00 -5.19060326e-01 4.17157825e+01 -4.26728618e-01\n", + " -1.81910971e+01 3.09530634e-02 3.05132449e+00 -6.40473700e-01\n", + " -3.98823737e-01 -5.47672929e-01 -2.79319819e-01]\n", + "frac error = [ 9.15618254e-01 5.59540506e-09 5.47692697e+01 -5.16825993e-08\n", + " -1.27204095e+02 -1.33385372e-07 -4.57766294e+00 1.53910324e-09\n", + " -3.44251920e+00 -5.25259157e-10 -1.53413968e-01]\n" + ] + }, + { + "data": { + "image/png": "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+fPne7cVFRUZTqfTePnll/1YYdN9+eWXhiTj008/9W57++23DYfDYezdu7fe111zzTXGpEmTWqHCprviiiuM+++/3/u8qqrK6Nq1qzF37tw62//0pz81Ro0a5bNtyJAhxr333uvXOpurqcfXlN/NQCPJeOONNxps8+CDDxoXXXSRz7bRo0cb6enpfqysZTTm+N577z1DknH06NFWqamlHThwwJBkvP/++/W2seJ3kJ6Zc1RcXKxOnTrVu3/jxo2qqKjQiBEjvNv69++v7t27KycnpzVKbBVr165Vly5d1K9fP9133306fPiw1SW1mPz8fBUUFPj8DF0ul4YMGRJwP8OcnBx17NhRl112mXfbiBEjFBISovXr1zf42hdffFFxcXEaMGCAZs6cqRMnTvi73LMqLy/Xxo0bff7sQ0JCNGLEiHr/7HNycnzaS1J6enrA/ayk5h2fJB0/flw9evRQcnKybrzxRm3btq01ym0Vdvr5nYuUlBQlJSXp+9//vj766COry2m04uJiSWrwe8+Kn2GbuNGkv2zfvl3PPvusnnzyyXrbFBQUKDw8/IyxGQkJCQF7jrSprrvuOt10003q1auXvvnmGz388MP6wQ9+oJycHIWGhlpd3jnz/JwSEhJ8tgfiz7CgoOCM7up27dqpU6dODdZ62223qUePHuratau2bNmihx56SHl5eVq+fLm/S27QoUOHVFVVVeeffW5ubp2vKSgosMXPSmre8fXr108vvPCCLr74YhUXF+vJJ59UWlqatm3b5tcb6raW+n5+brdbpaWlioyMtKiylpGUlKSFCxfqsssuU1lZmf76179q2LBhWr9+vS699FKry2tQdXW1Jk+erKuuukoDBgyot50Vv4P0zEiaMWNGnQOyai+n/8Oyd+9eXXfddbrlllt0zz33WFR54zTn+Jri1ltv1Q033KCBAwcqIyNDK1eu1Keffqq1a9e23EGchb+P0Wr+Pr7x48crPT1dAwcO1O23367/+7//0xtvvKFvvvmmBY8CLSE1NVV33nmnUlJSdM0112j58uWKj4/XX/7yF6tLQyP069dP9957rwYPHqy0tDS98MILSktL01NPPWV1aWd1//33a+vWrXrllVesLuUM9MxImjZtmsaNG9dgm969e3sf79u3T8OHD1daWpoWLVrU4OsSExNVXl6uoqIin96ZwsJCJSYmnkvZjdbU4ztXvXv3VlxcnLZv365rr722xd63If48Rs/PqbCwUElJSd7thYWFSklJadZ7NlVjjy8xMfGMgaOVlZU6cuRIk/6+DRkyRJLZ+9inT58m19tS4uLiFBoaesbVfw39/iQmJjapvZWac3ynCwsL0yWXXKLt27f7o8RWV9/PLyYmxva9MvW54oor9OGHH1pdRoMmTpzovaDgbD2AVvwOEmYkxcfHKz4+vlFt9+7dq+HDh2vw4MFavHixQkIa7twaPHiwwsLClJ2drZtvvlmSOYp99+7dSk1NPefaG6Mpx9cSvv32Wx0+fNjni9/f/HmMvXr1UmJiorKzs73hxe12a/369U2+6qu5Gnt8qampKioq0saNGzV48GBJ0po1a1RdXe0NKI2xefNmSWrVn2FdwsPDNXjwYGVnZysjI0OS2dWdnZ2tiRMn1vma1NRUZWdna/Lkyd5tWVlZrfb71hTNOb7TVVVV6YsvvtAPf/hDP1baelJTU8+4jDdQf34tZfPmzZb/rtXHMAw98MADeuONN7R27Vr16tXrrK+x5HfQb0OLg9C3335r9O3b17j22muNb7/91ti/f793qd2mX79+xvr1673bJkyYYHTv3t1Ys2aNsWHDBiM1NdVITU214hDOateuXcamTZuMRx991Gjfvr2xadMmY9OmTcaxY8e8bfr162csX77cMAzDOHbsmPHLX/7SyMnJMfLz841///vfxqWXXmqcf/75xsmTJ606jAY19RgNwzCeeOIJo2PHjsabb75pbNmyxbjxxhuNXr16GaWlpVYcQoOuu+4645JLLjHWr19vfPjhh8b5559vjBkzxrv/9L+j27dvN37zm98YGzZsMPLz840333zT6N27tzF06FCrDsHHK6+8YjidTmPJkiXGl19+aYwfP97o2LGjUVBQYBiGYdxxxx3GjBkzvO0/+ugjo127dsaTTz5pfPXVV8YjjzxihIWFGV988YVVh9Cgph7fo48+arzzzjvGN998Y2zcuNG49dZbjYiICGPbtm1WHUKDjh075v0dk2T84Q9/MDZt2mTs2rXLMAzDmDFjhnHHHXd42+/YscOIiooypk+fbnz11VfGc889Z4SGhhqrV6+26hAa1NTje+qpp4wVK1YYX3/9tfHFF18YkyZNMkJCQox///vfVh1Cg+677z7D5XIZa9eu9fnOO3HihLdNIPwOEmaaYPHixYakOheP/Px8Q5Lx3nvvebeVlpYaP//5z43Y2FgjKirK+PGPf+wTgALJ2LFj6zy+2scjyVi8eLFhGIZx4sQJY+TIkUZ8fLwRFhZm9OjRw7jnnnu8/xAHoqYeo2GYl2f/+te/NhISEgyn02lce+21Rl5eXusX3wiHDx82xowZY7Rv396IiYkx7rrrLp+gdvrf0d27dxtDhw41OnXqZDidTqNv377G9OnTjeLiYouO4EzPPvus0b17dyM8PNy44oorjI8//ti775prrjHGjh3r0/7VV181LrjgAiM8PNy46KKLjLfeequVK26aphzf5MmTvW0TEhKMH/7wh8Znn31mQdWN47kU+fTFc0xjx441rrnmmjNek5KSYoSHhxu9e/f2+V0MNE09vt///vdGnz59jIiICKNTp07GsGHDjDVr1lhTfCPU951X+2cSCL+DjlPFAgAA2BJXMwEAAFsjzAAAAFsjzAAAAFsjzAAAAFsjzAAAAFsjzAAAAFsjzAAAAFsjzAAAAFsjzAAAAFsjzAAAAFsjzAAAAFsjzAAAAFv7/zpNuZgLG5vvAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# first generate some data from a random polynomial\n", + "\n", + "k = 10 # order of polynomial\n", + "n = 10 # number of data points\n", + "\n", + "x = np.linspace(-2,2,n)\n", + "a0 = -1.0 + 2*np.random.rand(k+1)\n", + "print(\"Polynomial coeffs = \", a0)\n", + "poly = np.polynomial.Polynomial(a0)\n", + "y = poly(x) + np.random.normal(scale=0.0, size=n)\n", + "plt.plot(x,y,'.')\n", + "\n", + "# Compute the design matrix\n", + "# A_{ij} = f_k(x_i)\n", + "A = np.zeros((n, k+1))\n", + "for kk in range(k+1):\n", + " A[:, kk] = x**kk\n", + "\n", + "# Now do the linear algebra part \n", + "rhs = np.transpose(A)@y\n", + "lhs = np.transpose(A)@A\n", + "a = np.linalg.inv(lhs)@rhs\n", + "\n", + "print(\"Fitted coeffs = \", a)\n", + "print(\"frac error = \", (a-a0)/a0)\n", + "\n", + "xx = np.linspace(-2,2,1000)\n", + "poly = np.polynomial.Polynomial(a)\n", + "yy = poly(xx)\n", + "plt.plot(xx,yy,'--')\n", + "\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "id": "13fd394a", + "metadata": {}, + "source": [ + "If you run this with no noise (`scale=0` on line 10), you should see that for low polynomial order the coefficients are fit to machine precision, but the errors become large pretty quickly as you increase the polynomial order. Something is going horribly wrong with the matrix inversion as the polynomial order increases!" + ] + }, + { + "cell_type": "markdown", + "id": "1aaa27d6", + "metadata": {}, + "source": [ + "## Using SVD" + ] + }, + { + "cell_type": "markdown", + "id": "cac127b3", + "metadata": {}, + "source": [ + "Singular value decomposition (SVD) is extremely useful in these situations where you are dealing with a close-to-singular matrix. The ratio of the largest to smallest singular values is known as the **condition number** of the matrix, and measures how close to singular it is." + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "id": "e8d9067e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Range of singular values = 37411\n", + "np.linalg.cond gives 37411\n" + ] + } + ], + "source": [ + "U, Sdiag, VT = np.linalg.svd(A,0)\n", + "\n", + "print(\"Range of singular values = %g\" % (max(abs(Sdiag))/min(abs(Sdiag))))\n", + "\n", + "print(\"np.linalg.cond gives %g\" % (np.linalg.cond(A)))" + ] + }, + { + "cell_type": "markdown", + "id": "762f72b0", + "metadata": {}, + "source": [ + "Let's use SVD to rewrite the normal equations:\n", + "\n", + "$$\\mathbf{A^T} \\mathbf{d} = \\mathbf{A^T}\\mathbf{A}\\mathbf{a}$$ \n", + "\n", + "$$ \\mathbf{VSU^T} \\mathbf{d} = \\mathbf{VSU^T}\\mathbf{USV^T} \\mathbf{a}$$ \n", + "\n", + "$$ \\mathbf{VSU^T} \\mathbf{d} = \\mathbf{VS^2V^T} \\mathbf{a}$$ \n", + "\n", + "$$ \\mathbf{V^TVS}\\mathbf{U^T} \\mathbf{d} = \\mathbf{V^T}\\mathbf{VS^2V^T} \\mathbf{a}$$ \n", + "\n", + "$$ \\mathbf{SU^T} \\mathbf{d} = \\mathbf{S^2V^T} \\mathbf{a}$$ \n", + "\n", + "$$ \\mathbf{U^T} \\mathbf{d} = \\mathbf{SV^T} \\mathbf{a}$$ \n", + "\n", + "$$\\Rightarrow \\mathbf{VS^{-1}}\\mathbf{U^T} \\mathbf{d} = \\mathbf{a}$$ \n", + "\n", + "The matrix $\\mathbf{VS^{-1}}\\mathbf{U^T}$ is called the **pseudo-inverse**. We can use it to map from the data vector $\\mathbf{d}$ to the model parameters $\\mathbf{a}$.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "id": "1595e75e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Fitted coeffs = [-0.9225663 -0.51906032 0.86120186 -0.42672864 -0.23053608 0.03095307\n", + " -0.46748529 -0.6404737 0.01658669 -0.54767293 -0.31193299]\n", + "frac error = [ 5.14436612e-03 -1.24056747e-14 1.51329211e-01 2.34153658e-15\n", + " -2.59938661e+00 -1.92566047e-13 -4.51875798e-01 -1.31741475e-14\n", + " -8.98417984e-01 4.45976152e-15 -5.45672264e-02]\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAGdCAYAAADnrPLBAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABB3ElEQVR4nO3dfVxUdd7/8feAMIAKoiBgouJNqGnelmFlubli2RbbbptambuU2Wppepm3P9O6yi7NWtfazGtLd/fqxiyz1kwlzdqSLE0zLSgT7wXvZ7zl9vz+ODIwCsggw5mB1/PxOI9zZs53zny+TMi77znzPTbDMAwBAAD4qQCrCwAAALgchBkAAODXCDMAAMCvEWYAAIBfI8wAAAC/RpgBAAB+jTADAAD8GmEGAAD4tXpWF1ATioqKdODAATVs2FA2m83qcgAAQCUYhqGTJ0+qWbNmCggof/ylToSZAwcOKD4+3uoyAABAFezdu1fNmzcvd3+dCDMNGzaUZP4wwsPDLa4GAABUhtPpVHx8vOvveHnqRJgpPrUUHh5OmAEAwM9c6hIRLgAGAAB+jTADAAD8GmEGAAD4NcIMAADwa4QZAADg1wgzAADArxFmAACAXyPMAAAAv0aYAQAAfo0wAwAA/BphBgAA+DXCDAAA8Gt14kaTPuHMMWnzv6RzDqkwT9L5m2bVC5FCG0lxXaRWN5S0NwzpEjfWAgAAhJnLctBxVllHTishqr7iIkKl/LPSznXSri+kPV9J7W+TbhxnNj7nkNKmlX+wnn8qCTO5p6Tn20kR8VJkKyk6UYpuLzVtL0UlSvYG3u4aAAB+gzBTRYu/2aNJS79XkWEoKeBHPddqk1oe+Y+Ud6qkUePWJdv1o6SrB0khEVK9YHPkRZIKzklnT0hX9Cxp69gr5Z+RjmSay8+r3N/8uj9LA2aa20VF0ulDUsNYr/QTAABfR5ipgoOOs5q09HsFGXl6L3i6OgXskg6c3xneXGrXT2rRW2rZu+RF9obSXa9W7g2atJUe/VY6sUc69ot0OFM69KO5Pn1IahBT0vboDunla6QGseapquKlWVcp/ApOVQEAaj3CTBVkHTmtIkPKVbByjEi1Ng7q/cIbdPXtf1bnXrdcfoAIDJKatDGXNn3d95055v746A7JFiCdypZ+znYfxQltLCU/I3UdYj4uKpRkkwLcr/u+6HQZAAB+hDBTBQlR9RVgk4oMaXrBUDmN+jpla6gvOlzv/ZGQsMbuj9vfJk3aJ+Vslw5skQ5+Jx3cYo7knD1mntYqtuMT6d1UKe5q1wjOx0eb6rG0U8o3AhVgk2be1Vn3XNPCu30AAKAaEWaqIC4iVDPv6qzJS7dprxGjQJtNz97VybpRjeD6Uvy15lIs/5x0aLt5yqrYwe+kvJPS7i/NRdKtkr4PDtKPRkvNyB+qyUtt6nNltOIaBksBgTXbDwAAqoAwU0X3XNNCfa6M1q4jZ9QqKsz3Ts8EhUhX9HB/7obHpfYDz4/efCdH1iYF5nyvBrZz6mbbodMKUaFhaNeRM4rb9r/S+r+a36Iq/iZVdAcpqp1UP5prcQAAPoMwcxniIkJ9L8RUJDBIirnKXLoO0RnHWd3w3CdqoRx1smVppxGnQJtNraLCpO8zpdOHzWXXf9yPE1RfevhzKer8qE/299KZo1JkghTRnBEdAECN8psw8/LLL2v27NnKzs5Wly5dNG/ePF177bWXfiHKFRcRqmfv6qLJS7cpqyjO/XTZbbOka1KlwxnmcihDOvyjdGKvlH9aCo8rOdA3r0mbFprbtkDza+Lhzc4vV0g3PSGFRpr7z54wQ1Vw/WrvDxcyA0Dd5BdhZvHixRo7dqzmz5+vXr166S9/+YuSk5OVmZmppk2bWl2eXyv3dFlwfemK7uZSWkGu5NjnHkbCmkhRV0rHd5mzGzv3m0uxvlNKtldPkTb/n1Qv1DxdVb+JuQ6LMufi6TNeCgk32x7ZIeU6JHuEeSFzSLhUz15mP0rm/VGtuJCZYAYAlWczjOLZ23xXr169dM011+ill16SJBUVFSk+Pl6PPvqoJk6ceMnXO51ORUREyOFwKDw83Nvl1l1FheZpKed+yXnAXE4dkm75fyVt3r5Xylhe/jEmHygJSu8/In33pvv+eiGSPdwMNg9+IoVG6qDjrP46a6quDfhRZw27zsquXNl1f5/2atgwQgoKlTr/3pzrR5IO/ySdPCAFBl+wBJnrhnFS4PmcX1RkXh9Ug9cI1aZgVltCGf0ArFHZv98+PzKTl5enTZs2adKkSa7nAgIC1K9fP6Wnp5f5mtzcXOXm5roeO51Or9cJmdfKNIw1lwsvPi52z/9JeafPX49zRDpzpGT77HH3EZ+QcHMSwnMO81tYkjljcsE5c/LAwGBJ5rw/3W0/6beBX7q/1/pS24m3loSZb/5X+npB+f14bHPJ7M1rZkhf/sWcyyegnnkaLeD8YguU/rTSvN2EJG14Vdowv1Sbeudfd377jnlS0w5m2+3LzHt12QLclnMFRQrPPKK2+p1+UryKDGn5+2/pN7/8pDB70Pl2Nkm2ktdd+5B5HZQk7dskbXu37Ha2AKnTXSVtD2VIP/77fFgLKLU+v7T5VUm9J/ZIP60qFepsJceXpBZJ5kXiknQyW/o5TV/vOqZ3N+1Tkcx2d/eMV6+EJuaEjsXHPXNM+mVtyc/eVfP540Z3KDnuOaeU9dnF71/ctnHrks8i74y0e72rqVs72cxru6LamQ8L8qS9G8p+f9n0UVaBHl3lVJEh1bMVaX5fqV+H2At+Fuc3QyNL/tsxDPN6MtdxL6jD3lBqVCqkHv5JknHxz9ZmMwN5eLOStif2SEaRexvX/d7sUoNSI9anDklFhfrguwN6ZkWGigybAmzS5IEdlNK9pft0D2dPmMe98P1lM8N+EAEIvsnnw8yRI0dUWFiomJgYt+djYmKUkZFR5mtmzpypGTNm1ER58JTNZt5byt5AapxQcdtb/8dcJHPUJ9dp/kE75zC365n/sCZE1df8ouuVkR+vMOUq1JanMOXpD10bK0x55j2zioOMZP5D3/QqqTDXPC1WmG+uC/LM9fmQJMncJ5n/wBfmVVzvmaPSsZ3l788/U7J9PMuc9+cCIZJuDZQWFSS7nkuw7VdYxrvlHzfxtpKAcvhH6au/ld82tlOpMPOD9Ol/l9/2zr+VhI6cH6QV/1V+29ueLwkdR36SPhylayVdG1SqzXfnl18/VXLcY1nSe6nlH/fmSVLT86Ovjn3S4vvKb9v7Man/0+b26UPSG78rv+01D0oD55jb5xzSP24vt+nZwj4qMkZIkoKNPPVb/yf3oFxaxxTpD/8oefzqjeXX0K6/dO+SUm37SAVny27b6kZpWKkRzVdvMueRKkuz7tLwT0se/++vJMde3SnpztJnaT+R8r+9UkGPfVPy3Gu/Nj+/soQ3l8ZuL3m86HYpZ5sUEFRqZPP8dlgT6YEPS9r+5wXzNHRw/ZIl6Pw6JFxqf3tJyCsqumhizwsxwoQL+XyYqYpJkyZp7NixrsdOp1Px8fEWVoTLFhBo/l9v8YXEpcRFhGrgb4do8tJtKjQM14XMYeWdmukz3lwq41dTza+0G4VmoCoqOL9dZG5Htipp232oOZpxYTvj/OPGbUratks2b0thFJn/B28USUaRHGdy9fyqDGUZJffa2mwkytlnusLtga525v+VG+Zrm5Q6bsxV0g1jL2inku3SNUS2kro/4F6DSmpx61vDGKnDHecfGCX3FpPM7UYtSx6HNtaxK/pqy57jssk4Py5jtu/SPEKNSo9G2BtKCTe5H9N1bMO82WqxoFApvtf5/UbJuvg1Ec1L2gYGmxNDutqq5JiGYZ5KLBYQaN7A1a1f5vpsXoEOHy+ZeNKQtLuoqWLC7QqpZ7v4uBdOatkwzv2YpbdLT2gpmf9t59tLtS117AtHRILrmyOUF/4MZJiBojRbgAxbgIqKzM8iwFby2eUXShe0Ll/gBX8uzjnM0dSyNHD/n0/9tEra+1XZbeuFSlOzSx6/Pdi8WW9YY/NauuIvEpxfv3Oupya+/0OtOA2L6uPz18zk5eUpLCxM7777rlJSUlzPP/DAAzpx4oQ++OCDSx6Da2bqhoOOs747748HFn+z56Jg5m//WB90nNX1z61VUal/XQJtNn0xsa9ffTa1vh8TblZco7CSJ4sKyw5IxWE3uFRbxz7zdF7h+RHNooKSbVug1PqmkrZb35GO7za/CZl3wRIYLA0udW3c338t7fu6zH4Y9ULV5vTfVWSYozgT6r2llrZD6pN0nRo06yDFdjbnxboweMFv1ZprZoKDg9WjRw+tWbPGFWaKioq0Zs0ajRo1ytri4FP8bt6fcvj8hIyVUHqW7NKhzN/6Uuv7UTrISJ7NEVV6JOxSrv5D5dveu8Q8ZXvmmHm6sPjLBM4DOnLyrIp+LLkYv0/AVl0VsFv6ekPJ6+uFSDGdzOv2bv0fJvisI3x+ZEYyv5r9wAMP6NVXX9W1116rv/zlL3rnnXeUkZFx0bU0ZWFkBrBGbRktox++4cIRphsCvlf7gH16vJtN9R07zAuui78sEJUojSo1wrN+ntQgVmrXr8zT1fBNtWZkRpLuueceHT58WNOmTVN2dra6du2qlStXVirIALBObRktox++4cIRpnTjav3mziGqX3watqjIvAj/4Bb367oK8qRPnzUvwg+oJ7W83ry1S8c7zW9fwu/5xcjM5WJkBgBqD49HmM45pM+fl35ebc5oXswWILW5RbpuhNS2n/cKRpVV9u83YQYAUHcc/UXKXCH98GHJhca3TJNuHGdtXShTrTrNBABAtWjSRur9qLkc/UX67i3p6kEl+zM/lr5/V+rzXyXzIcHnVTwzEQAAtVWTNuZcUhFXlDy3fp45i/bfkqSlD5sTO8LnEWYAACiW/KzU4TeSDGnr29JLPaWVk8zZx+GzCDMAABRr1tW8h9zwdeZFwUUF5i1CXr5WylhhdXUoB2EGAIALNesm3feedN9S8+ahJw+6318NPoULgAEAKE/bW6RH0s3raDqVunnpmWMX34sLlmFkBgCAigSFSN3uK7k1wplj0iu9pZWTpcICa2uDJMIMAACe+Xm1edrpq5el/7vLDDewFGEGAABPdBkk/eGfUlB9KeszacHN0pGfra6qTiPMAADgqY53Sg+mSZGtpBO7pdeTpf3fWl1VnUWYAQCgKmKuklI/keK6SGeOSv/4jbRng9VV1UmEGQAAqqpBtPTAcimhjxTeTGrS1uqK6iS+mg0AwOUICZeGLJHOnZDqN7G6mjqJkRkAAC5XUIjUMLbk8dYl0oEtlpVT1xBmAACoThkfSUsfkt68R3Lst7qaOoEwAwBAdWp1o9S0g3QqW3rrHin3lNUV1XqEGQAAqlNIuDT4bal+tJT9vTlKU1RodVW1GmEGAIDqFtlSGvSmFGiXMldIn8+2uqJajTADAIA3xF8r3fFXc3vdc9LOdZaWU5sRZgAA8JYug6Ru90sypKz/WF1NrcU8MwAAeNNts6XE26T2t1ldSa3FyAwAAN4UFEqQ8TLCDAAANcV5UHrnAelYltWV1CqEGQAAaspH46QflkkfPioZhtXV1BqEGQAAakryM1K9UGnXf6Tv3ra6mlqDMAMAQE1pnCDd9IQkqXDVFG344RcddJy1uCj/R5gBAKAmJY2So0FrBZ49qp/fHK/rn1urxd/ssboqv0aYAQCgBh08XagRx4ZIkoYErlUH7dLkpdsYobkMhBkAAGpQ1pHTSi/qqA8LkxRgM/RIvQ9VaBjadeSM1aX5LSbNAwCgBiVE1VeATZpVMEg7jTgtKLhdgTabWkWFWV2a32JkBgCAGhQXEaqZd3XWQTXVXwp+r1xbqJ69q5PiIkKtLs1vMTIDAEANu+eaFupzZbR2HTmjVlFhigsPkZwHpPBmVpfmlwgzAABYIC4i1ByNOfqLtOCP0tkT0qObpMAgq0vzO5xmAgDASg3jzFGZE7ul796yuhq/5LUw88wzz6h3794KCwtTo0aNymyzZ88eDRw4UGFhYWratKnGjx+vgoICtzbr1q1T9+7dZbfb1bZtWy1atMhbJQMAUPOCw6Trx5jbn8+WCvMtLccfeS3M5OXl6e6779YjjzxS5v7CwkINHDhQeXl5Wr9+vf7xj39o0aJFmjZtmqtNVlaWBg4cqL59+2rLli0aM2aMHnzwQa1atcpbZQMAUPN6/kmqHy2d2MPoTBXYDMO7d7patGiRxowZoxMnTrg9//HHH+v222/XgQMHFBMTI0maP3++JkyYoMOHDys4OFgTJkzQRx99pG3btrleN2jQIJ04cUIrV66sdA1Op1MRERFyOBwKDw+vln4BAFCt1s+TVk+VmrSVRn4jBXAlSGX/flv2k0pPT1fnzp1dQUaSkpOT5XQ6tX37dlebfv36ub0uOTlZ6enpFR47NzdXTqfTbQEAwKf1GCbZI6SjO6SfPra6Gr9iWZjJzs52CzKSXI+zs7MrbON0OnX2bPnTPs+cOVMRERGuJT4+vpqrBwCgmtkbSj3/aG7/8KG1tfgZj8LMxIkTZbPZKlwyMjK8VWulTZo0SQ6Hw7Xs3bvX6pIAALi06x6RBr8tpbxidSV+xaN5ZsaNG6dhw4ZV2KZ169aVOlZsbKy+/vprt+dycnJc+4rXxc+VbhMeHq7Q0PJnSrTb7bLb7ZWqAwAAn9EwVkq81eoq/I5HYSY6OlrR0dHV8sZJSUl65plndOjQITVt2lSSlJaWpvDwcHXs2NHVZsWKFW6vS0tLU1JSUrXUAACAzyrIlQrzzNNPqJDXrpnZs2ePtmzZoj179qiwsFBbtmzRli1bdOrUKUlS//791bFjR91///367rvvtGrVKk2dOlUjR450jaqMGDFCO3fu1BNPPKGMjAz97W9/0zvvvKPHH3/cW2UDAGC9b/8pvdBRWv+S1ZX4Ba+FmWnTpqlbt2568sknderUKXXr1k3dunXTxo0bJUmBgYFavny5AgMDlZSUpPvuu09Dhw7VU0895TpGQkKCPvroI6WlpalLly6aM2eO/v73vys5OdlbZQMAYL2gMOnMEWnTIibRqwSvzzPjC5hnBgDgVwrypBc7SqcPS3/4p9TxTqsrsoTPzzMDAADKUS9Y6j7U3P7mNWtr8QOEGQAAfFGPYZJsUtZn5p21US7CDAAAvqhRC6ntLeY292uqEGEGAABf1XWIuf7ubamoyNpafJhH88wAAIAalDhQun6MdPUfuPFkBQgzAAD4qqAQ6dczrK7C5xHzAACAXyPMAADg6/ZskN57SPr+Xasr8UmEGQAAfF3WZ9L375gXAuMihBkAAHzdVb811zs/lc4cs7YWH0SYAQDA10W1k2I6S0UF0o//troan0OYAQDAH3Q6Pzqz/X1r6/BBhBkAAPxB8ammrM+l00esrcXHEGYAAPAHjVtLcV0lo1D64QOrq/EpTJoHAIC/6HSXVJgnBYVaXYlPIcwAAOAvkh6Vrh9tdRU+h9NMAAD4C+7PVCZ+KgAA+Ju8M9KBzVZX4TM4zQQAgD85skOaf4MUGCSN/0WqF2x1RZZjZAYAAH/SuLVkbyjlOqXdX1hdjU8gzAAA4E8CAqTEAeZ25sfW1uIjCDMAAPibxIHmOvNjyTCsrcUHEGYAAPA3rW+S6oVIjr3SkZ+srsZyhBkAAPxNUKjU8npze8cn1tbiAwgzAAD4o7a3mGvCDF/NBgDALyXeZq7b/traOnwAYQYAAH/UOEFKGml1FT6B00wAAMCvEWYAAPBXeaelzf8nfTzR6kosRZgBAMBfFRVIHz4mbXhFOrHH6mosQ5gBAMBfhURIV/Qwt7M+t7YWCxFmAADwZwk3mmvCDAAA8EsJfcx11n/q7K0NCDMAAPiz+F5SYLB08oB0bKfV1VjCa2Fm165dSk1NVUJCgkJDQ9WmTRs9+eSTysvLc2u3detW3XjjjQoJCVF8fLxmzZp10bGWLFmi9u3bKyQkRJ07d9aKFSu8VTYAAP4lKFRqfo25XUdPNXktzGRkZKioqEivvvqqtm/frhdffFHz58/X5MmTXW2cTqf69++vli1batOmTZo9e7amT5+uBQsWuNqsX79egwcPVmpqqjZv3qyUlBSlpKRo27Zt3iodAAD/0upGSTbpeJbVlVjCZhg1d4Jt9uzZeuWVV7RzpzkM9sorr2jKlCnKzs5WcHCwJGnixIlatmyZMjIyJEn33HOPTp8+reXLl7uOc91116lr166aP39+pd7X6XQqIiJCDodD4eHh1dwrAAAsdvqoZLNJYY2trqRaVfbvd41eM+NwONS4cckPOj09XX369HEFGUlKTk5WZmamjh8/7mrTr18/t+MkJycrPT293PfJzc2V0+l0WwAAqLXqN6l1QcYTNRZmduzYoXnz5unhhx92PZedna2YmBi3dsWPs7OzK2xTvL8sM2fOVEREhGuJj4+vrm4AAAAf43GYmThxomw2W4VL8SmiYvv379eAAQN0991366GHHqq24sszadIkORwO17J3716vvycAAJba+Zn0+q3Ssrp380mP75o9btw4DRs2rMI2rVu3dm0fOHBAffv2Ve/evd0u7JWk2NhY5eTkuD1X/Dg2NrbCNsX7y2K322W32y/ZFwAAag9D2rO+Tt7WwOMwEx0drejo6Eq13b9/v/r27asePXpo4cKFCghwHwhKSkrSlClTlJ+fr6CgIElSWlqaEhMTFRkZ6WqzZs0ajRkzxvW6tLQ0JSUleVo6AAC11xU9JVug5NwnndgrNao7l1h47ZqZ/fv36+abb1aLFi30/PPP6/Dhw8rOzna71mXIkCEKDg5Wamqqtm/frsWLF2vu3LkaO3asq83o0aO1cuVKzZkzRxkZGZo+fbo2btyoUaNGeat0AAD8j72BFNvZ3N67wdpaapjHIzOVlZaWph07dmjHjh1q3ry5277ib4NHRERo9erVGjlypHr06KGoqChNmzZNw4cPd7Xt3bu33nzzTU2dOlWTJ09Wu3bttGzZMnXq1MlbpQMA4J9aJEkHt0h7vpI6/97qampMjc4zYxXmmQEA1Anb35eWDJNiOkuPfGF1NZfNJ+eZAQAAXhR/nbk+tF0657C2lhrktdNMAACghoXHSc26Sw1ipLMnpJAIqyuqEYQZAABqk+GfWl1BjeM0EwAA8GuEGQAAaiPnAamoyOoqagRhBgCA2sQwpL92k17oIB3dYXU1NYIwAwBAbWKzmRcAS9L+TdbWUkMIMwAA1DZX9DDX+zdaW0cNIcwAAFDbXNHdXDMyAwAA/NIVPc119jYp/5y1tdQAwgwAALVNoxZSWJRUlC/lbLO6Gq8jzAAAUNvYbCXXzeyr/dfNMAMwAAC1Ucc7pcatpWbdrK7E6wgzAADURt3utbqCGsNpJgAA4NcIMwAA1FbnnNKuLyXHPqsr8SrCDAAAtdWyR6RFt0k/fGB1JV5FmAEAoLaKvdpcH9xqbR1eRpgBAKC2iutirrMJMwAAwB/FnR+ZOZwp5Z+1thYvIswAAFBbNYyT6kdLRqGU84PV1XgNYQYAgNrKZit13cwWS0vxJsIMAAC1WR24boYZgAEAqM063G6ebmqZZHUlXkOYAQCgNruiR8lNJ2spTjMBAAC/RpgBAKC2O/yTtPn/pAObra7EKwgzAADUdhvmSx+MlLYvs7oSryDMAABQ28VcZa5ztltbh5cQZgAAqO2Kw8yh2jlxHmEGAIDarmkHc+3cL509bm0tXkCYAQCgtguJkCJamNu18LYGhBkAAOqCmI7muhaeaiLMAABQFzQ9H2Zq4UXAzAAMAEBd0GWQ1Or6khtP1iJeHZm544471KJFC4WEhCguLk7333+/Dhw44NZm69atuvHGGxUSEqL4+HjNmjXrouMsWbJE7du3V0hIiDp37qwVK1Z4s2wAAGqf6ESpbT+pQVOrK6l2Xg0zffv21TvvvKPMzEy99957+uWXX/T73//etd/pdKp///5q2bKlNm3apNmzZ2v69OlasGCBq8369es1ePBgpaamavPmzUpJSVFKSoq2bdvmzdIBAICfsBmGYdTUm3344YdKSUlRbm6ugoKC9Morr2jKlCnKzs5WcHCwJGnixIlatmyZMjIyJEn33HOPTp8+reXLl7uOc91116lr166aP39+pd7X6XQqIiJCDodD4eHh1d8xAAD8wY410u4vpcSBUnPfv/lkZf9+19gFwMeOHdMbb7yh3r17KygoSJKUnp6uPn36uIKMJCUnJyszM1PHjx93tenXr5/bsZKTk5Wenl7ue+Xm5srpdLotAADUed+9Lf1njrTzU6srqVZeDzMTJkxQ/fr11aRJE+3Zs0cffPCBa192drZiYmLc2hc/zs7OrrBN8f6yzJw5UxEREa4lPj6+uroDAID/ik4010d+sraOauZxmJk4caJsNluFS/EpIkkaP368Nm/erNWrVyswMFBDhw6Vt89sTZo0SQ6Hw7Xs3bvXq+8HAIBfKA4zhzOtraOaefzV7HHjxmnYsGEVtmndurVrOyoqSlFRUbryyivVoUMHxcfH66uvvlJSUpJiY2OVk5Pj9trix7Gxsa51WW2K95fFbrfLbrd70i0AAGq/6Pbm+sjPUlGRFFA7ppvzOMxER0crOjq6Sm9WVFQkybymRZKSkpI0ZcoU5efnu66jSUtLU2JioiIjI11t1qxZozFjxriOk5aWpqSkpCrVAABAnRWZIAUESfmnJec+qVELqyuqFl6LZBs2bNBLL72kLVu2aPfu3Vq7dq0GDx6sNm3auILIkCFDFBwcrNTUVG3fvl2LFy/W3LlzNXbsWNdxRo8erZUrV2rOnDnKyMjQ9OnTtXHjRo0aNcpbpQMAUDsF1pOatDW3D9ee62a8FmbCwsK0dOlS3XLLLUpMTFRqaqquvvpqffbZZ65TQBEREVq9erWysrLUo0cPjRs3TtOmTdPw4cNdx+ndu7fefPNNLViwQF26dNG7776rZcuWqVOnTt4qHQCA2iv6SnN9pPZcN1Oj88xYhXlmAAA478gOKSDQPMUUEGh1NRWq7N9v7s0EAEBdEtXW6gqqXe24jBkAANRZhBkAAOoSw5A+ny29+yfp9BGrq6kWhBkAAOoSm03a/Ia07T3p0I9WV1MtCDMAANQ1rpmAMypu5ycIMwAA1DVRxV/Prh1zzRBmAACoa2rZPZoIMwAA1DVN2pnro79YW0c1IcwAAFDXFN/SwLlPyjtjbS3VgDADAEBdE9ZYCmkkBdSTHHutruayMQMwAAB1jc0mPfKl1CBGCgyyuprLRpgBAKAuimhudQXVhtNMAADArxFmAACoiw5lSEsflv492upKLhthBgCAuqgwT9r6tvTjcqsruWyEGQAA6qLGrc31mSPS2ePW1nKZCDMAANRF9gZSwzhz++hOa2u5TIQZAADqquLJ847usLaOy0SYAQCgrmrSxlwTZgAAgF9iZAYAAPi1Jm0lW4CU79/3Z2IGYAAA6qo2t0hTsqV6dqsruSyEGQAA6qp6wVZXUC04zQQAAPwaYQYAgLrsixel15KlH/9tdSVVRpgBAKAuO/qLtPcrKecHqyupMsIMAAB1WeMEc308y9o6LgNhBgCAuiyylbk+RpgBAAD+KJKRGQAA4M+KTzOdypHy/HPyPMIMAAB1WWikFNLI3D6+y8pKqoxJ8wAAqOuatJFOHZLOOayupEoIMwAA1HWpaVJAoNVVVBmnmQAAqOv8OMhINRRmcnNz1bVrV9lsNm3ZssVt39atW3XjjTcqJCRE8fHxmjVr1kWvX7Jkidq3b6+QkBB17txZK1asqImyAQCAH6iRMPPEE0+oWbNmFz3vdDrVv39/tWzZUps2bdLs2bM1ffp0LViwwNVm/fr1Gjx4sFJTU7V582alpKQoJSVF27Ztq4nSAQCo/Q7/JL1+q7TwNqsrqRKvh5mPP/5Yq1ev1vPPP3/RvjfeeEN5eXl6/fXXddVVV2nQoEF67LHH9MILL7jazJ07VwMGDND48ePVoUMHPf300+revbteeuklb5cOAEDdEBQq7Vkv7f1aKiq0uhqPeTXM5OTk6KGHHtK//vUvhYWFXbQ/PT1dffr0UXBwyS3Ik5OTlZmZqePHj7va9OvXz+11ycnJSk9PL/d9c3Nz5XQ63RYAAFCO8GZSYLBUlC8591tdjce8FmYMw9CwYcM0YsQI9ezZs8w22dnZiomJcXuu+HF2dnaFbYr3l2XmzJmKiIhwLfHx8ZfTFQAAareAQKlRC3PbD29r4HGYmThxomw2W4VLRkaG5s2bp5MnT2rSpEneqLtCkyZNksPhcC179+6t8RoAAPArxWHG4X9/Mz2eZ2bcuHEaNmxYhW1at26ttWvXKj09XXa73W1fz549de+99+of//iHYmNjlZOT47a/+HFsbKxrXVab4v1lsdvtF70vAACoQHGYObHH2jqqwOMwEx0drejo6Eu2++tf/6r//u//dj0+cOCAkpOTtXjxYvXq1UuSlJSUpClTpig/P19BQUGSpLS0NCUmJioyMtLVZs2aNRozZozrWGlpaUpKSvK0dAAAUJ6I85dk1IUwU1ktWrRwe9ygQQNJUps2bdS8eXNJ0pAhQzRjxgylpqZqwoQJ2rZtm+bOnasXX3zR9brRo0frpptu0pw5czRw4EC9/fbb2rhxo9vXtwEAwGWKbCWFN5fs4VZX4jFLb2cQERGh1atXa+TIkerRo4eioqI0bdo0DR8+3NWmd+/eevPNNzV16lRNnjxZ7dq107Jly9SpUycLKwcAoJbp/Htz8UM2wzAMq4vwNqfTqYiICDkcDoWH+1/iBACgLqrs32/uzQQAAPwaYQYAAJjee1B64Spp15dWV+IRwgwAADCdPiw590kndltdiUcIMwAAwOSnc80QZgAAgIkwAwAA/FqjluaaMAMAAPwSIzMAAMCvFd/SwLlfKiywthYPWDoDMAAA8CENY81TTeHNpFynFNbY6ooqhTADAABMAYHSmK1WV+ExTjMBAAC/RpgBAAB+jTADAABKfPsv85YGy8daXUmlEWYAAIA75z7p+C6rq6g0wgwAACgRcYW5du63tg4PEGYAAECJ8Obm2kGYAQAA/qh4ZCbvpHTOYW0tlUSYAQAAJYLrSyGNzG0/GZ0hzAAAAHcR5081+cl1M8wADAAA3DXrJgU3kAKDrK6kUggzAADA3Z0vWV2BRzjNBAAA/BphBgAAlM0wrK6gUggzAADA3cGt5i0NXr7W6koqhWtmAACAu5Bw85YGgXZzdMZms7qiCjEyAwAA3DVsJskmFeZKp49YXc0lEWYAAIC7esFSg6bmtnOftbVUAmEGAABcLPz8bQ38YBZgwgwAALiYH909mzADAAAu5rp7NqeZAACAP4rpKMVfV3KfJh/GV7MBAMDFug81Fz/AyAwAAPBrhBkAAFC+okKfv60BYQYAAFyssMC8pcHT0dKZY1ZXUyGvhplWrVrJZrO5Lc8995xbm61bt+rGG29USEiI4uPjNWvWrIuOs2TJErVv314hISHq3LmzVqxY4c2yAQBAYD2p4JxkFEonD1hdTYW8PjLz1FNP6eDBg67l0Ucfde1zOp3q37+/WrZsqU2bNmn27NmaPn26FixY4Gqzfv16DR48WKmpqdq8ebNSUlKUkpKibdu2ebt0AADqtvA4c+08aG0dl+D1MNOwYUPFxsa6lvr167v2vfHGG8rLy9Prr7+uq666SoMGDdJjjz2mF154wdVm7ty5GjBggMaPH68OHTro6aefVvfu3fXSSy95u3QAAOq2hufDTF0fmXnuuefUpEkTdevWTbNnz1ZBQYFrX3p6uvr06aPg4GDXc8nJycrMzNTx48ddbfr16+d2zOTkZKWnp5f7nrm5uXI6nW4LAADwkCvMZFtbxyV4dZ6Zxx57TN27d1fjxo21fv16TZo0SQcPHnSNvGRnZyshIcHtNTExMa59kZGRys7Odj1Xuk12dvk/2JkzZ2rGjBnV3BsAAOqY8Gbm2lnLRmYmTpx40UW9Fy4ZGRmSpLFjx+rmm2/W1VdfrREjRmjOnDmaN2+ecnNzq70jpU2aNEkOh8O17N2716vvBwBAreQamfHta2Y8HpkZN26chg0bVmGb1q1bl/l8r169VFBQoF27dikxMVGxsbHKyclxa1P8ODY21rUuq03x/rLY7XbZ7fZLdQUAAFSkSVupRZLUtKPVlVTI4zATHR2t6OjoKr3Zli1bFBAQoKZNm0qSkpKSNGXKFOXn5ysoKEiSlJaWpsTEREVGRrrarFmzRmPGjHEdJy0tTUlJSVWqAQAAVFKr66U/rbS6ikvy2gXA6enp+stf/qLvvvtOO3fu1BtvvKHHH39c9913nyuoDBkyRMHBwUpNTdX27du1ePFizZ07V2PHjnUdZ/To0Vq5cqXmzJmjjIwMTZ8+XRs3btSoUaO8VToAAPAjNsPwzhzF3377rf785z8rIyNDubm5SkhI0P3336+xY8e6nQLaunWrRo4cqW+++UZRUVF69NFHNWHCBLdjLVmyRFOnTtWuXbvUrl07zZo1S7fddlula3E6nYqIiJDD4VB4eHi19REAgDqhqNBcBwTW6NtW9u+318KMLyHMAABQRa/1l/ZtlP64QmpxXY2+dWX/fnNvJgAAUAGbeUsDH/56NmEGAACUL9z3J84jzAAAgPI1PD9xng/f0oAwAwAAyucHN5skzAAAgPL5wSzAhBkAAFC+4vsz+XCY8eqNJgEAgJ+LiJda9JYal32rIl9AmAEAAOVrFC/96WOrq6gQp5kAAIBfI8wAAIBLKyqUCvOtrqJMhBkAAFCxxfdJT0dJP3xgdSVlIswAAICKBQZLRpF0KsfqSspEmAEAABVrEGuuffSWBoQZAABQsQZNzTUjMwAAwC81PD8yQ5gBAAB+qXhk5iRhBgAA+KPia2ZO+eY1M8wADAAAKhYeJ7W8QWoYIxUVSQG+NRZCmAEAABULjZT++JHVVZTLt6IVAACAhwgzAACgcooKpYI8q6u4CGEGAABc2vuPmLc02Pwvqyu5CGEGAABcWj27z97SgDADAAAuzYcnziPMAACAS/PhifMIMwAA4NJ8eOI8wgwAALi0hjHm+tQha+soA2EGAABcWoPiMJNjzgLsQ5gBGAAAXFr9plKrG81QU3BOCg6zuiIXwgwAALi0esHSsOVWV1EmTjMBAAC/RpgBAACVV1QoFeRaXYUbwgwAAKicf4+Wnmoiff2/VlfihjADAAAqJyhMkiGd9q2vZ3s1zHz00Ufq1auXQkNDFRkZqZSUFLf9e/bs0cCBAxUWFqamTZtq/PjxKigocGuzbt06de/eXXa7XW3bttWiRYu8WTIAAChP/ShzffqItXVcwGvfZnrvvff00EMP6dlnn9WvfvUrFRQUaNu2ba79hYWFGjhwoGJjY7V+/XodPHhQQ4cOVVBQkJ599llJUlZWlgYOHKgRI0bojTfe0Jo1a/Tggw8qLi5OycnJ3iodAACUpf75Wxr42MR5NsMwjOo+aEFBgVq1aqUZM2YoNTW1zDYff/yxbr/9dh04cEAxMeZEPPPnz9eECRN0+PBhBQcHa8KECfroo4/cQtCgQYN04sQJrVy5stL1OJ1ORUREyOFwKDw8/PI6BwBAXfXTKunNP0hxXaSHP/f621X277dXTjN9++232r9/vwICAtStWzfFxcXp1ltvdQsl6enp6ty5syvISFJycrKcTqe2b9/uatOvXz+3YycnJys9Pb3C98/NzZXT6XRbAADAZfLR00xeCTM7d+6UJE2fPl1Tp07V8uXLFRkZqZtvvlnHjh2TJGVnZ7sFGUmux9nZ2RW2cTqdOnv2bLnvP3PmTEVERLiW+Pj4ausbAAB1VvFpptOHpeo/sVNlHoWZiRMnymazVbhkZGSo6Pw9G6ZMmaLf/e536tGjhxYuXCibzaYlS5Z4pSOlTZo0SQ6Hw7Xs3bvX6+8JAECtVz/avKVBh9/41FwzHl0APG7cOA0bNqzCNq1bt9bBgwclSR07dnQ9b7fb1bp1a+3Zs0eSFBsbq6+//trttTk5Oa59xevi50q3CQ8PV2hoaLk12O122e32ynUKAABUTlCIT97SwKMwEx0drejo6Eu269Gjh+x2uzIzM3XDDTdIkvLz87Vr1y61bNlSkpSUlKRnnnlGhw4dUtOm5rBVWlqawsPDXSEoKSlJK1ascDt2WlqakpKSPCkbAADUYl65ZiY8PFwjRozQk08+qdWrVyszM1OPPPKIJOnuu++WJPXv318dO3bU/fffr++++06rVq3S1KlTNXLkSNeoyogRI7Rz50498cQTysjI0N/+9je98847evzxx71RNgAAqIzCAqkgz+oqXLw2ad7s2bM1aNAg3X///brmmmu0e/durV27VpGRkZKkwMBALV++XIGBgUpKStJ9992noUOH6qmnnnIdIyEhQR999JHS0tLUpUsXzZkzR3//+9+ZYwYAAKss+7P0dJT07T+srsTFK/PM+BrmmQEAoJosHyttfE3q84T0qylefStL55kBAAC1VP3z186ePmxtHaUQZgAAQOU1IMwAAAB/5oP3ZyLMAACAyuM0EwAA8GsNSt3SwEd4NGkeAACo4xo0lRL6mKebCgukQOujhPUVAAAA/2FvKD3wb6urcMNpJgAA4NcIMwAAwHM+dEsDwgwAAPDMu6nmLQ2+e8vqSiQRZgAAgKfqhUgypNO+MdcMYQYAAHimfpS5Pn3U2jrOI8wAAADPFIeZM0esreM8wgwAAPBMWPHIDGEGAAD4o7Am5voMp5kAAIA/qu9bYYYZgAEAgGcaNpNa95XCm1ldiSTCDAAA8FR4nDR0mdVVuHCaCQAA+DXCDAAAqJrCAnOxGGEGAAB4btHt0tNNpB2fWF0JYQYAAFRBYLC59oGJ8wgzAADAc65ZgK3/ejZhBgAAeM6HZgEmzAAAAM/50MR5hBkAAOA5RmYAAIBfc92fyfowwwzAAADAc5EtzVsaNO1odSWEGQAAUAWxnX3mlgacZgIAAH6NMAMAAKquMF8qKrS0BMIMAAComnk9paejpJxtlpZBmAEAAFUTGGSuLZ5rhjADAACqpvjr2acJMwAAwB+57s9k7VwzXgsz69atk81mK3P55ptvXO22bt2qG2+8USEhIYqPj9esWbMuOtaSJUvUvn17hYSEqHPnzlqxYoW3ygYAAJXlI7MAey3M9O7dWwcPHnRbHnzwQSUkJKhnz56SJKfTqf79+6tly5batGmTZs+erenTp2vBggWu46xfv16DBw9WamqqNm/erJSUFKWkpGjbNmsvNgIAoM7zkZEZr02aFxwcrNjYWNfj/Px8ffDBB3r00Udls9kkSW+88Yby8vL0+uuvKzg4WFdddZW2bNmiF154QcOHD5ckzZ07VwMGDND48eMlSU8//bTS0tL00ksvaf78+d4qHwAAXIrrmplaOjJzoQ8//FBHjx7VH//4R9dz6enp6tOnj4KDg13PJScnKzMzU8ePH3e16devn9uxkpOTlZ6eXu575ebmyul0ui0AAKCaNWkrtfmVFNfF0jJq7HYGr732mpKTk9W8eXPXc9nZ2UpISHBrFxMT49oXGRmp7Oxs13Ol22RnZ5f7XjNnztSMGTOqsXoAAHCRNn3NxWIej8xMnDix3At7i5eMjAy31+zbt0+rVq1SampqtRVekUmTJsnhcLiWvXv31sj7AgCAmufxyMy4ceM0bNiwCtu0bt3a7fHChQvVpEkT3XHHHW7Px8bGKicnx+254sfF19uU16b09TgXstvtstvtFdYIAAAu30HHWe06dEKtoiMU1yjMkho8DjPR0dGKjo6udHvDMLRw4UINHTpUQUFBbvuSkpI0ZcoU5efnu/alpaUpMTFRkZGRrjZr1qzRmDFjXK9LS0tTUlKSp6UDAIBq9M6GXzRgxQ1Ksp1R19wFmnRXku65pkWN1+H1C4DXrl2rrKwsPfjggxftGzJkiIKDg5Wamqrt27dr8eLFmjt3rsaOHetqM3r0aK1cuVJz5sxRRkaGpk+fro0bN2rUqFHeLh0AAJTjoOOsJi7LkE2GJKmRTmry0m066Dhb47V4/QLg1157Tb1791b79u0v2hcREaHVq1dr5MiR6tGjh6KiojRt2jTX17Ilc76aN998U1OnTtXkyZPVrl07LVu2TJ06dfJ26QAAoBxZR06ryJBeLrhThQqQ06ivQhnadeSM4iJCa7QWm2EYRo2+owWcTqciIiLkcDgUHh5udTkAAPi9g46zuv65tSoqlSICbTZ9MbFvtYWZyv795t5MAADAY3ERoZp5V2cFnp8IN9Bm07N3darxURmpBueZAQAAtcs917RQnyujtevIGbWKCrMkyEiEGQAAcBniIkItCzHFOM0EAAD8GmEGAAD4NcIMAADwa4QZAADg1wgzAADArxFmAACAXyPMAAAAv0aYAQAAfo0wAwAA/BphBgAA+DXCDAAA8Gt14t5MhmHen9zpdFpcCQAAqKziv9vFf8fLUyfCzMmTJyVJ8fHxFlcCAAA8dfLkSUVERJS732ZcKu7UAkVFRTpw4IAaNmwom81Wbcd1Op2Kj4/X3r17FR4eXm3H9SW1vY/0z//V9j7SP/9X2/vozf4ZhqGTJ0+qWbNmCggo/8qYOjEyExAQoObNm3vt+OHh4bXyP9DSansf6Z//q+19pH/+r7b30Vv9q2hEphgXAAMAAL9GmAEAAH6NMHMZ7Ha7nnzySdntdqtL8Zra3kf65/9qex/pn/+r7X30hf7ViQuAAQBA7cXIDAAA8GuEGQAA4NcIMwAAwK8RZgAAgF8jzHhg165dSk1NVUJCgkJDQ9WmTRs9+eSTysvLq/B1586d08iRI9WkSRM1aNBAv/vd75STk1NDVXvmmWeeUe/evRUWFqZGjRpV6jXDhg2TzWZzWwYMGODdQi9DVfpoGIamTZumuLg4hYaGql+/fvr555+9W2gVHTt2TPfee6/Cw8PVqFEjpaam6tSpUxW+5uabb77oMxwxYkQNVXxpL7/8slq1aqWQkBD16tVLX3/9dYXtlyxZovbt2yskJESdO3fWihUraqjSqvGkf4sWLbroswoJCanBaj3z+eef6ze/+Y2aNWsmm82mZcuWXfI169atU/fu3WW329W2bVstWrTI63VWlaf9W7du3UWfn81mU3Z2ds0U7KGZM2fqmmuuUcOGDdW0aVOlpKQoMzPzkq+r6d9BwowHMjIyVFRUpFdffVXbt2/Xiy++qPnz52vy5MkVvu7xxx/Xv//9by1ZskSfffaZDhw4oLvuuquGqvZMXl6e7r77bj3yyCMevW7AgAE6ePCga3nrrbe8VOHlq0ofZ82apb/+9a+aP3++NmzYoPr16ys5OVnnzp3zYqVVc++992r79u1KS0vT8uXL9fnnn2v48OGXfN1DDz3k9hnOmjWrBqq9tMWLF2vs2LF68skn9e2336pLly5KTk7WoUOHymy/fv16DR48WKmpqdq8ebNSUlKUkpKibdu21XDlleNp/yRzptXSn9Xu3btrsGLPnD59Wl26dNHLL79cqfZZWVkaOHCg+vbtqy1btmjMmDF68MEHtWrVKi9XWjWe9q9YZmam22fYtGlTL1V4eT777DONHDlSX331ldLS0pSfn6/+/fvr9OnT5b7Gkt9BA5dl1qxZRkJCQrn7T5w4YQQFBRlLlixxPffjjz8akoz09PSaKLFKFi5caERERFSq7QMPPGDceeedXq3HGyrbx6KiIiM2NtaYPXu267kTJ04YdrvdeOutt7xYoed++OEHQ5LxzTffuJ77+OOPDZvNZuzfv7/c1910003G6NGja6BCz1177bXGyJEjXY8LCwuNZs2aGTNnziyz/R/+8Adj4MCBbs/16tXLePjhh71aZ1V52j9Pfjd9jSTj/fffr7DNE088YVx11VVuz91zzz1GcnKyFyurHpXp36effmpIMo4fP14jNVW3Q4cOGZKMzz77rNw2VvwOMjJzmRwOhxo3blzu/k2bNik/P1/9+vVzPde+fXu1aNFC6enpNVFijVi3bp2aNm2qxMREPfLIIzp69KjVJVWbrKwsZWdnu32GERER6tWrl899hunp6WrUqJF69uzpeq5fv34KCAjQhg0bKnztG2+8oaioKHXq1EmTJk3SmTNnvF3uJeXl5WnTpk1uP/uAgAD169ev3J99enq6W3tJSk5O9rnPSqpa/yTp1KlTatmypeLj43XnnXdq+/btNVFujfCnz+9ydO3aVXFxcfr1r3+tL7/80upyKs3hcEhShX/3rPgM68SNJr1lx44dmjdvnp5//vly22RnZys4OPiiazNiYmJ89hyppwYMGKC77rpLCQkJ+uWXXzR58mTdeuutSk9PV2BgoNXlXbbizykmJsbteV/8DLOzsy8arq5Xr54aN25cYa1DhgxRy5Yt1axZM23dulUTJkxQZmamli5d6u2SK3Tk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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "aSVD = VT.T @ np.diag(1/Sdiag) @ U.T @ y\n", + "\n", + "print(\"Fitted coeffs = \", aSVD)\n", + "print(\"frac error = \", (aSVD-a0)/a0)\n", + "\n", + "plt.plot(x,y,'.')\n", + "\n", + "xx = np.linspace(-2,2,1000)\n", + "poly = np.polynomial.Polynomial(aSVD)\n", + "yy = poly(xx)\n", + "plt.plot(xx,yy,'--')\n", + "\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "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.11.5" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}