Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
executable file 1003 lines (1003 sloc) 212 KB
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# CompMech04-Linear Algebra Project\n",
"# Practical Linear Algebra for Finite Element Analysis\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In this project we will perform a linear-elastic finite element analysis (FEA) on a support structure made of 11 beams that are riveted in 7 locations to create a truss as shown in the image below. \n",
"\n",
"![Mesh image of truss](../images/mesh.png)\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The triangular truss shown above can be modeled using a [direct stiffness method [1]](https://en.wikipedia.org/wiki/Direct_stiffness_method), that is detailed in the [extra-FEA_material](./extra-FEA_material.ipynb) notebook. The end result of converting this structure to a FE model. Is that each joint, labeled $n~1-7$, short for _node 1-7_ can move in the x- and y-directions, but causes a force modeled with Hooke's law. Each beam labeled $el~1-11$, short for _element 1-11_, contributes to the stiffness of the structure. We have 14 equations where the sum of the components of forces = 0, represented by the equation\n",
"\n",
"$\\mathbf{F-Ku}=\\mathbf{0}$\n",
"\n",
"Where, $\\mathbf{F}$ are externally applied forces, $\\mathbf{u}$ are x- and y- displacements of nodes, and $\\mathbf{K}$ is the stiffness matrix given in `fea_arrays.npz` as `K`, shown below\n",
"\n",
"_note: the array shown is 1000x(`K`). You can use units of MPa (N/mm^2), N, and mm. The array `K` is in 1/mm_\n",
"\n",
"$\\mathbf{K}=EA*$\n",
"\n",
"$ \\left[ \\begin{array}{cccccccccccccc}\n",
" 4.2 & 1.4 & -0.8 & -1.4 & -3.3 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 \\\\\n",
" 1.4 & 2.5 & -1.4 & -2.5 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 \\\\\n",
" -0.8 & -1.4 & 5.0 & 0.0 & -0.8 & 1.4 & -3.3 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 \\\\\n",
" -1.4 & -2.5 & 0.0 & 5.0 & 1.4 & -2.5 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 \\\\\n",
" -3.3 & 0.0 & -0.8 & 1.4 & 8.3 & 0.0 & -0.8 & -1.4 & -3.3 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 \\\\\n",
" 0.0 & 0.0 & 1.4 & -2.5 & 0.0 & 5.0 & -1.4 & -2.5 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 \\\\\n",
" 0.0 & 0.0 & -3.3 & 0.0 & -0.8 & -1.4 & 8.3 & 0.0 & -0.8 & 1.4 & -3.3 & 0.0 & 0.0 & 0.0 \\\\\n",
" 0.0 & 0.0 & 0.0 & 0.0 & -1.4 & -2.5 & 0.0 & 5.0 & 1.4 & -2.5 & 0.0 & 0.0 & 0.0 & 0.0 \\\\\n",
" 0.0 & 0.0 & 0.0 & 0.0 & -3.3 & 0.0 & -0.8 & 1.4 & 8.3 & 0.0 & -0.8 & -1.4 & -3.3 & 0.0 \\\\\n",
" 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 1.4 & -2.5 & 0.0 & 5.0 & -1.4 & -2.5 & 0.0 & 0.0 \\\\\n",
" 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & -3.3 & 0.0 & -0.8 & -1.4 & 5.0 & 0.0 & -0.8 & 1.4 \\\\\n",
" 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & -1.4 & -2.5 & 0.0 & 5.0 & 1.4 & -2.5 \\\\\n",
" 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & -3.3 & 0.0 & -0.8 & 1.4 & 4.2 & -1.4 \\\\\n",
" 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 1.4 & -2.5 & -1.4 & 2.5 \\\\\n",
"\\end{array}\\right]~\\frac{1}{m}$"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 0.00416667, 0.00144338, -0.00083333, -0.00144338, -0.00333333,\n",
" 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. ],\n",
" [ 0.00144338, 0.0025 , -0.00144338, -0.0025 , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. ],\n",
" [-0.00083333, -0.00144338, 0.005 , 0. , -0.00083333,\n",
" 0.00144338, -0.00333333, 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. ],\n",
" [-0.00144338, -0.0025 , 0. , 0.005 , 0.00144338,\n",
" -0.0025 , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. ],\n",
" [-0.00333333, 0. , -0.00083333, 0.00144338, 0.00833333,\n",
" 0. , -0.00083333, -0.00144338, -0.00333333, 0. ,\n",
" 0. , 0. , 0. , 0. ],\n",
" [ 0. , 0. , 0.00144338, -0.0025 , 0. ,\n",
" 0.005 , -0.00144338, -0.0025 , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. ],\n",
" [ 0. , 0. , -0.00333333, 0. , -0.00083333,\n",
" -0.00144338, 0.00833333, 0. , -0.00083333, 0.00144338,\n",
" -0.00333333, 0. , 0. , 0. ],\n",
" [ 0. , 0. , 0. , 0. , -0.00144338,\n",
" -0.0025 , 0. , 0.005 , 0.00144338, -0.0025 ,\n",
" 0. , 0. , 0. , 0. ],\n",
" [ 0. , 0. , 0. , 0. , -0.00333333,\n",
" 0. , -0.00083333, 0.00144338, 0.00833333, 0. ,\n",
" -0.00083333, -0.00144338, -0.00333333, 0. ],\n",
" [ 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0.00144338, -0.0025 , 0. , 0.005 ,\n",
" -0.00144338, -0.0025 , 0. , 0. ],\n",
" [ 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , -0.00333333, 0. , -0.00083333, -0.00144338,\n",
" 0.005 , 0. , -0.00083333, 0.00144338],\n",
" [ 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , -0.00144338, -0.0025 ,\n",
" 0. , 0.005 , 0.00144338, -0.0025 ],\n",
" [ 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , -0.00333333, 0. ,\n",
" -0.00083333, 0.00144338, 0.00416667, -0.00144338],\n",
" [ 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. ,\n",
" 0.00144338, -0.0025 , -0.00144338, 0.0025 ]])"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import random\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import matplotlib.patches as mpatches\n",
"import pandas as pd\n",
"fea_arrays = np.load('./fea_arrays.npz')\n",
"K=fea_arrays['K']\n",
"K"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In this project we are solving the problem, $\\mathbf{F}=\\mathbf{Ku}$, where $\\mathbf{F}$ is measured in Newtons, $\\mathbf{K}$ `=E*A*K` is the stiffness in N/mm, `E` is Young's modulus measured in MPa (N/mm^2), and `A` is the cross-sectional area of the beam measured in mm^2. \n",
"\n",
"There are three constraints on the motion of the joints:\n",
"\n",
"i. node 1 displacement in the x-direction is 0 = `u[0]`\n",
"\n",
"ii. node 1 displacement in the y-direction is 0 = `u[1]`\n",
"\n",
"iii. node 7 displacement in the y-direction is 0 = `u[13]`\n",
"\n",
"We can satisfy these constraints by leaving out the first, second, and last rows and columns from our linear algebra description. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 1. Calculate the condition of `K` and the condition of `K[2:13,2:13]`. \n",
"\n",
"a. What error would you expect when you solve for `u` in `K*u = F`? \n",
"\n",
"b. Why is the condition of `K` so large?\n",
"\n",
"c. What error would you expect when you solve for `u[2:13]` in `K[2:13,2:13]*u=F[2:13]`"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"A.)\n",
"Kcond = 1.4577532625238035e+17\n",
"2.220446049250313e-16\n",
"expected error = 10 mm\n"
]
}
],
"source": [
"print(\"A.)\")\n",
"print(\"Kcond =\", np.linalg.cond(K))\n",
"print(np.finfo(float).eps)\n",
"print(\"expected error = \", 10**(17-16), \"mm\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"B.) This matrix is ill-conditioned which makes K large because we're not considering Newton's second law. There must more boundary conditions."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"C.)\n",
"Kcond_BC = 52.23542514351006\n",
"2.220446049250313e-16\n",
"expected error = 1e-15 mm\n"
]
}
],
"source": [
"print(\"C.)\")\n",
"print(\"Kcond_BC =\", np.linalg.cond(K[2:13, 2:13]))\n",
"print(np.finfo(float).eps)\n",
"print(\"expected error = \", 10**(1-16), \"mm\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 2. Apply a 100-N downward force to the central top node (n 4)\n",
"\n",
"a. Create the LU matrix for K[2:13,2:13]\n",
"\n",
"b. Use cross-sectional area of $0.1~mm^2$ and steel and almuminum moduli, $E=200~GPa~and~E=70~GPa,$ respectively. Solve the forward and backward substitution methods for \n",
"\n",
"* $\\mathbf{Ly}=\\mathbf{F}\\frac{1}{EA}$\n",
"\n",
"* $\\mathbf{Uu}=\\mathbf{y}$\n",
"\n",
"_your array `F` is zeros, except for `F[5]=-100`, to create a -100 N load at node 4._\n",
"\n",
"c. Plug in the values for $\\mathbf{u}$ into the full equation, $\\mathbf{Ku}=\\mathbf{F}$, to solve for the reaction forces\n",
"\n",
"d. Create a plot of the undeformed and deformed structure with the displacements and forces plotted as vectors (via `quiver`). Your result for aluminum should match the following result from [extra-FEA_material](./extra-FEA_material.ipynb). _note: The scale factor is applied to displacements $\\mathbf{u}$, not forces._\n",
"\n",
"![Deformed structure with loads applied](../images/deformed_truss.png)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"def LUNaive(A):\n",
" '''LUNaive: naive LU decomposition\n",
" L,U = LUNaive(A): LU decomposition without pivoting.\n",
" solution method requires floating point numbers, \n",
" as such the dtype is changed to float\n",
" \n",
" Arguments:\n",
" ----------\n",
" A = coefficient matrix\n",
" returns:\n",
" ---------\n",
" L = Lower triangular matrix\n",
" U = Upper triangular matrix\n",
" '''\n",
" [m,n] = np.shape(A)\n",
" if m!=n: error('Matrix A must be square')\n",
" nb = n+1\n",
" # Gauss Elimination\n",
" U = A.astype(float)\n",
" L = np.eye(n)\n",
"\n",
" for k in range(0,n-1):\n",
" for i in range(k+1,n):\n",
" if U[k,k] != 0.0:\n",
" factor = U[i,k]/U[k,k]\n",
" L[i,k]=factor\n",
" U[i,:] = U[i,:] - factor*U[k,:]\n",
" return L,U\n",
"\n",
"def solveLU(L,U,b):\n",
" '''solveLU: solve for x when LUx = b\n",
" x = solveLU(L,U,b): solves for x given the lower and upper \n",
" triangular matrix storage\n",
" uses forward substitution for \n",
" 1. Ly = b\n",
" then backward substitution for\n",
" 2. Ux = y\n",
" \n",
" Arguments:\n",
" ----------\n",
" L = Lower triangular matrix\n",
" U = Upper triangular matrix\n",
" b = output vector\n",
" \n",
" returns:\n",
" ---------\n",
" x = solution of LUx=b '''\n",
" n=len(b)\n",
" x=np.zeros(n)\n",
" y=np.zeros(n)\n",
" \n",
" # forward substitution\n",
" for k in range(0,n):\n",
" y[k] = b[k] - L[k,0:k]@y[0:k]\n",
" # backward substitution\n",
" for k in range(n-1,-1,-1):\n",
" x[k] = (y[k] - U[k,k+1:n]@x[k+1:n])/U[k,k]\n",
" return x"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"L: [[ 1. 0. 0. 0. 0. 0. 0. 0. 0.\n",
" 0. 0. ]\n",
" [ 0. 1. 0. 0. 0. 0. 0. 0. 0.\n",
" 0. 0. ]\n",
" [-0.1667 0.2887 1. 0. 0. 0. 0. 0. 0.\n",
" 0. 0. ]\n",
" [ 0.2887 -0.5 0.1237 1. 0. 0. 0. 0. 0.\n",
" 0. 0. ]\n",
" [-0.6667 0. -0.1786 -0.0962 1. 0. 0. 0. 0.\n",
" 0. 0. ]\n",
" [ 0. 0. -0.1856 -0.7222 -0.0825 1. 0. 0. 0.\n",
" 0. 0. ]\n",
" [ 0. 0. -0.4286 0.1283 -0.2381 0.3343 1. 0. 0.\n",
" 0. 0. ]\n",
" [ 0. 0. 0. 0. 0.2474 -0.7895 0.1843 1. 0.\n",
" 0. 0. ]\n",
" [ 0. 0. 0. 0. -0.5714 -0.0912 -0.2482 -0.2165 1.\n",
" 0. 0. ]\n",
" [ 0. 0. 0. 0. 0. 0. -0.2334 -0.875 -0.3277\n",
" 1. 0. ]\n",
" [ 0. 0. 0. 0. 0. 0. -0.539 0.2406 -0.5946\n",
" 0.2887 1. ]]\n",
"U: [[ 0.005 0. -0.0008 0.0014 -0.0033 0. 0. 0. 0.\n",
" 0. 0. ]\n",
" [ 0. 0.005 0.0014 -0.0025 0. 0. 0. 0. 0.\n",
" 0. 0. ]\n",
" [ 0. 0. 0.0078 0.001 -0.0014 -0.0014 -0.0033 0. 0.\n",
" 0. 0. ]\n",
" [-0. 0. 0. 0.0032 -0.0003 -0.0023 0.0004 0. 0.\n",
" 0. 0. ]\n",
" [-0. 0. 0. 0. 0.0058 -0.0005 -0.0014 0.0014 -0.0033\n",
" 0. 0. ]\n",
" [-0. 0. 0. 0. 0. 0.003 0.001 -0.0024 -0.0003\n",
" 0. 0. ]\n",
" [ 0. 0. 0. 0. 0. 0. 0.0062 0.0011 -0.0015\n",
" -0.0014 -0.0033]\n",
" [-0. 0. 0. 0. 0. 0. 0. 0.0026 -0.0006\n",
" -0.0022 0.0006]\n",
" [-0. 0. 0. 0. 0. 0. 0. 0. 0.0026\n",
" -0.0008 -0.0015]\n",
" [-0. 0. 0. 0. 0. 0. 0. 0. 0.\n",
" 0.0024 0.0007]\n",
" [ 0. 0. 0. 0. 0. 0. -0. 0. 0.\n",
" -0. 0.0011]]\n"
]
}
],
"source": [
"K_mod = K[2:13, 2:13] #Modified K\n",
"L,U = LUNaive(K_mod)\n",
"A = .1 #mm^2\n",
"E_st = 200e3 #MPa\n",
"E_al = 70e3 #MPa\n",
"\n",
"F = np.zeros(11)\n",
"F[5] = -100\n",
"\n",
"u_st_mod = np.linalg.solve(E_st*A*K_mod, F)\n",
"u_st = np.zeros(14)\n",
"u_st[2:13] = u_st_mod #This ensures that the boundary conditions are intact\n",
"\n",
"u_al_mod = np.linalg.solve(E_al*A*K_mod, F)\n",
"u_al = np.zeros(14)\n",
"u_al[2:13] = u_al_mod #This ensures that the boundary conditions are intact\n",
"\n",
"F_st = E_st*A*K @ u_st\n",
"F_al = E_al*A*K @ u_al\n",
"\n",
"print(\"L:\", L.round(4))\n",
"print(\"U:\", U.round(4))"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7f3ddcbfe160>"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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B82bN2f58uUMHDiQpk2b8sgjj+SN9+GHH9K5c2fatm3Lrbfeit1uByAhIYGHH36Y8847jy5durB//35+/fVXvvjiC+6//37atm3L1q1befnll/M+5+DBg/3y3YbD46l7gL+AROf78cAPqvqMiIx3vn9ARFpgpbVsCZwJLBSRc1TVHgqhDQZDeLJy5Urmzp3LH3/8QW5uLu3bt6dDhw55+w8fPsxnn33Ghg0bEBGOHj2at2/Hjh38/PPPbN26lYsuuogtW7bk6/vcc89l8eLFREZGsnDhQh566CE++eQTZsyYwfbt2/njjz+IjIzk8OHD5OTkcNddd/H5559Ts2ZN5s2bx8MPP8zMmTMBiI6OZvHixbz00ktcddVVrFy5kpSUFJo0acKYMWM4cOAA8+bN45dffiEqKorbb7+dWbNmMWzYME6cOEGXLl2YPHky48aN48033+SRRx7hyiuvpF+/flxzzTUAPPPMM2zfvp2YmJh8n7MshFRpiEg94AqsXMv/clZfBfR0br8HLAIecNbPVdVsYLuIbAE6Y+ViNhgMBgCWLFnCgAEDiI+PB+DKK6/Mtz8xMZHY2FhuueUWrrjiCvr165e379prr8Vms9G0aVMaN27Mhg0b8rVNT09n+PDhbN68GREhJycHgIULF3LbbbcRGWldUlNSUli7di1r167lkksuASxrpE6dOnl9ueRq3bo1LVu2zNvXuHFjdu/ezdKlS1m5ciWdOnUCIDMzk1q1agGWwnHJ3aFDB77//nuP30WbNm345z//Sf/+/enfv39Jv0qPhNrSeBEYB1R1qztDVfcBqOo+EanlrK8L/NftuFRnXSFEZBQwCqBBgwb+ltlgMIQ5RS0jjYyMZNmyZfzwww/MnTuXV199lR9//NFju4LvH330US666CI+++wzduzYQc+ePQHLSa7gsapKy5Yt+e03z/e1MTExANhstrxt1/vc3FxUleHDh/P0008XahsVFZU3XkREBLm5uR7H+M9//sPixYv54osvmDRpEuvWrctTbKUlZHMaItIPOKCqK31t4qFOPR2oqjNUtaOqdqxZs1A4eIPBUIHp0aMHn332GZmZmWRkZPDvf/873/7jx4+Tnp7O5ZdfzosvvsiqVavy9n300Uc4HA62bt3Ktm3baNasWb626enp1K1r3au+++67efV9+vRh+vTpeRfvw4cP06xZ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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#Plotting\n",
"\n",
"l=300 # mm\n",
"nodes = np.array([[1,0,0],[2,0.5,3**0.5/2],[3,1,0],[4,1.5,3**0.5/2],[5,2,0],[6,2.5,3**0.5/2],[7,3,0]])\n",
"nodes[:,1:3]*=l\n",
"elems = np.array([[1,1,2],[2,2,3],[3,1,3],[4,2,4],[5,3,4],[6,3,5],[7,4,5],[8,4,6],[9,5,6],[10,5,7],[11,6,7]])\n",
"\n",
"\n",
"ix = 2*np.block([[np.arange(0,5)],[np.arange(1,6)],[np.arange(2,7)],[np.arange(0,5)]])\n",
"iy = ix+1\n",
"\n",
"scale = 5\n",
"r = np.block([n[1:3] for n in nodes])\n",
"r0 = r+u_st*scale\n",
"\n",
"\n",
"plt.plot(r[ix],r[iy],'-',color='k')\n",
"#plt.plot(r[ix],r[iy],'o',color='b')\n",
"plt.quiver(r[ix],r[iy],u_st[ix],u_st[iy],color=\"turquoise\",label='displacements')\n",
"plt.plot(r0[ix],r0[iy],'-', color =\"blue\")\n",
"plt.quiver(r[ix],r[iy],F_st[ix],F_st[iy],color='orange',label='applied forces')\n",
"plt.plot(r[0],r[1],'^',color='r',markersize=20)\n",
"plt.plot(r[0],r[1],'>',color='r',markersize=20)\n",
"plt.plot(r[-2],r[-1],'^',color='r',markersize=20)\n",
"\n",
"plt.title('Deformation of Steel \\nScale=5')\n",
"plt.xlabel('x (mm)')\n",
"plt.ylabel('y (mm)')\n",
"plt.axis(l*np.array([-0.5,3.5,-1,1.5]));\n",
"plt.legend(loc = \"best\")"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7f3ddcac7cc0>"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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NHw+PKWUClBKbVFKfWP7HamU+lEptc/2WdIh73Cl1H6l1B6l1L2+k9pgMBQEypYty/Tp05k2bRoiwqpVq2jfvj0Av/zyC40aNaJRo0Y0btyYixcvsmrVKm6//XY6depE3bp1efrpp7FarZnq7dixI02bNqVevXpMnz49Lf27776jSZMmNGzYkLvvvhuAhIQEnnjiCZo1a0bjxo358ksdiXfOnDl07NiRDh06ULVqVaZNm8bbb79N48aNueWWWzh79iwABw4coF27djRt2pRWrVqxe/duAPr06cNzzz3HbbfdRrVq1fjss88AiI6OZvXq1TRq1Ih33nnH4+fUH3oazwO7gGK239HAShF5QykVbfv9slKqLjqsZT3gemCFUupGEUn1hdAGg6FgUK1aNaxWK//++2+69EmTJvHee+/RokUL4uPjCQ0NBWDDhg3s3LmTypUr065dO5YuXUrXrl3TlZ01axaRkZFcvnyZZs2a0aVLF6xWK/369ePXX3+latWqaQ/9cePGcddddzFr1izOnTtH8+bNadOmDQB//fUXW7ZsITExkRo1ajBhwgS2bNnCCy+8wNy5cxk8eDD9+/fnww8/pGbNmvz+++8MHDiQn376CYDY2FjWrFnD7t27efDBB+natStvvPEGkyZN4ptvvvHK+fSp0lBKVQQeQMdaHmJLfghobfv+MbAKeNmWvkhEkoBDSqn9QHN0LGaDwWBwibOw1i1atGDIkCH06tWLzp07U7FiRQCaN29OtWrVAOjRowdr1qzJpDSmTJnCsmXLADh27Bj79u3j1KlT3H777Wn2DpGRkQD88MMPfPXVV0yaNAnQy5KPHj0KwJ133klERAQREREUL16cDh06AFC/fn22bdtGfHw8a9eu5eGHH05rOykpKe17x44dsVgs1K1bl5MnT+b9RLmBr3sak4GXgAiHtOtEJBZARGKVUmVt6RWA9Q75jtvSMqGU6g/0B6hUqZKnZTYYDAWIgwcPEhAQQNmyZdm1a1daenR0NA888AD/93//xy233MKKFSuAzEtQM/5etWoVK1asYN26dRQpUoTWrVuTmJiIiDhdvioifP7559SqVStd+u+//05ISEjab4vFkvbbYrGQkpKC1WqlRIkSaXM0GXEs70wxegOfzWkopdoD/4rIH+4WcZLm9CyJyHQRiRKRqDJlMrmDNxgM1winTp3i6aefZtCgQZke6AcOHKB+/fq8/PLLREVFpc0VbNiwgUOHDmG1Wlm8eDEtW7ZMV+78+fOULFmSIkWKsHv3btav1++yt956K7/88guHDh0CSBueuvfee5k6dWraQ33Lli1uy1+sWDGqVq3Kp59+CmjF8Oeff2ZZJiIigosXL7rdRk7xZU+jBfCgUup+IBQoppSaB5xUSpW39TLKA/aByOPADQ7lKwIn8lVig8GQI9xZIutpLl++TKNGjdKW3Pbu3ZshQ4Zkyjd58mR+/vlnAgICqFu3Lvfddx/r1q3j1ltvJTo6mu3bt6dNijvSrl07PvzwQxo0aECtWrW45ZZbAChTpgzTp0+nc+fOWK1WypYty48//shrr73G4MGDadCgASJClSpVcjTfMH/+fAYMGMDYsWNJTk6me/fuNGzY0GX+Bg0aEBgYSMOGDenTpw8vvPCC2225g8qvLk2WQijVGhgmIu2VUm8CZxwmwiNF5CWlVD1gAXoe43pgJVAzu4nwqKgoMUGYDIb8YdeuXdSpU8fXYuSaVatWeXUS2V9x9r8ppf4QkUzrk309p+GMN4AlSqkngaPAwwAiskMptQTYCaQAz5iVUwaDwZC/+IXSEJFV6FVSiMgZ4G4X+cahV1oZDAaDx2ndujWtW7f2tRh+jc+N+wwGg8FQcDBKw2AwGAxuY5SGwWAwGNzGKA2DwWAwuI1fTIQbDIbCiRrlWdfoMtI9u49ly5bRuXNndu3aRe3atXPdXp8+fWjfvj1du3blqaeeYsiQIdStW9etsq6W765atYqHHnoozd1I6dKl06zRCwKmp2EwGAodCxcupGXLlixatMhjdc6YMcNthZEdrVq1YuvWrWzdujVHCiMlJcUj7ecFozQMBkOhIj4+nt9++42ZM2emUxpZuT0vWrQoQ4cOpUmTJtx9992cOnUqU72tW7fGbij8ww8/cOutt9KkSRMefvhh4uPjAe0avXbt2rRs2ZKlS5fmSO4jR45w991306BBA+6+++40p4Z9+vRhyJAh3Hnnnbz88svEx8fTt29f6tevT4MGDfj888+zlCk6Opq6devSoEEDhg0blsOzmRmjNAwGQ6Hiiy++oF27dtx4441ERkayefPmtH0bNmzgrbfeYvv27Rw4cCDtwZ6QkECTJk3YvHkzd9xxB6OyGFY7ffo0Y8eOZcWKFWzevJmoqCjefvttEhMT6devH19//TWrV6/mn3/+cVmHPd5Fo0aNGDdOm54NGjSIxx57jG3bttGrVy+ee+65tPx79+5lxYoVvPXWW4wZM4bixYuzfft2tm3bxl133eVSprNnz7Js2TJ27NjBtm3bGDFiRF5Pr1EaBoOhcLFw4UK6d+8OQPfu3Vm4cGHaPrvb84CAgDS356C9ynbr1g2ARx99NC3dGevXr2fnzp20aNGCRo0a8fHHH3PkyBF2795N1apVqVmzJkopHn30UZd1OA5PvfrqqwCsW7cuLdpe796908nw8MMPExAQAMCKFSt45pln0vaVLFnSpUzFihUjNDSUp556iqVLl1KkSJEcnUtnmIlwg8FQaDhz5gw//fQTf/31F0opUlNTUUoxceJEIHu359mlg/Y027Zt23TKCGDr1q1ZlsspjnWFh4enaz9jO65kAt27WrlyJYsWLWLatGlpAZxyi+lpGAyGQsNnn33GY489xpEjRzh8+DDHjh2jatWqaW/trtyeW63WtHCpCxYsyOQO3ZFbbrmF3377jf379wNw6dIl9u7dS+3atTl06BAHDhwAcPoAz4rbbrstbQ5m/vz5LmW45557mDZtWtrvuLg4lzLFx8dz/vx57r//fiZPnuwyLkdOMD0Ng8HgNdxdIuspFi5cSHR0dLq0Ll26sGDBArp16+bS7Xl4eDg7duygadOmFC9enMWLF7tso0yZMsyZM4cePXqkRdEbO3YsN954I9OnT+eBBx6gdOnStGzZkr/++stt2adMmcITTzzBm2++SZkyZZg9e7bTfCNGjOCZZ57hpptuIiAggJEjR9K5c2enMkVERPDQQw+lBYnyRMxwv3CN7k2Ma3SDIf/wZ9foWbk9L1q0aNpqo2uRnLhGN8NTBoPBYHAbMzxlMBiuCbJye34t9zJyiulpGAwGj1LYh7wLGzn9v4zSMBgMHiM0NJQzZ84YxVFAEBHOnDlDaGio22XM8JTBYPAYFStW5Pjx407dcBj8k9DQUCpWrOh2fqM0DAaDxwgKCkrz3moonJjhKYPBYDC4jc+UhlIqVCm1QSn1p1Jqh1JqlC09Uin1o1Jqn+2zpEOZ4Uqp/UqpPUqpe30lu8FgMFyr+LKnkQTcJSINgUZAO6XULUA0sFJEagIrbb9RStUFugP1gHbA+0qpAJ9IbjAYDNcoPlMaorEvjg6ybQI8BHxsS/8Y6Gj7/hCwSESSROQQsB9ono8iGwwGwzWPT+c0lFIBSqmtwL/AjyLyO3CdiMQC2D7L2rJXAI45FD9uS3NWb3+l1Cal1CazisNgMBg8h0+VhoikikgjoCLQXCl1UxbZnfkcdroYXESmi0iUiESVKVPGE6IaDAaDAT9ZPSUi54BV6LmKk0qp8gC2z39t2Y4DNzgUqwicyEcxDQaD4ZrHl6unyiilSti+hwFtgN3AV8DjtmyPA1/avn8FdFdKhSilqgI1gQ35K7XBYDBc2/jSuK888LFtBZQFWCIi3yil1gFLlFJPAkeBhwFEZIdSagmwE0gBnhGRVB/JbjAYDNckJp6GwWAwGDJh4mkYDAaDIc8YpWEwGAwGtzFKw2AwGAxuY5SGwWAwGNzGuEY3uMXgxYt5/623eOz2zjza/hYAUlP14rWAAOMCLKds2rSJo0eP0rlzZ1+LUuA5GR/P8G+/pd299/J+x47ZFzDkCbN6yuAWKjIS4uJ8LYbB4Jpy5Uk+cpSlPZdy79v3UrxScV9LVKBxtXrK9DQM2XL69GkCEi5hN4rpTW9av9aatRPXYk228tjKx3wqX0HjP8NfYe/6dQBYihZj5ddfZlPC4Iytc7ay89OdLLiykISUePgnlkHFB3H9let55LNHfC1eocUoDUO2jB49GlJTqB9en+0J29nBDqqPqc4NNq8uKctTaDOhjY+lLBjEx8ezf+MGCAiA8HCsFy4QHh5Os2bNfC1agaPlbS3p9UkvEqzxXMd1JJDA/yX+H4NKD/K1aIUaMxFuyJK9e/fywQcf0L9/fzae2UgQQWxhCwkkpOVZN3mdDyUsWPTp0wdraiq0bAldugDQvVt3H0tVMLEEWvg24FsAutOdO7mTYxzjcKnDvhWskGOUhiFLoqOjCQsLY1DPQSzrvox2oe0QhM/5PC2P9YqV1f9d7UMpCwZHjhxh6dKlhEVEwB13QOXKBJatwMFDB1m8eLGvxStwjBs3joTkBGpTm5KUpDGNKUtZvjj5BVeuXPG1eIUWozQMLlm9ejXLli0jOjqa4IRgDv5wkKaJTSlKUQ5ykJOcTMv76+hffShpweCRRx5BRLh/8GCw6Fsvom1XAAYMGIDVavWleAWKxMRExo0bR2BgIH2q9AHAgoW2tCX2XCwffPCBbwUsxBilYXCK1Wpl6NChVKxYkcGDB1Pj3hq8kvAKzZ9rzkM8BMBnfJaWPyUxhQ3TjNNhV6xZs4YNGzZQvXp16t91V1p6YLGS1FV1iYuLY8yYMT6UsGDRv39/kpKSGDx4MG1fbZuWXoMatGnThtGjRxNnVvt5BaM0DE5ZvHgxGzduZPz48RQpUiQt/b5372PWxVlUCK3AKU6xm91p+1ZEr/CFqAWCXr16AbBw4cJM+zpKR4KCgvjvf/9LYmJifotW4IiNjWX+/PlEREQwYcIEGj3RiMAwvaYntHgob731FnFxcYwbN87HkhZOjNIwZCIxMZHhw4fTuHHjtIedI8FFg1mxRSuIr/kagO9pw6SEp5nz2n7Ons1Xcf2eWbNmcfToUVq2bOl0lVQwwQzqP4ikpCSeeuopH0hYsOjWrRtWq5V33nkHpSycPGnhym138B1tsVa4gQYNGtC3b1+mTp3KwYMHfS1uocMoDUMmpk6dypEjR5g0aRIWi/NLpHbt2tx3330kkMChFmdZRwviiKTv2BqUKgXly0ObNvD88zB9OqxZc23aBlqtVl544QUsFkuWk913yV0UK1aMhQsXcuKECUiZERH45x94//09rF7diPDwecye/SSlSsH118PolS1Zz2189E97UlP1MvHAwEBeeeUVX4te6DBKw5CO06dPM27cONq3b89dDmPvzliwYAEWSwCfrLsDi0V7FojgAsMeO0m7dnDhAsycCf/5D7RqBZGR+gZv2xYGD4aPPoK1a+H8+fw4Mt8wfPhwLly4QI8ePbj++utd5juw/ACTJ0/GarXSrVu3fJTQ//j3X/j5Z5g2DQYMgNtvh9Kl9YvIM8/UAqZgsTyCUvDIIzBlChQrBiAcPlucsWOhQoUKDBs2jMWLF7N+/XofH1HhwrgRMaTjueee4/3332f79u3UqVMn2/x33LGYX3/tRvPmn3PoUBdOnxaWPfszD72rFY7VCkePwo4d6bddu+DSpav1VKgA9eql3+rWtT8MCibx8fFERkZisVg4d+4coaGhAIxatYqYX34BoMxJeOYDCAgOYETSCKpUqcKRI0fYsGFDoTf4O30683WxY4dOt1OixNXr4cqVLcyZ8yINGgSwdev3KKXzrF0LLVpAo9qJ1G0czMJFFlauhGbN4qlZsybVqlVjzZo1KHsBg1sYNyKGbHE05HNHYWzZAuvXP4LF8j2bNnUnOvoc48eH892Vu2zrq/TK0ipV9PbAA1fLWq1w+HD6h8XOnfDhh3D58tV8N9yQWZnUqQMRER48cC/Rp08fkpOTiYmJSVMYrki9op20zJs3j1atWtGzZ0/27duXH2J6nTNnMiuGnTt1j8JOsWL6v+3YMf1/Xb48KKWH+cqUaYNScXzxxQEcn/8vvKA/358VSv368Mdm6NkTtm4typgxY+jXrx9Lly6li82Y0pA3TE/DkEbnzp1ZsWIF+/fvp2zZslnmvXABmjbVD/hnnvmIV17pz113tWHNmh8JDISLF9NMEXJEampmZWLvmSQlXc1XqZLznkl4eM7b9AZHjhyhatWqlCxZklOnTqWbG0rX0/gXnnlfpz9/7HlKVCzBzTffzIYNG1i0aFGBGqqKi3Peczh51ZyHiAj9P2X87ypUgKw6AmPGjOH111+nU6dOLF26NC391Cm47jo97Hn8uE7btg1uvlkPiX77bSpNmjTi8uXL7Ny5k+DgYC8dfeHDVU8DESnUW9OmTcWQPb/88osAMm7cuGzzWq0i3buLBASI/PqrTitfvrwA0q5dnIDI//7nWflSUkT27hVZtkxk7FiRHj1EGjQQCQ4W0dOkeqtSReSBB0Reeknk449FNm0SSUjwrCzu0KxZMwFk0aJFmfbF/PyzEBMjxMRIucGjJYYYiSFGvn76axEROXz4sCilpGTJkpKamprfomdLXJzIb7+JTJ8u8vzzIm3aiJQvn/5/KFpUpHlzkb59RSZNElm+XOToUX3t5JTLly9LSEiIBAYGysWLF9Pte/RR3d60aenL/O9/On3cOJHly5cLIJMnT87DUV97AJvEyTPVZw9z4AbgZ2AXsAN43pYeCfwI7LN9lnQoMxzYD+wB7nWnHaM0sic1NVWaNWsmFStWlAQ3nrDTp1+9Ie189913AsiNN7YSEKlUyYsCO5CcLLJ7t8jSpSJjxmhlVr9+emWilEi1aiIdOohER4t88onI5s0ily55R6bVq1cLINWrV3e631FpVH59YprSeKfyOyIicjH2onTq1EkAiYmJ8Y6QbnDunMjatSIffSQyeLBI27Yi11+fXjkUKSISFSXy+OMiEyeKfPutyOHDIp7Udb179xZAhg0bli49NVUkJEQkLCxze/YXG4tF5JdfrNK2bVuJjIyUs2fPek6wQo4rpeGz4SmlVHmgvIhsVkpFAH8AHYE+wFkReUMpFY1WGi8rpeoCC4HmwPXACuBGEUl13oLGDE9lz8KFC+nZsydz586ld+/eWeZ17Pp/9136IaiGDRuybds2qleP48CBEmzcCFGZO7f5QkoK7N+feahk715ITtZ5lIJq1TIPldSuDdlMQWRJ5cqVOXr0qMvJbMfhqTqlStHt2TMAWIIsdJjegS+f+JLBcYMpU6ZMpkl0b3Dxop5jyHiu7MM9AGFhelgp49BS5cq5G4Z0l9jYWCpWrEh4eDjnzp1LN8w3aRK8+CI8+STMmJG5rOMQ6vz5O7jzzvoMGTKESZMmeU/gQoSr4Sm/mdNQSn0JTLNtrUUk1qZYVolILaXUcGCGM5cAACAASURBVAAR+a8t//dAjIhk6WLVKI2sSUxMpHbt2kRGRrJp0yaXdhkA8fFaCZw/D1u36rFkR/bs2UPt2rUpUeIhzp37ghYttH2GP5GcDPv2pZ+QtSuTlBSdx2KB6tUzK5NatSAkJOv6Z82axZNPPknLli1Zvdq5E0dHpVExKYSn/puUKc9IGUl0dDQTJkygV69ezJs3L0/HDfr/27Urs3I4evRqntBQvdAg47FXqeJd5eCK22+/ndWrVzNjxgyefPLJdPvKl9fzJWfP6lVWztiyBW65Be6+G8qVe4r58z9h165dVKtWLR+kL9j4tdJQSlUBfgVuAo6KSAmHfXEiUlIpNQ1YLyLzbOkzgeUi8pmT+voD/QEqVarU9MiRI94/iALKm2++yUsvvcTKlSuztMsQgccfh/nzYcUKuPNO5/nuv/9+li9fTkTEReLji2Z5Q/sTV66kVyb2bd8+PTkPOgRGjRqZJ99r1YLgYL3Cp2TJksTHx3Ps2DGXdhnOltxmZKSMTKvv4sWLHD9+PEs7D0cSEpwrB8fbICRE96gyKoeqVfVx+gObNm2iWbNm3HDDDRx11GzAqlX6GnTnxeS992DQIHjllfNMnnw9HTp0YNGiRd4TvJDgt0tulVJFgc+BwSJyIYu11M52ONV4IjIdmA66p+EJOQsjOTHkmzMHPvkEYmJcKwzQBn+lS5fm8uWxiLzBkCEwa5ZHxfYKwcFXH5yOJCXpXojjw/evv+CLL/SyYdAP2Zo1wWrdwYULQ2jZMpK4uOspXVrXm1OURV/qFouFyZMn88QTT9CtW7dMPZdLl2D37szK4fBhreTtx1W7Ntx2G/Trd1XRVa/uP8rBFT179gRw2ssaOlR/vvtu9vUMHKiVzIQJxXnssXeZPbsfgwcP5pZbbvGgtNcOPu1pKKWCgG+A70XkbVvaHszwVL7griHfjh3QrBnceiv88EP2D5tBgwbx3nvvYbFcISQkiPh43wxteJOkJNiz5+qD+s8/U/jmm0NANUCfoMBAuPHGzG/zC//+hTG/rQKc9zQCQgIYkTgi7XelSrU4diyM0aM/5/Ll6mltHjx4VTkEBekeT8a2qlfXchQ0lixZQrdu3YiKimLjxo3p9v3zjx6aqlQpfe8pK86fh8aNITnZypUrN1GjRklj8JcNfrfkFt1zmAtMzpD+JhBt+x4NTLR9rwf8CYQAVYGDQEB27ZjVU87Zs2ePBAYGyoABA7LMFx8vUreuSNmyIrGx7tWdnJws4eHhAp8IiEyd6gGB/ZwuXboIIK++Ola2bBGZN09k+HCRBx8UqV5dr+CyrziyBKYKZf8R6m2XEneulkdYLM8wVZ7jHXmaD6R7kS/llVdEHnpIpEYNEYvFmlY2MFD/Hw8/LBITI/LppyI7d4pcueLrM+A5UlNTJTIyUpRScvDgwUz7u3XT52L69JzVu3GjSFCQSMOGhwWQzz77zEMSF07wwyW3LdHDS9uArbbtfqAUsBK95HYlEOlQ5lXgAHrJ7X3utGOUhnM6deokERERcvLkySzz9e2rH3g//piz+qdMmSIQKWCVChXyIGgBwG5XERkZ6dKuIiFB5I8/RObOFWnR44hw426h5BlBXVUIjltgoEidOiJdu4qMHClSo0a0QB2ZN29x/h6cDxg9erQA0qlTp0z7kpP1curw8Nwt6508WZ/fcuUmSvXq1SUpKckDEhdO/E5p5NdmlEZm3DXkmztXXyEjRuSuHW3wt07AKmvX5q6OgkBWhnzOcLTTqPP2/2TqS4cFriqPkQ2WSsZnmb8b/HmKrAz5RLRhJ4g8/XTu6rdaRTp2FAkISBVobgz+ssAoDYOIuG/It2uXfpu7/Xb9dpcbtMHfLQJWufnmXArs52RnyOcMR6VR7733pG5d0T0yjgqItKhyzGk5+xCYLw3+vI0rQz47Zcpog70LF3LfxtmzIpUrWyU0NFZKlKhqDP5cYJSGQUREFixYIIDMnTvXZZ5Ll7RVdenSIseP5629Bg0aCBwTsMqpU3mryx+pVKmSALJhwwa3y6RzI/LIKgGRm25MkteJkTASBKzirLr4+HgJCgqSkJAQuXz5sgePwj84ceKEWCwWiYiIcNqb+v57/cRq3Trvba1fLxIYaBVYKkOGDM17hYUQV0qjkK1pMWRFdhH57Dz/PGzfrpfYVqiQtzaXLFkCvAEohgzJW13+RnYR+bIlMZh/Pm9JQAD8+EswEdeF8wg6UNODD15d0msnPDycIUOGFNoIf44R+ZwZmb74ov6cMiXvbd18M7zxhgI68e67qSbCX05wpkkK02Z6GleZMGGCALJy5UqXeRYs0G9z0dGea/fee+8TSJDAwGSP+iTyJampqVKsWDGxWCzy999/56hsWk+j8iEB7TNLRCTuUJzEECMPPKD/gyFDXLerlMpxu/7Mxo0bBZAbbrjB6f5jx/Q5qVrVc21arSJt2lwSSJS2bT14wRcSMMNT1zanTp2SYsWKSfv27V3m2bNHeydt0SL38xjOiIuLE5gpIDJhQornKvYhL730kgDSq1evHJeN+flnofsCAasERZ5Pt++znp/J5cvaCZ/FIuJkxanMnj1bAGnZsmVuxfc7atasKYD88ssvTvd36qSfVnPmeLbd06dFihWLE9gvP/7o/hDjtYBRGtc4zz77rAQEBMjOnTud7r98WaRhQ5HISO3C2tM8+eRQgVQJCzvn+crzmYsXL+ZpbuG1H38WghMFrFJ9xHyneebN03dnrVrO66hcuXKO51L8lUWLFgkgUVFRTvcnJ2v7iogI77T/448JAslSqtQKSU3Nhe/2QopRGtcw7hjyDRigr4ZvvvGODMnJyWKxrBWwypdfxnmnkXwir6uY6t7xj15e23Sj1HvvPZf5mjXT/8k772Tel5tVW/5IdoZ8ItpOBUSee857cnTu/LuASL9+m73XSAHDKI1rmI4dO2ZpyLd4sb4Shnp5EcmwYQsFrBIRsce7DXkRdwz5smL9etE2GWEJwusxWSqNU6e0kV9QkF4mmpHmzZsLIAsXLsyxHP7CqFGjXBry2SlVSg/VeTOY1pUrKVK06K+iVKJs2FCIzOvzgFEa1yjZGfLt3y9SrJjIzTfnjysKi0Uvv/35Z+fDZP5OTg35HElNFbnuOpvSeHxWmp1GVvz3v/ouve22zPsKusGf3ZAvKCjIqSGfiMhXX+njb9PG+/IsXLhC4LiUKXM2T3YghQWjNK5BHA35LjkJU5eYKNK0qUiJEiKHDuWPTM8+u11ApFgxL42DeRH7kFCNGjVyVf6FF/Qdd+Otp9IZ92VH9eq63KefZt5XkA3+7IZ8L774oss89erpY3cxFedRrFarREUNEUiRLl2SchWatjBhlMY1SHaGfM89p6+AZcvyT6bUVBGlEgQS5fPPv8y/hj1Abgz57Bw8qIdYihQRefX7VTlSGnv3av9f4eGSyb1IQTX4y86QT0S/yIBIzZr5J9eff/4pMCJXDhELG66UhjHuK6RkZ8i3bJk2knr+eejYMf/ksljgkUeuACH07r0t/xrOI3k15GvXThvrzZgBQcGSo7I1a8Izz+jgSt27p9/naPCXMbKdP5OdIR/As8/qz9Gj80+uBg0a0KdPLEqt5NlnrWwrOJdo/uFMkxSm7VrtaWRlyHfokB6SiorK/OaaH5w/LwKpAv/IxIkT81+AHJIXQz4Rkbff1m/MzZvr3xl9T7kng/a7BCJr1jiXr6AY/GVnyCeir8vAQD3flt8cP35cwsKqSGjoWalVS8TFdEuhB9PTuHbIKiLflSvQrZt+6128OHeR5fJKsWLQooUVuI5XX11Fij04t58yfPhwLly4QI8ePdwOuWrn7Fl4+WUdCOnbb3Mvg8Wie4cAnTqldzFisVh49913ERG6deuW+0byiawi8tkZOVLHbO/fP7+kukqFChV48cXHSEzswt69wsCBV4NdGXCvpwGURAdBqgZY3CnjL9u12NPIypBvyBD9turr+DNbt4rNHfhm6devn2+FyYK8GvLdeqs+344dqtz0NOzYLaMHDcq8ryAY/GVnyGenRAmRgABtdOoLLl68KOXKlZOKFWcIiMya5Rs5fAk5nQgHigOvANvRQY/WAJuAY8CnwJ2uyvrTdq0pjawM+ezLF595xgeCOaFKFatNcVSUU37qAte+OmnUqFE5Lmu3f8m42CovSiMpSU+IK6UnyB3xd4M/dwz5RPQLDYjcd18+CueEjz76SMAiN910UsLCRP76y7fy5De5URo/Ar2BEk72NQUmA0+6Ku8v27WmNFwZ8h05IlKypEjjxr57e8vInDn6CoRPpU1+LMTPIXkx5Mvq4Z4XpSGil96CXoqbEbvB34IFC3Jcr7dxx5BPRLtOAW1D5EtSUlLkpptuksqVb5GyZa1St653DQz9jRwrjcKyXUtKw5Uh35UrepgkIkJk3z4fCeeCokVF4IqARbZv3+5rcdKRF0O+jh313fXss5n35VVpiGhjP+0AMn26vxr8uWPIJ6IVLIjUrp2PwmXB8uXLBZCnn/5clBJ54glfS5R/5ElpAA2AB4HO9s2dcv6wFQSlMSILV+XukpUh30sv6X86F88+rzNokNh6G69J3bp1fS1OGnkx5Fu9Wh9TmTLO41h7QmnExWn3IoGBkim4lT8a/LljyCci0q6dPneff55PgmWD1WqVtm3bSsmSJWXo0EsCIp98kvv6vtq923PCeZlcKw1glm0u42Ngtm2blV05f9n8XWkkp6ZK4OjRciqP/V5Xhnzffqv/5f/8J0/Ve42EBG30FhBwVgD58kv/MPjLrSFfaqqOeAjiMi66J5SGiMjkybqdZs3Sp9sN/oKDg/3C4M8dQz4RPWwaEKCHUf2JP//8U5RS8sILL0qrVnrYcdeu3NXV5H//k78LiI+SvCiNndnlye1mU0j/An85pEXa5lP22T5LOuwbDuy3Tczf604b/q40Ptm6VYiJkdd++inXdVy+fFkqV64sjRs3TndTHjumnb01aKBDuPord99t723cJ2XLlvW1ODJz5kwhl/EqBg7Ux9K5s+s8nlIaIlfH/+fNS58eHR0tgPTs2TNP9XuCVq1aCSAzZszIMp99Zd/w4fkkWA544oknJDg4WH777bCULq3DIef0njp+/rwQEyP/27TJO0J6mLwojZlA3ezy5WYDbgeaZFAaE4Fo2/doYILte13gTyAEqAocAAKya8PflcYds2cLMTFSe9q0XNdhN+T7yUHxJCeLtGyp34r8vUe8Y4e+EosWPSSATw3+8mLIt3u3a3cfjnhSadjdk4SFpV/g4C8Gf+4Y8tkpVkwPt/nC4DQ7jh8/LkWKFJFu3brJ8uX6eu3fP2d1fLhxoxATI+39cJGCM1wpDXeM+z4G1iml9iiltimltiulPGJcLyK/AmczJD9ka9PedkeH9EUikiQih9A9juaekMOXbPj7bwD2njmDNWNQaDewG/J16NCBO++8My195EhYswY+/BBq1fKYuF6hbl2oUQPi4yujVBVGjhzpM4O/vBjy3X+/7i99/HH+GU1WrQqDB8Ply9C169V0fzH4c8eQD2DhQrhwQZ9DXxicZkeFChUYNmwYixcvpkSJ9bz8MkyfDosWuV/H13v3ArDi4EEuJSd7SdJ8wJkmcdzQD+cH0W/3le1bduXc3YAqpO9pnMuwP872OQ141CF9JtDVRZ390fMwmypVquRxDewpNv79d9obJzEx8snWrTmuw5kh3/ffS4Fb6TF/vn57q1LlTwF8YvCXF0O+8eO1/C1aZJ/Xkz0NET2PUq6cbv/nn9Pv86XBn7uGfCLalgVEDh/OB8Fyid3g77bbbpOkJKvcdpte/ZdxSbUzEq5ckdCxY9P+96/3+H9MGfLQ0zgqIl+JyCEROWLfPKGwcohykubUuF9EpotIlIhElSlTxsti5Z531q1L93vGli05Kr93714++OAD+vfvT506dQA4cQIefVS/vU+d6jFRvU7Pntq9yPHj9QkLK87MmTM5ffp0vsrw+OOPk5yczCuvvEJoaKjb5f79F15/HYKC4JtvvCigCywW+Oor/b1Ll/QuRuxv+D169MhXmaxWKwMHDkQpxZIlS7LMu2MH7N8P9epB5cr5JGAuKFq0KGPGjGHt2rV8/fVSFi3SvaJHHoHExKzLrjh4kESH3vPXe/Z4WVrv4Y7S2K2UWqCU6qGU6mzfvCjTSaVUeQDb57+29OPADQ75KgInvCiH11lx6FC63xtP5OxwXn75ZcLCwoiJiQEgNRV69dLeUJcsgSJFPCVp/vDUU5CSomjV6kesVmu+PuiOHDnCsmXLiIyMZMSIETkq+8AD2k/SW29BiRJeEjAbmjXTPsXOnoWnn76a3rJlS5o3b86BAwdYuHBhvskzduxYzp49S8eOHalatWqWeZ9/Xn++8UY+CJZH+vbty0033cTLL7/Mdddd4eOPYetWGDo063Lf2Iam0n7v22cfFSlwuKM0woAk4B6gg21r70WZvgIet31/HPjSIb27UipEKVUVqAls8KIcXuX0pUv8m5CQLu1ScjKbY2PdKv/rr7/yxRdfEB0dTdmyZQEYMwZWrYL33tM9jYLGuHEQEAAbNzajfPnyrFixgr/++itf2n744YcREd5//32XrrqdMX8+bNoEtWtfdeXtK+bNg4gI7X59x46r6UuWLEEpxTPPPJOrebOckpiYyPjx4wkKCmLu3LlZ5r10CX7+GUqVgvbefKp4iICAAN58800OHDjA+++/T/v2WmG8/z589pnzMlaRTErjxMWLbt/r/ka2d4eI9HWyPeGJxpVSC4F1QC2l1HGl1JPAG0BbpdQ+oK3tNyKyA1gC7AS+A54RkVRPyOEL3l2/3mn62xmGrJxhtVoZNmwYFStW5IUXXgDgp5903IHHHoM+fTwpaf4RGgpt20JcHDz1lHYJmx+TuKtXr2bjxo3UqFEjR+0lJkK/fnp46LvvvCigmwQGasUhons/dipXrkyXLl2Ii4tjzJgxXpejX79+JCUlMXjwYIoWLZpl3uhoPZw2aJDXxfIY7dq145577mH06NHExcUxfjw0bw5PPgkHDmTOvzk2ltj4+EzpX2dQJAWFbJWGUqqqUuptpdRSpdRX9s0TjYtIDxEpLyJBIlJRRGaKyBkRuVtEato+zzrkHyci1UWklogs94QMvuKznTudpv948GC2ZRcvXszGjRsZP348YWFhnDyph6Vq1dK9jILMlCn689NPG9OgQQN27tzJV1955HJzyaOPPgrAggULclSuSxe9amnIEP8Zi3/wQbjjDjhyJH3wojlz5hAUFMT48eNJzG4APg/ExsayYMECIiIieMON8abZs/VcUA5HBH3Om2++yblz5xg3bhzBwTrMgMWihwiTktLndTV/kbH3UVBwpx/+BXAYmAq85bAZconVamXv2bOUDQ8nNCAAgAClqFS8OP8mJHD60iWXZTNG5EtN1RPf587peYxsXuz8npo1tfLbvRvefHMpoN9cvUVuI/L99BP83/9BuXIwYYLXxMsVX32lJ2hHj4Z//tFp4eHhDB06lCtXrng1wp87EfnszJkD8fHQoYPuJRUkGjRoQN++fZk6dSoHDx6kShWtAP/4Q8dPceSbffu4vXJlWtygp2SLh4TQr0kTtp08yYmLF/Nf+LzibEmVpF+++nt2efx580fjvsNxcTJnyxYRESkzcaIQEyNhY8eKiMiXu3fLxiyMsTIa8o0Zo5cqfvSR9+XOLxxdY99///1eM/jLrSFfaqp2dQEiGzfmvF1PL7l1xvvva/kaN76a5m2DP7shn7vL3KtW1TIeO+ZxUfIFR4M/O889p49p2TL9+0pKiqw6dEhERJ768kshJkaue/NNERE5FBcne0+fzm+x3YY8WIT3BEYCt6Ktt5sATbIr5y+bPyoNRzIqjaw4deqUFCtWTDp06CAiIqtWaWvgnj1FrFZvS5q/2IPwxMbGSUBAgISFhUlycrJH23jppZcEkF69euWo3JNP6june/ectfffX3+Vy8nJTpXG6FWrclaZG9Srp+V0DCA0e/bsXLtIyY6aNWsKIL/88ku2ef/8U8vWsKHHxchXXn/9dQFk3bp1IiKSmCjStKm+fm26Io2MSsPfcaU03Bmeqg/0Q09I24emJnmur2Nwl9GjR5OQkMCECRM4dUrbNtSooa2+lTMrlgLM00/rJcRvvVWCAQMGcPnyZQYMGOCx+uPj43nnnXcICQlhxowZbpfbsQNmzdKrlD75JGdtTt+8mbBx45jy++9paQfOnsUyahRjV6/OWWVusHy5HmcfOFCvUgLo06cPlStXZs2aNWzcuNFjbS1evJh9+/YRFRXF7bffnm3+557Tn2++6TERfMKLL75IuXLlGDp0KCJCSIgeJrZaoXt3HV65sOGO0ugEVBORO0TkTtt2V7alDB7F0ZCvVq069O4NZ87oCzQiwtfSeZ5Ro/Ty248+gsmTJxMeHs6sWbM8ZvCXW0O+Bx7Qq5MWLMj5OPxYm5uXsw4T0YmpqQhwS4UKOavMDW64QY+vJybquOJ2PG3wlxNDPtDuQlavhjJl9Gq5goyjwd/SpXoOrlo1mDkTfv8dXnnFxwJ6AXeUxp+Aj0yWDHYcDfkmToTvv4fJk6FhQ19L5h2Cg+G+++D8efjsswDeeOMNjxn85daQb9QovSqpdevc2RT0bNDA5b6ZDz6Y8wrdYPx4qFABfvhBb+B5g7+cGPKBVmRWK9hWixd4HA3+rti6Fl276h7eW2/5xkuAN3FHaVyHtgr/3tNLbg3uYTfkGz58OHv3lmXECO264D//8bVk3sXuBuW112DQoEEeM/jLjSFfbKw2ngwJueqyIzeUCAnJlGYBapQqlftKs8H+0HrkET3kB54z+MuJIR9oZTF3rn4pyLjKqKCS0eDPzltvQaNG8PjjcOyYDwX0MO7cMSPRQ1TjMUtu8x1HQ77evQfTowdUqaKHbQrbPEZGqlTRlu379sGuXTB79mwgbwZ/uTXku/9+/cB99928DQf2qF8/U1oVL/seadQIevfWvbYnbGa5jgZ/ox0NOnJITgz5QFurX7qkh8tyYHjv92Q0+ANtrLpkiZ7X6N4drCmF5IZ1NjuuJ85RrvblJI+vt4K+emr+/PkCyJw5c+WBB0SCg0UKSAwXj/DVV3qVTZs2+nfDhg3zFOEvNxH5ZszQMtSvn6sm05GcnJzOszExMbJw27a8V5wNKSkixYtr78d//qnT8hrh7++//3YrIp8jlSrpcxkbm+Pm/B57hL+hQ4emS1+4UB9zg857C/3qqZ+VUs8qpSo5JiqlgpVSdymlPuaqjyiDF3A05Pv33158+y1MmgRNm/pasvyjQwftl+inn/Qb6uLFi4HcGfzNnDkzx4Z8CQnaxYXFoo358kpgYCDBNoNOO92d9D48TUCAtloWBxcjeTX46969u9uGfKB9dB09qq/fcuVy3Jzfk9Hgz0737tC/P2xbWhP21fChhB7CmSbRSoZQYCDwG9qb7E7gIHAE+Aho5KqsP20FuadhN+SbNm2TBAbqEKKFzR7DHV5/Xb+pPfec/p0bg7/cGvK1aaPbfuWVnErtmttnzUrrZZR44w3PVewGGY8ntwZ/OTXkE9GxRpzF/ChMODP4E9GhYSOrnBOKxEvpER/4SLqcQW6N+3RZgoDyQAl38vvTVlCVht2Q7957e0ilSiJVqojExflISB+TnCwSFCQSEaF/x8VdNfi7cuWKW3XkxpDvu+/0HVKxYm6kds2+06fTlMagb7/1bOXZEB8vEhqqjULtlth2g78W7kSQspETQz4Rfe0qpYNFFXYyGvzZ6freCiEoSYKqHhUP26l6BVdKw62pKBFJFpFYETnnsS6OIUtGjx5NfHwCV678j9hYPbTgq1gNviYwUC9xvXhRh1ItUeKqwd/AgQOzLZ8bQ76UFO18Tin49tu8HkF6apQqlRZR7J177vFs5dkQHq6dWlqtenIfrhr8/fbbb24Z/OXUkA+0U0cRGDYsL9IXDDIa/NkpUTEB2n9D8qEbsIXAKZg40ySFafN5T6NRI5EBA0ROnHC6u8zEiVJu6FD5tUqVtNnBPXv2SGBgoLRosURA5O2381Ng/+ToUf3WX62a/p2SkiLh4eFisVjk1KlTWZbt3LmzADJq1Ci32+vdW7f32GN5kdo1VSdPluAxY7xTuRs0aqSP78MP9e/Vq1cLINWrV8+yXGpqqkRGRopSSg4ePOhWW6mpImFhIiEh+vu1wEcffSSAfPbZZ2lpT335pb7XizaVcsTKDz/4UEA3IC/DUwV587nSAL3kKTTUqfIoM3GivBcVJSlKiQwcKCIiHTt2lCJF7pCgIKs8+OC1OY/hjAYN9Om0r/6ZOnWqANLGvrTKCYcPHxallERGRrq9wmfLFt1OiRLee8gt3LZN7pg92zuVu0FsrPbtFRwscv68TmvevLkAsmDBApflRo0aJYB06tTJ7bamTNHn89FH8yp1wSElJUVuuukmqV69uiQlJYmIVhr2e31ByYFStqzLd0m/INdKAxgElMwun79ufqE07JsT5VFvxAi5FBio94eFydqlSwWKS8mSZ6VSJZEzZ3wrvj/x/ff6NLVufTWtfPnyAsg2F8tWmzVrJoAsWrTI7XYqVNDtePtN8LKPB7ZHjUp/Pu0KtmTJkk4V7OXLlyUkJESCgoLk4sWLbrdToYKez8imQ1joWL58uQDyzjvviIjI0Nmz0+711JAwqRIaK3feqZdD+yN5URpjgf3oqHntKAC2GY6bXykNJ8pjYZMmcjkgQATEGhwsS8qUkbCwbyQw0Cpr1/pWdH+kTBk9iWt/Zn3//fcCSJ06dTLl/fXXXwWQGjVquF3/8OH6L7rnHk9J7N9UrqyP9+uv9e+uXbsKICNHjsyU99FHHxVAXnzxRbfrX7tW19+8uWfkLWjcc889UrJkSTl79qz81K5d2r0uwcGy886BAiIxMb6W0jl5Gp4CLotYfQAAF6dJREFUFHAvsMimQMYD1d0p6+vNL5WGg/KwZkhLIECuI1a8ED6iUDB2rD5VTz99Nc2VwV9ODfmOHtUKKTRUJCHBk1L7L3/9pXsBERF6lZorgz+7IV+xYsXcHuYTEbn5Zv1//fabN6T3f+wGfzH/+Y8kBQenu9etYWEyqGusKCViC4/jV+R5TgNoCEwGdgMfAFuAie6W99Xm10rDyXaZIPm60oBrZsIwp6Sk6I5akSJX5xt2794tgJQtWzYt34wZM3IcN8JZ/IlrgYzxQaKjowWQnj17puVp1aqVADJjxgy36z11SiukChU8LXHB4oknnpAPLBa5Yu9lOLw0Jj01UGrX1kuR//nH15KmJy/DU88BfwDfAw8DQbZ0C3Agu/K+3gqa0hAQa0CAyNatvpXbj3nkEX2qHKMVOhr85caQz1mku2uF1FSRyEh9/Bs3Zjb4y40hn8jVFWhTpnhJ8ALCiT/+kEuu7vewMNn5U6yEhoq0betfq8vyojRGA5Vd7KuTXXlPb7Z5lT22YbLo7PIXRKUhoJe2ZLFU91rmxAl9ihyfYY4Gf8OGDRNw35Dv/Hnde9GRAr0ktJ+zcqU+p+XK6QeXo8FfTg35RHQdISF6qM+fHoQ+YcAASc7Yy7BtqQFBcrnnEzJ9uk5yI4BnvlEoltwCAcABoBoQjI71UTerMgVWaWSYMDfKIz1Nmkjam7GdQYMGCSCAhISEuO2E7447dF2jR3tH1oLC/ffr8zBsmP5duXLltPMZFRWVo7omTdJ19e3rBUELEidO6Hs4i/v8CoEyo+o4aV37hFgsVvn5J//Qsq6UhtL7CgZKqVuBGBG51/Z7OICI/NdVmaioKNm0aVM+SegED/gvTwKswIKQEN4KC+NkYfIpnUuuXGlBfPyXBASsp3hxHRHJarVy7txVpwWRkZFu1HMv8fHzsViOUqJEE6/JWxCwWoM5d+4AEEKxYo25nLiHZFtQIYWiZGRJt+uKi9uBSFlKlKiOxXLBSxL7PxMTEng0KYnMUVSukkwAP3Avw/kv22lAKctZ/tftZ+p1q0etB2uhfBQDQSn1h4hEZUzPYcBKn1MBcAxnchy4OWMmpVR/oD9ApUqVMu4ucNgvuL5JSdxeqhRTOnf2qTz+wqxZF7l06WY6d36C0FAdQnXaosVw+hQ3lG/GQ10yXRrpsFotfPTRBAC6dfuEUqV6el1mf2fPnk/58cfHCAj4gfvuHcxXyz8Hq5Uoori5Z3O36jh+vDpffHEd5codpGvXXIQ4LCQUS0ig99y5BGeTL4hU7uRnLhBBzZAj3NEknvq96lP1rqo+UxhZUdCUhrMzmKmrJCLTgemgexreFsrbJBKMlQDm0JdPi71G5YvlaNIEGjfWAXYKY4xwd6hcGV58EUTeTIvyV3paaf3lHxg5dWSW5bt3h+Rk6NcPpk93P+xrYadZM9i0qRx33b2IJt+MSrvDej7Qk5rtamZbPsr2bvr119WJiprqRUn9l9On4XLfgVgIAFKzzR9iSeGvLqMIXzzbLxWFI2Z4ytvk8QIQIL7L4/zS7g3WHy7H5s2weTOcPHm1+po1tQKxK5LGjaF06byL7u9YrVCkiI51ER+vP0dZrj7kRoprpbFxIzRvDpGRcOpU4Yoil1dOn4by5fW1NfX2Rfyzcg8AoZGhvHwm6xit//yjy95wg46dUdgRgRMn9D25ZQtp92fysVgOUo0wEt2vLCwMDh70m2AjhWV4aiNQUylVFfgb6A4U6jEFFRRExHXhtH+qHI4d/djYqxfoli2wfr32hGunUqWrisSuTK6/vnCFiLVYoGvX/2/v7qOkqM48jn8fGF4GCS8qbwKRQTjiqDAoGiJmMUEjsgqYE41rokbjQQlxdfO2suzGs7oeNea4rjGysmpYFWOIUUHiK0lOPGtUJPI2vCkElVEIgyKv8jLMs3/cGrt7phlrhumu6Z7f55w+U3Wrqufemep+7r116xbMmQMzZ8K0adCupB21Bxp/5nVtLUycGJZ/+1sFjPqOPjo8D336dHj4k2/wVcLjYPd+tJddW3fR9ehDP9b1hhvCz38twoabe/hOrx8gqqvDdjM4/nj40pfgRxtuoeMbtVDThF9w8GD4w//iFznJf0spqJYGgJlNINxk2B54yN1vbWz/Qm9pALFrIB9+CEuXZgaTt94KJztA796pAFIXTMrKCjuQVFdDnz4hIFZVwW3db2P/jnDx9vqN19NjQMP55H/wA7jrrvAEuwUL8p3jwjFkCKxfD1f2WsCx1X8BoPfw3kxdNjXr/jU1Yer1kpIwjX0hB+OaGli7NjM4LF0anrMOoYwnnZT5eRo+HLp2JdToBg+GvU1oZdRpRa2NYmlp4O7PAi3w4M0CErMGctRRMG5ceNXZuROWLcs8+RcuDB8KgO7dM7u2Tjkl1JbqPZG01erVK/TBL1oEr74KpT1LPw0aa55aw+jrRmfsv2ED3H13+Gw+8UQSOS4czz4Lw4bBr3dP4PssoYRatizfcsj977wT9u+HK68srICxbx9UVqY+I0uWhM/MJ5+E7aWlMGIEXHppqrJ14onQ6VBDom65JTRnm6MAWhsF19JoqqJoaUCL1kD27s38kLz5JixfnqoY1X1I0gNJox+ShL3yCpx5JoweDVM6/pL3Xg6d6eUXl3PRry/K2HfYsFCDnDMnfAlI46ZNg/vug/L2a7j4YOj/rLiygkkPTWqwb+/eobW7bRt065bvnMaze3cICOmt8crKVCWqW7fM837kyFCJKolbvT6cVkadVtLaKJqWRpvVgjWQzp3DCJdRaadDTQ2sWZPZX/vII+ELA6BDhxA40q+RjBgRuiOSNmZM6J56/XW44eqBEAWNrWu2Zux3990hYJx2mgJGXD//OcydC6u2Hs979OfzvM+yh5d9GjRq9tZQ0rmEl14KXYVjx7aegLFtW2bFaMmS8P+vqyf36hXO5fPOS53TZWWH2Uo6nFZGnVbe2lBLI9da8oJBnmsgtbWpC3/pwWRr9F1cd+EvPZCMHAk9498D1mJuv2kP02/uwuSzd1Cx8D8B6NKrC+NuG8fz1z/P1I3/Qp8+4Qtj06a2MbqspdS15Lqwmx/yM9oBF865kA5HdGDet+dx47YbqagINfilS0NlIt82b254nr7zTmr7wIGZ5+kpp+RgYEhLtDLqtILWhloaxSDPNZB27cLF0CFD4OKLQ5p7uOCcXoN7+WV47LHUcWVlDUdu5frc7/On31DCpSxY2IXhhNk091Tv4Zmrn8HaG+efH+7JuOMOBYymGjMGJk+Gp58+guc5lwm8wIIpCziw+wBYOB+WLYNBg3IfMNzh3XcbjmDavDm1z9Ch8IUvwLXXps6/vPzPW6KVUacVtzbU0si10tKWqXnUqagIn5ZWprq6YVfAunWp7f36NewrPvbYlqvp1eyt4bTSFSxlJF/lBc7gtU+3vf25EczZOZnjjsvMk8Tz4boP2fbebkZcMJA9e+A6fs5RbPt0+/Kv3cSTT8Ls2XDFFS33ew8ehLffzgwQS5aEbicIgzXKyzMrKCNGJNg9NnJkaGq1lIQ/64dqaShoSM5s3x4+Q+nBZPXqVGWsZ8+GQ4CHDm1+n/LNfe7hpi3X0ZVd/JC7AKihHXe2u5H93oG1a8P7S9NsXr6Z+0fcz0pO4DdcxJF8xD9yLxDudb69w0/o1MnYubP5v2P/fli1KvNcWbYsXLiGMAjj5JMzW68nnxzqZJIb6p6SvOvePVwYHTs2lbZnD6xYkVl7vOee8KUB4cJ6RUVmMCkvDxfiP8vlv5nIA2M3spGBvMPnGcR7PMHX2Vfbge99TwGjufoO78ukX06CK+fxKhup4vP8H2dwJn/mZcZy4IBxzTXx32/PnjBaLz1AVFamzoGuXcM58J3vpM6DE06Idw5I7qmlIYnbvz+0QNIDydKlqVpmx46pWmb6jVTZaplTOzzIf9dcRT8+4Dye5yGuolcvY/Pmwrp3oDWaf/V8/vzgKu7kRwD8gJ9xL9ex10rZtcvo0qXhMXWtzfRuy/TW5pFHNrxAPWSI/letgbqnpKAcPBiuP9QfEZPenz1sWOYXTkUFvHbzC1x812h20I1SPuETSnnlFeOMM5ItT7G4/9T7eerNY3mB8XRnG9vpybDPVbF6xwC2bMm89vDmm+GO8jrHHNOwO3LgwMKekaCYKWhIwasbOVP/gvumTal9jjsOtq3fykeE4TLdbTv3Ptw9oRwXpwXXPMPTe8axj9C06F+yGfr05f33U/sMHtxwBF2fPgllWJpF1zSk4JmFYZ2DBsGFF6bSN20KwaMumPzx3Y6fThS33btz2WVJ5LaYXZCxduBge845KxUgKiqgR8Mpv6RIKGhIwevXL7wmTAjru7a247u9ZrOfzpx3zUDG/HBMshksQjuqdnDzl//AMXxAH6vmpkcbf3aJFA8FDSk6XY/uyok9/sbej/fyjdsn01m13pY3pBu3PX08cycvC88iljZDYxSkKF3wP6ELpXOPzgnnpHidMOkEzvixRhi0NQoaUpTKv17O0PN1Y0aunXPHOZSNK+Pjqo+TzorkiUZPiYhIA4caPaWWhoiIxKagISIisSloiIhIbAoaIiISWyJBw8wuMrOVZlZrZqPqbZtuZuvMbK2ZnZuWfqqZrYi23WOmGWtERPItqZZGJfA14OX0RDMrBy4BTgTGA/eZWfto80xgCjA0eo3PW25FRARIKGi4+2p3X5tl0yTgcXff5+4bgHXA6WbWD+jm7q96GCP8MDA5j1kWERFa3zWN/sDGtPWqKK1/tFw/PSszm2Jmi81scXV1dU4yKiLSFuVs7ikzWwj0zbJphrvPO9RhWdK8kfSs3H0WMAvCzX2fkVUREYkpZ0HD3c9uxmFVwMC09QHAB1H6gCzpIiKSR62te2o+cImZdTKzMsIF70XuvgnYaWajo1FTlwOHaq2IiEiOJDXk9kIzqwK+CPzOzF4AcPeVwFxgFfA8MM3dD0aHTQUeIFwcXw88l/eMi4i0cZqwUEREGtCEhSIictgUNEREJDYFDRERiU1BQ0REYlPQEBGR2BQ0REQkNgUNERGJTUFDRERiU9AQEZHYFDRERCQ2BQ0REYlNQUNERGJT0BARkdgUNEREJDYFDRERiU1BQ0REYlPQEBGR2BQ0REQkNgUNERGJTUFDRERiSyRomNmdZrbGzJab2VNm1iNt23QzW2dma83s3LT0U81sRbTtHjOzJPIuItKWJdXSeAk4yd2HA28B0wHMrBy4BDgRGA/cZ2bto2NmAlOAodFrfL4zLSLS1iUSNNz9RXeviVZfAwZEy5OAx919n7tvANYBp5tZP6Cbu7/q7g48DEzOe8ZFRNq41nBN4yrguWi5P7AxbVtVlNY/Wq6fnpWZTTGzxWa2uLq6uoWzKyLSdpXk6o3NbCHQN8umGe4+L9pnBlADzKk7LMv+3kh6Vu4+C5gFMGrUqEPuJyIiTZOzoOHuZze23cyuAM4HxkVdThBaEAPTdhsAfBClD8iSLiIieZTU6KnxwD8DE919T9qm+cAlZtbJzMoIF7wXufsmYKeZjY5GTV0OzMt7xkVE2rictTQ+w71AJ+ClaOTsa+5+rbuvNLO5wCpCt9U0dz8YHTMVmA2UEq6BPNfgXUVEJKcSCRruPqSRbbcCt2ZJXwyclMt8iYhI41rD6CkRESkQChoiIhKbgoaIiMSmoCEiIrEpaIiISGwKGiIiEpuChoiIxKagISIisSloiIhIbAoaIiISm4KGiIjEpqAhIiKxKWiIiEhsChoiIhKbgoaIiMSmoCEiIrEpaIiISGwKGiIiEpuChoiIxKagISIisSUSNMzsFjNbbmZLzexFMzsmbdt0M1tnZmvN7Ny09FPNbEW07R4zsyTyLiLSliXV0rjT3Ye7ewWwAPgJgJmVA5cAJwLjgfvMrH10zExgCjA0eo3Pe65FRNq4RIKGu+9IWz0C8Gh5EvC4u+9z9w3AOuB0M+sHdHP3V93dgYeByXnNtIiIUJLULzazW4HLge3Al6Pk/sBrabtVRWkHouX66Yd67ymEVgnALjNb20LZzqWjga1JZyJHirlsoPIVOpUvu2OzJeYsaJjZQqBvlk0z3H2eu88AZpjZdOB7wE1AtusU3kh6Vu4+C5jV9Fwnx8wWu/uopPORC8VcNlD5Cp3K1zQ5CxrufnbMXR8DfkcIGlXAwLRtA4APovQBWdJFRCSPkho9NTRtdSKwJlqeD1xiZp3MrIxwwXuRu28CdprZ6GjU1OXAvLxmWkREErumcbuZHQ/UAu8C1wK4+0ozmwusAmqAae5+MDpmKjAbKAWei17FpKC605qomMsGKl+hU/mawMJgJBERkc+mO8JFRCQ2BQ0REYlNQSNhZjY+mjJlnZndmHR+msPMBprZH81stZmtNLPro/QjzewlM3s7+tkz7Zis08W0VmbW3syWmNmCaL2YytbDzJ4wszXR//CLRVa+f4rOy0oz+5WZdS7k8pnZQ2a2xcwq09KaXJ5mT83k7nol9ALaA+uBwUBHYBlQnnS+mlGOfsAp0fLngLeAcuCnwI1R+o3AHdFyeVTWTkBZ9Ddon3Q5PqOM3ycMD18QrRdT2f4XuDpa7gj0KJbyEW4C3gCURutzgW8XcvmAvwNOASrT0ppcHmAR8EXCfXDPAefF+f1qaSTrdGCdu//V3fcDjxOmUiko7r7J3d+MlncCqwkf1kmELySin3VTv2SdLia/uY7PzAYAfw88kJZcLGXrRvgSehDA3fe7+8cUSfkiJUCpmZUAXQj3eBVs+dz9ZeCjeslNKs/hTM2koJGs/sDGtPVGp0cpBGY2CBgJvA708XCPDdHP3tFuhVbuu4EfE4aI1ymWsg0GqoFfRt1vD5jZERRJ+dz9feBnwHvAJmC7u79IkZQvTVPL058mTM2UTkEjWU2aHqW1M7OuwG+BGzxzUsoGu2ZJa5XlNrPzgS3u/pe4h2RJa5Vli5QQujpmuvtIYDehe+NQCqp8Ud/+JELXzDHAEWb2rcYOyZLWassXQ4tMzZROQSNZh5o2peCYWQdCwJjj7k9GyX+LmsFEP7dE6YVU7jHARDN7h9B9+BUze5TiKBuE/Fa5++vR+hOEIFIs5Tsb2ODu1e5+AHgSOIPiKV+dppan2VMzKWgk6w1gqJmVmVlHwrNE5iecpyaLRl08CKx297vSNs0HroiWryA19UvW6WLyld+mcPfp7j7A3QcR/j9/cPdvUQRlA3D3zcDGaIYGgHGEGRmKonyEbqnRZtYlOk/HEa65FUv56jSpPH44UzMlPRKgrb+ACYTRRusJMwAnnqdmlOFMQtN2ObA0ek0AjgJ+D7wd/Twy7ZgZUZnXEnPURtIv4CxSo6eKpmxABbA4+v89DfQssvL9O2F+u0rgEcJIooItH/ArwvWZukdGfKc55QFGRX+T9cC9RDOEfNZL04iIiEhs6p4SEZHYFDRERCQ2BQ0REYlNQUNERGJT0BARkdgUNERyxMxKzexPZtY+B++9MH0mU5F8UdAQyZ2rgCc99cjilvQI8N0cvK9IoxQ0RJrIzE4zs+XRcxmOiJ7VcFKWXb9JdJetmZ0VtTrmmtlbZna7mX3TzBZFzzQ4LtpvtpnNtPB8kr+a2djo+QmrzWx22nvPB/4h54UVqack6QyIFBp3f8PM5gP/AZQCj7p7Zfo+0bQwg939nbTkEcAJhGmt/wo84O6nW3ho1XXADdF+PYGvABOBZwjzX10NvGFmFe6+1N23RVNDHOXuH+assCL1qKUh0jw3A+cQpmL4aZbtRwMf10t7w8OzR/YRpm54MUpfAQxK2+8ZD1M1rAD+5u4r3L0WWFlvvy2EmVtF8kZBQ6R5jgS6Ep5U2DnL9k+ypO9LW65NW68ls9W/L8s+2fbrHP0ekbxR0BBpnlnAvwFzgDvqb3T3bUB7M8sWUA5bNDNpX+CdXLy/yKEoaIg0kZldDtS4+2PA7cBpZvaVLLu+SJgBOBdOBV5z95ocvb9IVprlViRHzGwk8H13vywH7/1fwHx3/31Lv7dIY9TSEMkRd18C/DEXN/cBlQoYkgS1NEREJDa1NEREJDYFDRERiU1BQ0REYlPQEBGR2BQ0REQktv8HDRVIjoNkG9sAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"l=300 # mm\n",
"nodes = np.array([[1,0,0],[2,0.5,3**0.5/2],[3,1,0],[4,1.5,3**0.5/2],[5,2,0],[6,2.5,3**0.5/2],[7,3,0]])\n",
"nodes[:,1:3]*=l\n",
"elems = np.array([[1,1,2],[2,2,3],[3,1,3],[4,2,4],[5,3,4],[6,3,5],[7,4,5],[8,4,6],[9,5,6],[10,5,7],[11,6,7]])\n",
"\n",
"\n",
"ix = 2*np.block([[np.arange(0,5)],[np.arange(1,6)],[np.arange(2,7)],[np.arange(0,5)]])\n",
"iy = ix+1\n",
"\n",
"scale = 5\n",
"r = np.block([n[1:3] for n in nodes])\n",
"r0 = r+u_al*scale\n",
"\n",
"plt.plot(r[ix],r[iy],'-',color='k')\n",
"#plt.plot(r[ix],r[iy],'o',color='b')\n",
"plt.quiver(r[ix],r[iy],u_al[ix],u_al[iy],color=\"purple\", label =\"Displacement\")\n",
"plt.plot(r0[ix],r0[iy],'-', color =\"blue\")\n",
"plt.quiver(r[ix],r[iy],F_al[ix],F_al[iy],color=\"teal\", label = \"Applied Forces\")\n",
"plt.plot(r[0],r[1],'^',color='r',markersize=20)\n",
"plt.plot(r[0],r[1],'>',color='r',markersize=20)\n",
"plt.plot(r[-2],r[-1],'^',color='r',markersize=20)\n",
"\n",
"plt.title('Deformation in Aluminum\\nScale=5')\n",
"plt.xlabel('x (mm)')\n",
"plt.ylabel('y (mm)')\n",
"plt.axis(l*np.array([-0.5,3.5,-1,1.5]));\n",
"plt.legend(loc ='best')"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7f3ddca759e8>"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"l=300 # mm\n",
"nodes = np.array([[1,0,0],[2,0.5,3**0.5/2],[3,1,0],[4,1.5,3**0.5/2],[5,2,0],[6,2.5,3**0.5/2],[7,3,0]])\n",
"nodes[:,1:3]*=l\n",
"elems = np.array([[1,1,2],[2,2,3],[3,1,3],[4,2,4],[5,3,4],[6,3,5],[7,4,5],[8,4,6],[9,5,6],[10,5,7],[11,6,7]])\n",
"\n",
"\n",
"ix = 2*np.block([[np.arange(0,5)],[np.arange(1,6)],[np.arange(2,7)],[np.arange(0,5)]])\n",
"iy = ix+1\n",
"\n",
"scale = 5\n",
"r = np.block([n[1:3] for n in nodes])\n",
"r0_al = r+u_al*scale\n",
"r0_st = r+u_st*scale\n",
"\n",
"plt.plot(r[ix],r[iy],'-',color='k')\n",
"steel = plt.plot(r0_st[ix],r0_st[iy],'-', color =\"orange\")\n",
"al = plt.plot(r0_al[ix],r0_al[iy],'-', color =\"turquoise\")\n",
"plt.plot(r[0],r[1],'^',color='r',markersize=20)\n",
"plt.plot(r[0],r[1],'>',color='r',markersize=20)\n",
"plt.plot(r[-2],r[-1],'^',color='r',markersize=20)\n",
"\n",
"plt.title('Deformation in Aluminum and Steel\\nScale=5')\n",
"plt.xlabel('x (mm)')\n",
"plt.ylabel('y (mm)')\n",
"plt.axis(l*np.array([-0.5,3.5,-1,1.5]));\n",
"steel = mpatches.Patch(color='orange', label='Steel')\n",
"aluminum = mpatches.Patch(color='turquoise', label='Aluminum')\n",
"\n",
"plt.legend(handles=[steel, aluminum])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In the graph above it clearly demonstrates that the aluminum deforms much more than steel which is expected because steel has a much larger modulus elasticity."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 3. Determine cross-sectional area\n",
"\n",
"a. Using aluminum, what is the minimum cross-sectional area to keep total y-deflections $<0.2~mm$?\n",
"\n",
"b. Using steel, what is the minimum cross-sectional area to keep total y-deflections $<0.2~mm$?\n",
"\n",
"c. What are the weights of the aluminum and steel trusses with the chosed cross-sectional areas?\n",
"\n",
"d. The current price (2020/03) of [aluminum](https://tradingeconomics.com/commodity/aluminum) is 1545 dollars/Tonne and [steel](https://tradingeconomics.com/commodity/steel) is 476 dollars/Tonne [2]. Which material is cheaper to create the truss?"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"a.) The minimum cross-sectional area to keep total y-deflections <0.2 for aluminum is 7.679999999999881 mm^2\n",
"b.) The minimum cross-sectional area to keep total y-deflections <0.2 for steel is 2.6899999999999866 mm^2\n"
]
}
],
"source": [
"K_mod = K[2:13, 2:13] #Modified K\n",
"L,U = LUNaive(K_mod)\n",
"\n",
"A_new_al = .1 #mm^2\n",
"A_new_st = .1 #mm^2\n",
"\n",
"E_al = 70e3 #MPa\n",
"E_st = 200e3 #MPa\n",
"\n",
"u_al_mod = np.linalg.solve(E_al*A*K_mod, F)\n",
"u_al_max = max(abs(u_al_mod))\n",
"\n",
"u_st_mod = np.linalg.solve(E_st*A*K_mod, F)\n",
"u_st_max = max(abs(u_st_mod))\n",
"\n",
"while u_al_max > 0.2:\n",
" A_new_al = A_new_al +.01\n",
" u_al = np.linalg.solve(E_al*A_new_al*K_mod, F)\n",
" u_al_max = max(abs(u_al))\n",
"print(\"a.) The minimum cross-sectional area to keep total y-deflections <0.2 for aluminum is\", A_new_al, \"mm^2\")\n",
"\n",
"while u_st_max > 0.2:\n",
" A_new_st = A_new_st +.01\n",
" u_st = np.linalg.solve(E_st*A_new_st*K_mod, F)\n",
" u_st_max = max(abs(u_st))\n",
"print(\"b.) The minimum cross-sectional area to keep total y-deflections <0.2 for steel is\", A_new_st, \"mm^2\")"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"c.) Weight of bridge made from aluminum is 0.6713 Newtons\n",
" Weight of bridge made from steel is 0.6967 Newtons\n"
]
}
],
"source": [
"rho_al = 2700 #kg/m^3\n",
"rho_st = 8000 #kg/m^3\n",
"\n",
"#Cross sectional area times length times number of elements times converstion factor so it's in meters\n",
"vol_al = A_new_al*l*11*10**-9 \n",
"vol_st = A_new_st*l*11*10**-9\n",
"\n",
"#Density times volume time gravity (unit is Newtons)\n",
"weight_al = rho_al*vol_al*9.81\n",
"weight_st = rho_st*vol_st*9.81\n",
"\n",
"print(\"c.) Weight of bridge made from aluminum is {:.4f}\".format(weight_al), \"Newtons\")\n",
"print(\" Weight of bridge made from steel is {:.4f}\".format(weight_st),\"Newtons\")"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Price to build out of aluminum is $ 10170846.29\n",
"Price to build out of steel is $ 3252017.26\n"
]
}
],
"source": [
"al_price = 1545 #dollars/Tonne\n",
"st_price = 476 #dollars/Tonne\n",
"\n",
"#1 Tonnes to Newtons = 9806.65\n",
"al_price = 1545 *9806.65 #dollars/Newtons\n",
"st_price = 476 *9806.65 #dollars/Newtons\n",
"\n",
"cost_al = al_price*weight_al\n",
"cost_st = st_price*weight_st\n",
"\n",
"print('Price to build out of aluminum is $ {:.2f}'.format(cost_al))\n",
"print('Price to build out of steel is $ {:.2f}'.format(cost_st))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"d.) It makes more fiscal sense to make the bridge from steel."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 4. Future Predictions using past data\n",
"\n",
"The data from the price of aluminum and steel are in the data files `../data/al_price.csv` and `../data/steel_price.csv`. If you're going to produce these supports for 5 years, how would you use the price history of steel and aluminum to compare how much manufacturing will cost?\n",
"\n",
"a. Separate the aluminum and steel data points into training and testing data (70-30%-split)\n",
"\n",
"b. Fit the training data to polynomial functions of order n. _Choose the highest order._\n",
"\n",
"c. Plot the error between your model and the training data and the error between your model and you testing data as a function of the polynomial function order, n. [Create the training-testing curves](../notebooks/03_Linear-regression-algebra.ipynb)\n",
"\n",
"d. Choose a polynomial function to predict the price of aluminum and steel in the year 2025. \n",
"\n",
"e. Based upon your price model would you change your answer in __3.b__?"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"data_al = pd.read_csv('../data/al_price.csv')\n",
"data_st = pd.read_csv('../data/steel_price.csv')\n",
"\n",
"year_al = np.array(data_al['Year'])\n",
"year_al = (year_al - year_al.min())/(year_al.max()-year_al.min()) #normalizing data\n",
"dol_al = np.array(data_al['dollars/MT'])\n",
"\n",
"year_st = np.array(data_st['Year'])\n",
"year_st = (year_st - year_st.min())/(year_st.max()-year_st.min()) #normalizing data\n",
"dol_st = np.array(data_st['dollars/MT'])\n",
"\n",
"\n",
"train_per = 0.7\n",
"np.random.seed(100) #Help Create reproducible problems\n",
"\n",
"al_rand =random.sample(range(0,len(year_al)),len(year_al))\n",
"st_rand =random.sample(range(0,len(year_st)),len(year_st))\n",
"\n",
"al_test = al_rand[int(len(year_al)*train_per):]\n",
"al_train = al_rand[:int(len(year_al)*train_per)]\n",
"\n",
"st_test = st_rand[int(len(year_st)*train_per):]\n",
"st_train = st_rand[:int(len(year_st)*train_per)]\n",
"\n",
"d_al_train = year_al[np.sort(al_train)]\n",
"d_al_test = year_al[np.sort(al_test)]\n",
"\n",
"d_st_train = year_st[np.sort(st_train)]\n",
"d_st_test = year_st[np.sort(st_test)]\n",
"\n",
"v_al_train = dol_al[np.sort(al_train)]\n",
"v_al_test = dol_al[np.sort(al_test)]\n",
"\n",
"v_st_train = dol_st[np.sort(st_train)]\n",
"v_st_test = dol_st[np.sort(st_test)]\n",
"\n",
"Z_al_train = np.block([[d_al_train**0]]).T\n",
"Z_al_test = np.block([[d_al_test**0]]).T\n",
"\n",
"Z_st_train = np.block([[d_st_train**0]]).T\n",
"Z_st_test = np.block([[d_st_test**0]]).T\n",
"\n",
"max_N = 11\n",
"\n",
"SSE_train_al=np.zeros(max_N)\n",
"SSE_test_al=np.zeros(max_N)\n",
"\n",
"SSE_train_st=np.zeros(max_N)\n",
"SSE_test_st=np.zeros(max_N)\n",
"\n",
"for i in range(1,max_N):\n",
" Z_al_train=np.hstack((Z_al_train,d_al_train.reshape(-1,1)**i))\n",
" Z_al_test=np.hstack((Z_al_test,d_al_test.reshape(-1,1)**i))\n",
" A_al= np.linalg.solve(Z_al_train.T@Z_al_train,Z_al_train.T@v_al_train)\n",
" St_al = np.std(v_al_train)\n",
" Sr_al = np.std(v_al_train - Z_al_train@A_al)\n",
" r2_al = 1- Sr_al/St_al\n",
" \n",
" SSE_train_al[i]=np.sum((v_al_train-Z_al_train@A_al)**2)/len(v_al_train)\n",
" SSE_test_al[i]=np.sum((v_al_test-Z_al_test@A_al)**2)/len(v_al_test)\n",
" \n",
" Z_st_train=np.hstack((Z_st_train,d_st_train.reshape(-1,1)**i))\n",
" Z_st_test=np.hstack((Z_st_test,d_st_test.reshape(-1,1)**i))\n",
" A_st= np.linalg.solve(Z_st_train.T@Z_st_train,Z_st_train.T@v_st_train)\n",
" St_st = np.std(v_st_train)\n",
" Sr_st = np.std(v_st_train - Z_st_train@A_st)\n",
" r2_st = 1- Sr_st/St_st\n",
"\n",
" SSE_train_st[i]=np.sum((v_st_train-Z_st_train@A_st)**2)/len(v_st_train)\n",
" SSE_test_st[i]=np.sum((v_st_test-Z_st_test@A_st)**2)/len(v_st_test)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.plot(d_al_train, v_al_train, 'o', color ='teal', label = 'data')\n",
"plt.plot(d_al_train, Z_al_train@A_al, linewidth = 3, color = 'purple', label = 'Fit')\n",
"plt.title('Aluminum Training Data & Fit')\n",
"plt.xlabel('Years')\n",
"plt.ylabel('Prices ($/ MT)')\n",
"plt.legend();"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.plot(d_st_train, v_st_train, 'o', color ='turquoise', label = 'data')\n",
"plt.plot(d_st_train, Z_st_train@A_st, linewidth = 3, color = 'orange', label = 'Fit')\n",
"plt.title('Steel Training Data & Fit')\n",
"plt.xlabel('Years')\n",
"plt.ylabel('Prices ($/ MT)')\n",
"plt.legend();"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.plot(np.arange(1,11),SSE_train_al[1:],label='training error')\n",
"plt.plot(np.arange(1,11),SSE_test_al[1:],label='testing error')\n",
"plt.title('Aluminum Error')\n",
"plt.ylabel('Total Sum of Square error')\n",
"plt.xlabel('Polynomial Order')\n",
"plt.legend();"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.plot(np.arange(1,11),SSE_train_st[1:],label='training error')\n",
"plt.plot(np.arange(1,11),SSE_test_st[1:],label='testing error')\n",
"plt.title('Steel Error')\n",
"plt.ylabel('Total Sum of Square error')\n",
"plt.xlabel('Polynomial Order')\n",
"plt.legend();"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Price of aluminum in 2025 is 2257.19 dollars/MegaTonne\n",
"Price of steel in 2025 is 263.05 dollars/MegaTonne\n"
]
}
],
"source": [
"al_year = np.linspace(2016, 2025, len(year_al))\n",
"al_year = (al_year - al_year.min())/(al_year.max()-al_year.min()) #normalizing data\n",
"\n",
"st_year = np.linspace(2016, 2025, len(year_st))\n",
"st_year = (st_year - st_year.min())/(st_year.max()-st_year.min()) #normalizing data\n",
"\n",
"train_per = 0.7\n",
"np.random.seed(100) #Help Create reproducible problems\n",
"\n",
"al_rand =random.sample(range(0,len(al_year)),len(al_year))\n",
"al_train = al_rand[:int(len(al_year)*train_per)]\n",
"d_al_train = year_al[np.sort(al_train)]\n",
"Z_al = np.block([[d_al_train]]).T\n",
"\n",
"st_rand =random.sample(range(0,len(st_year)),len(st_year))\n",
"st_train = st_rand[:int(len(st_year)*train_per)]\n",
"d_st_train = year_al[np.sort(st_train)]\n",
"Z_st = np.block([[d_st_train]]).T\n",
"\n",
"for i in range(1,max_N):\n",
" Z_al=np.hstack((Z_al,d_al_train.reshape(-1,1)**i))\n",
" Z_st=np.hstack((Z_st,d_st_train.reshape(-1,1)**i))\n",
" \n",
"print(\"Price of aluminum in 2025 is {:.2f}\".format((Z_al@A_al)[-1]), \"dollars/MegaTonne\")\n",
"print(\"Price of steel in 2025 is {:.2f}\".format((Z_st@A_st)[-1]), \"dollars/MegaTonne\")"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Price to build out of aluminum in 2025 is $ 14859232.38\n",
"Price to build out of steel in 2025 is $ 1797172.91\n"
]
}
],
"source": [
"al_price = (Z_al@A_al)[-1] #dollars/Tonne\n",
"st_price = (Z_st@A_st)[-1] #dollars/Tonne\n",
"\n",
"#1 Tonnes to Newtons = 9806.65\n",
"al_price = al_price *9806.65 #dollars/Newtons\n",
"st_price = st_price *9806.65 #dollars/Newtons\n",
"\n",
"cost_al = al_price*weight_al\n",
"cost_st = st_price*weight_st\n",
"\n",
"print('Price to build out of aluminum in 2025 is $ {:.2f}'.format(cost_al))\n",
"print('Price to build out of steel in 2025 is $ {:.2f}'.format(cost_st))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It's still cheaper to build out of steel in 2025. Steel is better because it has a higher modulus of elasticity so you can use less material."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# References\n",
"\n",
"1. <https://en.wikipedia.org/wiki/Direct_stiffness_method>\n",
"\n",
"2. Aluminum and steel price history on <https://tradingeconomics.com>\n",
"\n",
"3. Eraqi, Hesham, and Hesham EraqiHesham Eraqi. “Using Mpatches.Patch for a Custom Legend.” Stack Overflow, 1 Feb. 2018, stackoverflow.com/questions/44098362/using-mpatches-patch-for-a-custom-legend."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 4
}