Skip to content
Permalink
44483deaf2
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
1843 lines (1843 sloc) 276 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": 49,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from matplotlib import rcParams\n",
"fea_arrays = np.load('./fea_arrays.npz')\n",
"K=fea_arrays['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": 50,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The condition of the K matrix is 1.457753e+17\n",
"The condition of the K[2:13,2:13] matrix is 5.223543e+01\n"
]
}
],
"source": [
"#Problem 1\n",
"K[2:13,2:13]\n",
"print('The condition of the K matrix is','{:e}'.format(np.linalg.cond(K)))\n",
"print('The condition of the K[2:13,2:13] matrix is','{:e}'.format(np.linalg.cond(K[2:13,2:13])))"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The error I would expect when solving for u based on the condition of K is 10\n"
]
}
],
"source": [
"#Problem 1a\n",
"#Using a standard t value of 16\n",
"print('The error I would expect when solving for u based on the condition of K is', 10**(17-16))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Problem 1b\n",
"We know that the condition of a matrix is directly related to the accuracy of a matrix's solutions. Therefore, the condition of the K matrix is so large because it is such a large and complicated matrix, which leaves more room for error. We saw this phenomenon in the first notebook of this module as well when the hilbert matrices got higher condition numbers as they got more room for error and more complex. This is also why the simpler K[2:13,2:13] matrix has a lower condition number, because its simplicity leaves less room for error."
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The error I would expect when solving for u[2:13,2:13] based on the condition of K[2:13,2:13] is 1e-15\n"
]
}
],
"source": [
"#Problem 1c\n",
"#Using a standard t value of 16\n",
"print('The error I would expect when solving for u[2:13,2:13] based on the condition of K[2:13,2:13] is', 10**(1-16))"
]
},
{
"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": 53,
"metadata": {},
"outputs": [],
"source": [
"#Problem 2a\n",
"def LUNaive(A):\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"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [],
"source": [
"L_2a, U_2a = LUNaive(K[2:13,2:13])"
]
},
{
"cell_type": "code",
"execution_count": 242,
"metadata": {},
"outputs": [],
"source": [
"#Problem 2b\n",
"A = 0.1\n",
"E_al = 70000\n",
"E_st = 200000\n",
"\n",
"F =np.array([0,0,0,0,0,-100,0,0,0,0,0])\n",
"F_al = F/(E_al*A)\n",
"F_st = F/(E_st*A)"
]
},
{
"cell_type": "code",
"execution_count": 243,
"metadata": {},
"outputs": [],
"source": [
"def solveLU(L,U,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": 244,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"aluminum displacements [ 5.56730617 -6.07142857 1.23717915 -11.42857143 3.09294787\n",
" -15.35714286 4.94871659 -11.42857143 0.61858957 -6.07142857\n",
" 6.18589574]\n",
"steel displacements [ 1.94855716 -2.125 0.4330127 -4. 1.08253175 -5.375\n",
" 1.73205081 -4. 0.21650635 -2.125 2.16506351]\n"
]
}
],
"source": [
"u_al = solveLU(L_2a,U_2a,F_al)\n",
"u_st = solveLU(L_2a,U_2a,F_st)\n",
"print('aluminum displacements',u_al)\n",
"print('steel displacements',u_st)\n",
"#Displacements in mm"
]
},
{
"cell_type": "code",
"execution_count": 245,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"aluminum reactionary force [-3.46944695e-18 -4.33680869e-19 0.00000000e+00 -2.60208521e-18\n",
" -2.16840434e-18 -1.42857143e-02 0.00000000e+00 -6.93889390e-18\n",
" 2.16840434e-18 3.46944695e-18 -3.46944695e-18]\n",
"steel reactionary forces [ 0.00000000e+00 -5.42101086e-19 0.00000000e+00 -1.08420217e-18\n",
" 8.67361738e-19 -5.00000000e-03 -2.60208521e-18 8.67361738e-19\n",
" 3.25260652e-19 0.00000000e+00 0.00000000e+00]\n"
]
}
],
"source": [
"#Problem 2c\n",
"F_2c_al = K[2:13,2:13]@u_al\n",
"F_2c_st = K[2:13,2:13]@u_st\n",
"print('aluminum reactionary force', F_2c_al)\n",
"print('steel reactionary forces', F_2c_st)\n",
"#Forces in Newtons"
]
},
{
"cell_type": "code",
"execution_count": 246,
"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": [
"#Problem 2d\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",
"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",
"r = np.block([n[1:3] for n in nodes])\n",
"\n",
"\n",
"plt.plot(r[ix],r[iy],'-',color='k')\n",
"plt.plot(r[ix],r[iy],'o',color='b')\n",
"plt.plot(r[0],r[1],'^',color='r',markersize=20)\n",
"plt.plot(r[0],r[1],'>',color='k',markersize=20)\n",
"plt.plot(r[-2],r[-1],'^',color='r',markersize=20)\n",
"# label the nodes\n",
"for n in nodes:\n",
" if n[2]>0.8*l: offset=0.1\n",
" else: offset=-l/5\n",
" plt.text(n[1]-l/3,n[2]+offset,'n {}'.format(int(n[0])),color='b')\n",
"# label the elements\n",
"for e in elems:\n",
" n1=nodes[e[1]-1]\n",
" n2=nodes[e[2]-1]\n",
" x=np.mean([n2[1],n1[1]])\n",
" y=np.mean([n2[2],n1[2]])\n",
" # ----------------->need elem labels<-----------------\n",
" plt.text(x-l/5,y-l/10,'el {}'.format(int(e[0])),color='r')\n",
"plt.title('Our truss structure\\neach element is 2 nodes and length L\\ntriangle markers are constraints')\n",
"plt.xlabel('x (mm)')\n",
"plt.ylabel('y (mm)')\n",
"plt.axis(l*np.array([-0.5,3.5,-1,1.5]));"
]
},
{
"cell_type": "code",
"execution_count": 247,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7ff605eb19e8>"
]
},
"execution_count": 247,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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REQkRihxExEREYkRStxEREREYoQSNxEREZEYocRNREREJEYocRMRERGJEUrcRERERGKEEjcRERGRGKHETURERCRGKHETERERiRFK3ERERERihBI3ERERkRihxE1EREQkRihxExEREYkRStxEREREYoQSNxEREZEYocRNREREJEYocRMRERGJEUrcRERERGKEEjcRERGRGKHETURERCRGKHETERERiRFK3ERERERihBI3ERERkRihxE1EREQkRihxExEREYkRStxEREREYkTUEzczizezn83s09DXVcxsvJktCD1XztL2HjNbaGbzzOzM6EUtIiIiUvSinrgBtwBzsnx9N/CVuzcGvgp9jZk1Ay4FmgNnAUPNLL6IYxURERGJmqgmbmZWF+gKvJpl8/nAW6HXbwEXZNk+wt13uftiYCHQsahiFREREYm2aPe4PQ/cBWRm2VbT3VcBhJ5rhLYfBSzL0m55aNsBzOw6M0sxs5R169YVfNQiIiIiURC1xM3MzgHWuvu0vB4SYZtHaujuw929vbu3r169+kHHKCIiIlKcJETx2icA55nZ34FEoIKZvQusMbPa7r7KzGoDa0PtlwP1shxfF1hZpBGLiIiIRFHUetzc/R53r+vuRxNMOvja3f8JfAL0DDXrCYwJvf4EuNTMSplZQ6AxMKWIwxYRERGJmmj2uGXnSeBDM7sGWAp0B3D3VDP7EJgNpAM3untG9MIUERERKVrmHnGY2GGjffv2npKSEu0wREREioSZTXP39tGOQwpHtGeVioiIiEgeKXETERERiRFK3ERERERihBI3ERERkRihxE1EREQkRihxExEREYkRStxEREREYoQSNxEREZEYocRNREREJEYocRMRERGJEUrcRERERGKEEjcRERGRGKHETURERCRGKHETERERiRFK3ERERERihBI3ERERkRihxE1EREQkRihxExEREYkRStxEREREYoQSNxEREZEYocRNREREJEYocRMRERGJEUrcRERERGKEEjcRERGRGKHETURERCRGKHETERERiRFK3ERERERihBI3ERERkRihxE1EREQkRihxExEREYkRStxEREREYoQSNxEREZEYocRNREREJEYocRMRERGJEUrcRERERGKEEjcRERGRGKHETURERCRGKHETERERiRFK3ERERERihBI3ERERkRihxE1EREQk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l7jl6U94d98DrMp7iHmSDtzu7tPNrDwwzczGA1cCX7n7k2Z2N3A30N/MmgGXAs2BOsCXZpbk7hkFHJcUgsGDB1OuXDmuuOKK/B3oDrffDhUqBOslRRAXF0e3bt14//33eXn2bG4oUya45RNrypYNegnDPYXuwTqsWXt1nnsOnn462H/00fv26rRuXSi9OosWLWL+/Pk0adIk3xNK4uKCFZMWLTpwX/hucK9evbj11lv56KOPeOedd4iLi/K4aXdYuHDfJO2XX/b2hjZuHIyjDH/uLVpEtTc0N7feeitAzuMSn3sueL777txPePrpQZL3yCNwxRX07duXt956i7feeoubb765ACKWomBGu4I8nzvTDvbY559/fmVBxlIcjR49ulJ6evqW/CRu2Yr2tNbwAxgDnE6whF7t0LbawLzQ63uAe7K0Hwd0yu28KgcSfWvWrPGSJUt6375983/wZ5+5g/tzz+V6DcDr16/vftZZwTE//niQERdjO3YE72vgQPfu3d3r1fM/S0eUKuXeqZN7v37uH37ovnRpgVyya9euDvjIkSPzdsB+ddw2bdp3U/hx5pl7D7nqqqsc8Ody+T4Xii1b3MePDwrY/v3vQfHZcJDlywcFb++9N/hZXL++6OM7BHv27PESJUp4uXLlcm5YunTwXvNqzhz3hAT36693d/fjjz/ek5KSIi+BJkWOCOVAZsyY8bu7p4QfkUv0HPwj67lzetx1113LGzRosLNTp05bzznnnA333Xffsosuumj966+/vsjdU2644YZVxxxzzI7GjRunXXvttavdPeWiiy5af9lll61t27bttgYNGux8//33F7h7yn//+995p5xyymZ3T/n6669nt27denuTJk3SWrduvX3GjBm/unvKnj17Uq699trVjRs3TmvcuHHao48+utTdU7799tvZ7du339asWbM/TjjhhC2///77THdP6dChw7arr756Tbt27bY1bNhwx8SJE2effvrpm+rXr7/zpptuWhl+H0OGDPmtRYsWfyQnJ6dddtll6/bs2ZPi7imlS5fO6Nu376qkpKS0li1bbl+6dOmML774Yk6FChXS69Spsys5OTlt1qxZvz7yyCNLw++za9euGyN9VqHv2YH5UqSNRf0guC26FKgAbN5v36bQ82Dgn1m2vwZcnM35rgNSgJT69evn80deCtqjjz7qgM+ZMyd/B+7e7Z6cHBQg3bUr1+Zt27Z1wOcPHRr8aJ9/hFTlX77cfeRI99tvdz/hhCCBC/9vetRR7t26uT/zjPv337vns+jxrl27PCEhwStWrJj3g/ZL3NzdO3Q48D/6O+7Ye8iGDRvczLxOnTr5ii/fMjKCGmWvvureq5d7ixbuZnuDatbM/Zpr3F95xf3XX4O6fTHskUceccD79OmTfaMvvzy4fy833xzULvzlF3/33Xcd8LFjxx5awFIgimvi9u23385u3Lhx2tatW6dv2LBher169XZmTdxWr179c4MGDXZmZGSkuHvKunXrfvZQ4nbiiSduSU9PT/nll19+rVGjxu4//vhjWtbEbcOGDdN3796d4u4po0aNmnfGGWdscveUJ598cskZZ5yxKbxv9erVP+/cuXNa69att69YsWKGu6cMHz580cUXX7zeQ4nb9ddfv8rdUx5++OGl1atX3/3777/PTEtLm1ajRo3dq1at+nnatGmzTj311M07d+6c5u4pl19++dpBgwYtDj5X/L333lvg7im9e/defeedd64Iv4dwcuruKdWrV9+dlpY2Lev73P+RXeKWa/++mfUF3vPQOLOCZmblCGav3uruW3MYtB5pR8QBeu4+HBgOwRi3gohTDk56ejrDhg2jS5cuNGnSJH8Hv/RSUFbjk0/ydAvw6aefpkuXLlz7wQdMTEyEr78+yKhjzFFHBWOTunULvt69O5jokPUW60cfBfsSEoJbquHxWJ06Bbdcs/l398gjj5Cens4111xzSCH++GNQpiyrv2WpEFmlSpWgpMtPPzF58mSOP/74Q7renzZu3Ftjb9Kk4PXWrcG+ypWDz6B79+Bz6NAhZmvsZWfQoEHExcVFrtsW9swzwXP//vk7+QMPwDvvQL9+XPzf/9KvXz8GDx7MmWeeefABy2FtwoQJ5f7+979vLl++fCbAGWecsc+Y+SpVqmSUKlUq89JLL23QtWvXLZdccsmW8L5u3bptjI+P5y9/+cuuevXq7ZoxY8Y+NW02btwYf8kllzT8/fffE83M9+zZYwBff/11heuvv35didB/QDVr1syYOnVq4oIFC0p37tw5CYJx0tWrV98TPteFF164GaBVq1Y7GjVqtKNBgwZ7AOrVq7frt99+Kzlx4sRys2bNKtOqVaumADt37oyrUaNGOkCJEiX80ksv3QLQrl27P778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\n",
"text/plain": [
"<Figure size 576x504 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#Each member length is 300 mm\n",
"l=300\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",
"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",
"r = np.block([n[1:3] for n in nodes])\n",
"s = 5\n",
"\n",
"u_aluminum = np.zeros(2*len(nodes))\n",
"u_steel = np.zeros(2*len(nodes))\n",
"u_steel[2:13]= u_st\n",
"u_aluminum[2:13] = u_al\n",
"F_aluminum = np.zeros(2*len(nodes))\n",
"F_aluminum[2:13] = F\n",
"F_steel = np.zeros(2*len(nodes))\n",
"F_steel[2:13] = F \n",
"plt.figure(figsize=(8,7))\n",
"plt.plot(r[ix],r[iy],'-',color=(0,0,0,1))\n",
"plt.plot(r[ix]+u_aluminum[ix]*s,r[iy]+u_aluminum[iy]*s,'-',color=(1,0,0,1))\n",
"plt.quiver(r[ix],r[iy],u_aluminum[ix],u_aluminum[iy],color=(0,0,1,1),label='displacements')\n",
"plt.quiver(r[ix],r[iy],F_aluminum[ix],F_aluminum[iy],color=(1,0,0,1),label='applied forces')\n",
"plt.axis(l*np.array([-0.5,3.5,-0.5,2]))\n",
"plt.xlabel('x (mm)')\n",
"plt.ylabel('y (mm)')\n",
"plt.title('Aluminum Deformation scale = {:.1f}x'.format(s))\n",
"plt.legend(bbox_to_anchor=(1,0.5))"
]
},
{
"cell_type": "code",
"execution_count": 248,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7ff605a20ac8>"
]
},
"execution_count": 248,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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REREooQSNxEREZEoocRNREREJEoocRMRERGJEkrcRERERKKEEjcRERGRKKHETURERCRKKHETERERiRJK3ERERESihBI3ERERkSihxE1EREQkSihxExEREYkSStxEREREooQSNxEREZEoocRNREREJEoocRMRERGJEkrcRERERKKEEjcRERGRKKHETURERCRKKHETERERiRJK3ERERESihBI3ERERkSihxE1EREQkSihxExEREYkSStxEREREooQSNxEREZEoocRNREREJEoocRMRERGJEkrcRERERKKEEjcRERGRKKHETURERCRKKHETERERiRJK3ERERESihBI3ERERkSihxE1EREQkSihxExEREYkSStxEREREokREEzczW2BmP5vZVDNLD5XVNrNPzSwj9Fgr3/F3mNlvZvaLmZ0UuchFREREyl55qHE7wd2PcPeOoZ8HAZ+7exvg89DPmFkK0BtIBU4GhptZbCQCFhEREYmE8pC4FXQmMDr0fDRwVr7yMe6+1d3nA78BnSMQn4iIiEhERDpxc+C/ZjbZzK4JlTVw96UAocf6ofImwKJ85y4Ole3CzK4xs3QzS1+5cmUphS4iIiJStuIifP9j3D3TzOoDn5rZnN0ca4WUeWEHuvuLwIsAHTt2LPQYERERkWgT0Ro3d88MPa4A3iNo+lxuZo0AQo8rQocvBprlO70pkFl20YqIiIhEVsQSNzOrambVws+BnsAMYBxwaeiwS4H3Q8/HAb3NrJKZtQTaAJPKNmoRERGRyIlkU2kD4D0zC8fxhruPN7MfgbfN7Ergd+B8AHefaWZvA7OAHOA6d8+NTOgiIiIiZS9iiZu7zwPSCilfDXQv4pyHgIdKOTQRERGRcinSo0pFREREpJiUuImIiIhECSVuIiIiIlFCiZuIiIhIlFDiJiIiIhIllLiJiIiIRAklbiIiIiJRQombiIiISJRQ4iYiIiISJZS4iYiIiEQJJW4iIiIiUUKJm4iIiEiUUOImIiIiEiWUuImIiIhECSVuIiIiIlFCiZuIiIhIlFDiJiIiIhIllLiJiIiIRAklbiIiIiJRQombiIiISJRQ4iYiIiISJZS4iYiIiEQJJW4iIiIiUUKJm4iIiEiUUOImIiIiEiWUuImIiIhECSVuIiIiIlFCiZuIiIhIlFDiJiIiIhIllLiJiIiIRAklbiIiIiJRQombiIiISJRQ4iYiIiISJZS4iYiIiEQJJW4iIiIiUUKJm4iIiEiUUOImIiIiEiWUuImIiIhECSVuIiIiIlFCiZuIiIhIlFDiJiIiIhIllLiJiIiIRImIJ25mFmtmU8zsw9DPtc3sUzPLCD3WynfsHWb2m5n9YmYnRS5qERERkbIX8cQNuAmYne/nQcDn7t4G+Dz0M2aWAvQGUoGTgeFmFlvGsYqIiIhETEQTNzNrCpwGvJyv+ExgdOj5aOCsfOVj3H2ru88HfgM6l1WsIiIiIpEW6Rq3p4Hbgbx8ZQ3cfSlA6LF+qLwJsCjfcYtDZbsws2vMLN3M0leuXFnyUYuIiIhEQMQSNzPrBaxw98nFPaWQMi/sQHd/0d07unvHevXq7XOMIiIiIuVJXATvfQxwhpmdClQGqpvZ68ByM2vk7kvNrBGwInT8YqBZvvObApllGrGIiIhIBEWsxs3d73D3pu7egmDQwRfu/hdgHHBp6LBLgfdDz8cBvc2skpm1BNoAk8o4bBEREZGIiWSNW1EeBd42syuB34HzAdx9ppm9DcwCcoDr3D03cmGKiIiIlC1zL7Sb2AGjY8eOnp6eHukwREREyoSZTXb3jpGOQ0pHpEeVioiIiEgxKXETERERiRJK3ERERESihBI3ERERkSihxE1EREQkSihxExEREYkSStxEREREooQSNxEREZEoocRNREREJEoocRMRERGJEkrcRERERKKEEjcRERGRKKHETURERCRKKHETERERiRJK3ERERESihBI3ERERkSihxE1EREQkSihxExEREYkSStxEREREooQSNxEREZEoocRNREREJEoocRMRERGJEkrcRERERKKEEjcRERGRKKHETURERCRKKHETERERiRJK3ERERESihBI3ERERkSihxE1EREQkSihxExEREYkSStxEREREooQSNxEREZEoocRNREREJEoocRMRERGJEkrcRERERKKEEjcRERGRKKHETURERCRKKHETERERiRJK3ERERESihBI3ERERkSihxE1EREQkSkQscTOzymY2ycymmdlMM7s/VF7bzD41s4zQY61859xhZr+Z2S9mdlKkYhcRERGJhEjWuG0Furl7GnAEcLKZHQ0MAj539zbA56GfMbMUoDeQCpwMDDez2IhELiIiIhIBEUvcPLAx9GOF0ObAmcDoUPlo4KzQ8zOB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fM3vvvuuCkD79u03vvTSS7UBXnrppWKNQD366KOzXn311ToQJJ21atXKqV279i6LX/fo0WPDiBEj6oUTsOXLl8cefvjhW9asWRP32WefVQXYunWrpaenV87NzWXu3LkVTz/99Kzhw4cvzsrKil2/fn2hNYi7o8RN9tuIESMAggWtIfiLv04duOqqCEa1s4SePdkQF8dR27cz8dNPIx1OubFx40a++uor6tWrR/fu3XfeuWULfPJJMOFuJGpOn3zyjwl5H3roIWJiYhg+fHjZx1GO3X333eTm5tK3b9+gYOZMyMwMakcTEnZ/chmqOHgwFd35TbVuB61zzz13fU5OjiUmJqYMHjy4cVpa2qbwvipVquTNnDmzSmpqatv//e9/1R555JGl4X21atXKPfLII5Ovv/765i+88MKC3d3jzTffnPfqq6/WTUpKSmnTpk3qu+++WxNg+PDhv7/44ov127Vr17a4idJjjz2W+dNPP8UnJiam3HnnnU1GjRpV6BI8/fv3X9m0adNtycnJqUlJSSmvvPJK7cqVK/uYMWPmDho0qGlSUlJKampqysSJExNycnKsT58+LRMTE1PatWuX0rdv3+V169YtNBHdHSusOvBA0rFjR09X34pSs2XLFpo1a8YxxxzD2LFjYcYMOOywYPj/PfdEOrydLLvwQhqOGcNzjRtz3ZIlkQ6nXLjxxhsZOnQo999/P/cU/LxuuikYRXrnnXtX45a/KaNy5WDFhX114onw2WcwdizdnnmGCRMmMH78eE466aR9v+YBpFatWmRlZZGdnR1MeH366fDhh/DBBxCugSsHcnJy+G/16hy3fTsJq1dD9eqRDumAZmaT3b1j/rJp06YtSEtLWxWpmHYnPj7+yOzs7CkFyzt37pz0xBNPLDruuOMOyuVTpk2bVjctLa1FwXLVuMl+eeutt1i1atWOKSQeewyqVo3MpJ970PCFF8gDTs/MZNWqcvn/V5kbNWoUFSpUYPDgwTvvyD/h7n33RSQ2YMeAiIEDefrppwEYFIHJnMuj9957j3Xr1tGzZ88gacvLg//+N6hpK0dJG0BcXBwrr7yShJwclmlON5H9osRN9pm7M3ToUNq2bUu3bt1gwQJ480245pqgqbS8qV6d1U2a0Ax4vBw140bKG2+8QVZWFqeddlow91d+L74YTLh7zjkRmwcMgKSkYELeX37h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\n",
"text/plain": [
"<Figure size 576x504 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(8,7))\n",
"plt.plot(r[ix],r[iy],'-',color=(0,0,0,1))\n",
"plt.plot(r[ix]+u_steel[ix]*s,r[iy]+u_steel[iy]*s,'-',color=(1,0,0,1))\n",
"plt.quiver(r[ix],r[iy],u_steel[ix],u_steel[iy],color=(0,0,1,1),label='displacements')\n",
"plt.quiver(r[ix],r[iy],F_steel[ix],F_steel[iy],color=(1,0,0,1),label='applied forces')\n",
"plt.axis(l*np.array([-0.5,3.5,-0.5,2]))\n",
"plt.xlabel('x (mm)')\n",
"plt.ylabel('y (mm)')\n",
"plt.title('Steel Deformation scale = {:.1f}x'.format(s))\n",
"plt.legend(bbox_to_anchor=(1,0.5))"
]
},
{
"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": 249,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"7.681081081081081\n",
"7.690990990990992\n",
"7.700900900900901\n",
"7.710810810810811\n",
"7.720720720720721\n",
"7.730630630630631\n",
"7.740540540540541\n",
"7.750450450450451\n",
"7.760360360360361\n",
"7.770270270270271\n",
"7.780180180180181\n",
"7.79009009009009\n",
"7.800000000000001\n",
"7.80990990990991\n",
"7.819819819819821\n",
"7.82972972972973\n",
"7.83963963963964\n",
"7.84954954954955\n",
"7.85945945945946\n",
"7.86936936936937\n",
"7.87927927927928\n",
"7.88918918918919\n",
"7.899099099099099\n",
"7.90900900900901\n",
"7.918918918918919\n",
"7.92882882882883\n",
"7.938738738738739\n",
"7.948648648648649\n",
"7.958558558558559\n",
"7.968468468468469\n",
"7.978378378378379\n",
"7.988288288288289\n",
"7.998198198198199\n",
"8.00810810810811\n",
"8.018018018018019\n",
"8.027927927927928\n",
"8.03783783783784\n",
"8.04774774774775\n",
"8.057657657657659\n",
"8.067567567567568\n",
"8.077477477477478\n",
"8.087387387387388\n",
"8.097297297297299\n",
"8.107207207207209\n",
"8.117117117117118\n",
"8.127027027027028\n",
"8.136936936936937\n",
"8.146846846846847\n",
"8.156756756756756\n",
"8.166666666666668\n",
"8.176576576576577\n",
"8.186486486486487\n",
"8.196396396396397\n",
"8.206306306306306\n",
"8.216216216216218\n",
"8.226126126126127\n",
"8.236036036036037\n",
"8.245945945945946\n",
"8.255855855855856\n",
"8.265765765765765\n",
"8.275675675675677\n",
"8.285585585585586\n",
"8.295495495495496\n",
"8.305405405405406\n",
"8.315315315315315\n",
"8.325225225225227\n",
"8.335135135135136\n",
"8.345045045045046\n",
"8.354954954954955\n",
"8.364864864864865\n",
"8.374774774774774\n",
"8.384684684684686\n",
"8.394594594594595\n",
"8.404504504504505\n",
"8.414414414414415\n",
"8.424324324324324\n",
"8.434234234234236\n",
"8.444144144144145\n",
"8.454054054054055\n",
"8.463963963963964\n",
"8.473873873873874\n",
"8.483783783783784\n",
"8.493693693693695\n",
"8.503603603603604\n",
"8.513513513513514\n",
"8.523423423423424\n",
"8.533333333333333\n",
"8.543243243243245\n",
"8.553153153153154\n",
"8.563063063063064\n",
"8.572972972972973\n",
"8.582882882882883\n",
"8.592792792792794\n",
"8.602702702702704\n",
"8.612612612612613\n",
"8.622522522522523\n",
"8.632432432432433\n",
"8.642342342342342\n",
"8.652252252252254\n",
"8.662162162162163\n",
"8.672072072072073\n",
"8.681981981981982\n",
"8.691891891891892\n",
"8.701801801801803\n",
"8.711711711711713\n",
"8.721621621621622\n",
"8.731531531531532\n",
"8.741441441441442\n",
"8.751351351351351\n",
"8.761261261261263\n",
"8.771171171171172\n",
"8.781081081081082\n",
"8.790990990990991\n",
"8.800900900900901\n",
"8.810810810810812\n",
"8.820720720720722\n",
"8.830630630630631\n",
"8.840540540540541\n",
"8.85045045045045\n",
"8.86036036036036\n",
"8.870270270270272\n",
"8.880180180180181\n",
"8.89009009009009\n",
"8.9\n",
"8.90990990990991\n",
"8.919819819819821\n",
"8.929729729729731\n",
"8.93963963963964\n",
"8.94954954954955\n",
"8.95945945945946\n",
"8.96936936936937\n",
"8.97927927927928\n",
"8.98918918918919\n",
"8.9990990990991\n",
"9.00900900900901\n",
"9.018918918918919\n",
"9.02882882882883\n",
"9.03873873873874\n",
"9.04864864864865\n",
"9.058558558558559\n",
"9.068468468468469\n",
"9.078378378378378\n",
"9.08828828828829\n",
"9.0981981981982\n",
"9.108108108108109\n",
"9.118018018018018\n",
"9.127927927927928\n",
"9.13783783783784\n",
"9.147747747747749\n",
"9.157657657657658\n",
"9.167567567567568\n",
"9.177477477477478\n",
"9.187387387387387\n",
"9.197297297297299\n",
"9.207207207207208\n",
"9.217117117117118\n",
"9.227027027027027\n",
"9.236936936936937\n",
"9.246846846846848\n",
"9.256756756756758\n",
"9.266666666666667\n",
"9.276576576576577\n",
"9.286486486486487\n",
"9.296396396396396\n",
"9.306306306306308\n",
"9.316216216216217\n",
"9.326126126126127\n",
"9.336036036036036\n",
"9.345945945945946\n",
"9.355855855855857\n",
"9.365765765765767\n",
"9.375675675675677\n",
"9.385585585585586\n",
"9.395495495495496\n",
"9.405405405405405\n",
"9.415315315315317\n",
"9.425225225225226\n",
"9.435135135135136\n",
"9.445045045045045\n",
"9.454954954954955\n",
"9.464864864864866\n",
"9.474774774774776\n",
"9.484684684684686\n",
"9.494594594594595\n",
"9.504504504504505\n",
"9.514414414414414\n",
"9.524324324324326\n",
"9.534234234234235\n",
"9.544144144144145\n",
"9.554054054054054\n",
"9.563963963963964\n",
"9.573873873873875\n",
"9.583783783783785\n",
"9.593693693693695\n",
"9.603603603603604\n",
"9.613513513513514\n",
"9.623423423423423\n",
"9.633333333333335\n",
"9.643243243243244\n",
"9.653153153153154\n",
"9.663063063063063\n",
"9.672972972972973\n",
"9.682882882882884\n",
"9.692792792792794\n",
"9.702702702702704\n",
"9.712612612612613\n",
"9.722522522522523\n",
"9.732432432432434\n",
"9.742342342342344\n",
"9.752252252252253\n",
"9.762162162162163\n",
"9.772072072072072\n",
"9.781981981981982\n",
"9.791891891891893\n",
"9.801801801801803\n",
"9.811711711711713\n",
"9.821621621621622\n",
"9.831531531531532\n",
"9.841441441441443\n",
"9.851351351351353\n",
"9.861261261261262\n",
"9.871171171171172\n",
"9.881081081081081\n",
"9.890990990990991\n",
"9.900900900900902\n",
"9.910810810810812\n",
"9.920720720720722\n",
"9.930630630630631\n",
"9.94054054054054\n",
"9.950450450450452\n",
"9.960360360360362\n",
"9.970270270270271\n",
"9.98018018018018\n",
"9.99009009009009\n",
"10.0\n"
]
}
],
"source": [
"#Problem 3a\n",
"# 0.1 to 10 over 1000 steps\n",
"A_3 = np.linspace(0.1,10,1000)\n",
"for i in range (0, 1000):\n",
" F_al = F/(E_al*A_3[i])\n",
" u_al = solveLU(L_2a,U_2a,F_al)\n",
" u_al_3a = u_al[1::2]\n",
" if min(u_al_3a)>-0.2:\n",
" print(A_3[i])"
]
},
{
"cell_type": "code",
"execution_count": 186,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"For aluminum the minimum cross ssectional area to keep the minimum deflection in the y direction under 0.2 mm is 7.681 mm^2\n"
]
}
],
"source": [
"#mm^2\n",
"A_3a = 7.681\n",
"print('For aluminum the minimum cross ssectional area to keep the minimum deflection in the y direction under 0.2 mm is', A_3a,'mm^2')"
]
},
{
"cell_type": "code",
"execution_count": 188,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2.6963963963963966\n",
"2.7063063063063066\n",
"2.7162162162162167\n",
"2.7261261261261267\n",
"2.7360360360360363\n",
"2.7459459459459463\n",
"2.7558558558558564\n",
"2.765765765765766\n",
"2.775675675675676\n",
"2.785585585585586\n",
"2.795495495495496\n",
"2.8054054054054056\n",
"2.8153153153153156\n",
"2.8252252252252257\n",
"2.8351351351351357\n",
"2.8450450450450453\n",
"2.8549549549549553\n",
"2.8648648648648654\n",
"2.8747747747747754\n",
"2.884684684684685\n",
"2.894594594594595\n",
"2.904504504504505\n",
"2.9144144144144146\n",
"2.9243243243243247\n",
"2.9342342342342347\n",
"2.9441441441441447\n",
"2.9540540540540543\n",
"2.9639639639639643\n",
"2.9738738738738744\n",
"2.9837837837837844\n",
"2.993693693693694\n",
"3.003603603603604\n",
"3.013513513513514\n",
"3.0234234234234236\n",
"3.0333333333333337\n",
"3.0432432432432437\n",
"3.0531531531531537\n",
"3.0630630630630633\n",
"3.0729729729729733\n",
"3.0828828828828834\n",
"3.0927927927927934\n",
"3.102702702702703\n",
"3.112612612612613\n",
"3.122522522522523\n",
"3.132432432432433\n",
"3.1423423423423427\n",
"3.1522522522522527\n",
"3.1621621621621627\n",
"3.1720720720720723\n",
"3.1819819819819823\n",
"3.1918918918918924\n",
"3.2018018018018024\n",
"3.211711711711712\n",
"3.221621621621622\n",
"3.231531531531532\n",
"3.241441441441442\n",
"3.2513513513513517\n",
"3.2612612612612617\n",
"3.2711711711711717\n",
"3.2810810810810813\n",
"3.2909909909909913\n",
"3.3009009009009014\n",
"3.3108108108108114\n",
"3.320720720720721\n",
"3.330630630630631\n",
"3.340540540540541\n",
"3.350450450450451\n",
"3.3603603603603607\n",
"3.3702702702702707\n",
"3.3801801801801807\n",
"3.3900900900900908\n",
"3.4000000000000004\n",
"3.4099099099099104\n",
"3.4198198198198204\n",
"3.42972972972973\n",
"3.43963963963964\n",
"3.44954954954955\n",
"3.45945945945946\n",
"3.4693693693693697\n",
"3.4792792792792797\n",
"3.4891891891891897\n",
"3.4990990990990998\n",
"3.5090090090090094\n",
"3.5189189189189194\n",
"3.5288288288288294\n",
"3.538738738738739\n",
"3.548648648648649\n",
"3.558558558558559\n",
"3.568468468468469\n",
"3.5783783783783787\n",
"3.5882882882882887\n",
"3.5981981981981987\n",
"3.608108108108109\n",
"3.6180180180180184\n",
"3.6279279279279284\n",
"3.6378378378378384\n",
"3.6477477477477485\n",
"3.657657657657658\n",
"3.667567567567568\n",
"3.677477477477478\n",
"3.6873873873873877\n",
"3.6972972972972977\n",
"3.7072072072072078\n",
"3.717117117117118\n",
"3.7270270270270274\n",
"3.7369369369369374\n",
"3.7468468468468474\n",
"3.7567567567567575\n",
"3.766666666666667\n",
"3.776576576576577\n",
"3.786486486486487\n",
"3.7963963963963967\n",
"3.8063063063063067\n",
"3.8162162162162168\n",
"3.826126126126127\n",
"3.8360360360360364\n",
"3.8459459459459464\n",
"3.8558558558558564\n",
"3.8657657657657665\n",
"3.875675675675676\n",
"3.885585585585586\n",
"3.895495495495496\n",
"3.9054054054054057\n",
"3.9153153153153157\n",
"3.9252252252252258\n",
"3.935135135135136\n",
"3.9450450450450454\n",
"3.9549549549549554\n",
"3.9648648648648654\n",
"3.9747747747747755\n",
"3.984684684684685\n",
"3.994594594594595\n",
"4.004504504504505\n",
"4.014414414414415\n",
"4.024324324324325\n",
"4.034234234234234\n",
"4.044144144144145\n",
"4.054054054054054\n",
"4.063963963963964\n",
"4.0738738738738745\n",
"4.083783783783784\n",
"4.093693693693694\n",
"4.103603603603604\n",
"4.113513513513514\n",
"4.123423423423423\n",
"4.133333333333334\n",
"4.143243243243243\n",
"4.153153153153153\n",
"4.163063063063063\n",
"4.172972972972973\n",
"4.182882882882883\n",
"4.192792792792793\n",
"4.202702702702703\n",
"4.212612612612613\n",
"4.222522522522523\n",
"4.232432432432432\n",
"4.242342342342343\n",
"4.252252252252252\n",
"4.262162162162162\n",
"4.272072072072072\n",
"4.281981981981982\n",
"4.291891891891892\n",
"4.301801801801802\n",
"4.311711711711712\n",
"4.321621621621622\n",
"4.331531531531532\n",
"4.341441441441441\n",
"4.351351351351352\n",
"4.361261261261261\n",
"4.371171171171171\n",
"4.381081081081081\n",
"4.390990990990991\n",
"4.4009009009009015\n",
"4.410810810810811\n",
"4.420720720720721\n",
"4.430630630630631\n",
"4.440540540540541\n",
"4.45045045045045\n",
"4.460360360360361\n",
"4.47027027027027\n",
"4.48018018018018\n",
"4.49009009009009\n",
"4.5\n",
"4.5099099099099105\n",
"4.51981981981982\n",
"4.52972972972973\n",
"4.53963963963964\n",
"4.54954954954955\n",
"4.559459459459459\n",
"4.56936936936937\n",
"4.579279279279279\n",
"4.589189189189189\n",
"4.599099099099099\n",
"4.609009009009009\n",
"4.6189189189189195\n",
"4.628828828828829\n",
"4.638738738738739\n",
"4.648648648648649\n",
"4.658558558558559\n",
"4.668468468468468\n",
"4.678378378378379\n",
"4.688288288288288\n",
"4.698198198198198\n",
"4.708108108108108\n",
"4.718018018018018\n",
"4.7279279279279285\n",
"4.737837837837838\n",
"4.747747747747748\n",
"4.757657657657658\n",
"4.767567567567568\n",
"4.777477477477477\n",
"4.787387387387388\n",
"4.797297297297297\n",
"4.807207207207207\n",
"4.817117117117117\n",
"4.827027027027027\n",
"4.8369369369369375\n",
"4.846846846846847\n",
"4.856756756756757\n",
"4.866666666666667\n",
"4.876576576576577\n",
"4.886486486486486\n",
"4.896396396396397\n",
"4.906306306306306\n",
"4.916216216216217\n",
"4.926126126126126\n",
"4.936036036036036\n",
"4.9459459459459465\n",
"4.955855855855856\n",
"4.965765765765766\n",
"4.975675675675676\n",
"4.985585585585586\n",
"4.995495495495495\n",
"5.005405405405406\n",
"5.015315315315315\n",
"5.025225225225226\n",
"5.035135135135135\n",
"5.045045045045045\n",
"5.0549549549549555\n",
"5.064864864864865\n",
"5.074774774774775\n",
"5.084684684684685\n",
"5.094594594594595\n",
"5.104504504504504\n",
"5.114414414414415\n",
"5.124324324324324\n",
"5.134234234234235\n",
"5.1441441441441444\n",
"5.154054054054054\n",
"5.1639639639639645\n",
"5.173873873873874\n",
"5.183783783783784\n",
"5.193693693693694\n",
"5.203603603603604\n",
"5.213513513513513\n",
"5.223423423423424\n",
"5.233333333333333\n",
"5.243243243243244\n",
"5.2531531531531535\n",
"5.263063063063063\n",
"5.2729729729729735\n",
"5.282882882882883\n",
"5.292792792792793\n",
"5.302702702702703\n",
"5.312612612612613\n",
"5.322522522522522\n",
"5.332432432432433\n",
"5.342342342342342\n",
"5.352252252252253\n",
"5.3621621621621625\n",
"5.372072072072072\n",
"5.3819819819819825\n",
"5.391891891891892\n",
"5.401801801801802\n",
"5.411711711711712\n",
"5.421621621621622\n",
"5.431531531531531\n",
"5.441441441441442\n",
"5.451351351351351\n",
"5.461261261261262\n",
"5.4711711711711715\n",
"5.481081081081081\n",
"5.4909909909909915\n",
"5.500900900900901\n",
"5.510810810810811\n",
"5.520720720720721\n",
"5.530630630630631\n",
"5.540540540540541\n",
"5.550450450450451\n",
"5.56036036036036\n",
"5.570270270270271\n",
"5.5801801801801805\n",
"5.59009009009009\n",
"5.6000000000000005\n",
"5.60990990990991\n",
"5.61981981981982\n",
"5.62972972972973\n",
"5.63963963963964\n",
"5.64954954954955\n",
"5.65945945945946\n",
"5.669369369369369\n",
"5.67927927927928\n",
"5.6891891891891895\n",
"5.699099099099099\n",
"5.7090090090090095\n",
"5.718918918918919\n",
"5.728828828828829\n",
"5.738738738738739\n",
"5.748648648648649\n",
"5.758558558558559\n",
"5.768468468468469\n",
"5.778378378378378\n",
"5.788288288288289\n",
"5.7981981981981985\n",
"5.808108108108108\n",
"5.8180180180180185\n",
"5.827927927927928\n",
"5.837837837837838\n",
"5.847747747747748\n",
"5.857657657657658\n",
"5.867567567567568\n",
"5.877477477477478\n",
"5.887387387387387\n",
"5.897297297297298\n",
"5.9072072072072075\n",
"5.917117117117117\n",
"5.9270270270270276\n",
"5.936936936936937\n",
"5.946846846846847\n",
"5.956756756756757\n",
"5.966666666666667\n",
"5.976576576576577\n",
"5.986486486486487\n",
"5.996396396396396\n",
"6.006306306306307\n",
"6.0162162162162165\n",
"6.026126126126126\n",
"6.036036036036037\n",
"6.045945945945946\n",
"6.055855855855857\n",
"6.065765765765766\n",
"6.075675675675676\n",
"6.085585585585586\n",
"6.095495495495496\n",
"6.105405405405405\n",
"6.115315315315316\n",
"6.1252252252252255\n",
"6.135135135135135\n",
"6.145045045045046\n",
"6.154954954954955\n",
"6.164864864864866\n",
"6.174774774774775\n",
"6.184684684684685\n",
"6.194594594594595\n",
"6.204504504504505\n",
"6.2144144144144144\n",
"6.224324324324325\n",
"6.2342342342342345\n",
"6.244144144144144\n",
"6.254054054054055\n",
"6.263963963963964\n",
"6.273873873873875\n",
"6.283783783783784\n",
"6.293693693693694\n",
"6.303603603603604\n",
"6.313513513513514\n",
"6.3234234234234235\n",
"6.333333333333334\n",
"6.3432432432432435\n",
"6.353153153153153\n",
"6.363063063063064\n",
"6.372972972972973\n",
"6.382882882882884\n",
"6.392792792792793\n",
"6.402702702702703\n",
"6.412612612612613\n",
"6.422522522522523\n",
"6.4324324324324325\n",
"6.442342342342343\n",
"6.4522522522522525\n",
"6.462162162162162\n",
"6.472072072072073\n",
"6.481981981981982\n",
"6.491891891891893\n",
"6.501801801801802\n",
"6.511711711711712\n",
"6.521621621621622\n",
"6.531531531531532\n",
"6.5414414414414415\n",
"6.551351351351352\n",
"6.5612612612612615\n",
"6.571171171171171\n",
"6.581081081081082\n",
"6.590990990990991\n",
"6.600900900900902\n",
"6.610810810810811\n",
"6.620720720720721\n",
"6.630630630630631\n",
"6.640540540540541\n",
"6.6504504504504505\n",
"6.660360360360361\n",
"6.6702702702702705\n",
"6.680180180180181\n",
"6.690090090090091\n",
"6.7\n",
"6.709909909909911\n",
"6.71981981981982\n",
"6.72972972972973\n",
"6.73963963963964\n",
"6.74954954954955\n",
"6.7594594594594595\n",
"6.76936936936937\n",
"6.7792792792792795\n",
"6.78918918918919\n",
"6.7990990990991\n",
"6.809009009009009\n",
"6.81891891891892\n",
"6.828828828828829\n",
"6.838738738738739\n",
"6.848648648648649\n",
"6.858558558558559\n",
"6.8684684684684685\n",
"6.878378378378379\n",
"6.8882882882882885\n",
"6.898198198198199\n",
"6.908108108108109\n",
"6.918018018018018\n",
"6.927927927927929\n",
"6.937837837837838\n",
"6.947747747747748\n",
"6.957657657657658\n",
"6.967567567567568\n",
"6.9774774774774775\n",
"6.987387387387388\n",
"6.9972972972972975\n",
"7.007207207207208\n",
"7.017117117117118\n",
"7.027027027027027\n",
"7.036936936936938\n",
"7.046846846846847\n",
"7.056756756756757\n",
"7.066666666666667\n",
"7.076576576576577\n",
"7.0864864864864865\n",
"7.096396396396397\n",
"7.1063063063063066\n",
"7.116216216216217\n",
"7.126126126126127\n",
"7.136036036036036\n",
"7.145945945945947\n",
"7.155855855855856\n",
"7.165765765765766\n",
"7.175675675675676\n",
"7.185585585585586\n",
"7.195495495495496\n",
"7.205405405405406\n",
"7.215315315315316\n",
"7.225225225225226\n",
"7.235135135135136\n",
"7.245045045045045\n",
"7.254954954954956\n",
"7.264864864864865\n",
"7.274774774774775\n",
"7.284684684684685\n",
"7.294594594594595\n",
"7.304504504504505\n",
"7.314414414414415\n",
"7.324324324324325\n",
"7.334234234234235\n",
"7.344144144144145\n",
"7.354054054054054\n",
"7.363963963963965\n",
"7.373873873873874\n",
"7.383783783783784\n",
"7.393693693693694\n",
"7.403603603603604\n",
"7.413513513513514\n",
"7.423423423423424\n",
"7.433333333333334\n",
"7.443243243243244\n",
"7.453153153153154\n",
"7.463063063063063\n",
"7.472972972972974\n",
"7.482882882882883\n",
"7.492792792792793\n",
"7.502702702702703\n",
"7.512612612612613\n",
"7.522522522522523\n",
"7.532432432432433\n",
"7.542342342342343\n",
"7.552252252252253\n",
"7.562162162162163\n",
"7.572072072072072\n",
"7.581981981981983\n",
"7.591891891891892\n",
"7.601801801801802\n",
"7.611711711711712\n",
"7.621621621621622\n",
"7.631531531531532\n",
"7.641441441441442\n",
"7.651351351351352\n",
"7.661261261261262\n",
"7.671171171171172\n",
"7.681081081081081\n",
"7.690990990990992\n",
"7.700900900900901\n",
"7.710810810810811\n",
"7.720720720720721\n",
"7.730630630630631\n",
"7.740540540540541\n",
"7.750450450450451\n",
"7.760360360360361\n",
"7.770270270270271\n",
"7.780180180180181\n",
"7.79009009009009\n",
"7.800000000000001\n",
"7.80990990990991\n",
"7.819819819819821\n",
"7.82972972972973\n",
"7.83963963963964\n",
"7.84954954954955\n",
"7.85945945945946\n",
"7.86936936936937\n",
"7.87927927927928\n",
"7.88918918918919\n",
"7.899099099099099\n",
"7.90900900900901\n",
"7.918918918918919\n",
"7.92882882882883\n",
"7.938738738738739\n",
"7.948648648648649\n",
"7.958558558558559\n",
"7.968468468468469\n",
"7.978378378378379\n",
"7.988288288288289\n",
"7.998198198198199\n",
"8.00810810810811\n",
"8.018018018018019\n",
"8.027927927927928\n",
"8.03783783783784\n",
"8.04774774774775\n",
"8.057657657657659\n",
"8.067567567567568\n",
"8.077477477477478\n",
"8.087387387387388\n",
"8.097297297297299\n",
"8.107207207207209\n",
"8.117117117117118\n",
"8.127027027027028\n",
"8.136936936936937\n",
"8.146846846846847\n",
"8.156756756756756\n",
"8.166666666666668\n",
"8.176576576576577\n",
"8.186486486486487\n",
"8.196396396396397\n",
"8.206306306306306\n",
"8.216216216216218\n",
"8.226126126126127\n",
"8.236036036036037\n",
"8.245945945945946\n",
"8.255855855855856\n",
"8.265765765765765\n",
"8.275675675675677\n",
"8.285585585585586\n",
"8.295495495495496\n",
"8.305405405405406\n",
"8.315315315315315\n",
"8.325225225225227\n",
"8.335135135135136\n",
"8.345045045045046\n",
"8.354954954954955\n",
"8.364864864864865\n",
"8.374774774774774\n",
"8.384684684684686\n",
"8.394594594594595\n",
"8.404504504504505\n",
"8.414414414414415\n",
"8.424324324324324\n",
"8.434234234234236\n",
"8.444144144144145\n",
"8.454054054054055\n",
"8.463963963963964\n",
"8.473873873873874\n",
"8.483783783783784\n",
"8.493693693693695\n",
"8.503603603603604\n",
"8.513513513513514\n",
"8.523423423423424\n",
"8.533333333333333\n",
"8.543243243243245\n",
"8.553153153153154\n",
"8.563063063063064\n",
"8.572972972972973\n",
"8.582882882882883\n",
"8.592792792792794\n",
"8.602702702702704\n",
"8.612612612612613\n",
"8.622522522522523\n",
"8.632432432432433\n",
"8.642342342342342\n",
"8.652252252252254\n",
"8.662162162162163\n",
"8.672072072072073\n",
"8.681981981981982\n",
"8.691891891891892\n",
"8.701801801801803\n",
"8.711711711711713\n",
"8.721621621621622\n",
"8.731531531531532\n",
"8.741441441441442\n",
"8.751351351351351\n",
"8.761261261261263\n",
"8.771171171171172\n",
"8.781081081081082\n",
"8.790990990990991\n",
"8.800900900900901\n",
"8.810810810810812\n",
"8.820720720720722\n",
"8.830630630630631\n",
"8.840540540540541\n",
"8.85045045045045\n",
"8.86036036036036\n",
"8.870270270270272\n",
"8.880180180180181\n",
"8.89009009009009\n",
"8.9\n",
"8.90990990990991\n",
"8.919819819819821\n",
"8.929729729729731\n",
"8.93963963963964\n",
"8.94954954954955\n",
"8.95945945945946\n",
"8.96936936936937\n",
"8.97927927927928\n",
"8.98918918918919\n",
"8.9990990990991\n",
"9.00900900900901\n",
"9.018918918918919\n",
"9.02882882882883\n",
"9.03873873873874\n",
"9.04864864864865\n",
"9.058558558558559\n",
"9.068468468468469\n",
"9.078378378378378\n",
"9.08828828828829\n",
"9.0981981981982\n",
"9.108108108108109\n",
"9.118018018018018\n",
"9.127927927927928\n",
"9.13783783783784\n",
"9.147747747747749\n",
"9.157657657657658\n",
"9.167567567567568\n",
"9.177477477477478\n",
"9.187387387387387\n",
"9.197297297297299\n",
"9.207207207207208\n",
"9.217117117117118\n",
"9.227027027027027\n",
"9.236936936936937\n",
"9.246846846846848\n",
"9.256756756756758\n",
"9.266666666666667\n",
"9.276576576576577\n",
"9.286486486486487\n",
"9.296396396396396\n",
"9.306306306306308\n",
"9.316216216216217\n",
"9.326126126126127\n",
"9.336036036036036\n",
"9.345945945945946\n",
"9.355855855855857\n",
"9.365765765765767\n",
"9.375675675675677\n",
"9.385585585585586\n",
"9.395495495495496\n",
"9.405405405405405\n",
"9.415315315315317\n",
"9.425225225225226\n",
"9.435135135135136\n",
"9.445045045045045\n",
"9.454954954954955\n",
"9.464864864864866\n",
"9.474774774774776\n",
"9.484684684684686\n",
"9.494594594594595\n",
"9.504504504504505\n",
"9.514414414414414\n",
"9.524324324324326\n",
"9.534234234234235\n",
"9.544144144144145\n",
"9.554054054054054\n",
"9.563963963963964\n",
"9.573873873873875\n",
"9.583783783783785\n",
"9.593693693693695\n",
"9.603603603603604\n",
"9.613513513513514\n",
"9.623423423423423\n",
"9.633333333333335\n",
"9.643243243243244\n",
"9.653153153153154\n",
"9.663063063063063\n",
"9.672972972972973\n",
"9.682882882882884\n",
"9.692792792792794\n",
"9.702702702702704\n",
"9.712612612612613\n",
"9.722522522522523\n",
"9.732432432432434\n",
"9.742342342342344\n",
"9.752252252252253\n",
"9.762162162162163\n",
"9.772072072072072\n",
"9.781981981981982\n",
"9.791891891891893\n",
"9.801801801801803\n",
"9.811711711711713\n",
"9.821621621621622\n",
"9.831531531531532\n",
"9.841441441441443\n",
"9.851351351351353\n",
"9.861261261261262\n",
"9.871171171171172\n",
"9.881081081081081\n",
"9.890990990990991\n",
"9.900900900900902\n",
"9.910810810810812\n",
"9.920720720720722\n",
"9.930630630630631\n",
"9.94054054054054\n",
"9.950450450450452\n",
"9.960360360360362\n",
"9.970270270270271\n",
"9.98018018018018\n",
"9.99009009009009\n",
"10.0\n"
]
}
],
"source": [
"#Problem 3b\n",
"#Each member is 300 mm long\n",
"# 0.1 to 10 over 1000 steps\n",
"for i in range (0, 1000):\n",
" F_st = F/(E_st*A_3[i])\n",
" u_st = solveLU(L_2a,U_2a,F_st)\n",
" u_st_3b = u_st[1::2]\n",
" if min(u_st_3b)>-0.2:\n",
" print(A_3[i])"
]
},
{
"cell_type": "code",
"execution_count": 189,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"For steel the minimum cross ssectional area to keep the minimum deflection in the y direction under 0.2 mm is 2.6964 mm^2\n"
]
}
],
"source": [
"A_3b = 2.6964\n",
"print('For steel the minimum cross ssectional area to keep the minimum deflection in the y direction under 0.2 mm is', A_3b,'mm^2')"
]
},
{
"cell_type": "code",
"execution_count": 197,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The weight of the aluminum truss is 68.43771 g\n",
"The weight of the steel truss is 68.96043 g\n"
]
}
],
"source": [
"#Problem 3c\n",
"#There are 11 beams in the truss\n",
"#Each beam is 300 mm long\n",
"#Volume in mm^3\n",
"Volume_al = 11*A_3a*300\n",
"Volume_st = 11*A_3b*300\n",
"#density in g/mm^3\n",
"density_al = 0.0027\n",
"density_st = 0.00775\n",
"weight_al = Volume_al*density_al\n",
"weight_st = Volume_st*density_st\n",
"print('The weight of the aluminum truss is',weight_al,'g')\n",
"print('The weight of the steel truss is',weight_st,'g')"
]
},
{
"cell_type": "code",
"execution_count": 232,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The total cost of the aluminum truss is 0.10573626195 dollars\n",
"The total cost of the steel truss is 0.032825164680000005 dollars\n",
"Therefore the cheaper option is the steel truss\n"
]
}
],
"source": [
"#Problem 3d\n",
"#price in dollars/tonnes\n",
"price_al = 1545\n",
"price_st = 476\n",
"cost_al = weight_al*price_al/(1000**2)\n",
"cost_st = weight_st*price_st/(1000**2)\n",
"print('The total cost of the aluminum truss is',cost_al,'dollars')\n",
"print('The total cost of the steel truss is',cost_st,'dollars')\n",
"print('Therefore the cheaper option is the steel truss')"
]
},
{
"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_prices.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.d__?"
]
},
{
"cell_type": "code",
"execution_count": 233,
"metadata": {},
"outputs": [],
"source": [
"#Problem 4a, 4b, and 4c\n",
"import pandas as pd\n",
"data_al = pd.read_csv('../data/al_price.csv')\n",
"data_st = pd.read_csv('../data/steel_price.csv')"
]
},
{
"cell_type": "code",
"execution_count": 234,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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AXDSSSdx7733VqW/6KKL6NevH7169eKtt94CYM6cOey///7069ePM844gy222IK5c+euVNexY8ey22670a9fP4YOHcqCBQuq8r3kkkvYc889ueeeexg4cCAXXHABe++9N9dccw3//e9/2Xfffenduzf77rsv06dPr6rb2WefzT777MP555/f4G1oZqVT591uEbFc0s6SFBGFrtkUJGlDYGlEzJPUhiTQXJGXbDowQFJbYBGwLzAxL5++wE3AwcAHwN8kXRoRvyyyKi8BW0vqAcwkuaHh+GLXoxgXP/gGb876osb5r0yfx5LlFdWmLVq6nPPufY07XpxecJkduqzLRYfuWGOel19+Oa+//jqvvvoqAOPHj+fFF1/k9ddfr7rTa+TIkWywwQYsWrSIXXbZhaOOOopOnTpVy2fq1Knccccd3HTTTRx99NHcd999nHjiSo1POnfuzMsvv8yf/vQnfve733HzzTdz8cUXM2jQIEaMGMEjjzxSLcBVmjt3Lpdeeinjxo2jXbt2XHHFFVx99dVceOGFQHJr9DPPPAPADTfcwLx583jqqacAOPTQQ/ne977HsGHDGDlyJD/96U954IEHAHjnnXcYN24cZWVlNW4jM1t1FXur9SskF/3vARZWToyI0bUssynwl/RusxbA3RHxEICkMcCpEfGCpHuBl4FlaTn5Z7C2wNCIeC9ddhhwUqECJd0BDAQ6S5oBXBQRt0g6E3iU5G66kRHxRpHr3STyA09d0xtq1113rXaL8bXXXsv9998PwIcffsjUqVNXCj49evSgT58+AOy8885MmzatYN5HHnlkVZrRo5Pd/swzz1TlP3jwYNZff/2Vlnv++ed588032WOPPQBYsmQJu+22W9X8Y445plr63PHnnnuuqqzvfve7nHfeeVXzhg4d6sBjthorNvhsAHwKDMqZFiTdZAVFxGtA3xrmHZQzfBG1dKVFxLN540tJWkKF0h5Xw/QxwJiaymis2looAHtc/gQz5y1aaXrXjm2464zdCizRMO3atasaHj9+POPGjeO5556jbdu2DBw4sOAtyK1br7jJr6ysrKrbraZ0ZWVlVddZimkIRwT7778/d9xxR511LjSeK/dOttrSmdmqr6gbDiLi5AKfU5q7cmuKcw/cljatqv9Kb9OqjHMP3LbBeXbo0IEvv/yyxvnz589n/fXXp23btrz1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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import random as random\n",
"x_a = data_al['Year'].values\n",
"y_a = data_al['dollars/MT'].values\n",
"np.random.seed(103)\n",
"i_rand = random.sample(range(0,len(x_a)),len(x_a))\n",
"train_per = (7/10)\n",
"x_train_a = x_a[i_rand[:int(len(x_a)*train_per)]]\n",
"y_train_a = y_a[i_rand[:int(len(x_a)*train_per)]]\n",
"x_test_a = x_a[i_rand[int(len(x_a)*train_per):]]\n",
"y_test_a = y_a[i_rand[int(len(x_a)*train_per):]]\n",
"Z_a=np.block([[x_train_a**0]]).T\n",
"Z_test_a=np.block([[x_test_a**0]]).T\n",
"max_N_a = 15\n",
"SSE_train_a = np.zeros(max_N_a)\n",
"SSE_test_a = np.zeros(max_N_a)\n",
"for i in range(1,max_N_a):\n",
" Z_a=np.hstack((Z_a,x_train_a.reshape(-1,1)**i))\n",
" Z_test_a=np.hstack((Z_test_a,x_test_a.reshape(-1,1)**i))\n",
" A_a = np.linalg.solve(Z_a.T@Z_a,Z_a.T@y_train_a)\n",
" St_a=np.std(y_train_a)\n",
" Sr_a=np.std(y_train_a-Z_a@A_a)\n",
" r2_a=1-Sr_a/St_a\n",
" SSE_train_a[i]=np.sum((y_train_a-Z_a@A_a)**2)/len(y_train_a)\n",
" SSE_test_a[i]=np.sum((y_test_a-Z_test_a@A_a)**2)/len(y_test_a)\n",
"plt.semilogy(np.arange(2,max_N_a),SSE_train_a[2:],'o-',label='training error')\n",
"plt.semilogy(np.arange(2,max_N_a),SSE_test_a[2:],'*-',label='testing error')\n",
"plt.legend(loc='center left');\n",
"plt.title('Aluminum Test/Training Error vs Polynomial Fit Order')\n",
"plt.xlabel('Polynomial Fit Order')\n",
"plt.ylabel('Error');"
]
},
{
"cell_type": "code",
"execution_count": 236,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAawAAAEWCAYAAAA6maO/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nOzdeZwU1bnH/893FhgGkE1RARVUXBAQEAmKC2hEcMEtGBcSowZjoldN4gK5Rn/xZ65xuV7j7yZ6UZBcNRDFXRERd724sKiAiKCiDCCbMuzM9vz+qJqZnprume5Z6Gnmeb9e8+quqlOnnqru6afPqepTMjOcc865pi4r3QE455xzyfCE5ZxzLiN4wnLOOZcRPGE555zLCJ6wnHPOZQRPWM455zKCJyxXI0nLJf043XE0pnAfj27osi41ktpIMkn7pDuWWMm+5nWNX1JrSVskda57lHUj6WpJM3b1duvKE1YGknScpP+TVCjpe0nvlf9DSfqFpHd3QQwvh/9kWyQVSyqKmX6wHvX+RdLDcea3krRB0pcx2ymVtCNm+nd12aaZdTezjxq6bCrCD46SmH0p/2vX0NtqbJF92SRprqRT0h1XXTXUay5pTuT9ukVSHzPbamZtzGxtWG6apHG11JUt6ebw/2G7pK8l/UlSTn3jbMp2653bHUnaA3gR+DXwBNACOB7YuSvjMLORMTFNBgrM7OZG3OTJwGwzOyNmu+8D/21mjyVaSVKOmZU0YlwNaZaZjaitULx9SnU/JQnIMrPSOsSZjFlmNkJSNnAD8JSkfcxsWyNtL1P8wsymNkA9DwODgJ8CHwO9gX8APYGLooUb+vXeBe+fuLyFlXkOATCzKWZWambbzWymmX0q6XDgQeCY8NvbRgBJLSXdI+lbSWskPSipVXmFks6Q9LGkjWHLrW9DBCrpHEmfhvW+I6lXzLI/SlodfgNfLOl4SWcDvwMuCeP/MKa604DpSWzzakmvhvv4A3C9pF6S3g5bo2slPSKpTcw66yUNDp/fI+l/Jf1L0mZJn0jqU8eyx0haEC57VNJztX1zrmG/1kv6naTPgO9rmHekpHfDY/6JpOExdUyTdJ+kWcBW4OjINn4p6c3IvD9K+mf4/FxJS8L9WSHpqtriDj/QHgHaAvuH9Vwj6asw/mmK0xUmaZiCrjjFzLtEYe9BEse+tuPwX5JeC99nr0vaK3zPFEpaGHmvxr7mJ0j6MCy3StJ/hkm5zhTTlaigl+Bs4E9hbFPilD8S+DnwUzObY2YlZvYxMBo4X9KgmP2s8nqH25gR/t+9B+wXqbuvpDck/SDpM0lnRo5bwvfPLmFm/pdBf8AewAaCb1MjgQ6R5b8A3o3Muw94HuhI8MHxAnBHuGwAsBb4EZANXAIsB1qGy5cDP64lpsnA7ZF5g4HVwFFhvVcAXxC06o8EvgL2BgQcCPQI1/sL8HCcbXwNdI/Mex8YE5l3NVACXBZutxXQCxgK5AL7Ah/GxgusBwaHz+8h+Gc8KVz//yNoLaRUFsgH1gC/DPd5DFAMjEtwDK8GZtRwjNeH+7sv0CrevPCvALg23NfTgC3AAWH5aeE6RxN8WW0Z2UZ7YDvQNWbeZ8AZ4eu0ETgqnL8n0K+2fQnjGA/8AOQBo8L3Re8w3onAy2HZNoAB+4TbWw4cH1Pvq8Cvkjj2yRyHVUCf8HWaTfB+PC+s67+AFxK85oOBgWG5nuF6v4zGn+C4zAEuiDO/ynphfHHfJ+Hy64FFCZbNBf490etN0DszOTxGA4B1Ma9Ve+A74IJw/wYTfBHqkai+Xf355y2sDGNmm4DjCN7gDwHrJD0vae945cNvqGOB35rZ92a2GfgPgjcl4bL/MbMPLGix/YOge3FwPUP9FUF33dyw3gkE/zBHESSU8kSSbWZfmdnXiSqSdASwzcyWJ7ntL8xsklW2QD8zszfNrNjMVgP3AyfWsP6rZva6Ba2DR4F+dSg7FNhkZg9b8A34MWBRLXGfHLYIyv8+jSy/18xWm9n2BPOGAkVm9tdwX6cDbxB88y73hJl9ZGZlZlalG9nMNgKvEHQzIak/0DmcB8HrdoSkNma23oJv9TXuC0FiOB0YZWY7gIuBB8xsYRjzjcAISXtGYjGC4zkmjKULMISgG7xcTce+tuPwLzNbYEEX5fPABjN7KqzrCaB/vJ0ys/ctaNWUmtlSYBI1v5eiJsa8vu+ksF6sPQmSfjyrw+XlKl5vgi9OpwM3h/8X84DYFtx5wHwzmxru3/vAy8C58eqLvn92BU9YGcjMFpvZL8ysG8E31S4Erah49iL4Fjm3/B8FmBHOBzgA+H3sByVBN0GXeoZ5APCHSL17EXx7XwSMA/4MrJX0eKKEG0qqOzDGitgJSd3C7oxVkjYRdJvuGX9VIPiWWW4bwTfgVMt2icYRZzrqNTNrH/MX7ZqNt37svC7AN5Hl3wBdU4jhn8CF4fOLgCfDD30DziJIZivC7rQBSezLXmZ2nJmVfzhXidHMNhC0lLrGqeN/gZ9IahHG8rKZ/RCzvKZjX9txWBPzfHuc6bivuaTeYZfamvC99Adqfi9FXR7z+h6fwnqx1hO0quPZN1xebkVkWRmwMmZe7HE6ADgp8j97VmRbtb1/GpUnrAxnZp8TNPF7l8+KFFlP8A94RMw/SjszK/+HXAH8OfJBmW9m1frOU7QCuCVOvU+Hcf/DzI4l6A7MA25PED8ECeulFLYdreM/gUKgl5ntAVxJ0OXUmFYD3SLz9otXMAXxjk3svFWE54li7E/VD6jabs/wAnCopEMIktM/K1Y0e8/MTifoyn0deDzJuGOtIvhgBEBSR6B1JMby7S0FPidoFfyMoBWV7DZqOw51NZGgS/nA8L30HzT8e6m21+g14DBJvWNnhq/ZkeHyeHWtJvjMj03cscdpBTA98j/bxsyuTyG2RuUJK8NIOkzS7yV1C6f3I/hG/H5YZA3QLfxWStgV8BDwX+UntyV1lXRqWP4h4EpJP1KgtaTTJbWtZ6gTgH+TNDCst42kUZLyFVwEcaKklgTJdDtQfrXRGqBH2JVZflVkH+C9esTSFtgMbJLUHfhtPepK1htAe0mXScqRdBFwRCNv8y0gT9K/hds8leAcz7RkKwi76Z4D/kbw4VR+kUNbSeeH74tignNCdblCbArwK0lHKLjw507gFTNbn6D8/wJ/IviQTfZLS72PQw3aAhvNbKuCizx+2QB1Rq0h+CIXl5nNJ/iy8C9JRym4xP1I4EngqbArL956Wwl6Km6TlCepH5WtaYCngEGSfhIetxYKLhw6uKF2rL48YWWezQQXSHwgaStBoloI/D5c/jrBuZLvJJV/CNwELAPeD7sxZgGHApjZHILzWP9NcGJ8GcGFG/ViZu8B1wD/Q3Cy/guCbh0jOH/1nwStv9UE3S+3hKtOJejC/F7S/wHDgTfNrLge4dwMDAM2EXxoPVmPupISnhs5h+Cqxx8IWomzqPnnBz9W9d9hHZ7iNs8g+BDaQHBhwugUzv2V+yfwY2Bq2BVY7gqCb+EbCc6BXppivZjZs2FcLxJcGNGJ4EKfRP5FcHHDv5J9DzTgcYjnOuDXkrYAfyV4vza0B4Fjwyv1ErViLyM4NtMIulSfD//G1FL3Lwla/usIvpQ8Ur7AzL4HTiX4PPiOoKV6G8GFK02Cqr4fnWtaJE0iuOpxUrpjqS9JC4E/mVmjJ8zdhaQsgq68cxK1HFzz4S0s19TNITivknEknaTg9z25kn5DcL7gtdrWc1X8DFjnycqBj3Thmjgz+3u6Y6iHvlR2cS4laCV8n96QMoekOQTnri6oraxrHrxL0DnnXEbwLkHnnHMZwbsEG8mee+5p3bt3T3cYzjmXUebOnbvezPaKt8wTViPp3r07c+bMSXcYzjmXUSRFRymp4F2CzjnnMoInLOeccxnBE5ZzzrmM4AkrBZIOlDRRUkOMSeaccy4FGZmwFNyJdIGCu+TW+coGSZMU3IF2YZxlIxTcXXWZwrvEWnDfpsvrE7tzzrm6yciEFRpmZv3MbGB0gaTO0dHGE4w4PBkYEWf9bIKBIUcS3GTwQsXcMts555qczd/BIyNh85ray2aoTE5YNTkReE5SHoCksQR3ma3CzN4muAV01CBgWdiiKiIYXuesZDYs6UxJEwoLC+scvHPOpeytu+Db9+GtO9MbRyMmzkz9HZYBMyUZwe3dJ1RZaPakpB7AVElPEgzFf0oK9Xel6p01C4AfSepEcJfc/pLGm9kd1QIzewF4YeDAgWNT2yXnnEuRGdy+N5TG3LVmzsTgLysHTr0DsnMgKxeyc4N52bmJpxMui60jF7JqaOvEJs4z7m3Q3c3UhDXEzFaFNyR8VdLnYWupgpndJWkq8ABwkJltSaH+eHcQtfB23lfWPWznnKuj7T/A2sWw9jNY81nl89IEt1grK4GXb2icWJRVPbFtXVe1THnizGkJN69tkM1mZMIys1Xh41pJzxB04VVJWJKOJ7ht/DPArcDVKWyigKq3M+9GcDMz55xrXMXbYd2SIBmtDRPTms9gc8xHUMs9oHMvOOIc2PsIWPYafDEDclpAaTH0GwPDb4PSEigrDuaVlYSP8aZjy0Wnk1xvZyEUzIHClWClkNMKDj8Dhv+5wQ5NxiUsSa2BLDPbHD4fTnBXzNgy/Qlu/X468DXwmKTbzezmJDfzEdAz7FZcSXB7g4saah+cc47SEvjha1izKGwthY/ffwVWFpTJbgl7HQI9jg8SVOdesHcv2KMrKKYj6Ks3YeBlMPBSmPMIbFkDrTrs+n164bcwbzLk5AUtv5Z7QNu9G6z6jEtYwN7AMwperBzgn2Y2I1Imn+CW2F8CSLqEOLd9lzQFGArsKakAuNXMJppZiaSrgVeAbGCSmS1qpP1xLnmbv4Npl8JPJjfoB4Grh9peEzPYtDJsKS2q7MpbtySmO0/Q8cAgGfU+rzI5dTwwOH9Umwser3zewOeNUrJ1LRx1adXE2YD8fliNZODAgeaD37oG9+LvYO4jwYdCuj6YPGlWFfuanHRzZUKKPde0M+aq4bZdoPPhQXIqT0x7HQq5rdK3D02IpLnxfq4EnrAajSes3UxDfkiXFMHOzVC0OXjcuSXBdPi4czN89mxlN1EsZcHBpwQnvXNaQnaL8GqvFnGex5sXeV5rHbkw8xaY/7/pTZrpZga3d4bSosRl8tpB5yOqJqe9DoP8jrsuzgxUU8LKxC5B53a9N/8C38yGmf8OQ66tJclsikyH88oTUE0fcrFyW0PLttCyTfBht3kNbN8QJC5lQX6n4FzGljXBSe/SnUHdpcVVH0t2EvwSpIHFXj495mnYp8/u+2G8dT2snAer5lU+Rl9HZQcXQBx7DXQfAm33rXqeydWbJyzXvJWVwfbvYfNq2LQ6eCz/27Qals6kyof9gieDv0Rik0zLttCiDbTfr/J5xbI9ap5u0QaysqvWXeWEdhEcPir5Fk5ZaZjEioIWXvnziuQWfR5n3tYN8NlzwcUBZSVB0sxuCSXb4X9HBdtpt1+QuPbpGzzu2zeYl0kf3Ds3w6qPYeXcMEHNh8Jvw4UKWkk9h0OX/vD1W/D5S0Hrs7QIuh0NfUenNfzdmScs17TVpytu55aqySeajDZ/FzwvK66+buu9oO0+0ONE2PgNFK4IPqSzc6Hr0TDol9D+gNqTTEOqzwntrGzIalX/8ySFBbBmQWXS7HcRDB0fzFv9KXy3AL77FJa8TEWiz2sXJrCYJLbnIcGxTLfiHbBmYdXW0/ovqIi9/QHQ7SgYNBa6DoB9jwxe73JfvdmoFxm4qvwcViPJ+HNYTeXEeryLDEqKgg+Gzd8Fv03Z/B1sWhWZXh1010W1aAt77Bsko7Zdgsc9ulSdbrN38HuWcuUtm/Jv0c353M3Ui4PjE/sBHXuFWrmircEFB9/FJLE1i6BkR7A8u2Vwbqe8NbZv36A7rWXb6nU1lLJSWPd51eS0ZlHlF5bWnYOk1GVA5WPrTo0Xj4vLL7pIgzonrKacKJJR3vVUsjOmC2pnpDtqZ+R5cVgm5vlrfwpaNMnKyg3OGdSYjPau2wdish/SrmalJbBhWZjAPgkeV38adMkCFZd279MnbIkdGTy23Sd+fTX9r5gFv3FaGXPOafUnULwtWN5yD+jSL0xORwUJKvrbJpcWnrDSoM4Jq6ZEEXseIuG5hxSfl0TmzZkU/Eo9SoKuA2tPNPHWbRAKu+iOh44Hh0moPEHtC6061jy+mWuazILWcXkr7LtPgyS28ZvKMq07xySxsGux40Ew/frK/5UTbqh6QcSq+cFQRhB0X+7Tt2rrqeNB/n5pojxhpUHKCev2zuHVXHGUny+Id1lzQ4i9ZFnZwbfQ4u0E/fgKfjHf6aDgHE1Oy/Ay55aR5+V1xD5vEXOZdB2ev3wjzPuHd8U1R9s3Bt115V2Kqz+FdYtrb3UrO7iismv/yuTUuVfTOF/mkuKXtWeCaz+FV26Gxc8HLRZlQ4fu0P14aNUuud/QJLU88jwrp3o3SMU5m5ZBojjinPQkiq3r/IR2c9WqfXBpePchlfNKdgbnoJa/G/QElA9hpOyg9XXiTXDgUGiRn66oXSPzhNVUtN0nOL9SVlzZojpwaJoSReMOr5K0pjLcjGsacloG57X2PRLWLwsSVvn/Stej4LDT0h2ha2SesJoSTxTOJaep/K+4XcrPYTWSjL+s3Tnn0qCmc1h+mYxzzrmM4AnLOedcRvCE5ZxzLiN4wkqBpAMlTZQ0Ld2xOOdcc9PoCUtStqT5kl5MsPxaSQslLZJ0XTjvUEkfx/xtKl8WLl8uaUG4rM5XNkiaJGmtpIVxlo2QtETSMknjAMzsKzO7vK7bc845V3e7ooV1LbA43gJJvYGxwCDgSOAMST3NbImZ9TOzfsBRwDbgmcjqw8Iy1a4mkdRZUtvIvIPjhDAZGBFn/Wzgb8BIoBdwoaReNe+mc865xtSoCUtSN+B04OEERQ4H3jezbWZWArwFnBMpczLwpZl9U23txE4EnpOUF8YxFrg/WsjM3ga+j84nSKDLwhZVETAVOCuF7TvnnGtgjd3Cug+4EUg0CN5C4ARJnSTlA6cB+0XKXABMicwzYKakuZKuiFZqZk8CM4Cpki4GLgPOTyHursCKmOkCoGsY54NAf0nj460o6UxJEwoLC1PYnHPOudo0WsKSdAaw1szmJipjZouBO4FXCRLMJ0DF6JaSWgCjgOgtXoeY2QCCLrurJJ0Qp+67gB3AA8AoM9uSSvjxw7UNZnalmR1kZnck2KcXzOyKdu3apbA555xztWnMFtYQYJSk5QRdaidJeixayMwmmtkAMzuBoHtuaczikcA8M1sTWWdV+LiW4NzWoGi9ko4HeofLb00x9gKqtvS6AatSrMM551wDarSEZWbjzaybmXUn6NZ73czGRMtJ6hw+7g+cS9Xuvwsj00hqXX5BhaTWwHCCrsXYMv2BhwjOO10KdJR0ewrhfwT0lNQjbOVdADyfwvrOOecaWFp+hyVpuqQu4eRTkj4DXgCuMrMfwjL5wCnA05HV9wbelfQJ8CHwkpnNiJTJB0ab2ZdmVgZcAlS7aEPSFGA2cKikAkmXA4QXgFwNvEJwheMTZrao3jvunHOuznzw20big98651zqfPBb55xzGc8TlnPOuYzgCcs551xG8ITlnHMuI3jCcs45lxE8YTnnnMsInrCcc85lBE9YzjnnMoInLOeccxnBE5ZzzrmM4AnLOedcRvCE5ZxzLiN4wnLOOZcRPGE555zLCJ6wnHPOZQRPWM455zKCJ6wUSTpQ0kRJ09Idi3PONSdpTViSsiXNl/RiguXXSlooaZGk62LmL5e0QNLHkup1W19JkyStlbQwMn+EpCWSlkkaVz7fzL4ys8vrs03nnHOpS3cL61pgcbwFknoDY4FBwJHAGZJ6xhQZZmb9Et1KWVJnSW0j8w6OU3QyMCJSLhv4GzAS6AVcKKlXUnvknHOuUaQtYUnqBpwOPJygyOHA+2a2zcxKgLeAc1LYxInAc5Lywu2NBe6PFjKzt4HvI7MHAcvC1lQRMBU4K5mNSjpT0oTCwsIUQnXOOVebdLaw7gNuBMoSLF8InCCpk6R84DRgv3CZATMlzZV0RbyVzexJYAYwVdLFwGXA+UnG1hVYETNdEM4jjOdBoL+k8XG2+4KZXdGuXbskN+Wccy4ZOenYqKQzgLVmNlfS0HhlzGyxpDuBV4EtwCdASbh4iJmtktQZeFXS52FLKVrHXZKmAg8AB5nZlmRDjBdSWOcG4Mok63HOOddA0tXCGgKMkrScoLvtJEmPRQuZ2UQzG2BmJxB02y0N568KH9cCzxB04VUj6Xigd1jm1hTiK6CyNQfQDViVwvrOOecaWFoSlpmNN7NuZtYduAB43czGRMuFLSgk7Q+cC0yR1Lr8YgpJrYHhBN2H0XX7Aw8RnHu6FOgo6fYkQ/wI6Cmph6QWYYzPp7ibzjnnGlC6rxKsRtJ0SV3CyackfQa8AFxlZj8AewPvSvoE+BB4ycxmxKkqHxhtZl+aWRlwCfBNnO1NAWYDh0oqkHR5eJHH1cArBFcxPmFmixp4V51zzqVAZpbuGHZLAwcOtDlz6vUTMeeca3YkzU30c6Um18Jyzjnn4vGE5ZxzLiN4wnLOOZcRPGE555zLCJ6wnHPOZQRPWM455zKCJyznnHMZwROWc865jOAJyznnXEbwhOWccy4jeMJyzjmXETxhOeecywiesJxzzmUET1jOOecygics55xzGcETlnPOuYzgCSsFkg6UNFHStHTH4pxzzU2jJyxJ2ZLmS3oxwfJrJS2UtEjSdeG8/SS9IWlxOP/ayDrLJS2Q9LGkOt/WV9IkSWslLYyzbISkJZKWSRoHYGZfmdnldd2ec865utsVLaxrgcXxFkjqDYwFBgFHAmdI6gmUAL83s8OBwcBVknpFVh9mZv3i3UpZUmdJbSPzDo4TwmRgRJz1s4G/ASOBXsCFcbbvnHNuF2rUhCWpG3A68HCCIocD75vZNjMrAd4CzjGz1WY2D8DMNhMkvK4pbPpE4DlJeWEcY4H7o4XM7G3g+zjrDwKWhS2qImAqcFYyG5Z0pqQJhYWFKYTrnHOuNo3dwroPuBEoS7B8IXCCpE6S8oHTgP1iC0jqDvQHPoiZbcBMSXMlXRGt1MyeBGYAUyVdDFwGnJ9C3F2BFTHTBUDXMM4Hgf6Sxsdb0cxeMLMr2rVrl8LmnHPO1SansSqWdAaw1szmShoar4yZLZZ0J/AqsAX4hKA7sLyONsBTwHVmtilm1SFmtkpSZ+BVSZ+HraXYuu+SNBV4ADjIzLakEn78cG0DcGUK9TjnnGsgjdnCGgKMkrScoEvtJEmPRQuZ2UQzG2BmJxB0zy0FkJRLkKweN7OnI+usCh/XAs8QdOFVIel4oHe4/NYUYy+gakuvG7AqxTqcc841oEZLWGY23sy6mVl34ALgdTMbEy0XtpKQtD9wLjBFkoCJwGIzuzdSvnX5BRWSWgPDCboWY8v0Bx4iOO90KdBR0u0phP8R0FNSD0ktwvifT2F955xzDSwtv8OSNF1Sl3DyKUmfAS8AV5nZDwSts58RtMo+Dv9OC8vvDbwr6RPgQ+AlM5sR2UQ+MNrMvjSzMuAS4Js4cUwBZgOHSiqQdDlAeAHI1cArBBd8PGFmixruCDjnnEuVzCzdMeyWBg4caHPm1PknYs451yxJmhvv50rgI10455zLEI12laCrrri4mIKCAnbs2JHuUFyMvLw8unXrRm5ubrpDcc7VwBPWLlRQUEDbtm3p3r07wXUlLt3MjA0bNlBQUECPHj3SHY5zrgbeJbgL7dixg06dOnmyakIk0alTJ2/1OpcBPGHtYp6smh5/TZzLDJ6wmpGNGzfy97//vU7rnnbaaWzcuLHGMrfccguzZs2qU/3OOVcbP4fVhD07fyV3v7KEVRu306V9K2449VDO7p/KGMBVlSes3/zmN9WWlZaWkp2dnXDd6dOn11r/bbfdVufY6iIac0lJCTk5tb+lky3nnGtaam1hhfezuntXBOMqPTt/JeOfXsDKjdsxYOXG7Yx/egHPzl9Z5zrHjRvHl19+Sb9+/bjhhht48803GTZsGBdddBF9+vQB4Oyzz+aoo47iiCOOYMKECRXrdu/enfXr17N8+XIOP/xwxo4dyxFHHMHw4cPZvn07AL/4xS+YNm1aRflbb72VAQMG0KdPHz7//HMA1q1bxymnnMKAAQP41a9+xQEHHMD69eurxTpz5kyOOeYYBgwYwOjRo9myZUtFvbfddhvHHXccTz75JEOHDuUPf/gDJ554In/961/55ptvOPnkk+nbty8nn3wy3377bUVsv/vd7xg2bBg33XRTnY+hcy59av2aaWalko6SJPNfGTeYP72wiM9WbUq4fP63GykqrTrI/fbiUm6c9ilTPvw27jq9uuzBrWcekbDOv/zlLyxcuJCPP/4YgDfffJMPP/yQhQsXVlwhN2nSJDp27Mj27ds5+uijOe+88+jUqVOVepYuXcqUKVN46KGHOP/883nqqacYM6baqFvsueeezJs3j7///e/cc889PPzww/zpT3/ipJNOYvz48cyYMaNKUiy3fv16br/9dmbNmkXr1q258847uffee7nllluA4DL0d999F4AHH3yQjRs38tZbbwFw5pln8vOf/5xLLrmESZMmcc011/Dss88C8MUXXzBr1qwaW5LOuaYr2X6R+QT3l3oS2Fo+MzoorWs40WRV2/y6GjRoUJXLue+//36eeeYZAFasWMHSpUurJawePXrQr18/AI466iiWL18et+5zzz23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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import random as random\n",
"x_s = data_st['Year'].values\n",
"y_s = data_st['dollars/MT'].values\n",
"np.random.seed(103)\n",
"i_rand = random.sample(range(0,len(x_s)),len(x_s))\n",
"train_per = (7/10)\n",
"x_train_s = x_s[i_rand[:int(len(x_s)*train_per)]]\n",
"y_train_s = y_s[i_rand[:int(len(x_s)*train_per)]]\n",
"x_test_s = x_s[i_rand[int(len(x_s)*train_per):]]\n",
"y_test_s = y_s[i_rand[int(len(x_s)*train_per):]]\n",
"Z_s=np.block([[x_train_s**0]]).T\n",
"Z_test_s=np.block([[x_test_s**0]]).T\n",
"max_N_s = 12\n",
"SSE_train_s = np.zeros(max_N_s)\n",
"SSE_test_s = np.zeros(max_N_s)\n",
"for i in range(1,max_N_s):\n",
" Z_s=np.hstack((Z_s,x_train_s.reshape(-1,1)**i))\n",
" Z_test_s=np.hstack((Z_test_s,x_test_s.reshape(-1,1)**i))\n",
" A_s = np.linalg.solve(Z_s.T@Z_s,Z_s.T@y_train_s)\n",
" St_s=np.std(y_train_s)\n",
" Sr_s=np.std(y_train_s-Z_s@A_s)\n",
" r2_s=1-Sr_s/St_s\n",
" SSE_train_s[i]=np.sum((y_train_s-Z_s@A_s)**2)/len(y_train_s)\n",
" SSE_test_s[i]=np.sum((y_test_s-Z_test_s@A_s)**2)/len(y_test_s)\n",
"plt.semilogy(np.arange(2,max_N_s),SSE_train_s[2:],'o-',label='training error')\n",
"plt.semilogy(np.arange(2,max_N_s),SSE_test_s[2:],'*-',label='testing error')\n",
"plt.legend(loc='center left');\n",
"plt.title('Steel Test/Training Error vs Polynomial Fit Order')\n",
"plt.xlabel('Polynomial Fit Order')\n",
"plt.ylabel('Error');"
]
},
{
"cell_type": "code",
"execution_count": 240,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#Problem 4d\n",
"#solved at 14th order fit\n",
"Z_a=np.block([[x_a**0],[x_a],[x_a**2],[x_a**3],[x_a**4],[x_a**5],[x_a**6],[x_a**7],[x_a**8],[x_a**9],[x_a**10],[x_a**11],[x_a**12],[x_a**13],[x_a**14]]).T\n",
"A_a = np.linalg.solve(Z_a[:203].T@Z_a[:203],Z_a[:203].T@y_a)\n",
"xfunction_a = np.linspace(np.min(x_a),2025,len(y_a))\n",
"yfunction_a = np.poly1d(np.flip(A_a))\n",
"plt.figure(figsize=(8,8))\n",
"plt.plot(x_a,y_a,'k',label='Actual Data')\n",
"plt.plot(xfunction_a,yfunction_a(xfunction_a),label='14th Order Polynomial Fit')\n",
"plt.xlabel('Year')\n",
"plt.ylabel('Price (dollars/tonne)')\n",
"plt.title('Predicted Price of Aluminum vs Year')\n",
"plt.legend();"
]
},
{
"cell_type": "code",
"execution_count": 229,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#solved at 11th order fit\n",
"Z_s=np.block([[x_s**0],[x_s**1],[x_s**2],[x_s**3],[x_s**4],[x_s**5],[x_s**6],[x_s**7],[x_s**8],[x_s**9],[x_s**10],[x_s**11]]).T\n",
"A_s = np.linalg.solve(Z_s[:189].T@Z_s[:189],Z_s[:189].T@y_s)\n",
"xfunction_s = np.linspace(np.min(x_s),2025,len(y_s))\n",
"yfunction_s = np.poly1d(np.flip(A_s))\n",
"plt.figure(figsize=(8,8))\n",
"plt.plot(x_s,y_s,'k',label='Normal Data')\n",
"plt.plot(xfunction_s,yfunction_s(xfunction_s),label='11th Order Polynomial Fit')\n",
"plt.xlabel('year')\n",
"plt.ylabel('Price (dollars/tonnes)')\n",
"plt.title('Predicted Price for Steel vs Year')\n",
"plt.legend();"
]
},
{
"cell_type": "code",
"execution_count": 241,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Based on the drop in prices shown in the two graphs above if you were to build the same truss 5 years from now, aluminum would become the cheaper option.\n"
]
}
],
"source": [
"print('Based on the drop in prices shown in the two graphs above if you were to build the same truss 5 years from now, aluminum would become the cheaper option.')"
]
},
{
"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>"
]
}
],
"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
}