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
{
"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": [],
"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",
"__If one solved for u in that equation, I would expect there to be an error of about 10 m. This is because the float error compared to the condition of K causes the error to be 10^(17-16) = 10.__\n",
"\n",
"b. Why is the condition of `K` so large?\n",
"\n",
"__It is an ill conditioned matrix. This is because there are not proper boundary conditions. When doing finite element analysis there needs to be appropriate boundary conditions or the solution will be ill defined.__\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]`\n",
"\n",
"__There would be a much smaller error, because the condition of K[2:13,2:13] is to the power of 1, so to find the error you could do 10^(1-16), so the error would be 1^-15 or 0.000000000000001 m.__"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The condition of K is 1.4577532625238035e+17 \n",
"The condition of K[2:13, 2:13] is 52.23542514351006\n"
]
}
],
"source": [
"k_cond = np.linalg.cond(K)\n",
"k_cond2 = np.linalg.cond(K[2:13, 2:13])\n",
"\n",
"print('The condition of K is', k_cond, '\\nThe condition of K[2:13, 2:13] is', k_cond2)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2.220446049250313e-16\n",
"1.4577532625238035e+17\n",
"10\n",
"1e-15\n"
]
}
],
"source": [
"error = 10**(17-16)\n",
"print(np.finfo(float).eps)\n",
"print(np.linalg.cond(K))\n",
"print(error)\n",
"error2 = 10**(1-16)\n",
"print(error2)"
]
},
{
"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": [
{
"data": {
"text/plain": [
"3.0"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"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",
"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\n",
"6/0.2*0.1"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"L,U= LUNaive(K[2:13, 2:13])\n",
"#print(L)\n",
"#print(U)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"u steel [ 1.94855716 -2.125 0.4330127 -4. 1.08253175 -5.375\n",
" 1.73205081 -4. 0.21650635 -2.125 2.16506351]\n",
"\n",
"u aluminum [ 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"
]
}
],
"source": [
"A= 0.1 #mm^2\n",
"E_st= 200000 #MPa\n",
"E_al= 70000 #MPa\n",
"F= np.array([0,0,0,0,0,-100,0,0,0,0,0])\n",
"\n",
"F_al = F/(E_al*A)\n",
"F_st = F/(E_st*A)\n",
"\n",
"u_st= solveLU(L, U, F_st)\n",
"u_al= solveLU(L, U, F_al)\n",
"print('u steel',u_st)\n",
"print()\n",
"print('u aluminum',u_al)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"steel reactionary forces [ 0.00000000e+00 5.00000000e+01 1.42108547e-14 0.00000000e+00\n",
" 1.42108547e-14 7.10542736e-15 3.55271368e-14 -1.00000000e+02\n",
" 0.00000000e+00 3.55271368e-15 1.42108547e-14 1.42108547e-14\n",
" 2.84217094e-14 5.00000000e+01]\n",
"aluminum reactionary force [ 0.00000000e+00 5.00000000e+01 -2.84217094e-14 -2.66453526e-14\n",
" 0.00000000e+00 4.97379915e-14 3.60083697e-14 -1.00000000e+02\n",
" 0.00000000e+00 -5.68434189e-14 1.42108547e-14 2.13162821e-14\n",
" 2.84217094e-14 5.00000000e+01]\n"
]
}
],
"source": [
"u_st2 = np.zeros(14)\n",
"u_st2[2:13] = u_st\n",
"#for i in range(len(u_st)):\n",
" # u_st2[i+2] = u_st[i]\n",
"u_al2 = np.zeros(14)\n",
"u_al2[2:13] = u_al\n",
"#for i in range(len(u_al)):\n",
" # u_al2[i+2] = u_al[i]\n",
"\n",
"F_st2 =K*E_st*A@u_st2\n",
"F_al2 =K*E_al*A@u_al2\n",
"\n",
"print('steel reactionary forces', F_st2)\n",
"print('aluminum reactionary force', F_al2)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Steel Displacement:\n",
"----------------\n",
"u_1x= 0.000 mm\n",
"u_1y= 0.000 mm\n",
"u_2x= 1.949 mm\n",
"u_2y= -2.125 mm\n",
"u_3x= 0.433 mm\n",
"u_3y= -4.000 mm\n",
"u_4x= 1.083 mm\n",
"u_4y= -5.375 mm\n",
"u_5x= 1.732 mm\n",
"u_5y= -4.000 mm\n",
"u_6x= 0.217 mm\n",
"u_6y= -2.125 mm\n",
"u_7x= 2.165 mm\n",
"u_7y= 0.000 mm\n",
"\n",
"Steel Reactionary Forces:\n",
"----------------\n",
"F_1x= 0.000 N\n",
"F_1y= 50.000 N\n",
"F_2x= 0.000 N\n",
"F_2y= 0.000 N\n",
"F_3x= 0.000 N\n",
"F_3y= 0.000 N\n",
"F_4x= 0.000 N\n",
"F_4y= -100.000 N\n",
"F_5x= 0.000 N\n",
"F_5y= 0.000 N\n",
"F_6x= 0.000 N\n",
"F_6y= 0.000 N\n",
"F_7x= 0.000 N\n",
"F_7y= 50.000 N\n"
]
}
],
"source": [
"#Organizing Steel Data\n",
"xy={0:'x',1:'y'}\n",
"print('Steel Displacement:\\n----------------')\n",
"for i in range(len(u_st2)):\n",
" print('u_{}{}= {:.3f} mm'.format(int(i/2)+1,xy[i%2],u_st2[i]))\n",
"print()\n",
"print('Steel Reactionary Forces:\\n----------------')\n",
"for i in range(len(F_st2)):\n",
" print('F_{}{}= {:.3f} N'.format(int(i/2)+1,xy[i%2],F_st2[i]))\n"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Aluminum Displacement:\n",
"----------------\n",
"u_1x= 0.000 mm\n",
"u_1y= 0.000 mm\n",
"u_2x= 5.567 mm\n",
"u_2y= -6.071 mm\n",
"u_3x= 1.237 mm\n",
"u_3y= -11.429 mm\n",
"u_4x= 3.093 mm\n",
"u_4y= -15.357 mm\n",
"u_5x= 4.949 mm\n",
"u_5y= -11.429 mm\n",
"u_6x= 0.619 mm\n",
"u_6y= -6.071 mm\n",
"u_7x= 6.186 mm\n",
"u_7y= 0.000 mm\n",
"\n",
"Aluminum Reactionary Forces:\n",
"----------------\n",
"F_1x= 0.000 N\n",
"F_1y= 50.000 N\n",
"F_2x= -0.000 N\n",
"F_2y= -0.000 N\n",
"F_3x= 0.000 N\n",
"F_3y= 0.000 N\n",
"F_4x= 0.000 N\n",
"F_4y= -100.000 N\n",
"F_5x= 0.000 N\n",
"F_5y= -0.000 N\n",
"F_6x= 0.000 N\n",
"F_6y= 0.000 N\n",
"F_7x= 0.000 N\n",
"F_7y= 50.000 N\n"
]
}
],
"source": [
"#Organizing Aluminum Data\n",
"xy={0:'x',1:'y'}\n",
"print('Aluminum Displacement:\\n----------------')\n",
"for i in range(len(u_al2)):\n",
" print('u_{}{}= {:.3f} mm'.format(int(i/2)+1,xy[i%2],u_al2[i]))\n",
"print()\n",
"print('Aluminum Reactionary Forces:\\n----------------')\n",
"for i in range(len(F_al2)):\n",
" print('F_{}{}= {:.3f} N'.format(int(i/2)+1,xy[i%2],F_al2[i]))"
]
},
{
"cell_type": "code",
"execution_count": 10,
"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": [
"#node locations\n",
"l = 300\n",
"nodes = np.array([[1,0,0],[2,0.5,3**0.5/2],[3,1,0],\n",
" [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],\n",
" [6,3,5],[7,4,5],[8,4,6],[9,5,6],[10,5,7],[11,6,7]])\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",
"r=np.block([n[1:3] for n in nodes])\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",
"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",
"s = 5\n",
"plt.plot(r[ix]+u_st2[ix]*s,r[iy]+u_st2[iy]*s,'-',color=(1,0,0,1))\n",
"plt.quiver(r[ix],r[iy],F_st2[ix],F_st2[iy],color=(1,0,0,1),label='Forces')\n",
"plt.quiver(r[ix],r[iy],u_st2[ix],u_st2[iy],color=(0,0,1,1),label='Displacements')\n",
"plt.axis(l*np.array([-0.5,3.5,-1,1.5]))\n",
"plt.legend(bbox_to_anchor=(1,0.5))\n",
"plt.title('Steel : Deformation scale = {:.1f}x'.format(s),size=20)\n",
"plt.xlabel('x (mm)',size=15)\n",
"plt.ylabel('y (mm)',size=15);"
]
},
{
"cell_type": "code",
"execution_count": 11,
"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(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",
"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",
"s = 5\n",
"plt.plot(r[ix]+u_al2[ix]*s,r[iy]+u_al2[iy]*s,'-',color=(1,0,0,1))\n",
"plt.quiver(r[ix],r[iy],F_al2[ix],F_al2[iy],color=(1,0,0,1),label='Forces')\n",
"plt.quiver(r[ix],r[iy],u_al2[ix],u_al2[iy],color=(0,0,1,1),label='Displacements')\n",
"plt.axis(l*np.array([-0.5,3.5,-1,1.5]))\n",
"plt.legend(bbox_to_anchor=(1,0.5))\n",
"plt.title('Aluminum : Deformation scale = {:.1f}x'.format(s),size=20)\n",
"plt.xlabel('x (mm)',size=15)\n",
"plt.ylabel('y (mm)',size=15);"
]
},
{
"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": 12,
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The minimum cross sectional area for aluminum is 7.68 mm^2 when the max deflection is 0.19996279761904764 mm\n",
"The minimum cross sectional area for steel is 2.69 mm^2 when the max deflection is 0.1998141263940519 mm\n"
]
}
],
"source": [
"#guess and check\n",
"As = 2.69\n",
"Aa = 7.68\n",
"\n",
"u_al3tot = np.linalg.solve(E_al*Aa*K[2:13,2:13],F)\n",
"u_al3 = np.zeros(14)\n",
"u_al3[2:13] = u_al3tot\n",
"\n",
"u_st3tot = np.linalg.solve(E_st*As*K[2:13,2:13],F)\n",
"u_st3=np.zeros(14)\n",
"u_st3[2:13] = u_st3tot\n",
"\n",
"almaxdef = np.max(abs(u_al3))\n",
"steelmaxdef = np.max(abs(u_st3))\n",
"\n",
"print('The minimum cross sectional area for aluminum is {} mm^2 when the max deflection is {} mm'.format(Aa,almaxdef))\n",
"print('The minimum cross sectional area for steel is {} mm^2 when the max deflection is {} mm'.format(As,steelmaxdef))"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The mass of aluminum in the truss is 0.069 kg\n",
"The mass of steel in the truss is 0.071 kg\n"
]
}
],
"source": [
"l = 300 #length\n",
"b = 11 #num beams\n",
"al_d = 2.71*(10**-6) #density kg/mm^2 from online\n",
"st_d = 8.05*(10**-6) #density kg/mm^2\n",
"\n",
"al_m= l*b*al_d*Aa\n",
"st_m = l*b*st_d*As\n",
"\n",
"print('The mass of aluminum in the truss is {:.3f} kg'.format(al_m))\n",
"print('The mass of steel in the truss is {:.3f} kg'.format(st_m))"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The price of aluminum in the truss is $0.11\n",
"The price of steel in the truss is $0.03\n"
]
}
],
"source": [
"unitprice_al = 1545 #dollars/tonne, 1 tonne = 1000 kg\n",
"unitprice_st = 476\n",
"al_price = al_m*(unitprice_al/1000)\n",
"st_price = st_m*(unitprice_st/1000)\n",
"\n",
"print('The price of aluminum in the truss is ${:.2f}'.format(al_price))\n",
"print('The price of steel in the truss is ${:.2f}'.format(st_price))"
]
},
{
"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",
"I chose a 10th order polynomial because it seemed to fit the data pretty well. You could increase the order as much as you want it seems, but the fit didn't change too much for me after 10.\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__?\n",
"\n",
"Based upon my models, aluminum would be cheaper, but I would still make the same choice because the models look incorrect. As the engineer I would consider my model, but logically I know aluminum will not cost negative money in 5 years. I will not be paid to take it. Also, currently steel is 4x cheaper and that model also indicates it will continue to get cheaper. I would consider my model but based on the fit and the fact it doesn't make sense, I would not change my answer based on it."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"aluminum = pd.read_csv('../data/al_price.csv')\n",
"steel = pd.read_csv('../data/steel_price.csv')\n",
"\n",
"xa = aluminum['Year'].values \n",
"ya = aluminum['dollars/MT'].values\n",
"xs = steel['Year'].values\n",
"ys = steel['dollars/MT'].values\n",
"\n",
"steel_norm = (xs-np.min(xs))/(np.max(xs)-np.min(xs))\n",
"al_norm = (xa-np.min(xa))/(np.max(xa)-np.min(xa))\n",
"\n",
"st_years = steel_norm\n",
"al_years = al_norm\n",
"st_prices = ys\n",
"al_prices = ya"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"import random\n",
"np.random.seed(103)\n",
"i_rand_al=np.random.randint(0,len(al_years), size=len(al_years))\n",
"i_rand_st=np.random.randint(0,len(st_years), size=len(st_years))\n",
"\n",
"# choose the first half of data as training\n",
"train_per= 0.7\n",
"al_years_train= al_years[i_rand_al[:int(len(al_years)*train_per)]]\n",
"al_prices_train= al_prices[i_rand_al[:int(len(al_prices)*train_per)]]\n",
"st_years_train= st_years[i_rand_st[:int(len(st_years)*train_per)]]\n",
"st_prices_train= st_prices[i_rand_st[:int(len(st_prices)*train_per)]]\n",
"\n",
"# choose the second half of data as testing\n",
"al_years_test= al_years[i_rand_al[int(len(al_years)*train_per):]]\n",
"al_prices_test= al_prices[i_rand_al[int(len(al_prices)*train_per):]]\n",
"st_years_test= st_years[i_rand_st[int(len(st_years)*train_per):]]\n",
"st_prices_test= st_prices[i_rand_st[int(len(st_prices)*train_per):]]"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"Z_al=np.block([[al_years_train**0]]).T\n",
"Z_test_al=np.block([[al_years_test**0]]).T\n",
"max_N=10\n",
"SSE_train_al=np.zeros(max_N)\n",
"SSE_test_al=np.zeros(max_N)\n",
"for i in range(1,max_N):\n",
" Z_al=np.hstack((Z_al,al_years_train.reshape(-1,1)**i))\n",
" Z_test_al=np.hstack((Z_test_al,al_years_test.reshape(-1,1)**i))\n",
" A_al = np.linalg.solve(Z_al.T@Z_al,Z_al.T@al_prices_train)\n",
" St=np.std(al_prices_train)\n",
" Sr=np.std(al_prices_train-Z_al@A_al)\n",
" r2=1-Sr/St\n",
" SSE_train_al[i]=np.sum((al_prices_train-Z_al@A_al)**2)/len(al_prices_train)\n",
" SSE_test_al[i]=np.sum((al_prices_test-Z_test_al@A_al)**2)/len(al_prices_test)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"Z_st=np.block([[st_years_train**0]]).T\n",
"Z_test_st=np.block([[st_years_test**0]]).T\n",
"\n",
"#max_N=11\n",
"SSE_train_st=np.zeros(max_N)\n",
"SSE_test_st=np.zeros(max_N)\n",
"for i in range(1,max_N):\n",
" Z_st=np.hstack((Z_st,st_years_train.reshape(-1,1)**i))\n",
" Z_test_st=np.hstack((Z_test_st,st_years_test.reshape(-1,1)**i))\n",
" A_st = np.linalg.solve(Z_st.T@Z_st,Z_st.T@st_prices_train)\n",
" St=np.std(st_prices_train)\n",
" Sr=np.std(st_prices_train-Z_st@A_st)\n",
" r2=1-Sr/St\n",
" SSE_train_st[i]=np.sum((st_prices_train-Z_st@A_st)**2)/len(st_prices_train)\n",
" SSE_test_st[i]=np.sum((st_prices_test-Z_test_st@A_st)**2)/len(st_prices_test)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"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": [
"# plot aluminum\n",
"plt.plot(range(1, max_N+1), SSE_train_al, '-o', label='SSE Train, Al')\n",
"plt.plot(range(1, max_N+1), SSE_test_al, '-o', label='SSE Test, Al')\n",
"\n",
"# plot steel\n",
"plt.plot(range(1, max_N+1), SSE_train_st, '-o', label='SSE Train, St')\n",
"plt.plot(range(1, max_N+1), SSE_test_st, '-o', label='SSE Test, St')\n",
"plt.title('Error vs Polynomial Fit Order')\n",
"plt.xlabel('Polynomial Order')\n",
"plt.ylabel('SSE')\n",
"plt.legend();"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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N7OfOOfSgfuB94HPgQXOuW3FbHeAmc1KSUkJfdEiIiIiIgEy56J32nFCQoJLTk6OdBkiIiIicp4zs43OuYS8+8vMFRBFRERERKKNwrSIiIiISJAUpkVEREREghSVYVonIIqIiIhIWRCVYdo5965zblz16tUjXYqIiIiIXMCiMkyLiIiIiJQFCtMiIiIiIkFSmBYRERERCVJUhmmdgCgiIiIiZUFUhmmdgCgiIiIiZUFUhmkRERERkbJAYVpEREREJEgK0yIiIiIiQVKYFhEREREJksK0iIiIiEiQojJMa2k8ERERESkLojJMa2k8ERERESkLojJMi4iIiIiUBQrTIiIiIiJBUpgWEREREQmSwrSIiIiISJAUpkVEREREghSVYVpL44mIiIhIWRCVYVpL44mIiIhIWRCVYVpEREREpCxQmBYRERERCZLCtIiIiIhIkBSmRURERESCpDAtIiIiIhIkhWkRERERkSApTIuIiIiIBCkqw7Qu2iIiIiIiZUFUhmldtEVEREREyoKoDNMiIiIiImWBwrSIiIiISJAUpkVEREREgqQwLSIiIiISJIVpEREREZEgKUyLiIiIiARJYVpEREREJEgK0yIiIiIiQVKYFhEREREJksK0iIiIiEiQojJMm9kAM5uVkpIS6VJERERE5AIWlWHaOfeuc25c9erVI12KiIiIiFzAojJMi4iIiIiUBQrTIiIiIiJBUpgWEREREQmSwrSIiIiISJAUpkVEREREgqQwLSIiIiISJIVpEREREZEgKUyLiIiIiARJYVpEREREJEgK0yIiIiIiQVKYFhEREREJksK0iIiIiEiQFKZFRERERIKkMC0iIiIiEqSoDNNmNsDMZqWkpES6FBERERG5gEVlmHbOveucG1e9evVIlyIiIiIiF7CoDNMiIiIiImWBwrSIiIiISJAUpkVEREREgqQwLSIiIiISpELDtJnFmNnW0ipGRERERCSaFBqmnXOZwGdm1rCU6hERERERiRrlAjimHrDNzDYAJ7N2OuduDltVIiIiIiJRIJAwPTXsVYiIiIiIRKEiw7Rz7p9mVhfo6Nu1wTl3KLxliYiIiIiUfUWu5mFmw4ENwDBgOLDezIaGuzARERERkbIukGkek4COWaPRZlYHWAEsDGdhIiIiIiJlXSDrTMfkmdZxNMDniYiIiIic1wIZmX7PzN4H5vm2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b99Ow4YN8+2vrAskTLdzzvXw237XzFY55x4JV1EiIiIikZY1srx69WqSkpIYMWIEjz/+OGPHjs11XFYYvOaaawA4c+YMXbt2ZefOnWzdupXevXsDkJGREdSo9LFjx1i3bh233HJL9r709HQArrnmGm677TaGDRvGkCFDAmpv0KBBmBlt27bl66+/BuDjjz9m+PDhxMTEcOmll9KzZ88Cn1/QNI+BAwdSsWLF7O0+ffpQo0aN7PZvvfVWYmNjueSSS+jevTvJyclUqFCBrl27Rm2QhsDCdB0za+qc+xLAzJoAdcJbloiIiEiOwkaQwyk2NpbExEQSExNp06YNr7766jlh2jlH7969mTdvXq79W7ZsoVWrVqxdu7ZENTjnqF27dr5zqP/yl7+wfv16li5dytVXX82///3vItvLmraS1bb/vyVRpUqVArcLaz/v86JNIKt5TARWmtlKM1sJJAETwlqViIiISITt3LmTXbt2ZW9v3ryZRo0aAVCtWjVOnDgBQJcuXVizZg27d+8G4NSpU3zxxRe0aNGCw4cPZ4fps2fPsm3btmLXUaNGDerVq8eiRYsAyMzM5LPPPgPgyy+/pEuXLvz2t7+lRo0afP3117lqC1T37t1ZuHAhzjkOHDjAqlWril1nYXr06MH8+fPJyMjg4MGDrFmzhoSEhJD2ESmBrObxnpldAVzp27XDOZcW3rJEREREIis1NZUHHniAY8eOUa5cOZo1a8asWbMAbw5zv379qFevHklJScyZM4dRo0aRluZFpGnTptG8eXMWLlzI+PHjSUlJIT09nQkTJtCqVati1zJ//nzuvfdepkyZwpkzZxgzZgxXX301EydO5L///S/OOfr06UPr1q2pW7cuTz75JO3atWPSpEkBtT98+HA++ugjWrduTYsWLejcuTPVq1fP91j/OdMAGzduLLL9oUOHsm7dOq6++mrMjBkzZnDxxRcHVFtZZ0UN65vZMOA959wJM5uMd9GWab4rIUZUQkKCS05OjnQZIiIiEgaff/45LVu2jHQZF4zU1FSqVq3K4cOH6dy5M+vXr6dOnQtzZm9+3z0z2+icO2c4PZA50792zr1lZt2BHwN/BF4AOoeiWBERERGJvH79+nH8+HHOnj3L1KlTL9ggXVyBhOkM3783AS84594xsynhK0lEREREStvq1asjXUJUCuQExK/N7M/AcGCZmcUF+LywMbMBZjYrJSUlkmWIiIiIyAUukFA8HO8CLX2dc8eAmsCDYa2qCM65d51z4wqaGC8iIiIiUhoCWc3jFPC23/YB4EA4ixIRERERiQYRna4hIiIiIhLNCgzTvrnRIiIiIhe0RYsWYWbs2LEje9+ePXto3bp1SNpPTk5m/PjxIWkrEJ07dyY+Pp6GDRtSp04d4uPjiY+PZ8+ePQG3MWnSJJKSkgo9ZtGiRTz55JMlrNYzZswYmjRpkl3rtddeG5J2Q6GwaR5rgfZm9rpz7n9KqyARERGRYMydC5MmwVdfQcOGMH06jB5d8nbnzZtH9+7dmT9/fq6LlYRKQkJCqV4NcP369QDMmTOH5ORknnvuuXyPy8jIIDY2Nt/Hpk+fXmQ/gwcPDr7IfDz99NMMGjSowMfT09MpV65cgduBPq+4CpvmUcHMbge6mdmQvLegexQREREJsblzYdw42LsXnPP+HTfO218SqamprFmzhpdeeon58+fne8ycOXO4//77s7f79+/PypUrAahatSoPPfQQHTp0oFevXmzYsIHExESaNm3KkiVLAFi5ciX9+/cHYMqUKdx5553Zx8ycORM4dyT8j3/8Y3awT0xMZOLEifTo0YOWLVvyySefMGTIEK644gomT54c8GtNT0/noosuYvLkyXTq1IkNGzbwm9/8ho4dO9K6dWvuuecesi72N2bMGBYvXgxAgwYNmDJlCu3ataNt27Z88cUXAMyePZsJEyZkH//zn/+cbt260bRp0+xLo2dkZHDPPffQqlUrBgwYQN++fbPbDcTkyZO5++676d27N3fccQezZ89m5MiR9O/fn379+pGZmckvfvELWrduTZs2bVi4cCEAK1asoFevXowcOZJ27doF3F9+Covh9wCjgYuAAXkec/idlCgiIiISThMmwObNBT++bh34ruSd7dQp+MlP4C9/yf858fHwzDOF97t48WL69u1L8+bNqVmzJps2baJ9+/YB133y5EkSExN54oknGDx4MJMnT+aDDz5g+/bt3H777dx8883nPGfHjh0kJSVx4sQJWrRowb333ltkPxUqVGDVqlU8++yzDBw4kI0bN1KzZk0uv/xyJk6cSK1atQKqNyUlhfbt2zNt2jQAWrRowdSpU3HOceutt/Lee+/Rr1+/c55Xt25dPv30U2bOnMmMGTN48cUXzznm0KFD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\n",
"text/plain": [
"<Figure size 864x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(12,8))\n",
"plt.semilogy(np.arange(2,max_N),SSE_train_st[2:],'m-o', label='Steel Training Error')\n",
"plt.semilogy(np.arange(2,max_N),SSE_test_st[2:], 'm-',label='Steel Testing Error')\n",
"plt.semilogy(np.arange(2,max_N),SSE_train_al[2:],'b-o', label='Aluminum Training Error')\n",
"plt.semilogy(np.arange(2,max_N),SSE_test_al[2:],'b-', label='Aluminum Testing Error')\n",
"\n",
"plt.legend()\n",
"plt.title('\\nSemiLog Error vs. Polynomial Order\\n')\n",
"plt.xlabel('polynomial order')\n",
"plt.ylabel('total sum of square error');"
]
},
{
"cell_type": "code",
"execution_count": 21,
"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": [
"#These are to show that the 10th order fits\n",
"#I used normalized time to show the fit, it also fit the un-normalized data but I thought the normalized was interesting\n",
"plt.plot(al_years_train,al_prices_train,'o',label='data')\n",
"plt.plot(al_years_train,Z_al@A_al,'o',label='Fit')\n",
"plt.xlabel('Time (normalized)')\n",
"plt.ylabel('Price (dollars)')\n",
"plt.title('Price of Aluminum')\n",
"plt.legend();"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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QdQ1jj/+eG655ZYG26688sr49zfddBMnn3xyPDdTKgMGDGD69OmN1oL4/PPPueKKK5g3bx6S2HfffRk7diw77bRTi+7FpVabYj5Rqu3pRA1BfXXSYS0tousgijsoLJoJj58PNWGb6voVwWtodmCYO3cuXbp04YwzzgCgtLSUG2+8kUGDBnHFFVcwc+ZMnnzySTZv3syXX37Jc889x3nnncfcuXMZNGgQiZMJ58+fz0UXXcTGjRvp1asX06dPZ5ddduGQQw7hoIMO4tVXX2Xs2LFcfPHFTZbr9NNP5+ijj2blypWsXLmSQw89lF69evH888+nPGfgwIEAlJQ0rFDOmTOHI488kp49ewJw5JFH8te//pUTTzwx21+Xy1CpFBkASrNc8tSHoLqmFHfz0XNX1geEmJrqYHszLVmyhH333bfBth133JEBAwawfPlyAF5//XVmzJjB3LlzefTRR1m2bBmLFy/m9ttv57XXXguKUVPDeeedx8MPP8z8+fP5yU9+wmWXXRa/5rp163jxxRcjA8KDDz4Ybz66++67G+w7//zz6dOnD88//3w8IJx11lkkzwxPp6qqiv7965e+6NevH1VVhb2eQHt34gH9s9qeig9BdU0p7prC+srstmfAzCIzpCZuT3zKfumllzjxxBMpLS2lT58+HHZYUI1ftmwZ7733HkceeSQAtbW17LLLLvHrHX/88SnLENV8lM4dd9yR8bGxe0kWdc8ud2Kdyc0ZfZTIh6C6phR3UOjeL2gyitreTMOGDeORRx5psO2LL75gxYoVDB48mPnz59OtW7cG+1MFkWHDhvH6669H/pzka7Smfv36NUjnXVlZySGHHNJm5SkWV40bnnUQSOapv11Tirv56PApUJb0n6GsPNje3EsefjibNm3innvuAYIn/IsvvpjTTz89smP329/+Ng888AC1tbWsWrUq3qQzdOhQVq9eHQ8KNTU1LFmypNnlSpScqjtbY8aM4emnn2bt2rWsXbuWp59+2hcCKhCe+ts1pbiDwojxcMzN0L0/oODfY25u0egjSTz66KM89NBDDBkyhN13350uXbrwu9/9LvL4H/zgBwwZMoThw4dzzjnn8J3vfAeAzp078/DDD3PppZey1157MXLkyHh/Q0tNmDCBo446ikMPPRRI3afw9ttv069fPx566CF++tOfMmzYMAB69uzJr3/9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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#These are to show that the 10th order fits\n",
"#I used normalized time to show the fit\n",
"plt.plot(st_years_train,st_prices_train,'o',label='data')\n",
"plt.plot(st_years_train,Z_st@A_st,'o',label='Order Fit: {}'.format(max_N))\n",
"plt.xlabel('Time (normalized)')\n",
"plt.ylabel('Price (dollars)')\n",
"plt.title('Price of Steel')\n",
"plt.legend();"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The estimated value of aluminum in 2025 is $-32723.13\n"
]
},
{
"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": [
"years_ext=np.linspace(2016,2025,100)\n",
"Z_ext=np.block([[years_ext**0],[years_ext**1]]).T\n",
"Z=np.block([[xa**0],[xa**1]]).T\n",
"\n",
"for i in range(2,max_N+1):\n",
" Z=np.hstack((Z,xa.reshape(-1,1)**i))\n",
" Z_ext=np.hstack((Z_ext,years_ext.reshape(-1,1)**i))\n",
" A = np.linalg.solve(Z.T@Z,Z.T@ya)\n",
" if i== max_N: \n",
" plt.plot(years_ext,Z_ext@A,label='order {:d}'.format(i))\n",
" price_al= (Z_ext@A)[-1]\n",
"\n",
"print('The estimated value of aluminum in 2025 is ${:.2f}'.format(price_al))\n",
"plt.plot(xa,ya,'.',label='aluminum data')\n",
"plt.legend(loc='center left', bbox_to_anchor=(1, 0.5));\n",
"plt.title('Predicted price of aluminum')\n",
"plt.xlabel('Year')\n",
"plt.ylabel('Price')\n",
"plt.ylim((-30000,6000));"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The estimated value of steel in 2025 is $63.49\n"
]
},
{
"data": {
"image/png": "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E7uslLufHCbSI9y9Y9LjQHfvuJtzDwbOBY4ys6nh40TgTuBYM5sPHBu+x91nAqOBWcA7wJXurtEYIrVQZnoad/z0YP58am8+K1jDj/7+MTO+Xhd1WBKBhx56qOWGDRsiXzp3/vz5mS+88EL1JWAAD2bqeGVPT+zuH7u7uXtvd+8bPt5y91XufrS7dw6fVycdc4e7d3L3ru7+9p5+pojsX07Ly+Fflx+Gu/Ozf4zn359/HXVIkmzR2Pq8e3MrFo2t9FK169evjw0bNuygrl279ujcuXPPRx555IDbb7+9xYoVKzKOOOKILgMHDuwC8PLLLzfq27dvtx49enQ/4YQTOq5bty4GwWpKhx56aNeePXt2HzJkSOfFixdn7Orzxo0bV69r1649+vbt2+2ee+7ZNn3l3Llz6/Tv379rjx49uvfo0aP7mDFj6gP89re/bZufn9+gW7duPW655ZYW5ZXbExX9VfGpmR26pycXEams3u2a8NovhtAnpwnXvjCVP741m5L4vjuD335j0dj6PHN6Fz65ry3PnN6lskn45ZdfbtSqVautc+fOnTV//vyZp5xyyvrf/e53K1q0aLH1ww8/nDdx4sR5S5cuTf+///u/1h999NG8WbNmze7Xr9+m2267reXmzZvt6quvbv/qq68unDlz5uwRI0Z8e8MNN+x0F02yiy66KPeee+75aurUqXOSt7dp06Z43Lhx82bNmjX7hRdeWPTLX/6yPcAdd9zxdV5e3oY5c+bM+sMf/rCivHJ7oqKrIR0JXG5mBcBGghHL7u699/QDRUT2VPMGmTxz8UBufX0WD320iDnLivj7WYfQqO4uGzmSSovGNiS+NYbHIb41xqKxDek4bOPenq5fv37f/fa3v8254oor2g4fPnzd8ccfv9O9aGPHjq2/cOHCugMGDOgGsHXrVuvfv/+G6dOnZ86fPz/rqKOO6gIQj8fJzs4ud+WiVatWpRUVFaWddNJJGwAuvPDCVe+//35jgC1btthFF13UYdasWVmxWIzFixdnlnWOipbblYom4BP29MQiIlUpIy3GbT/pRffWjfj9qzP46QOf8NiIQ8ltXuneT9kbHYcVMeHBOPGtMWIZcToOq9R8or179948ZcqUWS+99FLj3/72t23ffffd9X/5y192WLHD3RkyZMj6119//cvk7ZMmTco66KCDvivdmi2Pu5e7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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"years_ext=np.linspace(2016,2025,100)\n",
"Z_ext=np.block([[years_ext**0],[years_ext**1]]).T\n",
"Z=np.block([[xs**0],[xs**1]]).T\n",
"\n",
"for i in range(2,max_N+1):\n",
" Z=np.hstack((Z,xs.reshape(-1,1)**i))\n",
" Z_ext=np.hstack((Z_ext,years_ext.reshape(-1,1)**i))\n",
" A = np.linalg.solve(Z.T@Z,Z.T@ys)\n",
" if i==max_N: \n",
" plt.plot(years_ext,Z_ext@A,label='order {:d}'.format(i))\n",
" price_st= (Z_ext@A)[-1]\n",
"\n",
"print('The estimated value of steel in 2025 is ${:.2f}'.format(price_st))\n",
"plt.plot(xs,ys,'.',label='steel data')\n",
"plt.legend(loc='center left', bbox_to_anchor=(1, 0.5));\n",
"plt.title('Predicted price of steel')\n",
"plt.xlabel('Year')\n",
"plt.ylabel('Price')\n",
"plt.ylim((0,400));"
]
},
{
"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>"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"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
}