From 0b92fc115e732252950833c2f85acc8904ce8e67 Mon Sep 17 00:00:00 2001 From: Alex Dowling Date: Wed, 1 Nov 2023 06:46:07 -0400 Subject: [PATCH 1/4] Updated problem sets. --- notebooks/assignments/ProblemSet2_F23.ipynb | 384 +++++++-------- notebooks/assignments/ProblemSet3_F23.ipynb | 487 +++++++++++--------- notebooks/assignments/ProblemSet4_F23.ipynb | 321 +++++++++++++ 3 files changed, 765 insertions(+), 427 deletions(-) create mode 100644 notebooks/assignments/ProblemSet4_F23.ipynb diff --git a/notebooks/assignments/ProblemSet2_F23.ipynb b/notebooks/assignments/ProblemSet2_F23.ipynb index 6903a609..4de0748e 100644 --- a/notebooks/assignments/ProblemSet2_F23.ipynb +++ b/notebooks/assignments/ProblemSet2_F23.ipynb @@ -47,7 +47,9 @@ " !wget \"https://raw.githubusercontent.com/IDAES/idaes-pse/main/scripts/colab_helper.py\"\n", " import colab_helper\n", " colab_helper.install_idaes()\n", - " colab_helper.install_ipopt()" + " colab_helper.install_ipopt()\n", + "\n", + "import pyomo.environ as pyo" ] }, { @@ -593,36 +595,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## 4. Portfolio Data Analysis\n", - "\n", - "Portfolio management is a classic example of quadratic programming (optimization). The idea is to find the optimal blend of investments that achieves a specified rate of return (or better) while minimizing the variance in rate of return. In this problem, you will use your skills in statistical analysis to analyze the stock data.\n", - "\n", - "### Historical Stock Data\n", - "\n", - "Historical daily adjusted closing prices for the last five years (obtained from Yahoo! Finance) are available for the $N=5$ stocks listed in table below. (We are actually considering index funds, but this detail does not change the analysis.) \n", - "\n", - "| Symbol | Name |\n", - "|-|-|\n", - "| GSPC | S&P 500 | \n", - "| DJI | Dow Jones Industrial Average | \n", - "| IXIC | NASDAQ Composite | \n", - "| RUT | Russell 2000 |\n", - "| VIX | CBOE Volatility Index |" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 4a. Return Rate\n", - "\n", - "You are given a Stock\\_Data.csv file. Using the stock data, calculate the 1-day return rate:\n", - "\n", - "\\begin{equation}\n", - "\tr_{t,i} = \\frac{p_{t+1,i} - p_{t,i}}{p_{t,i}}\n", - "\\end{equation}\n", - "\n", - "where $p_{t+1,i}$ and $p_{t,i}$ are the *Adjusted Closing Prices* at the end of days $t+1$ and $t$, respectively, for stock $i$. These results are stored in matrix `R`. *Hint*: Use Pandas." + "## 4. Numeric Integration of Partial Differential Equations with Pyomo" ] }, { @@ -631,81 +604,117 @@ "metadata": {}, "outputs": [], "source": [ - "# This is the long path to the folder containg data files on GitHub (for the class website)\n", - "data_folder = 'https://raw.githubusercontent.com/ndcbe/data-and-computing/main/noteboohttps://raw.githubusercontent.com/ndcbe/data-and-computing/main/notebooks/data/'\n", + "%matplotlib inline\n", "\n", - "# Load the data file into Pandas\n", - "df_adj_close = pd.read_csv(data_folder + 'Stock_Data.csv')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Add your solution here" + "# Import plotting libraries\n", + "import matplotlib.pyplot as plt\n", + "from mpl_toolkits.mplot3d.axes3d import Axes3D \n", + "\n", + "# Import Pyomo\n", + "import pyomo.environ as pyo\n", + "\n", + "# Import Pyomo numeric integration features\n", + "from pyomo.dae import DerivativeVar, ContinuousSet" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### 4b. Visualization\n", + "During your time at Notre Dame, you will likely want (or at least need) to solve a partial differential equation (PDE) system. In this problem, we will practice using Pyomo to numerically integrate a simple and common PDE. (Special thanks to Prof. Kantor for this problem.)\n", "\n", - "Plot the single day return rates for the 5 stocks you obtain in the previous section and check if you obtain the following profiles:\n", + "Transport of heat in a solid is described by the familiar thermal diffusion model:\n", "\n", - "![ad](https://raw.githubusercontent.com/ndcbe/data-and-computing/main/media/stock_return_plots.png)\n", + "$$\n", + "\\begin{align*}\n", + "\\rho C_p\\frac{\\partial T}{\\partial t} & = \\nabla\\cdot(k\\nabla T)\n", + "\\end{align*}\n", + "$$\n", "\n", + "We will assume the thermal conductivity $k$ is a constant, and define thermal diffusivity in the conventional way\n", "\n", - "The first plot is made for you. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Create figure\n", - "plt.figure(figsize=(9,15))\n", + "$$\n", + "\\begin{align*}\n", + "\\alpha & = \\frac{k}{\\rho C_p}\n", + "\\end{align*}\n", + "$$\n", "\n", - "# Create subplot for DJI\n", - "plt.subplot(5,1,1)\n", - "plt.plot(R[\"DJI\"]*100,color=\"blue\",label=\"DJI\")\n", - "plt.legend(loc='best')\n", + "We will further assume symmetry with respect to all spatial coordinates except $x$ where $x$ extends from $-X$ to $+X$. The boundary conditions are\n", "\n", - "# Add your solution here\n", + "$$\n", + "\\begin{align*}\n", + "T(t,X) & = T_{\\infty} & \\forall t > 0 \\\\\n", + "\\nabla T(t,0) & = 0 & \\forall t \\geq 0 \n", + "\\end{align*}\n", + "$$\n", "\n", - "# Show plot\n", - "plt.show()" + "where we have assumed symmetry with respect to $r$ and uniform initial conditions $T(0, x) = T_0$ for all $0 \\leq r \\leq X$. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### 4c. Covariance and Correlation Matrices\n", + "### 4a. Rescaling and Dimensionless Model\n", + "\n", + "We would like a dimensionless model for two reasons: first, we only need to solve the dimensionless model once, i.e., it becomes independent of input data. Second, the dimensionless models are often scaled better for numerical solutions.\n", + "\n", + "Let's consider the following proposed scaling procedure:\n", + "\n", + "$$\n", + "\\begin{align*}\n", + "T' & = \\frac{T - T_0}{T_\\infty - T_0} \\\\\n", + "x' & = \\frac{r}{X} \\\\\n", + "t' & = t \\frac{\\alpha}{X^2}\n", + "\\end{align*}\n", + "$$\n", + "\n", + "Show this scaling procedure gives the following dimensionless system:\n", "\n", - "Write Python code to:\n", - "1. Calculate $\\bar{r}$, the average 1-day return for each stock. Store this as the variable `R_avg`.\n", - "2. Calculate $\\Sigma_{r}$, the covariance matrix of the 1-day returns. This matrix tells us how returns for each stock vary with each other (which is important because they are correlated!). Hint: pandas has a function `cov`\n", - "3. Calculate the correlation matrix for the 1-day returns. Hint: pandas has a function `corr`.\n", + "$$\n", + "\\begin{align*}\n", + "\\frac{\\partial T'}{\\partial t'} & = \\nabla^2 T'\n", + "\\end{align*}\n", + "$$\n", "\n", - "Looking at the correlation matrix, answer the follwing questions:\n", + "with auxiliary conditions\n", "\n", - "1. Which pair of stocks have the highest **positive** correlation?\n", - "2. Which pair of stocks have the highest **negative** correlation?\n", - "3. Which pair of stocks have the lowest **absolute** correlation?\n", + "$$\n", + "\\begin{align*}\n", + "T'(0, x') & = 0 & \\forall 0 \\leq x' \\leq 1\\\\\n", + "T'(t', 1) & = 1 & \\forall t' > 0\\\\\n", + "\\nabla T'(t', 0) & = 0 & \\forall t' \\geq 0 \\\\\n", + "\\end{align*}\n", + "$$\n", "\n", - "Hint: Read ahead in the class website for more information on [correlation and covariance](../..//notebooks/14/Correlation-Covariance-and-Independence.ipynb)" + "Turn in your work (pencil and paper) via **Gradescope**. *Important:* Here the prime $'$ indicates the scaled variables and coordinates. It does not indicate a derivative. Thus $T'$ is scaled temperature, NOT the derivative of temperature (which begs the question of \"with respect to what?\")." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Please write one or two sentences for each question:" + "### 4b. Numeric Integration via Pyomo\n", + "\n", + "For simplicity, let's consider planar coordinates. For a slab geometry, we want to numerical integrate the following PDE:\n", + "\n", + "$$\n", + "\\begin{align*}\n", + "\\frac{\\partial T'}{\\partial t'} & = \\frac{\\partial^2 T'}{\\partial x'^2}\n", + "\\end{align*}\n", + "$$\n", + "\n", + "with auxiliary conditions\n", + "\n", + "$$\n", + "\\begin{align*}\n", + "T'(0, x') & = 0 & \\forall 0 \\leq x' \\leq 1 \\\\\n", + "T'(t', 1) & = 1 & \\forall t' > 0\\\\\n", + "\\frac{\\partial T'}{\\partial x'} (t', 0) & = 0 & \\forall t' \\geq 0 \\\\\n", + "\\end{align*}\n", + "$$\n", + "\n", + "Complete the following Pyomo code to integrate this PDE." ] }, { @@ -714,188 +723,129 @@ "metadata": {}, "outputs": [], "source": [ - "# Add your solution here" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "nbgrader": { - "grade": true, - "grade_id": "check-R_avg", - "locked": true, - "points": "0.5", - "solution": false - } - }, - "outputs": [], - "source": [ - "# Removed autograder test. You may delete this cell." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 4c. Markowitz Mean/Variance Portfolio Model\n", + "# Create Pyomo model\n", + "m = pyo.ConcreteModel()\n", "\n", - "The Markowitz mean/variance model, shown below, computes the optimal allocation of funds in a portfolio:\n", + "# Define sets for spatial and temporal domains\n", + "m.x = ContinuousSet(bounds=(0,1))\n", + "m.t = ContinuousSet(bounds=(0,2))\n", "\n", - "\\begin{align}\n", - "\t\t\\min_{{x} \\geq {0}} \\qquad & z:= {x}^T \\cdot {\\Sigma_r} \\cdot {x} \\\\\n", - "\t\t\\text{s.t.} \\qquad & {\\bar{r}}^T \\cdot {x} \\geq \\rho \\\\\n", - "\t\t & \\sum_{i =1}^N x_i = 1 \n", - "\\end{align} \n", + "# Define scaled temperature indexed by time and space\n", + "m.T = pyo.Var(m.t, m.x)\n", "\n", + "# Define variables for the derivates\n", + "m.dTdt = DerivativeVar(m.T, wrt=m.t)\n", + "m.dTdx = DerivativeVar(m.T, wrt=m.x)\n", + "m.d2Tdx2 = DerivativeVar(m.T, wrt=(m.x, m.x))\n", "\n", - "where $x_i$ is the fraction of funds invested in stock $i$ and $x = [x_1, x_2, ..., x_N]^T$. The objective is to minimize the variance of the return rate. (As practice for the next exam, try deriving this from the error propagation formulas.) This requires the expected return rate to be at least $\\rho$. Finally, the allocation of funds must sum to 100%.\n", + "# Define PDE equation\n", + "def pde(m, t, x):\n", + " if t == 0:\n", + " return pyo.Constraint.Skip\n", + " elif x == 0 or x == 1:\n", + " return pyo.Constraint.Skip\n", + " # Add your solution here\n", "\n", - "Write Python code to solve for $\\rho = 0.08\\%.$ Report both the optimal allocation of funds and the standard deviation of the return rate. \n", - "*Hint*:\n", - "1. Be mindful of units.\n", - "2. You can solve with problem using the Pyomo function given below\n", - "3. $:=$ means ''defined as''\n", + "m.pde = pyo.Constraint(m.t, m.x, rule=pde)\n", "\n", - "Store your answer in `std_dev`." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "R_avg_tolist = R_avg.values.tolist()\n", - "Cov_list = Cov.values.tolist()\n", + "# Define first auxilary condition\n", + "def initial_condition(m, x):\n", + " if x == 0 or x == 1:\n", + " return pyo.Constraint.Skip\n", + " # Add your solution here\n", "\n", - "# Optimization Problem\n", - "def create_model(rho,R_avg,Cov):\n", - " \n", - " '''\n", - " This function solves for the optimal allocation of funds in a portfolio \n", - " by minimizing the variance of the return rate\n", - " \n", - " Arguments:\n", - " rho: required portfolio expected return\n", - " Ravg: average return rates (list)\n", - " Cov: covariance matrix\n", - " \n", - " Returns:\n", - " m: Pyomo concrete model\n", - " \n", - " '''\n", - " \n", - " m = pyo.ConcreteModel()\n", - " init_x = {}\n", - " m.idx = pyo.Set(initialize=[0,1,2,3,4])\n", - " for i in m.idx:\n", - " init_x[i] = 0\n", - " m.x = pyo.Var(m.idx,initialize=init_x,bounds=(0,None))\n", - " \n", - " def Obj_func(m):\n", - " b = []\n", - " mult_result = 0\n", - " for i in m.idx:\n", - " a = 0\n", - " for j in m.idx:\n", - " a+= m.x[j]*Cov[j][i]\n", - " b.append(a)\n", - " for i in m.idx:\n", - " mult_result += b[i]*m.x[i]\n", - " \n", - " return mult_result\n", - " m.OBJ = pyo.Objective(rule=Obj_func)\n", - " \n", - " def constraint1(m):\n", - " # Add your solution here\n", + "m.ic = pyo.Constraint(m.x, rule = initial_condition)\n", "\n", - " m.C1 = pyo.Constraint(rule=constraint1)\n", - " \n", - " def constraint2(m):\n", - " # Add your solution here\n", + "# Define second auxilary condition\n", + "def boundary_condition1(m, t):\n", + " # Add your solution here\n", "\n", - " m.C2 = pyo.Constraint(rule=constraint2)\n", - " \n", - " return m\n" + "m.bc1 = pyo.Constraint(m.t, rule = boundary_condition1)\n", + "\n", + "# Define third auxilary condition\n", + "@m.Constraint(m.t)\n", + "def boundary_condition2(m, t):\n", + " # Add your solution here \n", + "\n", + "m.bc2 = pyo.Constraint(m.t, rule=boundary_condition2)\n", + "\n", + "# Define dummy objective\n", + "m.obj = pyo.Objective(expr=1)\n", + "\n", + "# Discretize spatial coordinate with forward finite difference and 50 elements\n", + "pyo.TransformationFactory('dae.finite_difference').apply_to(m, nfe=50, scheme='FORWARD', wrt=m.x)\n", + "\n", + "# Discretize time coordinate with forward finite difference and 50 elements\n", + "pyo.TransformationFactory('dae.finite_difference').apply_to(m, nfe=50, scheme='FORWARD', wrt=m.t)\n", + "pyo.SolverFactory('ipopt').solve(m, tee=True).write()" ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": {}, - "outputs": [], "source": [ - "rho = 0.0008\n", - "model1 = create_model(rho,R_avg_tolist,Cov_list)\n", - "\n", - "#Solve Pyomo in the method learned in Class 11\n", - "\n", - "# Add your solution here" + "### 4c. Visualize Solution " ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "nbgrader": { - "grade": true, - "grade_id": "standard-deviation", - "locked": true, - "points": "0.5", - "solution": false - } - }, - "outputs": [], - "source": [ - "# Removed autograder test. You may delete this cell." - ] - }, - { - "cell_type": "markdown", "metadata": {}, + "outputs": [], "source": [ - "### 4e. Volatility and Expected Return Tradeoff\n", + "# Extract indices\n", + "x = sorted(m.x)\n", + "t = sorted(m.t)\n", "\n", - "We will now perform sensitivity analysis of the optimization problem in 3d to characterize the tradeoff between return and risk.\n", + "# Create numpy arrays to hold the solution\n", + "xgrid = np.zeros((len(t), len(x)))\n", + "# Hint: define tgrid and Tgrid the same way\n", + "# Add your solution here\n", + "\n", + "# Loop over time\n", + "for i in range(0, len(t)):\n", + " # Loop over space\n", + " for j in range(0, len(x)):\n", + " # Copy values\n", + " xgrid[i,j] = x[j]\n", + " tgrid[i,j] = t[i]\n", + " # Hint: how to access values from Pyomo variable m.T?\n", + " # Add your solution here\n", "\n", - "Write Python code to:\n", - "1. Solve the optimization problem for many values of $\\rho$ between min($\\bar{r}$) and max($\\bar{r}$) and save the results. Use the Pyomo function created in 3d.\n", - "2. Plot $\\rho$ versus $\\sqrt{z}$ (using the saved results).\n", - "3. Write at least one sentence to interpret and discuss your plot.\n", + "# Create a 3D wireframe plot of the solution\n", + "# Hint: consult the matplotlib documentation\n", + "# https://matplotlib.org/stable/gallery/mplot3d/wire3d.html\n", "\n", - "Submit your plot and discussion via **Gradescope**." + "# Add your solution here" ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": {}, - "outputs": [], "source": [ - "rho_vals = np.arange(0.0005,0.0038,0.0001)\n", - "std_dev = []\n", + "Write a few sentences to describe the PDE solution. Is it what you expect based on your prior knowledge of this system? Each person brings different prior knwoledge to this class, you everyone should have a distinct answer. In other words, there is no \"right answer\". Instead, this is helping you practice interpreting results based on your knowledge which is a critical skill in graduate school.\n", "\n", - "# Add your solution here" + "**Discussion:**" ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": {}, - "outputs": [], "source": [ - "#Plot\n", + "## Submission Instructions and Tips\n", "\n", - "# Add your solution here" + "1. Answer discussion questions in this notebook.\n", + "2. When asked to store a solution in a specific variable, please also print that variable.\n", + "3. Turn in this notebook via Gradescope.\n", + "4. Also turn in written (pencil and paper) work via Gradescope.\n", + "5. Even if you are not required to turn in pseudocode, you should always write pseudocode. It takes only a few minutes and can save you *hours* of time.\n", + "6. We are not using the autograder for CBE 60258, so please skip those instructions." ] }, { "cell_type": "markdown", "metadata": {}, - "source": [ - "**Discussion**:" - ] + "source": [] } ], "metadata": { diff --git a/notebooks/assignments/ProblemSet3_F23.ipynb b/notebooks/assignments/ProblemSet3_F23.ipynb index 22c5545e..c5f3bcd0 100644 --- a/notebooks/assignments/ProblemSet3_F23.ipynb +++ b/notebooks/assignments/ProblemSet3_F23.ipynb @@ -45,7 +45,16 @@ "import math\n", "import numpy as np\n", "import scipy.stats as stats\n", - "from scipy import optimize" + "from scipy import optimize\n", + "\n", + "import sys\n", + "if \"google.colab\" in sys.modules:\n", + " !wget \"https://raw.githubusercontent.com/IDAES/idaes-pse/main/scripts/colab_helper.py\"\n", + " import colab_helper\n", + " colab_helper.install_idaes()\n", + " colab_helper.install_ipopt()\n", + "\n", + "import pyomo.environ as pyo" ] }, { @@ -1088,310 +1097,363 @@ "# Removed autograder test. You may delete this cell." ] }, - { - "cell_type": "markdown", - "metadata": { - "id": "1y6sHpO5d-fR" - }, - "source": [ - "## 3. Numeric Integration of Partial Differential Equations with Pyomo" - ] - }, { "cell_type": "code", "execution_count": null, "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 357 + }, "executionInfo": { - "elapsed": 404, + "elapsed": 1668, "status": "ok", - "timestamp": 1664677364866, + "timestamp": 1664677559084, "user": { "displayName": "Alexander Dowling", "userId": "00988067626794866502" }, "user_tz": 240 }, - "id": "OyvMIfLdd-fR" + "id": "qLQGM8Urd-fT", + "outputId": "751136c4-d2eb-4edc-c183-e30b80d82128" }, "outputs": [], "source": [ - "%matplotlib inline\n", + "# Extract indices\n", + "x = sorted(m.x)\n", + "t = sorted(m.t)\n", "\n", - "# Import plotting libraries\n", - "import matplotlib.pyplot as plt\n", - "from mpl_toolkits.mplot3d.axes3d import Axes3D \n", + "# Create numpy arrays to hold the solution\n", + "xgrid = np.zeros((len(t), len(x)))\n", + "# Hint: define tgrid and Tgrid the same way\n", + "# Add your solution here\n", "\n", - "import sys\n", - "if \"google.colab\" in sys.modules:\n", - " !wget \"https://raw.githubusercontent.com/IDAES/idaes-pse/main/scripts/colab_helper.py\"\n", - " import colab_helper\n", - " colab_helper.install_idaes()\n", - " colab_helper.install_ipopt()\n", + "# Loop over time\n", + "for i in range(0, len(t)):\n", + " # Loop over space\n", + " for j in range(0, len(x)):\n", + " # Copy values\n", + " xgrid[i,j] = x[j]\n", + " tgrid[i,j] = t[i]\n", + " # Hint: how to access values from Pyomo variable m.T?\n", + " # Add your solution here\n", "\n", - "# Import Pyomo\n", - "import pyomo.environ as pyo\n", + "# Create a 3D wireframe plot of the solution\n", + "# Hint: consult the matplotlib documentation\n", + "# https://matplotlib.org/stable/gallery/mplot3d/wire3d.html\n", "\n", - "# Import Pyomo numeric integration features\n", - "from pyomo.dae import DerivativeVar, ContinuousSet" + "# Add your solution here" ] }, { "cell_type": "markdown", - "metadata": { - "id": "_GdDQNuud-fR" - }, + "metadata": {}, "source": [ - "During your time at Notre Dame, you will likely want (or at least need) to solve a partial differential equation (PDE) system. In this problem, we will practice using Pyomo to numerically integrate a simple and common PDE. (Special thanks to Prof. Kantor for this problem.)\n", + "## 3. Portfolio Data Analysis\n", "\n", - "Transport of heat in a solid is described by the familiar thermal diffusion model:\n", + "Portfolio management is a classic example of quadratic programming (optimization). The idea is to find the optimal blend of investments that achieves a specified rate of return (or better) while minimizing the variance in rate of return. In this problem, you will use your skills in statistical analysis to analyze the stock data.\n", "\n", - "$$\n", - "\\begin{align*}\n", - "\\rho C_p\\frac{\\partial T}{\\partial t} & = \\nabla\\cdot(k\\nabla T)\n", - "\\end{align*}\n", - "$$\n", + "### Historical Stock Data\n", "\n", - "We will assume the thermal conductivity $k$ is a constant, and define thermal diffusivity in the conventional way\n", + "Historical daily adjusted closing prices for the last five years (obtained from Yahoo! Finance) are available for the $N=5$ stocks listed in table below. (We are actually considering index funds, but this detail does not change the analysis.) \n", "\n", - "$$\n", - "\\begin{align*}\n", - "\\alpha & = \\frac{k}{\\rho C_p}\n", - "\\end{align*}\n", - "$$\n", - "\n", - "We will further assume symmetry with respect to all spatial coordinates except $x$ where $x$ extends from $-X$ to $+X$. The boundary conditions are\n", - "\n", - "$$\n", - "\\begin{align*}\n", - "T(t,X) & = T_{\\infty} & \\forall t > 0 \\\\\n", - "\\nabla T(t,0) & = 0 & \\forall t \\geq 0 \n", - "\\end{align*}\n", - "$$\n", - "\n", - "where we have assumed symmetry with respect to $r$ and uniform initial conditions $T(0, x) = T_0$ for all $0 \\leq r \\leq X$. " + "| Symbol | Name |\n", + "|-|-|\n", + "| GSPC | S&P 500 | \n", + "| DJI | Dow Jones Industrial Average | \n", + "| IXIC | NASDAQ Composite | \n", + "| RUT | Russell 2000 |\n", + "| VIX | CBOE Volatility Index |" ] }, { "cell_type": "markdown", - "metadata": { - "id": "S9E0AZB2d-fR" - }, + "metadata": {}, "source": [ - "### 3a. Rescaling and Dimensionless Model\n", + "### 3a. Return Rate\n", "\n", - "We would like a dimensionless model for two reasons: first, we only need to solve the dimensionless model once, i.e., it becomes independent of input data. Second, the dimensionless models are often scaled better for numerical solutions.\n", + "You are given a Stock\\_Data.csv file. Using the stock data, calculate the 1-day return rate:\n", "\n", - "Let's consider the following proposed scaling procedure:\n", - "\n", - "$$\n", - "\\begin{align*}\n", - "T' & = \\frac{T - T_0}{T_\\infty - T_0} \\\\\n", - "x' & = \\frac{r}{X} \\\\\n", - "t' & = t \\frac{\\alpha}{X^2}\n", - "\\end{align*}\n", - "$$\n", - "\n", - "Show this scaling procedure gives the following dimensionless system:\n", - "\n", - "$$\n", - "\\begin{align*}\n", - "\\frac{\\partial T'}{\\partial t'} & = \\nabla^2 T'\n", - "\\end{align*}\n", - "$$\n", - "\n", - "with auxiliary conditions\n", + "\\begin{equation}\n", + "\tr_{t,i} = \\frac{p_{t+1,i} - p_{t,i}}{p_{t,i}}\n", + "\\end{equation}\n", "\n", - "$$\n", - "\\begin{align*}\n", - "T'(0, x') & = 0 & \\forall 0 \\leq x' \\leq 1\\\\\n", - "T'(t', 1) & = 1 & \\forall t' > 0\\\\\n", - "\\nabla T'(t', 0) & = 0 & \\forall t' \\geq 0 \\\\\n", - "\\end{align*}\n", - "$$\n", + "where $p_{t+1,i}$ and $p_{t,i}$ are the *Adjusted Closing Prices* at the end of days $t+1$ and $t$, respectively, for stock $i$. These results are stored in matrix `R`. *Hint*: Use Pandas." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# This is the long path to the folder containg data files on GitHub (for the class website)\n", + "data_folder = 'https://raw.githubusercontent.com/ndcbe/data-and-computing/main/noteboohttps://raw.githubusercontent.com/ndcbe/data-and-computing/main/notebooks/data/'\n", "\n", - "Turn in your work (pencil and paper) via **Gradescope**. *Important:* Here the prime $'$ indicates the scaled variables and coordinates. It does not indicate a derivative. Thus $T'$ is scaled temperature, NOT the derivative of temperature (which begs the question of \"with respect to what?\")." + "# Load the data file into Pandas\n", + "df_adj_close = pd.read_csv(data_folder + 'Stock_Data.csv')" ] }, { - "cell_type": "markdown", - "metadata": { - "id": "vY4nyAGid-fS" - }, + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ - "### 3b. Numeric Integration via Pyomo" + "# Add your solution here" ] }, { "cell_type": "markdown", - "metadata": { - "id": "y3qGQ6Had-fS" - }, + "metadata": {}, "source": [ - "For simplicity, let's consider planar coordinates. For a slab geometry, we want to numerical integrate the following PDE:\n", + "### 3b. Visualization\n", "\n", - "$$\n", - "\\begin{align*}\n", - "\\frac{\\partial T'}{\\partial t'} & = \\frac{\\partial^2 T'}{\\partial x'^2}\n", - "\\end{align*}\n", - "$$\n", + "Plot the single day return rates for the 5 stocks you obtain in the previous section and check if you obtain the following profiles:\n", "\n", - "with auxiliary conditions\n", + "![ad](https://raw.githubusercontent.com/ndcbe/data-and-computing/main/media/stock_return_plots.png)\n", "\n", - "$$\n", - "\\begin{align*}\n", - "T'(0, x') & = 0 & \\forall 0 \\leq x' \\leq 1 \\\\\n", - "T'(t', 1) & = 1 & \\forall t' > 0\\\\\n", - "\\frac{\\partial T'}{\\partial x'} (t', 0) & = 0 & \\forall t' \\geq 0 \\\\\n", - "\\end{align*}\n", - "$$\n", "\n", - "Complete the following Pyomo code to integrate this PDE." + "The first plot is made for you. " ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "executionInfo": { - "elapsed": 2497, - "status": "ok", - "timestamp": 1664677371426, - "user": { - "displayName": "Alexander Dowling", - "userId": "00988067626794866502" - }, - "user_tz": 240 - }, - "id": "yM3uKVfGd-fS", - "outputId": "4150d75e-328b-4ce3-a77e-7951f7c2a89d" - }, + "metadata": {}, "outputs": [], "source": [ - "# Create Pyomo model\n", - "m = pyo.ConcreteModel()\n", + "# Create figure\n", + "plt.figure(figsize=(9,15))\n", "\n", - "# Define sets for spatial and temporal domains\n", - "m.x = ContinuousSet(bounds=(0,1))\n", - "m.t = ContinuousSet(bounds=(0,2))\n", + "# Create subplot for DJI\n", + "plt.subplot(5,1,1)\n", + "plt.plot(R[\"DJI\"]*100,color=\"blue\",label=\"DJI\")\n", + "plt.legend(loc='best')\n", "\n", - "# Define scaled temperature indexed by time and space\n", - "m.T = pyo.Var(m.t, m.x)\n", + "# Add your solution here\n", "\n", - "# Define variables for the derivates\n", - "m.dTdt = DerivativeVar(m.T, wrt=m.t)\n", - "m.dTdx = DerivativeVar(m.T, wrt=m.x)\n", - "m.d2Tdx2 = DerivativeVar(m.T, wrt=(m.x, m.x))\n", + "# Show plot\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 3c. Covariance and Correlation Matrices\n", "\n", - "# Define PDE equation\n", - "def pde(m, t, x):\n", - " if t == 0:\n", - " return pyo.Constraint.Skip\n", - " elif x == 0 or x == 1:\n", - " return pyo.Constraint.Skip\n", - " # Add your solution here\n", + "Write Python code to:\n", + "1. Calculate $\\bar{r}$, the average 1-day return for each stock. Store this as the variable `R_avg`.\n", + "2. Calculate $\\Sigma_{r}$, the covariance matrix of the 1-day returns. This matrix tells us how returns for each stock vary with each other (which is important because they are correlated!). Hint: pandas has a function `cov`\n", + "3. Calculate the correlation matrix for the 1-day returns. Hint: pandas has a function `corr`.\n", "\n", - "m.pde = pyo.Constraint(m.t, m.x, rule=pde)\n", + "Looking at the correlation matrix, answer the follwing questions:\n", "\n", - "# Define first auxilary condition\n", - "def initial_condition(m, x):\n", - " if x == 0 or x == 1:\n", - " return pyo.Constraint.Skip\n", - " # Add your solution here\n", + "1. Which pair of stocks have the highest **positive** correlation?\n", + "2. Which pair of stocks have the highest **negative** correlation?\n", + "3. Which pair of stocks have the lowest **absolute** correlation?\n", "\n", - "m.ic = pyo.Constraint(m.x, rule = initial_condition)\n", + "Hint: Read ahead in the class website for more information on [correlation and covariance](../..//notebooks/14/Correlation-Covariance-and-Independence.ipynb)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Please write one or two sentences for each of the above questions:\n", + "1. Fill in here\n", + "2. Fill in here\n", + "3. Fill in here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Add your solution here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Removed autograder test. You may delete this cell." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 3d. Markowitz Mean/Variance Portfolio Model\n", "\n", - "# Define second auxilary condition\n", - "def boundary_condition1(m, t):\n", - " # Add your solution here\n", + "The Markowitz mean/variance model, shown below, computes the optimal allocation of funds in a portfolio:\n", "\n", - "m.bc1 = pyo.Constraint(m.t, rule = boundary_condition1)\n", + "\\begin{align}\n", + "\t\t\\min_{{x} \\geq {0}} \\qquad & z:= {x}^T \\cdot {\\Sigma_r} \\cdot {x} \\\\\n", + "\t\t\\text{s.t.} \\qquad & {\\bar{r}}^T \\cdot {x} \\geq \\rho \\\\\n", + "\t\t & \\sum_{i =1}^N x_i = 1 \n", + "\\end{align} \n", "\n", - "# Define third auxilary condition\n", - "@m.Constraint(m.t)\n", - "def boundary_condition2(m, t):\n", - " # Add your solution here \n", "\n", - "m.bc2 = pyo.Constraint(m.t, rule=boundary_condition2)\n", + "where $x_i$ is the fraction of funds invested in stock $i$ and $x = [x_1, x_2, ..., x_N]^T$. The objective is to minimize the variance of the return rate. (As practice for the next exam, try deriving this from the error propagation formulas.) This requires the expected return rate to be at least $\\rho$. Finally, the allocation of funds must sum to 100%.\n", "\n", - "# Define dummy objective\n", - "m.obj = pyo.Objective(expr=1)\n", + "Write Python code to solve for $\\rho = 0.08\\%.$ Report both the optimal allocation of funds and the standard deviation of the return rate. \n", + "*Hint*:\n", + "1. Be mindful of units.\n", + "2. You can solve with problem using the Pyomo function given below\n", + "3. $:=$ means ''defined as''\n", "\n", - "# Discretize spatial coordinate with forward finite difference and 50 elements\n", - "pyo.TransformationFactory('dae.finite_difference').apply_to(m, nfe=50, scheme='FORWARD', wrt=m.x)\n", + "Store your answer in `std_dev`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "R_avg_tolist = R_avg.values.tolist()\n", + "Cov_list = Cov.values.tolist()\n", "\n", - "# Discretize time coordinate with forward finite difference and 50 elements\n", - "pyo.TransformationFactory('dae.finite_difference').apply_to(m, nfe=50, scheme='FORWARD', wrt=m.t)\n", - "pyo.SolverFactory('ipopt').solve(m, tee=True).write()" + "# Optimization Problem\n", + "def create_model(rho,R_avg,Cov):\n", + " \n", + " '''\n", + " This function solves for the optimal allocation of funds in a portfolio \n", + " by minimizing the variance of the return rate\n", + " \n", + " Arguments:\n", + " rho: required portfolio expected return\n", + " Ravg: average return rates (list)\n", + " Cov: covariance matrix\n", + " \n", + " Returns:\n", + " m: Pyomo concrete model\n", + " \n", + " '''\n", + " \n", + " m = pyo.ConcreteModel()\n", + " init_x = {}\n", + " m.idx = pyo.Set(initialize=[0,1,2,3,4])\n", + " for i in m.idx:\n", + " init_x[i] = 0\n", + " m.x = pyo.Var(m.idx,initialize=init_x,bounds=(0,None))\n", + " \n", + " def Obj_func(m):\n", + " b = []\n", + " mult_result = 0\n", + " for i in m.idx:\n", + " a = 0\n", + " for j in m.idx:\n", + " a+= m.x[j]*Cov[j][i]\n", + " b.append(a)\n", + " for i in m.idx:\n", + " mult_result += b[i]*m.x[i]\n", + " \n", + " return mult_result\n", + " m.OBJ = pyo.Objective(rule=Obj_func)\n", + " \n", + " def constraint1(m):\n", + " # Add your solution here\n", + "\n", + " m.C1 = pyo.Constraint(rule=constraint1)\n", + " \n", + " def constraint2(m):\n", + " # Add your solution here\n", + "\n", + " m.C2 = pyo.Constraint(rule=constraint2)\n", + " \n", + " return m" ] }, { - "cell_type": "markdown", - "metadata": { - "id": "ZuOBPYd5d-fT" - }, + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ - "### 3c. Visualize Solution " + "rho = 0.0008\n", + "model1 = create_model(rho,R_avg_tolist,Cov_list)\n", + "\n", + "#Solve Pyomo in the method learned in Class 11\n", + "\n", + "# Add your solution here" ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 357 - }, - "executionInfo": { - "elapsed": 1668, - "status": "ok", - "timestamp": 1664677559084, - "user": { - "displayName": "Alexander Dowling", - "userId": "00988067626794866502" - }, - "user_tz": 240 - }, - "id": "qLQGM8Urd-fT", - "outputId": "751136c4-d2eb-4edc-c183-e30b80d82128" - }, + "metadata": {}, "outputs": [], "source": [ - "# Extract indices\n", - "x = sorted(m.x)\n", - "t = sorted(m.t)\n", + "# Removed autograder test. You may delete this cell." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 3e. Volatility and Expected Return Tradeoff\n", "\n", - "# Create numpy arrays to hold the solution\n", - "xgrid = np.zeros((len(t), len(x)))\n", - "# Hint: define tgrid and Tgrid the same way\n", - "# Add your solution here\n", + "We will now perform sensitivity analysis of the optimization problem in 3d to characterize the tradeoff between return and risk.\n", "\n", - "# Loop over time\n", - "for i in range(0, len(t)):\n", - " # Loop over space\n", - " for j in range(0, len(x)):\n", - " # Copy values\n", - " xgrid[i,j] = x[j]\n", - " tgrid[i,j] = t[i]\n", - " # Hint: how to access values from Pyomo variable m.T?\n", - " # Add your solution here\n", + "Write Python code to:\n", + "1. Solve the optimization problem for many values of $\\rho$ between min($\\bar{r}$) and max($\\bar{r}$) and save the results. Use the Pyomo function created in 3d.\n", + "2. Plot $\\rho$ versus $\\sqrt{z}$ (using the saved results).\n", + "3. Write at least one sentence to interpret and discuss your plot." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "rho_vals = np.arange(0.0005,0.0038,0.0001)\n", + "std_dev = []\n", "\n", - "# Create a 3D wireframe plot of the solution\n", - "# Hint: consult the matplotlib documentation\n", - "# https://matplotlib.org/stable/gallery/mplot3d/wire3d.html\n", + "# Add your solution here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#Plot\n", "\n", "# Add your solution here" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Discussion**:" + ] + }, { "cell_type": "markdown", "metadata": { "id": "X1GR0jYZd-e9" }, "source": [ - "**Submission Instructions and Tips:**\n", + "## Submission Instructions and Tips\n", + "\n", "1. Answer discussion questions in this notebook.\n", "2. When asked to store a solution in a specific variable, please also print that variable.\n", "3. Turn in this notebook via Gradescope.\n", @@ -1399,6 +1461,11 @@ "5. Even if you are not required to turn in pseudocode, you should always write pseudocode. It takes only a few minutes and can save you *hours* of time.\n", "6. For this assignment especially, read the problem statements twice. They contain important information and tips that are easy to miss on the first read." ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] } ], "metadata": { diff --git a/notebooks/assignments/ProblemSet4_F23.ipynb b/notebooks/assignments/ProblemSet4_F23.ipynb new file mode 100644 index 00000000..f2330c0c --- /dev/null +++ b/notebooks/assignments/ProblemSet4_F23.ipynb @@ -0,0 +1,321 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Problem Set 4\n", + "\n", + "CBE 60258, University of Notre Dame. © Prof. Alexander Dowling, 2023\n", + "\n", + "You may not distribution the solutions without written permissions from Prof. Alexander Dowling.\n", + "\n", + "**Your Name and Email:**" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Import Libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import math\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1. Measuring Acceleration Two Ways\n", + "\n", + "You and a classmate want to measure the acceleration of a cart rolling down an incline plane, but disagree on the best approach. The cart starts at rest and travels distance $l = 1.0$ m. The location of the finish line is measured with negligible uncertainty. You (student 1) measure the instantaneous velocity $v = 3.2 \\pm 0.1 $ m/s at the finish line. Your classmate (student 2) instead measures the elapsed time $t = 0.63 \\pm 0.01$s." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 1a. Approach 1\n", + "\n", + "Calculate the acceleration for approach 1,\n", + "\\begin{equation}\n", + "\ta_1 = \\frac{v^2}{2l} ~,\n", + "\\end{equation}\n", + "\n", + "and estimate the associated uncertainty. Round your answer to the correct number of significant digits and store your answers in variables `A1` for acceleration and `U_A1` for the uncertainty." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Add your solution here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "nbgrader": { + "grade": true, + "grade_id": "acceleration-a", + "locked": true, + "points": "0.4", + "solution": false + } + }, + "outputs": [], + "source": [ + "# Removed autograder test. You may delete this cell." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 1b. Approach 2\n", + "\n", + "Calculate the acceleration for approach 2,\n", + "\\begin{equation}\n", + "\ta_2 = \\frac{2 l}{t^2}~,\n", + "\\end{equation}\n", + "\n", + "and estimate the associated uncertainty. Round your answer to the correct number of significant digits and store your answers in variables `A2` for acceleration and `U_A2` for the uncertainty." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Add your solution here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "nbgrader": { + "grade": true, + "grade_id": "acceleration-b", + "locked": true, + "points": "0.4", + "solution": false + } + }, + "outputs": [], + "source": [ + "# Removed autograder test. You may delete this cell." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 1c. Weighted Average\n", + "\n", + "A third classmate suggests to use a weighted average of your two calculations:\n", + "\n", + "$$\n", + "\ta_{3} = w a_1 + (1-w) a_2\n", + "$$\n", + "\n", + "where $0 \\leq w \\leq 1$ is the weight you place on the approach 1 calculation calculations. Determine the value of $w$ that minimizes the uncertainty in $a_3$. Do the following steps: \n", + "1. Make a plot to graphically determine this value of $w$ and from the plot, read the minimum value for $w$ and save it as the variable `weight`. Submit your plot via **Gradescope**.\n", + "2. Then calculate the acceleration and uncertainty from the above equation. Round your answer for acceleration and corresponding uncertainty to the correct number of significant digits and store your answers in variables `A3` for acceleration and `U_A3` for the uncertainty. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Add your solution here\n", + "\n", + "print(\"weight =\",weight)\n", + "print(\"A3 =\",A3)\n", + "print(\"U_A3 =\",U_A3)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "nbgrader": { + "grade": true, + "grade_id": "acceleration-c", + "locked": true, + "points": "0.3", + "solution": false + } + }, + "outputs": [], + "source": [ + "# Removed autograder test. You may delete this cell." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 1d. Analysis\n", + "\n", + "Write one or two sentences (each) to answer the following questions:\n", + "\n", + "1. If restricted to use only $a_1$ or $a_2$, which would you choose? Why?\n", + "2. How can a weighted average reduce the uncertainty? Why does this make sense?\n", + "3. Why does the uncertainty in $a_3$ depend on $w$?\n", + "\n", + "Record your answers below." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Q1:\n", + " \n", + "Q2:\n", + " \n", + "Q3:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2. Calorimetry for Food Analysis\n", + "\n", + "As an intern at Tasty Foods, Inc., you are asked to estimate the caloric content (kilo-calories per gram) of mayo: You burn a $0.40 \\pm 0.01$ gram sample of mayo in a calorimeter and measure a 2.75 $\\pm$ 0.02 $^\\circ{}$C temperature increase. You then calculate caloric content $C$:\n", + "\n", + "\\begin{equation}\n", + "\tC = \\frac{c ~ H ~ \\Delta T}{m} \n", + "\\end{equation}\n", + "\n", + "where $c = 0.2390$ kcal/kJ is a conversion factor. Assume the calorimeter heat capacity $H = 4.0$ kJ/$^\\circ{}$ C is known with negligible uncertainty." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Add your solution here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Removed autograder test. You may delete this cell." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 2b. Relative Uncertainty\n", + "\n", + "Find the relative uncertainty in $C$ by doing the following:\n", + "\n", + "1. Set $\\sigma_m = 0.01 m$ and $\\sigma_{\\Delta T} = 0$ and recalculate $\\sigma_C$. This tells us the impact of 1% uncertainty in $m$. Store your answer as variable `U_C_mass`.\n", + "2. Set $\\sigma_m = 0$ and $\\sigma_{\\Delta T} = 0.01 \\Delta T$ and recalculate $\\sigma_C$. This tells us the impact of 1% uncertainty in $\\Delta T$. Store your answer as variable `U_C_temperature`.\n", + "\n", + "*Hint*: Use the $m$ and $\\Delta T$ data reported above.\n", + "\n", + "Remember to store your answer using the correct number of significant digits." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Add your solution here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Removed autograder test. You may delete this cell." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 2c. Which is better?\n", + "\n", + "Which would provide a greater reduction in $\\sigma_C$: i) reducing the uncertainty in $m$ to 0.005 g OR ii) reducing the uncertainty in $\\Delta T$ to 0.001 $^\\circ{}$C? Do the following steps:\n", + "1. Calculate the uncertainty for each scenario, storing your variables as i) `Reduce_mass` and ii) `Reduce_temperature`. \n", + "2. After determining which method would provide a greater reduction in $\\sigma_C$, set the variable `method` equal to either 1, for reducing the uncertainty in mass, or 2, for reducing the uncertainty in temperature, to save which method you found would more significantly reduce $\\sigma_C$.\n", + "\n", + "Remember to use the correct number of significant digits." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Add your solution here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Removed autograder test. You may delete this cell." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} From ba691f6eaae4b6b8e90c6d0abacd9257ee2aea3e Mon Sep 17 00:00:00 2001 From: Alex Dowling Date: Fri, 10 Nov 2023 19:31:41 -0500 Subject: [PATCH 2/4] Added Problem Set 5 --- _toc.yml | 1 + fall2023/schedule.md | 6 +- notebooks/assignments/ProblemSet5_F23.ipynb | 1641 +++++++++++++++++++ 3 files changed, 1645 insertions(+), 3 deletions(-) create mode 100644 notebooks/assignments/ProblemSet5_F23.ipynb diff --git a/_toc.yml b/_toc.yml index c0212d20..ea5f18d7 100644 --- a/_toc.yml +++ b/_toc.yml @@ -160,6 +160,7 @@ parts: - file: notebooks/assignments/ProblemSet2_F23.ipynb - file: notebooks/assignments/ProblemSet3_F23.ipynb - file: notebooks/assignments/ProblemSet4_F23.ipynb + - file: notebooks/assignments/ProblemSet5_F23.ipynb - file: notebooks/contrib/contribute.md sections: - file: notebooks/contrib/Biotransport-Entrance-Length.ipynb diff --git a/fall2023/schedule.md b/fall2023/schedule.md index fc762bf8..d04245fd 100644 --- a/fall2023/schedule.md +++ b/fall2023/schedule.md @@ -13,9 +13,9 @@ | Friday, October 6, 2023 | [Problem Set 2: Numeric Integration](../notebooks/assignments/ProblemSet2_F23.ipynb) and Project Proposal Part 1 | | Friday, October 27, 2023 | [Problem Set 3: Pyomo, Pandas, and Probability](../notebooks/assignments/ProblemSet3_F23.ipynb) | | Friday, November 3, 2023 | Submit Project Part 1 Notebooks | -| Friday, November 10, 2023 | Problem Set 4: Error Propagation, Project Part 2 Updates Due | -| Friday, November 17, 2023 | Problem Set 5: Hypothesis Testing and Statistical Power | -| Friday, December 1, 2023| Problem Set 6: Linear and Nonlinear Regression | +| Friday, November 10, 2023 | [Problem Set 4: Error Propagation](../notebooks/assignments/ProblemSet4_F23.ipynb), Project Part 2 Updates Due | +| Friday, November 17, 2023 | [Problem Set 5: Hypothesis Testing](../notebooks/assignments/ProblemSet5_F23.ipynb) | +| Friday, December 1, 2023| Problem Set 6: Statistical Power and Nonlinear Regression | | Thursday, December 7, 2023 | Project Notebook(s) Due | | Friday, December 15, 2023, 10:30 AM - 12:30 PM (Final Exam Timeslot) | Project Presentations | diff --git a/notebooks/assignments/ProblemSet5_F23.ipynb b/notebooks/assignments/ProblemSet5_F23.ipynb new file mode 100644 index 00000000..7384594c --- /dev/null +++ b/notebooks/assignments/ProblemSet5_F23.ipynb @@ -0,0 +1,1641 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "OJoQhXZaa6ar" + }, + "source": [ + "# Problem Set 5\n", + "\n", + "CBE 60258. Advanced Data and Computing. Fall 2023. © Prof. Alexander Dowling, 2023\n", + "\n", + "You may not distribution the solutions without written permissions from Prof. Alexander Dowling.\n", + "\n", + "**Your Name and Email:**" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "ntiJWSXRa6as", + "tags": [] + }, + "outputs": [], + "source": [ + "# load libraries\n", + "import scipy.stats as stats\n", + "import numpy as np\n", + "import math\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "xBL0duhia6au" + }, + "source": [ + "## Introduction\n", + "\n", + "There are many flavors of hypothesis testing. In this assignment, we will explore the types of hypothesis testing you are most likely to encounter as an engineer. Our textbook, Navidi (2015), explores many more extensions. Remember, confidence intervals and hypothesis testings are conceptually very similar!\n", + "\n", + "| Problem Type | Confidence Intervals | Hypothesis Testing |\n", + "| - | - | - |\n", + "| Large-Sample Population Mean | §5.1 | §6.1 |\n", + "| Proportions | §5.2 | §6.3 |\n", + "| Small-Sample Population Mean | §5.3 | §6.4 |\n", + "| (Large-Sample) Difference Between Two Means | §5.4 | §6.5 |\n", + "| Difference Between Two Proportions | §5.5 | §6.6 |\n", + "| Small-Sample Difference Between Two Means | §5.6 | §6.7 |\n", + "| Paired Data | §5.7 | §6.8 |\n", + "\n", + "**Large-Sample** is code for \"use z-statistic\" and **Small-Sample** is code for \"use t-statistic\"." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "bq282eIwa6aw" + }, + "source": [ + "## Learning Objectives\n", + "\n", + "After studying this notebook, completing the activities, and reviewing the textbook, you should be able to:\n", + "* Apply the five-step hypothesis testing method\n", + "* Decide which test type and statistic to use based on the problem description\n", + "* Check assumptions for the chosen statistical test" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "_hNCx3F1a6aw" + }, + "source": [ + "## 1. Small-Sample Test for Population Mean\n", + "**a.k.a. single-sample t-test**\n", + "\n", + "### Motivating Example\n", + "\n", + "During your internships at Off-Brand Cola, Inc. this summer, you learn that a 12oz can of fizz has a sugar content specification of 38.98 - 39.02 grams. The manufacturing process is supposed to be calibrated so the mean sugar per can is 39.00 grams (otherwise the FDA gets upset), which is the center of the specification window. Six cans are randomly selected for inspection. There sugar contents are:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "BZF_eWWLa6ax", + "tags": [] + }, + "outputs": [], + "source": [ + "sugar = [39.030, 38.997, 39.012, 39.008, 39.019, 39.002]" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "8lJuakOTa6az" + }, + "source": [ + "Based on historical data, you are comfortable assuming the population distribution is normal.\n", + "\n", + "**Main Question** Can you conclude the process needs recalibration?\n", + "\n", + "We will now walk through the 5-step hypothesis testing procedure." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "G2eb9dyXa6a0" + }, + "source": [ + "### Step 1. Define Hypotheses.\n", + "\n", + "Let $\\mu$ denote the population mean.\n", + "\n", + "$$H_0: \\mu = 39.00 \\qquad \\mathrm{versus} \\qquad H_1: \\mu \\neq 39.00$$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "5xi9Wclva6a0" + }, + "source": [ + "### Step 2. Assume $H_0$ is True." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "4_SQStysa6a1" + }, + "source": [ + "### Step 3. Compute the Test Statistic.\n", + "\n", + "We do not know the population standard deviation, so we will use a t-statistic.\n", + "\n", + "$$\n", + "t = \\frac{\\bar{x} - \\mu}{s / \\sqrt{n}}\n", + "$$\n", + "\n", + "Before we proceed with the calculation, we should check out dataset for outliers. We assumed the population distribution is normal, but we should still plot the sample to check." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 394, + "status": "ok", + "timestamp": 1553798160146, + "user": { + "displayName": "Alexander Dowling", + "photoUrl": "https://lh3.googleusercontent.com/-LChdQ2m5OQE/AAAAAAAAAAI/AAAAAAAAAA0/JeXJe4vQJ7M/s64/photo.jpg", + "userId": "00988067626794866502" + }, + "user_tz": 240 + }, + "id": "CHkbK44Na6a1", + "outputId": "62b70597-7d16-4ffd-dd6b-4026611c0c8f" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Sample Mean: 39.01133333333333 g\n", + "Sample Standard Deviation: 0.011927559124425172 g\n" + ] + } + ], + "source": [ + "# calculate sample mean and standard deviation\n", + "xbar = np.mean(sugar)\n", + "\n", + "# ddof=1 uses the 1/(N-1) formula\n", + "# ddof=0 uses the 1/N formula (default)\n", + "# notice we are using numpy instead of pandas to compute standard deviation\n", + "s = np.std(sugar,ddof=1)\n", + "n = len(sugar)\n", + "\n", + "print(\"Sample Mean:\",xbar,\"g\")\n", + "print(\"Sample Standard Deviation:\",s,\"g\")" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 361 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 730, + "status": "ok", + "timestamp": 1553798166176, + "user": { + "displayName": "Alexander Dowling", + "photoUrl": "https://lh3.googleusercontent.com/-LChdQ2m5OQE/AAAAAAAAAAI/AAAAAAAAAA0/JeXJe4vQJ7M/s64/photo.jpg", + "userId": "00988067626794866502" + }, + "user_tz": 240 + }, + "id": "0N5VSTPLa6a4", + "outputId": "66b802a9-06db-4ce1-cac8-ab16c322163d" + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# plot histogram\n", + "plt.hist(sugar)\n", + "plt.xlabel(\"Sugar per can [grams]\")\n", + "plt.ylabel(\"Frequency\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "5GWI-_1Ia6a6" + }, + "source": [ + "**Interpretation**: Six samples is fairly small. Although the largest value may look like an outlier, it is within two standard deviations of the sample mean which is not too uncommon by random chance.\n", + "\n", + "We can now **compute the test statistic**:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 462, + "status": "ok", + "timestamp": 1553798206841, + "user": { + "displayName": "Alexander Dowling", + "photoUrl": "https://lh3.googleusercontent.com/-LChdQ2m5OQE/AAAAAAAAAAI/AAAAAAAAAA0/JeXJe4vQJ7M/s64/photo.jpg", + "userId": "00988067626794866502" + }, + "user_tz": 240 + }, + "id": "eAQKqPaaa6a7", + "outputId": "1c4210e4-d7f7-4740-9c41-3c2ac8d5a47c" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "t = 2.3274572326112604\n" + ] + } + ], + "source": [ + "tscore = (xbar - 39.00)/(s / math.sqrt(n))\n", + "print(\"t = \",tscore)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "iUe6q1Gna6a9" + }, + "source": [ + "### Step 4. Calculate P-Value.\n", + "\n", + "Store your answer in `pvalue_a`." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "jDzCiukja6a9" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.06742438341891084\n" + ] + } + ], + "source": [ + "# Add your solution here" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "nbgrader": { + "grade": true, + "grade_id": "pvalue_a", + "locked": true, + "points": "0.1", + "solution": false + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# Removed autograder test. You may delete this cell." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "Srqzunw7a6a_" + }, + "source": [ + "### Step 5. State Conclusions.\n", + "\n", + "You now need to interpret the results and state the conclusions. Because the calibration is fast and inexpensive, your team decide to use a significance level of $\\alpha=$ 7.5%." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Fill in the blank. Store your selection as a integer 1, 2, 3, or 4 in `interpret_a`.\n", + "\n", + "Therefore, we __________.\n", + "1. Accept the null hypothesis.\n", + "2. Reject the null hypothesis.\n", + "3. Fail to reject the null hypothesis.\n", + "4. None of the above." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "# Add your solution here" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "nbgrader": { + "grade": true, + "grade_id": "interpret_a", + "locked": true, + "points": "0.1", + "solution": false + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# Removed autograder test. You may delete this cell." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Should we recommend to recalibrate the machine? Store your answer as `True` or `False` in `conclude_a`." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "# Add your solution here" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "nbgrader": { + "grade": true, + "grade_id": "conclude_a", + "locked": true, + "points": "0.1", + "solution": false + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# Removed autograder test. You may delete this cell." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "f-xhW6isa6bB" + }, + "source": [ + "## 2. Small-Sample Difference Between Two Means\n", + "**a.k.a. two-sample t-test**\n", + "\n", + "### Motivating Example\n", + "\n", + "Consider the comparison of item recognition between two website designs. A sample of $n_Y$ = 10 users using a conventional website design averaged $\\bar{Y} = $ 32.2 items identified, with a standard deviation of $s_Y$ = 8.56. A separate sample of $n_X$ = 10 users using a new website design averaged $\\bar{X}$ = 44.1 items identified, with a standard deviation of $s_X$ = 10.09.\n", + "\n", + "Can we conclude the mean number of items identified is greater with the new website design?" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "BjuQTlN8a6bB" + }, + "source": [ + "### Step 1. Define Hypotheses.\n", + "\n", + "Let $\\mu_X$ and $\\mu_Y$ denote the population means for the new and old designs, respectively.\n", + "\n", + "$$H_0: \\mu_X - \\mu_Y \\leq 0 \\qquad \\mathrm{versus} \\qquad H_1: \\mu_X - \\mu_Y > 0$$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "o8Qec2_6a6bC" + }, + "source": [ + "### Step 2. Assume $H_0$ is True." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "rue4qVGJa6bD" + }, + "source": [ + "### Step 3. Compute the Test Statistic.\n", + "\n", + "We do not know the population standard deviation, so we will use a t-statistic for the difference of means.\n", + "\n", + "$$\n", + "t = \\frac{\\bar{X} - \\bar{Y} - 0}{\\sqrt{s_X^2/n_x + s_Y^2/n_Y}}\n", + "$$\n", + "\n", + "In order to use this test, we must assume both populations are normally distributed.\n", + "\n", + "The degrees of freedom are:\n", + "\n", + "$$\n", + "\\nu = \\frac{\\left(\\frac{s_X^2}{n_X} + \\frac{s_Y^2}{n_Y}\\right)^2}{\\frac{(s_X^2/n_X)^2}{n_X - 1} + \\frac{(s_Y^2/n_Y)^2}{n_Y - 1}}, \\qquad \\mathrm{rounded~down~to~the~nearest~integer}\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 1133, + "status": "ok", + "timestamp": 1553795744293, + "user": { + "displayName": "Alexander Dowling", + "photoUrl": "https://lh3.googleusercontent.com/-LChdQ2m5OQE/AAAAAAAAAAI/AAAAAAAAAA0/JeXJe4vQJ7M/s64/photo.jpg", + "userId": "00988067626794866502" + }, + "user_tz": 240 + }, + "id": "uPXO8OFRa6bD", + "outputId": "04cc2d3d-00dc-4917-c868-c66115c9d23c" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "t = 2.8439803014215195\n" + ] + } + ], + "source": [ + "# old website\n", + "ybar = 32.2\n", + "sy = 8.56\n", + "ny = 10\n", + "\n", + "# new website\n", + "xbar = 44.1\n", + "sx = 10.09\n", + "nx = 10\n", + "\n", + "t = (xbar - ybar - 0)/math.sqrt(sx**2/nx + sy**2/ny)\n", + "print(\"t = \",t)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "_Icn3AHEa6bG" + }, + "source": [ + "Calculate the degrees of freedom ($\\nu$). Store your answer in `dof_b`. Remember to round down." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "Y3ul9fCna6bH" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Degrees of freedom:\n", + "17.0\n" + ] + } + ], + "source": [ + "# Add your solution here\n", + "print(\"Degrees of freedom:\")\n", + "print(dof_b)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "nbgrader": { + "grade": true, + "grade_id": "dof_b", + "locked": true, + "points": "0.1", + "solution": false + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# Removed autograder test. You may delete this cell." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "tUeC2SuPa6bI" + }, + "source": [ + "### Step 4. Calculate the P-Value.\n", + "\n", + "Calculate the P-value. Store your result in `pvalue_b`." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "4sEaINw6a6bJ" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "P-value\n", + "0.005607955797872655\n" + ] + } + ], + "source": [ + "# Add your solution here\n", + "\n", + "print(\"P-value\")\n", + "print(pvalue_b)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "nbgrader": { + "grade": true, + "grade_id": "pvalue_b", + "locked": true, + "points": "0.1", + "solution": false + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# Removed autograder test. You may delete this cell." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "sBGW2pIUa6bK" + }, + "source": [ + "### Step 5. State Conclusions.\n", + "\n", + "The marketing team decides a priori to use a significance level of 5% to balance reward and costs." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Choose the best conclusion from the following:\n", + "1. Reject the null hypothesis. The **old** website has a higher mean number of items recognized.\n", + "2. Reject the null hypothesis. The **new** website has a higher mean number of items recognized.\n", + "3. Accept the null hypothesis. The **old** website has a higher mean number of items recognized.\n", + "4. Accept the null hypothesis. The **new** website has a higher mean number of items recognized.\n", + "5. Fail to reject the null hypothesis. The **old** website has a higher mean number of items recognized.\n", + "6. Fail to reject the null hypothesis. The **new** website has a higher mean number of items recognized.\n", + "\n", + "\n", + "Record your answer as an integer in `conclude_b`." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "# Add your solution here" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "nbgrader": { + "grade": true, + "grade_id": "conclude_b", + "locked": true, + "points": "0.1", + "solution": false + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# Removed autograder test. You may delete this cell." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "wqdy-VbUa6bN" + }, + "source": [ + "## 3. Small-Sample Different Between Pairwise Means\n", + "**a.k.a. paired t-test**\n", + "\n", + "### Motivating Example\n", + "\n", + "Particulate matter (PM) emissions from automobiles cause serious environmental impacts. Eight vehicles were chosen at random from a fleet, and their emissions were measured under both highway and stop-and-go driving conditions. The difference, stop-and-go minus highway emissions, for each car were then computed. Below are the results in mg per gallon of fuel:" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 1122, + "status": "ok", + "timestamp": 1553795744299, + "user": { + "displayName": "Alexander Dowling", + "photoUrl": "https://lh3.googleusercontent.com/-LChdQ2m5OQE/AAAAAAAAAAI/AAAAAAAAAA0/JeXJe4vQJ7M/s64/photo.jpg", + "userId": "00988067626794866502" + }, + "user_tz": 240 + }, + "id": "v8PFdUOHa6bO", + "outputId": "6e4617b3-984b-4b9c-c985-f87f65f6bf78" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ 559 414 227 190 353 -229 -226 236]\n" + ] + } + ], + "source": [ + "stop_go = np.array([1500, 870, 1120, 1250, 3460, 1110, 1120, 880])\n", + "highway = np.array([941, 456, 893, 1060, 3107, 1339, 1346, 644])\n", + "\n", + "diff = stop_go - highway\n", + "print(diff)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "VPq8-2gta6bW" + }, + "source": [ + "The first element of each array are data from car 1, the second for car 2, etc.\n", + "\n", + "Can we conclude that the mean level of emissions is less for highway driving than for stop-and-go driving?" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "P4vXG7Qza6bX" + }, + "source": [ + "### Step 1. Define Hypotheses.\n", + "\n", + "We will treat the difference for each car as a single random variable: $D$. Let $\\mu_D$ and $\\sigma_D$ represent the mean and standard deviation of the population distribution for the difference.\n", + "\n", + "$$H_0: \\mu_D \\leq 0 \\qquad \\mathrm{versus} \\qquad H_1: \\mu_D > 0$$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "tSzf3_47a6bY" + }, + "source": [ + "### Step 2. Assume $H_0$ is True." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "SrWbSYhAa6bY" + }, + "source": [ + "### Step 3. Compute the Test Statistic.\n", + "\n", + "We do not know the population standard deviation, so we will use a t-statistic.\n", + "\n", + "$$\n", + "t = \\frac{\\bar{D} - \\mu_D}{s / \\sqrt{n}}\n", + "$$\n", + "\n", + "Notice this becomes a \"vanilla\" one-sample t-test after we take the difference.\n", + "\n", + "Before we proceed with the calculation, we should check out dataset for outliers. We assumed the population distribution is normal, but we should still plot the sample to check." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 395, + "status": "ok", + "timestamp": 1553798913210, + "user": { + "displayName": "Alexander Dowling", + "photoUrl": "https://lh3.googleusercontent.com/-LChdQ2m5OQE/AAAAAAAAAAI/AAAAAAAAAA0/JeXJe4vQJ7M/s64/photo.jpg", + "userId": "00988067626794866502" + }, + "user_tz": 240 + }, + "id": "U_g2MucOa6bZ", + "outputId": "0002a7e1-4f3a-4f39-99ce-a68f77b55a6d" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Sample Mean: 190.5 mg / gallon fuel\n", + "Sample Standard Deviation: 284.1041056675226 mg / gallon fuel\n" + ] + } + ], + "source": [ + "# calculate sample mean and standard deviation\n", + "xbar = np.mean(diff)\n", + "\n", + "# ddof=1 uses the 1/(N-1) formula\n", + "# ddof=0 uses the 1/N formula (default)\n", + "# some statistics textbooks strongly emphasize using 1/(N-1)\n", + "# we will not dwell on the different this semester and use them interchangably\n", + "# we will use ddof=1 to match the scanned figure below\n", + "s = np.std(diff,ddof=1)\n", + "n = len(diff)\n", + "\n", + "print(\"Sample Mean:\",xbar,\"mg / gallon fuel\")\n", + "print(\"Sample Standard Deviation:\",s,\"mg / gallon fuel\")" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 361 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 566, + "status": "ok", + "timestamp": 1553798924622, + "user": { + "displayName": "Alexander Dowling", + "photoUrl": "https://lh3.googleusercontent.com/-LChdQ2m5OQE/AAAAAAAAAAI/AAAAAAAAAA0/JeXJe4vQJ7M/s64/photo.jpg", + "userId": "00988067626794866502" + }, + "user_tz": 240 + }, + "id": "JbVaZ7bNa6ba", + "outputId": "48d01821-7f94-46b2-cf43-9d064aaa249a" + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# plot histogram\n", + "plt.hist(diff)\n", + "plt.xlabel(\"Difference in PM emissions [mg / gallon fuel]\")\n", + "plt.ylabel(\"Frequency\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "83zo7HPWa6bc" + }, + "source": [ + "**Interpretation**: There are two cars with a negative difference. The remaining six have a positive difference. The two cars look like outliers. We will proceed with the hypothesis testing to offer a complete example, but we need to be extremely skeptical of the results. From an engineering perspective, **we should investigate these two outliers further**. This could give us new insights about PM emissions.\n", + "\n", + "We will now **compute the test statistic**:" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 1562, + "status": "ok", + "timestamp": 1553795744777, + "user": { + "displayName": "Alexander Dowling", + "photoUrl": "https://lh3.googleusercontent.com/-LChdQ2m5OQE/AAAAAAAAAAI/AAAAAAAAAA0/JeXJe4vQJ7M/s64/photo.jpg", + "userId": "00988067626794866502" + }, + "user_tz": 240 + }, + "id": "OMQQ8d51a6bd", + "outputId": "05ca3074-35f7-4d1a-c1d2-679d7b3654b8" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "t = 1.8965419946965025\n" + ] + } + ], + "source": [ + "tscore = (xbar - 0)/(s / math.sqrt(n))\n", + "print(\"t = \",tscore)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "jqpWzI6Qa6bf" + }, + "source": [ + "### Step 4. Calculate P-Value.\n", + "\n", + "Which graph below shows the correct shaded region for this hypothesis test?\n", + "\n", + "![one-sided-left](https://ndcbe.github.io/data-and-computing/_images/one-sided-left.png)\n", + "![two-sided](https://ndcbe.github.io/data-and-computing/_images/two-sided.png)\n", + "![one-sided-right](https://ndcbe.github.io/data-and-computing/_images/one-sided-right.png)\n", + "\n", + "Choices:\n", + "1. one-sided (left)\n", + "2. two-sided\n", + "3. one-sided (right)\n", + "4. none of these\n", + "\n", + "Record your answer as an integer in `sketch_c`." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "DifXECSIa6bf", + "tags": [] + }, + "outputs": [], + "source": [ + "# Add your solution here" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "nbgrader": { + "grade": true, + "grade_id": "sketch_c", + "locked": true, + "points": "0.1", + "solution": false + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# Removed autograder test. You may delete this cell." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now calculate the p-value. Store your answer in `pvalue_c`." + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "P-value:\n", + "0.049855871601833246\n" + ] + } + ], + "source": [ + "# Add your solution here\n", + "\n", + "print(\"P-value:\")\n", + "print(pvalue_c)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "nbgrader": { + "grade": true, + "grade_id": "pvalue_c", + "locked": true, + "points": "0.1", + "solution": false + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# Removed autograder test. You may delete this cell." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "eKXHhATfa6bg" + }, + "source": [ + "### Step 5. State Conclusions.\n", + "\n", + "We will not interpret the P-value for this example because the sample contains likely outliers. This suggests the assumption that the population is normally distributed is violated, and thus we cannot apply the t-test.\n", + "\n", + "Instead we recommend:\n", + "1. Investigate why two cars had a different trend than the other 2.\n", + "2. Take a larger sample. This would allow us to invoke the central limit theorem." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "C5c2zHxPa6bi" + }, + "source": [ + "## 4. Population Proportion" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "2wbUsrE_a6bi" + }, + "source": [ + "### Motivating Example\n", + "\n", + "A supplier of semiconductor wafers claims that for all of the wafers they supply, no more than 10% are defective. We receive and test a sample of 400 wafers, and find 50 of them ($\\hat{p}$ = 50/400 = 12.5%) are defective. Can we conclude the supplier's claim is false?" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "YmhypD1ta6bj", + "tags": [] + }, + "outputs": [], + "source": [ + "# proportion of tested waffers that are defective\n", + "# sample proportion\n", + "phat = 0.125\n", + "\n", + "# sample size\n", + "n = 400" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "6-TAnlRja6bl" + }, + "source": [ + "### Step 1. Define Hypotheses.\n", + "\n", + "Let $p$ represent the proportion of defective wafers in the population. If we assume the manufacturing of each wafer is independent, $p$ is also the probability a single wafer is defective.\n", + "\n", + "$$H_0: p \\leq 0.1 \\qquad \\mathrm{versus} \\qquad H_1: p > 0.1$$" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "0_SAHMYCa6bm", + "tags": [] + }, + "outputs": [], + "source": [ + "# null hypothesis proportion\n", + "p = 0.1" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "_TJzOrGua6bn" + }, + "source": [ + "### Step 2. Assume $H_0$ is True." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "4QfiUfBla6bo" + }, + "source": [ + "### Step 3. Compute the Test Statistic.\n", + "\n", + "Recall $\\hat{p}$ is the **sample proportion**, which we will use to draw inferences about the **population proportion** $p$.\n", + "\n", + "If we assume wafers are sampled independently, we can use the large sample size to invoke the Central Limit Theorem:\n", + "\n", + "$$\n", + "\\hat{p} \\sim \\mathcal{N}\\left(p,~ \\frac{p(1-p)}{n} \\right)\n", + "$$\n", + "\n", + "*Side note*: We could model wafer production with the binomial distribution. With a large sample (many trials), the binomial distribution is closely approximated by the normal distribution.\n", + "\n", + "The standard deviation of $\\hat{p}$, denoted $\\sigma_{\\hat{p}}$ is calculated as follows:\n", + "\n", + "$$\n", + "\\sigma_{\\hat{p}} = \\sqrt{\\frac{p (1-p)}{n}}\n", + "$$\n", + "\n", + "We can now calculate the z-statistics:\n", + "\n", + "$$\n", + "z = \\frac{\\hat{p} - p}{\\sigma_{\\hat{p}}}\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 1559, + "status": "ok", + "timestamp": 1553795744788, + "user": { + "displayName": "Alexander Dowling", + "photoUrl": "https://lh3.googleusercontent.com/-LChdQ2m5OQE/AAAAAAAAAAI/AAAAAAAAAA0/JeXJe4vQJ7M/s64/photo.jpg", + "userId": "00988067626794866502" + }, + "user_tz": 240 + }, + "id": "FyUHOICLa6bp", + "outputId": "b33bc932-0431-4d53-dacc-2fc2ca94ec56" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "sigma_phat = 0.015000000000000001\n" + ] + } + ], + "source": [ + "s_phat = math.sqrt(p*(1-p)/n)\n", + "print(\"sigma_phat =\",s_phat)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 1545, + "status": "ok", + "timestamp": 1553795744789, + "user": { + "displayName": "Alexander Dowling", + "photoUrl": "https://lh3.googleusercontent.com/-LChdQ2m5OQE/AAAAAAAAAAI/AAAAAAAAAA0/JeXJe4vQJ7M/s64/photo.jpg", + "userId": "00988067626794866502" + }, + "user_tz": 240 + }, + "id": "Ol751ecXa6br", + "outputId": "13fdc202-61b3-49db-ee44-5babc4e7f986" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "z = 1.666666666666666\n" + ] + } + ], + "source": [ + "z = (phat - p)/s_phat\n", + "print(\"z =\",z)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "LAKFnFqJa6bu" + }, + "source": [ + "### Step 4. Calculate P-Value.\n", + "\n", + "Calculate the P-value. Store your answer in `pvalue_d`." + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "_5qAiFLfa6bv", + "nbgrader": { + "grade": false, + "grade_id": "pvalue_d", + "locked": false, + "points": "0.1", + "solution": false + }, + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "P-value:\n", + "0.04779035227281481\n" + ] + } + ], + "source": [ + "# Add your solution here\n", + "\n", + "print(\"P-value:\")\n", + "print(pvalue_d)" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "nbgrader": { + "grade": true, + "grade_id": "pvalue_d", + "locked": true, + "points": "0.1", + "solution": false + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# Removed autograder test. You may delete this cell." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "XBh9TYFta6bw" + }, + "source": [ + "### Step 5. State Conclusions.\n", + "\n", + "Choose the best set of conclusions using an $\\alpha$ = 0.01 significance level:\n", + "1. Reject the null hypothesis. The claim is true.\n", + "2. Reject the null hypothesis. Based on the data, we cannot determine the claim is false.\n", + "3. Reject the null hypothesis. The claim is false.\n", + "4. Fail to reject the null hypothesis. The claim is true.\n", + "5. Fail to reject the null hypothesis. The claim is false.\n", + "6. Fail to reject the null hypothesis. Based on the data, we cannot determine the claim is false.\n", + "7. Accept the null hypothesis. The claim is true.\n", + "8. Accept the null hypothesis. The claim is false.\n", + "9. Accept the null hypothesis. Based on the data, we cannot determine the claim is false.\n", + "\n", + "Record your selection as an integer in `conclude_d`." + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "# Add your solution here" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "nbgrader": { + "grade": true, + "grade_id": "conclude_d", + "locked": true, + "points": "0.1", + "solution": false + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# Removed autograder test. You may delete this cell." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 5. Process Improvement\n", + "\n", + "As an intern, you are responsible for determining whether a new chemical manufacturing process is cheaper than the current process. Each process was run six times. The cost in dollars for each 100L batch was then calculated:\n", + "\n", + "\tNew Process: 51 56 53 52 51 53 \n", + "\tCurrent Process: 50 54 58 51 54 57\n", + "\n", + "Can you conclude that the mean cost of the new process is lower than the existing process? Justify your answer with complete hypothesis testing analysis." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 5a. Identify Test and Hypotheses\n", + "\n", + "Identify the correct hypothesis test (single sample t-test, pairwise z-test, two-sample t-test, etc.) and then state the appropriate null and alternate hypothesis. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Type of Test:\n", + "\n", + "Null Hypothesis:\n", + "\n", + "Alternate Hypothesis:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 5b. Calculate Sample Statistics\n", + "\n", + "Calculate the mean and standard deviation for both the new and current processes. Store your answers as variables `mean_new`, `mean_current`, `stdev_new`, and `stdev_current`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Add your solution here\n", + "\n", + "# Adjust this code to round to a reasonable number\n", + "# of significant digits\n", + "print(\"mean_new =\",mean_new)\n", + "print(\"stdev_new =\", stdev_new)\n", + "print(\"mean_current =\", mean_current)\n", + "print(\"stdev_current =\", stdev_current)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 5c. Calculate\n", + "\n", + "Calculate the t-score and p-value. Store your answers as variables `t_5` and `p_5`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Add your solution here\n", + "\n", + "# Adjust this code to round to a reasonable number\n", + "# of significant digits\n", + "print(\"t-score =\",t_5)\n", + "print(\"p-value =\",p5)\n", + "print(\"degrees of freedom =\",nu)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 5d. State Conclusions\n", + "\n", + "Can you conclude that the mean cost of the new process is lower than the existing process? Justify your answer with the hypothesis test performed above. Write one or two sentences. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Answer:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 6. Anticorrosion Coating\n", + "\n", + "Two formulations for an anticorrosion coating are being tested using eight pipes. Half of each pipe is coated with formulation A and the other half is coated with formulation B. Each pipe is placed at a different location on a pier and exposed to salty conditions for 500 hours. Afterward, the corrosion loss (in $\\mu$m) is measured for both formulations on each pipe:\n", + "\n", + "| Pipe | A | B |\n", + "|-|-|-|\n", + "| 1 | 197 | 204 | \n", + "| 2 | 161 | 182 |\n", + "| 3 | 144 | 140 |\n", + "| 4 | 162 | 178 |\n", + "| 5 | 185 | 183 |\n", + "| 6 | 154 | 163 |\n", + "| 7 | 136 | 156 |\n", + "| 8 | 130 | 143 |\n", + "\n", + "Can you conclude the mean amount of corrosion differs between the two formulations? Justify your answer with complete hypothesis testing analysis." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 6a. Identify Test and Hypotheses\n", + "\n", + "Identify the correct hypothesis test (single sample t-test, pairwise z-test, two-sample t-test, etc.) and then state the appropriate null and alternate hypothesis. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Type of Test:\n", + "\n", + "Null Hypothesis:\n", + "\n", + "Alternate Hypothesis:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 6b. Calculate Sample Statistics\n", + "\n", + "Calculate the mean and standard deviation of the difference between the two formulations. Store your answers as variables `mean_6` and `stdev_6`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Add your solution here\n", + "\n", + "# Round to a reasonable number of significant digits\n", + "print(\"mean =\",mean_6)\n", + "print(\"standard dev =\",stdev_6)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 6c. Calculate\n", + "\n", + "Calculate the t-score and p-value. Store your answers as variables `t_6` and `p_6`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Add your solution here\n", + "\n", + "# Round to a reasonable number of significant digits\n", + "print(\"t-score =\",t_6)\n", + "print(\"p-value =\",p_6)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 6d. State Conclusions\n", + "\n", + "Can you conclude the mean amount of corrosion differs between the two formulations? Justify your answer with the hypothesis test performed above. Write one or two sentences. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Answer:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Submission Instructions" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Please submit via Gradescope:\n", + "1. This notebook complete with all requests answers, discussion, etc.\n", + "2. Paper that shows scratch work for the five hypothesis testing steps we learned in class. Your scratch work should write out the null and alternative hypotheses and show distributions with shaded regions." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + } + ], + "metadata": { + "colab": { + "name": "L19-Tour-de-Hypothesis-Testing.ipynb", + "provenance": [], + "version": "0.3.2" + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} From c43d2bb55709e0e49e4168826b1a6e0797d42e2e Mon Sep 17 00:00:00 2001 From: Alex Dowling Date: Tue, 21 Nov 2023 11:56:32 -0500 Subject: [PATCH 3/4] Published PS6 --- _toc.yml | 1 + fall2023/schedule.md | 6 +- notebooks/assignments/ProblemSet6_F23.ipynb | 1364 +++++++++++++++++++ 3 files changed, 1368 insertions(+), 3 deletions(-) create mode 100644 notebooks/assignments/ProblemSet6_F23.ipynb diff --git a/_toc.yml b/_toc.yml index ea5f18d7..d2f466bf 100644 --- a/_toc.yml +++ b/_toc.yml @@ -161,6 +161,7 @@ parts: - file: notebooks/assignments/ProblemSet3_F23.ipynb - file: notebooks/assignments/ProblemSet4_F23.ipynb - file: notebooks/assignments/ProblemSet5_F23.ipynb + - file: notebooks/assignments/ProblemSet6_F23.ipynb - file: notebooks/contrib/contribute.md sections: - file: notebooks/contrib/Biotransport-Entrance-Length.ipynb diff --git a/fall2023/schedule.md b/fall2023/schedule.md index d04245fd..fb53e870 100644 --- a/fall2023/schedule.md +++ b/fall2023/schedule.md @@ -15,7 +15,7 @@ | Friday, November 3, 2023 | Submit Project Part 1 Notebooks | | Friday, November 10, 2023 | [Problem Set 4: Error Propagation](../notebooks/assignments/ProblemSet4_F23.ipynb), Project Part 2 Updates Due | | Friday, November 17, 2023 | [Problem Set 5: Hypothesis Testing](../notebooks/assignments/ProblemSet5_F23.ipynb) | -| Friday, December 1, 2023| Problem Set 6: Statistical Power and Nonlinear Regression | +| Friday, December 1, 2023| [Problem Set 6: Statistical Power and Nonlinear Regression](../notebooks/assignments/ProblemSet6_F23.ipynb) | | Thursday, December 7, 2023 | Project Notebook(s) Due | | Friday, December 15, 2023, 10:30 AM - 12:30 PM (Final Exam Timeslot) | Project Presentations | @@ -119,11 +119,11 @@ | [](../notebooks/13/Type-I-and-Type-II-Errors.ipynb) | [](../notebooks/13/Statistical-Power-in-Python.ipynb) | [](../notebooks/13/Statistical-Power-Basics.ipynb) | [](../notebooks/13/Statistical-Power-Practice-Problems.ipynb) | **Thursday, November 23** | Thanksgiving | -| **Tuesday, November 28** | Probability and Statistics Quiz, Nonlinear Regression | +| **Tuesday, November 28** | Nonlinear Regression | | [](../notebooks/15/Transformations-and-Linear-Regression.ipynb) | | [](../notebooks/15/Weighted-Regression.ipynb) | | [](../notebooks/15/Nonlinear-Regression.ipynb) | -| **Thursday, November 30** | Nonlinear Regression Continued | +| **Thursday, November 30** | Probability and Statistics Quiz, Nonlinear Regression Continued | | [](../notebooks/15/Monte-Carlo-Uncertainty-Analysis-for-Nonlinear-Regression.ipynb ) | [](../notebooks/15/Nonlinear-Case-Study-Adsorptive-Membranes.ipynb )| | [](../notebooks/15/Nonlinear-Regression-Practice-Problem.ipynb) | | **Tuesday, December 5** | Design of Experiments | diff --git a/notebooks/assignments/ProblemSet6_F23.ipynb b/notebooks/assignments/ProblemSet6_F23.ipynb new file mode 100644 index 00000000..13fdf59a --- /dev/null +++ b/notebooks/assignments/ProblemSet6_F23.ipynb @@ -0,0 +1,1364 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "facoBRDS39zo" + }, + "source": [ + "# Problem Set 6\n", + "\n", + "CBE 60258, University of Notre Dame. © Prof. Alexander Dowling, 2023\n", + "\n", + "You may not distribution homework solutions without written permissions from Prof. Alexander Dowling.\n", + "\n", + "**Your Name and Email:**" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Motivation: Nonlinear Regression for Adsorptive Nanoporous Membranes\n", + "\n", + "*Contributors:* [Elvis A. Eugene](https://github.com/elvis1090) and [Alexander W. Dowling](https://github.com/adowling2)\n", + "\n", + "Prof. William Phillip has been developing novel adsorptive nanoporous membranes to remove heavy metals from water. He has asked for your help analyzing data to design a water treatment system. \n", + "\n", + "Assume the amount of contaminant (e.g., Pb) that adsorbs to the water treatment membranes can be modeled with the **Langmuir isotherm**:\n", + "\n", + "$$q = \\frac{Q \\cdot K \\cdot c}{1 + K \\cdot c}$$\n", + "\n", + "where $c$ is the concentration of contaminant in the bulk fluid (water), $q$ is the loading of contaminant on the sorbent (membrane), $K$ is the binding affinity and $Q$ is the capacity.\n", + "\n", + "Prof. Phillip's lab has provided us with the following data:\n", + "\n", + "| Contaminant Concentration in Bulk (mM) | Contaminant Loading on Sorbent (mmol/g) |\n", + "| ------ | ------ |\n", + "| 1 | 0.5 |\n", + "| 2.5 | 0.9 |\n", + "| 5 | 1 |\n", + "| 10 | 1.33 |\n", + "| 20 | 1.3 |\n", + "| 40 | 1.4 |\n", + "\n", + "\n", + "In this case study, you will compare three different regression strategies:\n", + "1. Linear Regression after Transformation\n", + "2. Linear Regression after a Different Transformation\n", + "3. Nonlinear Regression\n", + "\n", + "For each strategy, we will follow the same basic steps:\n", + "* Set up the problem, including deriving the transformation (if applicable)\n", + "* Perform the regression calculation\n", + "* Plot the experimental data (with transformed variables if applicable)\n", + "* Plot the experimental data versus fitted model ($q$ vs $c$)\n", + "* Graphically inspect the residuals\n", + "* Compute the covariance matrix for the fitted parameters, transform to the original parameters (if applicable)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "# load libraries\n", + "import numpy as np\n", + "from scipy import optimize, stats, integrate\n", + "import matplotlib.pyplot as plt\n", + "import pandas as pd\n", + "\n", + "# define the data\n", + "c = np.array([1, 2.5, 5, 10, 20, 40]);\n", + "q = np.array([0.5, 0.9, 1.0, 1.33, 1.3, 1.4]);\n", + "\n", + "# number of observations\n", + "n = len(c);\n", + "\n", + "# number of fitted parameters\n", + "p = 2;" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Getting Started\n", + "\n", + "Determine the units of $K$ and $Q$. Hint: $1$ in the denominator of the Langmuir isotherm is dimensionless." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Units for $K$:\n", + "\n", + "Units for $Q$:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Before we run any regression analysis, let's first plot this data. This is a best practice for data science -- first visualize. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Paramter estimation using a transformation and linear regression" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Transformation\n", + "\n", + "We will start our analysis by performing a transformation; this is neccessary to apply linear regression. We start with the Languir isotherm:\n", + "\n", + "$$ q = \\frac{Q \\cdot K \\cdot c}{1 + K \\cdot c}$$\n", + "\n", + "With a little bit of algebra, we obtain:\n", + "\n", + "$$ \\frac{c}{q} = \\frac{c}{Q} + \\frac{1}{Q \\cdot K} $$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Write down the mathematical steps to go from the original isotherm $q=~...$ to the transformed isotherm $c/q =~...~$ on paper. Turn this in on Gradescope." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Linear Regression" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You may be asking yourselves, *how is that model linear*?!? We just need to define our variables and parameters carefully:\n", + "\n", + "$$ \\underbrace{\\frac{c}{q}}_{y} = \\underbrace{\\frac{1}{Q}}_{\\beta_1} \\cdot \\underbrace{c}_{x} + \\underbrace{\\frac{1}{K \\cdot Q}}_{\\beta_0} $$\n", + "\n", + "Recall $x$ is the independent variable, $y$ is the observed variable, $\\beta_0$ is the intercept, and $\\beta_1$ is the slope. With this transformation, we can compute the regression coefficients:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "a2R77zX-8y4C", + "outputId": "11033e35-340c-4cd3-ca3c-8a39519cef16" + }, + "outputs": [], + "source": [ + "# Code for parameter estimation using linear regression\n", + "x = c;\n", + "y = c/q;\n", + "\n", + "slope, intercept, r_value, p_value, std_err = stats.linregress(x, y)\n", + "\n", + "print(\"slope =\",slope)\n", + "print(\"intercept =\",intercept)\n", + "print(\"R-squared:\",r_value**2)\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Alright, we now have estimates for $\\beta_0$ and $\\beta_1$. But we really care about $K$ and $Q$. Let's reverse the transformation.\n", + "\n", + "$$Q = \\frac{1}{\\beta_1}, \\qquad K = \\frac{\\beta_1}{\\beta_0}$$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "## Reverse transformation to obtain Q and K and display results\n", + "Qlin1 = 1/slope;\n", + "Klin1 = slope/intercept;\n", + "print(\"\\nK (linear regression) = {0:0.1f} l/mmol\".format(Klin1));\n", + "print(\"Q (linear regression) = {0:0.1f} mmol/g_membrane\".format(Qlin1));" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Plot Fit and Residuals for Transformed Model\n", + "\n", + "Now we want to visualize the quality of the fit. Because we plan to repeat the regression analysis two more times, we invested in writing functions for the visualization. This means we just need to declare the plotting procedures once and we can reuse them. This is a good programming practice; use functions to maximize code reuse." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "# define a function to plot linearized isotherm \n", + "def plot_linearized_isotherm(x,y,slope,intercept,title):\n", + " ''' \n", + " function to plot the linearized model and residuals\n", + " Arguments:\n", + " x: transformed independent variable (float vector)\n", + " y: transformed independent variable (float vector)\n", + " slope: fitted parameter 1 (float)\n", + " intercept: fitted parameter 2 (float)\n", + " title: keyword in plot title (string). Either 'lin1' or 'lin2'\n", + " \n", + " Returns:\n", + " nothing\n", + " '''\n", + " \n", + " assert (title == 'lin1') or (title == 'lin2'), \"Argument title must be 'lin1' or 'lin2'\"\n", + " \n", + " ## evaluate the best fit line\n", + " # determine the max value of x\n", + " xmax = np.amax(x);\n", + " # define range of x to evaluate the model\n", + " x_span = np.linspace(0,1.2*xmax,50);\n", + " # evaluate the model\n", + " y_hat = slope*x_span + intercept\n", + " \n", + " ## plot the best fit line\n", + " plt.figure()\n", + " plt.plot(x,y,'ro',label = 'data');\n", + " plt.plot(x_span, y_hat, 'k', label='best fit')\n", + " \n", + " if (title == 'lin1'):\n", + " plt.xlabel(\"c (mM)\")\n", + " plt.ylabel(\"c/q (grams membrane / L)\")\n", + " elif (title == 'lin2'):\n", + " plt.xlabel(\"1/c (l/mmol)\")\n", + " plt.ylabel(\"1/q (grams membrane / mmol)\") \n", + " \n", + " plt.grid(True)\n", + " plt.title('Transformed Linear Langmuir Isotherm')\n", + " plt.legend()\n", + " plt.show()\n", + " \n", + " \n", + " ## calculate the residuals\n", + " r = y - (x*slope + intercept);\n", + " \n", + " ## plot the residuals versus concentration\n", + " plt.figure()\n", + " plt.plot(c,r,'ro')\n", + " \n", + " if (title == 'lin1'):\n", + " plt.ylabel('Residual (grams membrane / L)')\n", + " elif (title == 'lin2'):\n", + " plt.ylabel('Residual (grams membrane / mmol)')\n", + " \n", + " plt.xlabel('Equilibrium concentration (mM)')\n", + " plt.grid(True)\n", + " plt.title('Transformed Residuals')\n", + " plt.show()\n", + " \n", + "# End: define a function to linearized isotherm " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Plot linearized isotherm versus data\n", + "# The last argument toggles between the two transformations we'll consider\n", + "plot_linearized_isotherm(x,y,slope,intercept,'lin1')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Write a few bullet points to interpret the scatter plot:\n", + "* Fill in\n", + "* Fill in" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Write a few bullet points interpreting the residual plot:\n", + "* Fill in\n", + "* Fill in" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Ignore this code block\n", + "\n", + "# Add your solution here\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Plot Fit and Residuals for Original Model" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we will define the second function which **plots the fitted Langmuir isotherm** without transformation and **plots the non-transformed residuals**. Notice the function can be directly reused for each regression strategy." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "# define a function to plot Langmuir isotherm\n", + "def plot_original_isotherm(c,q,K,Q,title):\n", + " ''' \n", + " function to plot fitted Langmuir isotherm and data\n", + " Arguments:\n", + " c: independent variable i.e. concentration - experimental data [mM] (float vector)\n", + " q: membrane loading - experimental data [l/gram membrane] (float vector)\n", + " K: fitted parameter [1/mmol] (float scalar)\n", + " Q: fitted parameter [mol/gram membrane] (float scalar)\n", + " title: name of regression to add to title (string)\n", + " Returns:\n", + " nothing\n", + " '''\n", + " \n", + " ## evaluate the model\n", + " # determine maximum value of c\n", + " cmax = np.amax(c);\n", + " # define range of x to evaluate the model\n", + " c_span = np.linspace(0,1.2*cmax,50);\n", + " # evaluate the model\n", + " q_hat = Q*K*c_span / (1 + K*c_span)\n", + " \n", + " # plot the best fit model\n", + " plt.figure()\n", + " plt.title('Langmuir Isotherm')\n", + " plt.plot(c_span,q_hat,'b-',label=\"Fitted Model\")\n", + " plt.plot(c,q,'r.',label=\"Experimental Data\")\n", + " plt.legend()\n", + " plt.grid(True)\n", + " plt.xlabel(\"Concentration (mM)\")\n", + " plt.ylabel(\"Loading (mmol / grams membrane)\")\n", + " plt.show()\n", + " \n", + " ## calculate the residuals\n", + " r = q - Q*K*c/(1+K*c)\n", + " \n", + " ## plot the residuals\n", + " plt.figure()\n", + " plt.plot(c,r,'ro')\n", + " plt.ylabel('Residual (mmol / grams membrane)')\n", + " plt.xlabel('Equilibrium concentration (mM)')\n", + " plt.grid(True)\n", + " plt.title('Residuals from {0} regression'.format(title))\n", + " plt.show()\n", + " \n", + "# End: define a function to plot Langmuir isotherm" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Plot Langmuir isotherm\n", + "plot_original_isotherm(c,q,Klin1,Qlin1,'first transformed')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Write a few bullet points to interpret the scatter plot:\n", + "* Fill in\n", + "* Fill in" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Write a few bullet points to interpret the residual plot:\n", + "* Fill in\n", + "* Fill in" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Ignore this code block\n", + "# Add your solution here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Compute Covariance Matricies\n", + "\n", + "Next, we will compute the **covariance matrix for the fitted parameters $\\beta_0$ and $\\beta_1$**.\n", + "\n", + "We will start by computing the variance of the residuals. Recall the formula is:\n", + "\n", + "$$\\hat{\\sigma}_r^2 = \\frac{1}{n-p} \\sum_{i=1}^{n} (r_i - 0)^2$$\n", + "\n", + "Here $n$ is the number of observations, $p$ is the number of fitted parameters, and $r_i$ is the residual for observation $i$. An interesting property of linear regression is that the mean of the residuals is always zero.\n", + "\n", + "We can write the above formula with linear algebra in one line of code:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# compute the residuals (using the transformed variables)\n", + "r = y - (x*slope + intercept);\n", + "\n", + "# variance of residuals\n", + "var_r = r @ r / (n-p)\n", + "print(\"Variance of residuals =\",var_r,\" (g / L)^2\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Recall from the previous class, `stats.linregress` does not directly compute the covariance of the linear regression parameters. Instead, we need to write the regression problem in matrix notation:\n", + "\n", + "$$\n", + "\\underbrace{\\vec{y}}_{\\mathbb{R}^{n x 1}} = \\underbrace{\\mathbf{X}}_{\\mathbb{R}^{n x m}} \\cdot \\underbrace{\\vec{\\beta}}_{\\mathbb{R}^{m x 1}} + \\underbrace{\\vec{\\epsilon}}_{\\mathbb{R}^{n x 1}}\n", + "$$\n", + "\n", + "Observations: $\\vec{y} = [y_1, y_2, ..., y_n]^T$\n", + "\n", + "Fitted Parameters: $\\vec{\\beta} = [\\beta_0, \\beta_1, ..., \\beta_{m}]^T$\n", + "\n", + "Data / Feature Matrix:\n", + "\n", + "$$\n", + "\\mathbf{X} = \\begin{bmatrix} 1 & x_{1,1} & x_{1,2} & \\dots & x_{1,m} \\\\\n", + "1 & x_{2,1} & x_{2,2} & \\dots & x_{2,m} \\\\\n", + "\\vdots & \\vdots & \\vdots & \\ddots & \\vdots \\\\\n", + "1 & x_{n,1} & x_{n,2} & \\dots & x_{n,m}\n", + "\\end{bmatrix}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For our transformed membrane, the feature matrix is:\n", + "\n", + "$$\n", + "\\mathbf{X} = \\begin{bmatrix} 1 & c_1 \\\\\n", + "1 & c_{2} \\\\\n", + "\\vdots & \\vdots \\\\\n", + "1 & c_{n}\n", + "\\end{bmatrix}\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# feature matrix, a.k.a. data matrix, a.k.a. predictor matrix\n", + "X = np.ones((n,2))\n", + "X[:,1] = c\n", + "print(\"X=\\n\",X)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we will compute the **covariance matrix of the fitted parameters**:\n", + "\n", + "$$\\Sigma_{\\hat{\\beta}} = \\hat{\\sigma}_r^2 (\\mathbf{X}^T \\mathbf{X})^{-1}$$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "# assemble covariance matrix for regression parameters\n", + "cov_b = var_r * np.linalg.inv(X.transpose() @ X)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, we will propagate the covariance matrix of the transformed fitted parameters, $\\mathbf{\\Sigma_{\\vec{\\beta}}}$, to determine the **covariance matrix of the desired isotherm parameters**, $\\mathbf{\\Sigma_{\\vec{\\theta}}}$.\n", + "\n", + "Recall of model transformation:\n", + "\n", + "$$K = \\frac{\\beta_1}{\\beta_0}, \\qquad Q = \\frac{1}{\\beta_1}, $$\n", + "\n", + "We will define the vector of model parameters as $\\vec{\\theta} = [K, Q]^T$." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In anticipation of applying the general nonlinear error propagation formula, we will calculate the following **partial derivatives**:\n", + "\n", + "$$\n", + "\\frac{\\partial K}{\\partial \\beta_0} = -\\frac{\\beta_0}{\\beta_1^2}, \\qquad \\frac{\\partial K}{\\partial \\beta_1} = \\frac{1}{\\beta_0}\n", + "$$\n", + "\n", + "$$\n", + "\\frac{\\partial Q}{\\partial \\beta_0} = 0, \\qquad \\frac{\\partial Q}{\\partial \\beta_1} = -\\frac{1}{\\beta_1^2}\n", + "$$\n", + "\n", + "We can then assemble these gradients into the Jacobian matrix:\n", + "\n", + "$$\n", + "\\mathbf{\\nabla_{\\vec{\\beta}} \\vec{\\theta}} = \\begin{bmatrix}\n", + "\\frac{\\partial K}{\\partial \\beta_0} & \\frac{\\partial K}{\\partial \\beta_1} \\\\\n", + "\\frac{\\partial Q}{\\partial \\beta_0} & \\frac{\\partial Q}{\\partial \\beta_1}\n", + "\\end{bmatrix}\n", + "$$\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Assemble gradient vectors for K and Q\n", + "gradK = np.array([-slope / intercept**2, 1/intercept])\n", + "gradQ = np.array([0, -1/slope**2])\n", + "\n", + "print(\"\\nGradient of K:\",gradK)\n", + "print(\"Gradient of Q:\",gradQ)\n", + "\n", + "# Assemble gradient vector\n", + "jac = np.stack((gradK, gradQ));\n", + "print(\"\\nJacobian Matrix:\\n\",jac)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For this problem, calculating the partial derivates was very straightforward; but for more complex expression, we can use a finite difference approximation. We'll see this later in the case study." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now apply the **general nonlinear error propagation formula**:\n", + "\n", + "$$\n", + " \\Sigma_{\\hat{\\theta}} \\approx \\left( \\mathbf{\\nabla_{\\vec{\\beta}} \\vec{\\theta}} \\right) \\left(\\Sigma_{\\hat{\\beta}} \\right) \\left(\\mathbf{\\nabla_{\\vec{\\beta}} \\vec{\\theta}}\\right)^T$$\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Apply nonlinear error propagation formula\n", + "cov_theta_lin1 = jac @ cov_b @ jac.transpose()\n", + "\n", + "print(\"\\nCovariance of Original Model Parameters (K,Q):\\n\",cov_theta_lin1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Paramter estimation using an alternate transformation and linear regression\n", + "\n", + "We start with the Languir isotherm:\n", + "\n", + "$$ q = \\frac{Q \\cdot K \\cdot c}{1 + K \\cdot c}$$\n", + "\n", + "With a little bit of algebra, we obtain:\n", + "\n", + "$$ \\frac{1}{q} = \\frac{1}{Q} + \\frac{1}{Q \\cdot K} \\cdot \\frac{1}{c} $$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Model Transformation\n", + "\n", + "Identify $x$, $y$, $\\beta_0$, and $\\beta_1$ in the alternate transformed model. Show your work on paper and turn in via Gradescope." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, determine the new formulas to compute $K$ and $Q$ from the new fitted parameters $\\beta_0$ and $\\beta_1$. Show your work on paper and turn in via Gradescope.\n", + "\n", + "Also, typeset the final answer below:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$K = \\frac{?}{?}, \\qquad Q = \\frac{?}{?}, $$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Trust us, writing this down in the notebook will help." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Linear Regression" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Use `stats.linregress` to compute the best fit line. To maximize code reuse, save the results in variables ``slope`` and ``intercept``." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Add your solution here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Compute $K$ and $Q$ from new model. Store your answers in the variances ``Klin2`` and ``Qlin2``.\n", + "" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "## Reverse transformation to obtain Q and K and display results\n", + "# Add your solution here\n", + "print(\"\\nK (alternate linear regression) = {0:0.1f} L/mmol\".format(Klin2));\n", + "print(\"Q (alternate linear regression) = {0:0.1f} mmol/g_membrane\".format(Qlin2));" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Plot Fitted Transformed Model and Residuals" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plot the transformed model and the transformed residuals. Hint: When using the ``plot_linear_isotherm`` function, enter ``'lin2'`` as the fourth argument. This will add the appropraite units to the plot." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Add your solution here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Interpret the plot. Write a few bullet points (sentences) with your observations." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Your Observations:**\n", + "\n", + "1.\n", + "\n", + "2.\n", + "\n", + "3." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Plot Fitted Untransformed (Original) Model and Residuals" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plot the Langmuir isotherm model and the (non-transformed) residuals. Hint: When using the ``plot_original_isotherm`` function, enter ``'first transformed'`` as the fifth argument. This will add the appropriate title to the plot. Also remember to use ``Klin2`` and ``Qlin2``." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Plot Langmuir isotherm\n", + "# Add your solution here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Interpret these plots. Write a few bullet points (sentences) with your observations." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Your Observations:**\n", + "\n", + "1.\n", + "\n", + "2.\n", + "\n", + "3." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Uncertainty Analysis" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Calculate the residuals and store in variable ``r2``." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "# Calculate residuals\n", + "# Add your solution here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Calculate the variance of the residuals. Store in variable ``var_r2``." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# variance of residuals\n", + "# Add your solution here\n", + "\n", + "print(\"Variance of residuals =\",var_r2,\" (g / mmol)^2\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Assemble the feature matrix and store in variable ``X2``." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# matrix of predictors\n", + "# Add your solution here\n", + "\n", + "print(\"X2 =\\n\",X2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Calculate the covariance of the linear regression parameters. Store the result in ``cov_b2``." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# assemble covariance matrix for regression parameters\n", + "# Add your solution here\n", + "\n", + "print(\"Covariance of Transformed (Linearized) Regression Parameters (1/KQ, 1/Q):\\n\",cov_b2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "One paper, re-derive the formulas in the code below for the gradients of $K$ and $Q$ with respect to the new $\\beta_0$ and $\\beta_1$." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "gradK2 = np.array([1/slope, -intercept/slope**2])\n", + "gradQ2 = np.array([-1/intercept**2, 0])\n", + "\n", + "print(\"\\nGradient of K:\",gradK2)\n", + "print(\"Gradient of Q:\",gradQ2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Assemble the gradients into the Jacobian matrix. Store the matrix in ``jac2``. Hint: Look at the documentation for ``numpy.stack``." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Add your solution here\n", + "\n", + "print(\"\\nJacobian Matrix:\\n\",jac2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Apply the multivariate general nonlinear error propagation formulation. Store the covariance matrix of the original model parameters in ``cov_theta_lin2``." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Apply nonlinear error propagation formula\n", + "# Add your solution here\n", + "\n", + "print(\"\\nCovariance of Original Model Parameters (K,Q):\\n\",cov_theta_lin2)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "7RgOIGSI8y4P" + }, + "source": [ + "## Parameter estimation using nonlinear regression" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will now apply nonlinear regression to our problem. First, we need to define a function to evaluate the model." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Define Model" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Fill in the missing line in ``model_func`` below." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "KZDSoDG68y4Q", + "tags": [] + }, + "outputs": [], + "source": [ + "## Code for parameter estimation using nonlinear regression\n", + "\n", + "# define function for the model being fitted\n", + "def model_func(theta, c):\n", + " '''\n", + " Function to define model being fitted\n", + " Arguments:\n", + " theta: parameter vector (K, Q)\n", + " c: concentration(s) to evaluate (scalar or vector)\n", + " Returns:\n", + " qhat: predicted loading(s), (scalar or vector)\n", + " '''\n", + " # Add your solution here\n", + " return qhat\n", + "# End: define function for the model being fitted" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next we need to define a function to calculate the residuals for each data point." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Fill in the missing line in ``regression_func`` below." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "# define function to return residuals of model being fitted\n", + "def regression_func(theta, c, q):\n", + " '''\n", + " Function to define regression function for least-squares fitting\n", + " Arguments:\n", + " theta: parameter vector\n", + " c: concentration(s) to evaluate (vector)\n", + " q: loading(s) to fit (vector)\n", + " Returns:\n", + " ls_func: evaluation of loss function\n", + " '''\n", + " qhat = model_func(theta,c)\n", + "\n", + " # Add your solution here\n", + " return r\n", + "# End: define function to return residuals of model being fitted" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Estimate Parameters" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Use the function ``scipy.optimize.least_squares`` to compute the best fit. Store the results in the variable ``theta_fit``." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "Or9TLw108y4R", + "outputId": "789b0deb-1128-4616-a2ba-2c87a087b38b" + }, + "outputs": [], + "source": [ + "# Perform nonlinear parameter estimation\n", + "\n", + "# initial guess\n", + "theta_guess = np.array([1, 1])\n", + "\n", + "# nonlinear regression\n", + "# Add your solution here\n", + "\n", + "# Extract fitted parameters and display results\n", + "Knl = theta_fit.x[0]\n", + "Qnl = theta_fit.x[1]\n", + "print(\"\\nK (nonlinear regression) = {0:0.1f} l/mmol\".format(Knl));\n", + "print(\"Q (nonlinear regression) = {0:0.1f} mmol/g_membrane\".format(Qnl));" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Visual Regression Diagnostics" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plot the fitted model and residuals. Hint: Use the function ``plot_original_isotherm``. Enter ``'nonlinear'`` as the fifth argument." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Add your solution here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Interpret these plots. Write a few bullet points (sentences) with your observations." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Your Observations:**\n", + "\n", + "1.\n", + "\n", + "2.\n", + "\n", + "3." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Uncertainty Analysis" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will complete the nonlinear regression analysis by estimating the covariance of the fitted parameters $\\mathbf{\\Sigma}_{\\vec{\\theta}}$." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Calculate the residuals and store in ``r3``. Next calculate the variance of the residuals and store in ``var_r3``." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "nlFmoMsa8y4U", + "outputId": "ccebcf56-469f-4173-bff9-7c61f56fc15c" + }, + "outputs": [], + "source": [ + "# Calculate residuals. Hint: use model_func\n", + "### BEGIN SOLUTON\n", + "# calculate residuals\n", + "r3= q - model_func(theta_fit.x, c)\n", + "### END SOLUTION" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Calculate the variance of the residuals\n", + "# Add your solution here\n", + "\n", + "print(\"Variance of the residuals: \",var_r3,\"(mmol/g)^2\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Recall from the previous class the covariance matrix for nonlinear regression has a similar formula to the linear regression case:\n", + "\n", + "$$\\mathbf{\\Sigma_{\\vec{\\theta}}} \\approx \\hat{\\sigma}_r^2 (\\mathbf{J}^T \\mathbf{J})^{-1}$$\n", + "\n", + "where $\\mathbf{J}$ is the Jacobian of the residuals w.r.t. $\\vec{\\theta}$:\n", + "\n", + "$$\n", + "J_{i,j} = \\frac{\\partial(y_i - \\hat{y}_i)}{\\partial \\theta_j}\n", + "$$\n", + "\n", + "This IS NOT the same Jacobian matrix for nonlinear error propagation. Does this formula look familar? Recall, for LINEAR REGRESSION, the covariance estimate is:\n", + "\n", + "$$\\Sigma_{\\hat{\\beta}} = \\hat{\\sigma}_r^2 (\\mathbf{X}^T \\mathbf{X})^{-1}$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Compare the nonlinear regression and linear regression covariance formulas. On paper, compute the elements of the Jacobian matrix for a linear model using $\\vec{\\theta} = \\vec{\\beta}$. How are $\\mathbf{J}$ and $\\mathbf{X}$ related? Discuss then write one sentence." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Discussion**:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Luckily, `optimize.least_squares` computes this Jacobian for us automatically." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(\"J =\\n\",theta_fit.jac)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Compute the covariance matrix $\\mathbf{\\Sigma_{\\vec{\\theta}}}$. Store your answer in ``cov_theta_nl``." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# assemble covariance matrix\n", + "# Add your solution here\n", + "# plot Langmuir isotherm\n", + "print(\"Covariance Matrix of Original Model Parameters (K,Q):\\n\",cov_theta_nl)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Comparison of Three Regression Approaches\n", + "\n", + "**First Transformation + Linear Regression**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(\"\\nK (linear regression) = {0:0.3f} l/mmol\".format(Klin1));\n", + "print(\"Q (linear regression) = {0:0.3f} mmol/g_membrane\".format(Qlin1));\n", + "\n", + "print(\"\\nCovariance of Original Model Parameters (K,Q):\\n\",cov_theta_lin1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Second (Alternative) Transformation + Linear Regression**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(\"\\nK (alternate linear regression) = {0:0.3f} L/mmol\".format(Klin1));\n", + "print(\"Q (alternate linear regression) = {0:0.3f} mmol/g_membrane\".format(Qlin2));\n", + "\n", + "\n", + "print(\"\\nCovariance of Original Model Parameters (K,Q):\\n\",cov_theta_lin2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Nonlinear Regression**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(\"\\nK (nonlinear regression) = {0:0.3f} l/mmol\".format(Knl));\n", + "print(\"Q (nonlinear regression) = {0:0.3f} mmol/g_membrane\".format(Qnl));\n", + "\n", + "print(\"\\nCovariance Matrix of Original Model Parameters (K,Q):\\n\",cov_theta_nl)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nbgrader": { + "grade": false, + "locked": false, + "solution": false + } + }, + "source": [ + "Write at least a one sentence answer for each of the following discussion questions.\n", + "" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Discussion**:\n", + "1. *How many significant figures are we estimating for $Q$ and $K$ based on the original data?* **Answer:** Fill in here...\n", + "2. *Do the three regression strategies give the same or different estimates for $K$ (within reasonable significant figures)?* **Answer:** Fill in here...\n", + "3. *Do the three regression strategies give the same or different estimates for $Q$ (within reasonable significant figures)?* **Answer:** Fill in here...\n", + "4. *Do the three regression strategies give the same estimate for uncertainty (covariance)?*\n", + "5. *Which regression technique is best suited for this problem?* **Answer:** Fill in here..." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Statistical Power\n", + "\n", + "As part of Problem Set 6, also complete the old exam questions on statistical power (posted on Canvas and handed out in class). Submit via Gradescope." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + } + ], + "metadata": { + "colab": { + "name": "final_project_solutions.ipynb", + "provenance": [], + "version": "0.3.2" + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.16" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} From 8720ad962e5f18ac4570892beceed89135bb4983 Mon Sep 17 00:00:00 2001 From: pratham2110 <119166522+pratham2110@users.noreply.github.com> Date: Wed, 6 Dec 2023 01:45:33 -0500 Subject: [PATCH 4/4] Add files via upload --- .../Wastewater-Treatment-Mass-Balance.ipynb | 270 ++++++++++++++---- 1 file changed, 211 insertions(+), 59 deletions(-) diff --git a/notebooks/contrib-dev/Wastewater-Treatment-Mass-Balance.ipynb b/notebooks/contrib-dev/Wastewater-Treatment-Mass-Balance.ipynb index 87fcc4f8..0b2c2453 100644 --- a/notebooks/contrib-dev/Wastewater-Treatment-Mass-Balance.ipynb +++ b/notebooks/contrib-dev/Wastewater-Treatment-Mass-Balance.ipynb @@ -9,6 +9,8 @@ "# Example of Mass Balance Problem in Wastewater Treatment Units\n", "Prepared by Annabelle Li (ali7@nd.edu) and Audrey Hansrisuk (ahansris@nd.edu)\n", "\n", + "Edited by Pratham Singh (psingh4@nd.edu)\n", + "\n", "**Reference:** Chapter 4 in *Elementary Principles of Chemical Processes*, 4th ed., Felder, R.M.; Rousseau, R.W.; Bullard, L.G. (2015), **Question 4.44**\n", "\n", "**Objectives:**\n", @@ -18,7 +20,7 @@ "3. Use Python to scale a system up/down.\n", "4. Use matplotlib to plot and visualize data.\n", "\n", - "**Target Audience:** Chemical engineering undergraduate students. \n", + "**Target Audience:** Chemical engineering undergraduate students.\n", "\n", "**Helpful Notebooks to Reference:**\n", "\n", @@ -39,7 +41,7 @@ "id": "4NpAxbJSZvrT" }, "source": [ - "#Wastewater Treatment Problem" + "#Overview: Wastewater Treatment Problem" ] }, { @@ -49,8 +51,7 @@ }, "source": [ "Effluents from metal-finishing plants have the potential of discharging undesirable quantities of metals, such as cadmium, nickel, lead, manganese, and chromium, in forms that are detrimental to water and air quality. A local metal-finishing plant has identified a wastewater stream that contains 5.15 wt% chromium (Cr) and devised the following approach to lowering risk and recovering the valuable metal. The wastewater stream is fed to a treatment unit that removes 95% of the chromium in the feed and recycles it to the plant. The residual liquid stream leaving the treatment unit is sent to a waste lagoon. The treatment unit has a maximum capacity of 4,500 kg wastewater/h. If wastewater leaves the finishing plant at a rate higher than the capacity of the treatment unit, the excess (anything above 4,500 kg/h) bypasses the unit and combines with the residual liquid leaving the unit, and the combined stream goes to the waste lagoon.\n", - "\n", - "![](data:image/png;base64,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fvyJLVm8OPQoAACAU4PgFgAAAAAyYfXq1TZ40CDbsWNH6Bazffv22by5c232rNmhWwAAAE4NglsAAAAAyIRNGzfatu3bQz/9Yt/+fbZt29bQT6dfYmKibd682WJiYkK3JElISLDFixZZr6++simTJ/vPZ6pdu3bZtKnTbNDAgdand2/r801vG/DzzzZzxgzbumWLj0HY8uXLbf68+ad8e7cH+/qnH3/0qmqF83pN9TPetGmTDR82zL7v18/XJSu2bdtmcbFxtn///tAtp47W7/Dhw8f8ohfz2Uf7PL1jIfzFMQFEvmzBicqZCgAAACDijR0zxv725JO2IX5D6BazosWKWe++fa16jeqhW06fRQsX2l133pnq9aVkyZJ27/332a233x665fRRL12Nw6gRI+3Ciy+yJk2b2tzZs23atOk2d84ci4uLtT179trd99xj3Xv0sPwF8oeeGfkOHTrkwezAAQNs9qxZtn37DjsUbK8CJsuWzbJnz265oqKsQMECVrVaNWvcpIkVKFDQxowebTVr1LA/3HO3FS1aNLS0k6PXVHD8j6eesrx589p1119vhQsXtsmTJtnC4DjYvGmTNWjUyP4e3F+5SuXQs45vTcwa6/fdt1ahQkW74KILrVChQqF7To5C2+/79/f+y2E+XrlyWfYcOaxaMF53/OFOq1evXuhenA2GDhli77/3fvDdEUs8nGgJCfstnABVqlTJbrvzDmvXrl3SDQAiEhW3AAAAAJAJNWvVssuvuMIDsbCoqCir36CBdezUKXTL6aPQ9qsvvvRwTq/XqnVr27F9h61fH2/bt22zmNWrLXZNrH9/8MABOxL870yhNhT/evY5e+yRR63ft9/5zw3q17c/Pf5n++izT63f9/3tw48/tnvvv99Kly5jUyZNtrdef8P+++9/2/ixY23T5k2pqnBPlsZ61syZFhcba/ny5rXCRYp4hXN0dLRFL19uGzdutH1791rikay9ZvkK5f0Ymj9/nn3y0cdexX0qaqm0jO3btvu6xa5ZYxUqVLCn/vEPe++D9+39Dz+wvz/9lNWsWTP0aJwtOnXu7Pv//Q8/tHfff88eePBBf2/QcbImOJ737N4deiSASEVwCwAAAACZoJD24UcftWeee86at2hu9evXt9vuuMP+8ewzXgF6Oh04cMBeffkV++yTT+zGm27yas08efJYhYoV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WBARERERERERERFZGAa3RERERERERERERBaGwS0RERERERERERGRhWFwS0RERERERERERGRhGNwSERERERERERERWRgGt0REREREREREREQWhsEtERERERERERERkYVhcEtERERERERERERkYRjcEhEREREREREREVkYBrdEREREREREREREFsbqY4PpbzK5fPmyXLhwQU6ePCmrV66SNatXy66duyQxMVGcnJ3F1tZWihUrZrr39bl06ZKcO3fOeP6dsnrVauOySkKOHtXbSpcpI8WLFy/wa6Wlpenl/PnzV12Sk5Nl44YNsnvXLilbtqzY29ubHpUz8zwIOBIgIcdCxNl43zY2NqZb83fBeM1zxrSkp6fnOD3h4eHy268TpXWb1qZH5A/ThPl18eJFiYmJkcULF8qc2bPFzc1d3D3cTfe6PZjfS0pKihw5ckTWrlmr69m6NWtkx7btEhwcpPPO0clJ1wFITU017rNGzqWeEw9PD73uRsByXrduncycPl0OHjwoFXx9dVnj+sCAAJk1Y6ZsWL9OatWurev+3SYpKUm2b9smh4x5k1X7e+/VeVKiRAnTNURERIVz6tQpWWt8t58+fVoaN24szVu04PcK3RL4XYn9Alx8fHyM3+RtxMvLy3QrERERWYpil5EgUSaEguFh4fLLhPGyft16qVjRV+rVbyBnzsTpDxtbWzsZOHiQdO7SRVxcXK4rwEVot2rFSvn9t98kOjpa2t1zj3i4u4u/v78cPnRIGjdpIk89/bTUrpN/OJQQnyCvvPSShrO5KVOmjLzz/nvyQNeuuQZwCBPxQ+5YSIj8O+tfWbpkiTFd7eSlV16RcuXKme6Vt4T4ePnrzz9l4q+/ytmks6Zrr4T51qNXT/nmu+9M1+QP82T9unXGe9yoQTeCzfLly8vor7+WZs2bme5l+RDUh4WGyoJ582XZsqVy8sRJsba2lpIlS+r/4YKxHqanpYmVlZXUb1DfuDSU2NhY2bJ5szz/wgvSp19fvd+NEBUVJaNHjZJlS5bqutGu/T0aUq5bu1ZCjobosmrRsqV8N3aMrkN3m4iICBk3ZqwG21l9NGKE9BvQX+zs7EzXEBERFc6+ffvko/c/EP8DB2ToM8/IS6++ku/BdaIbIS4uTn6dMMG4/CJNmzWTt4YPl4aNGppuJSIiIkvBVglZILQ8aPxw/t8rr8ii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PbRaGZWimH5UK6NCGFWj6MfbzPhB23/AAK18RVXqjYJ2BQjpMa+w/NCqA+sBqqZRHXuj5hvWCbwntC+4FaEtJCUmyQ9jx8qG9Ru08rxylSpace1lvFffir7672rGPEZVcO06dYydhUbSuUsX6fLA/XLWWC5ERERERERERHczBrd010HF519//ikBAQHi7uamAXtBpKakSvHiGYOMUf5Wr14lSxcv0XmmrSjy6LFshqAaA7fVr9/AIqptiYiIiIiIiIiKCpMRuuskxMfLIf+DGuAGBwfpAFn5CQsLkxEffyyNGjfRSlHKHwZ0Q/9dDJS2c/sObYWQF7SjmDjhFx24rHuPB03XEhERERERERHdnRjc0l3H0clJvLy9tK/qgf0H5K033pAfx43TAeLQb1b79aalScTJk7Jm9Wr58P0P5PHBg3WAtSFDny5QuwwSHcTOqriVxJ85I+PGjJH3331X1q5dK7GxsTrvcYkz/sYge+N/+kkGPfKIbNiwQd5+550CV0ETEREREREREd2pGNzSXQe9Y99+511p3KSJnpofcjREvvvmW+nZ/UFpULee1KlRU+rVqi3t27aT554ZJrt37ZThw4fLm2+/xQFDCqFf/wHyxFNP6uBdGEBv9qx/5eknnpQWTZpK3Zq19NKiaTMZ0LefTPrtd2nVurWM/fEHrWi2pJ7IRERERERERERFgcEt3XUQClavUV1++Pkneff993XgrLJly0oZV1dxcXHRgeEw2NuDPXrId2PHyrQZM+W+Bx5gz9VCsnewl9feeEPG/vij9OjZM2OAPzc3HbAOVc/uHh4a1r7x1lsyc85s+d/rr+sgfUREREREREREJFLsMs4LJ7qLXbp0SVJSUiQ6OlrS09LFuZSzuLq6SsmSJU33oBsBPW5jY2IkMTFRbGxtxc3NTaufLb26NiIiQsaNGSszp083XZPhoxEjpN+A/lpRTEREdC327dsnH73/gfgfOCBDn3lGXnr1FZ7dQ7dEXFyc/DphgnH5RZo2ayZvDR8uDRs1NN1KREREloIlhHTXQyWto6OjVKpUSStxvby8GNreBJinXt7exjyuIRUrVtR5bumhLRERERERERFRUWFwS0RERERERERERGRhGNwSERERERERERERWRgGt0REREREREREREQWhsEtERERERERERERkYVhcEtERERERERERERkYRjcEhEREREREREREVkYBrdEREREREREREREFobBLREREREREREREZGFYXBLREREREREREREZGEY3BIRERERERERERFZGAa3RERERERERERERBaGwS0RERERERERERGRhWFwS0RERERERERERGRhGNwSERERERERERERWRgGt0REREREREREREQWhsEtERERERERERERkYVhcEtERERERERERERkYRjcEhEREREREREREVkYBrdEREREREREREREFobBLREREREREREREZGFYXBLREREREREREREZGEY3BIRERERERERERFZGAa3RERERERERERERBaGwS0RERERERERERGRhWFwS0RERERERERERGRhGNwSERERERERERERWRgGt0REREREREREREQWhsEtERERERERERERkYVhcEtERERERERERERkYRjcEhEREREREREREVkYBrdEREREREREREREFobBLREREREREREREZGFYXBLREREREREREREZGEY3BIRERERERERERFZGAa3RERERERERERERBaGwS0RERERERERERGRhWFwS0RERERERERERGRhGNwSERERERERERERWRgGt0REREREREREREQWhsEtERERERERERERkYVhcEtERERERERERERkYYpdNpj+JiKibCIiImTcmLEyc/p00zUZPhoxQvoN6C92dnama4iIiApn37598tH7H4j/gQP67+o1akiJEiX0b6KbKTk5WY6FhOjfTZs1k7eGD5eGjRrqv4mIiMhyMLglIsoDg1siIrpZsge3REUBwe3b7wyXBg0Z3BIREVkaBrdERHlgcEtERDdLYECA/DBunAQHBpmuofwkpyTLqahTcuHCBdM1IlZWVlK+fHkpWbKk6RoqjLr16sqTTz8tNWrUMF1DREREloLBLRFRHhjcEhERWY51a9fKu8OHa3hrVrpMGZk2Y4ZUrlLZdA0RERHRnYGDkxERERERERERERFZGAa3RERERERERERERBaGwS0RERERERERERGRhWFwS0RERERERERERGRhGNwSERERERERERERWRgGt0REREREREREREQWhsEtERERERERERERkYVhcEtERERERERERERkYRjcEhEREREREREREVkYBrdEREREREREREREFobBLREREREREREREZGFYXBLREREREREREREZGEY3BIRERERERERERFZGAa3RERERERERERERBaGwS0RERERERERERGRhWFwS0RERERERERERGRhGNwSERERERERERERWRgGt0REREREREREREQWhsEtERERERERERERkYVhcEtERERERERERERkYRjcEhEREREREREREVkYBrdEREREREREREREFobBLREREREREREREZGFYXBLREREREREREREZGEY3BIRERERERERERFZGAa3RERERERERERERBaGwS0RERERERERERGRhWFwS0RERERERERERGRhGNwSERERERERERERWRgGt0REREREREREREQWhsEtERERERERERERkYVhcEtERERERERERERkYRjcEhEREREREREREVkYBrdEREREREREREREFobBLREREREREREREZGFYXBLREREREREREREZGEY3BIRERERERERERFZGAa3RERERERERERERBaGwS0RERERERERERGRhWFwS0RERERERERERGRhGNwSERERERERERERWRgGt0REREREREREREQWhsEtERERERHRdbp48aKkp6fr5dKlS6ZriYiIiK4dg1siIiIiIqJrhJA2/swZ2bVzp8ycPkPmz50nRw4flpSUFLl8+bLpXkRERESFx+CWiIiIiIjoGiCYjYuNlb//+kteefEl+eiDD+Td4cPlrdffkJXLV0hqSorpnkRERESFx+CWiIiIiIjoGly4cEEO7D+glbbR0dF6HSpwAwICZM7s2XLy5Em9joiIiOhaMLglIiIiIiK6BuhnGxISIqdPnzZdkwGVuGGhoZKQkGi6hoiIiKjwGNwSERERERFdg2LFikmJEtZiZWVluuY/JUqWMK6/dbtbCIsTEhIkNTXVdE0GVACfOnVKe/Ci964lwTRHRUbKnt27xf/AAUlOTtbrUckcHhYuWzZtvioULwj0HMa8ICIiut0xuCUiIiIiIroGJUuWlJq1akmVqlU1xDWzsbGRBg0airu7u+mamwuVv/4H/GXRwoVyIvyEnDt3ToICA2XFsuXy28SJ8t0338hXo7+UlStWmB5hGTCA2wpjmr79+huZOWOm7N61S5YtXSq/Tpgg33z9tV6OBgeb7l1wYWHhMmPadAk9Hmq6hoiI6PbE4JaIiIiIiOgaWFtbS42aNeXJIU9Jm7ZtxcfHRyr5+cmDPXtI/4cGiIen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mTJlTNdYPlSwYvAytB2wtbXNbD+AgDQwIFCWLF4sFX0rakVt6dKl82xPgNYKlfz8xMbWRsJCQ7X/rZu7u+nW64NqX4SyGAQtJibG+D10SAIDA+V4yDEJCgzS30cIjLdu2SJrV6+R1atW6+BkHTp00DDZxsbG9Ey31pEjR2Tb1m1y3/33S2djOjCPiYiIbkcMbomI8sDgloiIyHLcCcEtKlWn/zNNZs2cJUeDj2q46erqqq0IwsPDZd6cuZKanCx9+veT6tWr6yBl+UEwicHAfHx8pIzxXJgnNwKmCaFwKRcXraxNSEjQyts9e/bI5k2bZMP6Dfo76fjxUP1N1LBRQ+ndp4+0aNWySMPS9LR0qd+gvtStW5c9bYmI6LZW7PKN7mBPRHQHiYiIkHFjxsrM6dNN12T4aMQIPTXxRu0YERERUf7WrV0r7w4fLqeiTpmuEe0DO23GDKlcpbLpGsuWnp4uo0eNkn+mThVrK2s9ENy0WVNxdi6lwai1tZU0b95CGjRqaDG/MzDNR48elaNBwRIVFSnx8QmSnpamA6i5upaRsl5e4luxog5IZmfP30ZEREQ3CoNbIqI8MLglIiKyHHdCcIvdr+CgINm2bZscCwnR6lC0NvD29hYPT099H2WN/1tb6Fk9Fy5c0PYJqBxG/11U1hakKpiIiIgKj4OTERERERER3SLoV1u1WjXpP2CAPPv88/L8Sy/KoMGDpNuD3aVtu7ZSrlw5iw1tASGtk5OTtqZwdHRkaEtERHQTMbglIiIiIiK6xdDb1t3dXby8vMTVzU3s7e21pywRERGRGX8ZEBEREREREREREVkYBrdEREREREREREREFobBLREREREREREREZGFYXBLREREREREREREZGEY3BIRERERERERERFZGAa3RERERERERERERBaGwS0RERERERERERGRhWFwS0RERERERERERGRhGNwSERERERERERERWRgGt0REREREREREREQWhsEtERERERERERERkYVhcEtERERERERERERkYRjcEhEREREREREREVkYBrdEREREREREREREFobBLREREREREREREZGFYXBLREREREREREREZGEY3BIRERERERERERFZGAa3RERERERERERERBaGwS0RERERERER5eny5cty6dIl/T8REd0aDG6JiIiIiIiIKEcXL16UuLg42bxp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)" + "\n" ] }, { @@ -87,7 +88,9 @@ "outputs": [], "source": [ "import numpy as np\n", - "import matplotlib.pyplot as plt" + "import matplotlib.pyplot as plt\n", + "from matplotlib.ticker import MaxNLocator\n", + "from matplotlib.ticker import FormatStrFormatter\n" ] }, { @@ -101,10 +104,12 @@ "\n", "**Answer:**\n", "\n", - "Degrees of Freedom (DOF) for each point, where $DOF = unknowns - equations$.\n", + "Degrees of Freedom (*DOF*) for each point is given by:\n", "\n", + "*DOF* = (Number of Unknown Variables) - (Number of Equations)\n", "\n", - "* Overall process: $DOF = 2$ \n", + "\n", + "* Overall process: $DOF = 2$\n", "* Treatment unit: $DOF = 2$\n", "* Mixing point 1: $DOF = 1$\n", "* Mixing point 2: $DOF = 3$\n", @@ -117,7 +122,7 @@ "id": "Qmg6B5wzyqKb" }, "source": [ - "![Flowchart.png](../../media/waster_water_process.png)" + "![Flowchart.png](https://ndcbe.github.io/data-and-computing/_images/waster_water_process.png)" ] }, { @@ -127,7 +132,7 @@ }, "source": [ "## 2. Mathematical Model to Solve for Unknowns\n", - "Propose a mathematical model in to solve for all unknowns. Assume $m_{1}$ = 6,000 kg/h. First, develop a model to solve for the molar flow rates, and then develop another model to solve for the mass fractions. *Hint: Use matrices to develop the mathmetical models, thinking of it in the form of $\\mathbf{A}x=b$. Refer to this [Notebook](https://ndcbe.github.io/data-and-computing/notebooks/04/Modeling-Systems-of-Linear-Equations.html) for additional information. These models will then be solved separately in Question 3 to keep all equations linear.*" + "Propose a mathematical model to solve for all unknowns. Assume $m_{1}$ = 6,000 kg/h. First, we will develop a model to solve for the molar flow rates, and then write another model to solve for the mass fractions. *Hint: Use matrices to develop the mathematical models, thinking of it in the form of $\\mathbf{A}x=b$. Refer to this [Notebook: Modeling Systems of Linear Equations](https://ndcbe.github.io/data-and-computing/notebooks/04/Modeling-Systems-of-Linear-Equations.html) for additional information. These models will then be solved separately in Section 3 to keep all equations linear.*" ] }, { @@ -168,16 +173,16 @@ "0 & 1 & 0 & 0\\\\\n", "0 & 1 & 1 & 0\\\\\n", "0 & 1 & 0 & 1\n", - "\\end{bmatrix} \\cdot \n", + "\\end{bmatrix} \\cdot\n", "\\begin{bmatrix}\n", "\tm_3 \\\\\n", "\tm_4 \\\\\n", "\tm_5 \\\\\n", "\tm_6\n", - "\\end{bmatrix} = \n", + "\\end{bmatrix} =\n", "\\begin{bmatrix}\n", - "\tm_1 - m_2 \\\\\n", - "\t0.95m_2\\times x_{2,Cr} \\\\\n", + "\t(m_1 - m_2) \\\\\n", + "\t(0.95m_2\\times x_{2,Cr}) \\\\\n", "\tm_2 \\\\\n", "\tm_1\n", "\\end{bmatrix}\n", @@ -206,16 +211,16 @@ "-m_5 & m_6 & 0 & 0\\\\\n", "1 & 0 & 1 & 0\\\\\n", "0 & 1 & 0 & 1\n", - "\\end{bmatrix} \\cdot \n", + "\\end{bmatrix} \\cdot\n", "\\begin{bmatrix}\n", "\tx_{5,Cr} \\\\\n", "\tx_{6,Cr} \\\\\n", "\tx_{5,H_{2}O} \\\\\n", "\tx_{6,H_{2}O}\n", - "\\end{bmatrix} = \n", + "\\end{bmatrix} =\n", "\\begin{bmatrix}\n", - "\tm_2\\times x_{2,Cr} - m_4\\times x_{4,Cr} \\\\\n", - "\tm_3\\times x_{3,Cr} \\\\\n", + "\t(m_2\\times x_{2,Cr}) - (m_4\\times x_{4,Cr}) \\\\\n", + "\t(m_3\\times x_{3,Cr}) \\\\\n", "\t1 \\\\\n", "\t1\n", "\\end{bmatrix}\n", @@ -244,7 +249,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 27, "metadata": { "id": "EfAffa805hcr" }, @@ -289,18 +294,18 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 28, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "sDPOeqB_Nir1", - "outputId": "6fd6800f-b8c7-4020-b001-9d5abc9a0238" + "outputId": "6ae20840-9843-46c8-ea1b-14bea5bf9b5d" }, "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "The mass flows are:\n", "m3 = 1500.0 kg/h\n", @@ -325,7 +330,8 @@ "for i in range(len(m_flow)):\n", " print(f\"m{i+3} = {m_flow[i]:.1f} kg/h\")\n", "\n", - "### END SOLUTIONS" + "### END SOLUTIONS\n", + "" ] }, { @@ -335,23 +341,23 @@ }, "source": [ "###3b. Matrix Rank and Condition Number\n", - "What is the rank and condition number of the A matrix in your mathematical model? Print your answers to the screen. *Hint: Refer to this [Notebook](https://ndcbe.github.io/data-and-computing/notebooks/04/Condition-Number.html) for notes on matrix rank and condition number.*" + "What is the rank and condition number of the A matrix in your mathematical model? Print your answers to the screen. *Hint: Refer to this [Notebook: Errors in Linear Systems](https://ndcbe.github.io/data-and-computing/notebooks/04/Condition-Number.html) for notes on matrix rank and condition number.*" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 29, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "lWUa2YcET1bT", - "outputId": "7935fb26-6ca6-4cc5-b474-d707470a0ed7" + "outputId": "73b52df6-6f3b-4364-e42f-446ff890ed35" }, "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "Rank = 4\n", "Condition number = 3.7320508075688776\n" @@ -359,10 +365,12 @@ } ], "source": [ + "\n", "### BEGIN SOLUTIONS\n", "print(\"Rank =\", np.linalg.matrix_rank(A))\n", "print(\"Condition number =\", np.linalg.cond(A))\n", - "### END SOLUTIONS" + "### END SOLUTIONS\n", + "" ] }, { @@ -388,24 +396,24 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 30, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "ah3zor5qJENL", - "outputId": "4c2aa300-05c1-4796-b2c4-c88c0b943a40" + "outputId": "73c19cba-1699-4d38-9328-ed3de3b936d9" }, "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "The mass fractions are:\n", "x5_Cr = 0.00271 kg Cr/kg\n", - "x6_Cr = 0.03119 kg Cr/kg\n", + "x6_Cr = 0.01537 kg Cr/kg\n", "x5_H2O = 0.99729 kg H2O/kg\n", - "x6_H2O = 0.96881 kg H2O/kg\n" + "x6_H2O = 0.98463 kg H2O/kg\n" ] } ], @@ -458,37 +466,35 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 43, "metadata": { "colab": { "base_uri": "https://localhost:8080/", - "height": 290 + "height": 624 }, "id": "HwGsxSuSko6T", - "outputId": "5ff88d7e-4260-497f-dea4-2397d4e2c6ed" + "outputId": "ee8d79b7-8c12-4166-d2cd-47987487364a" }, "outputs": [ { + "output_type": "display_data", "data": { - "image/png": "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", "text/plain": [ - "
" - ] + "
" + ], + "image/png": "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G1tVbteuXSVnIJRq1TH35b5+/fp2W7jaGm+++SaWLl1qMo7ngw8+wJgxY/RJ8qhRo9C6dWt89tln2LlzJ65fv45KlSqhfv36GDRoEF588UWziyibU5Jrdp06dbB9+3YcPXoUP//8M/bt24cLFy7g3r17UKvV8PX1Ra1atRAREYHo6Gj06NHDrp9jhRAyjB61QNfUpnuaNm3aYPv27fpfVdLS0tCrVy8cPXrUaM2e4ODgEq+hQkREREREZPfubV9//bXRIqSHDx/GI488guzsbFy7dg2dO3c2SXh0vyYSERERERGVlN1begDg+++/x+jRo6HRaCCEgEKhQHR0NK5du4ZLly4ZJTxt2rTBpk2bLK46TEREREREZK1SSXoA7Yw6I0aMgFqt1ic+un8BbcLTo0cP/PrrrxWiDzEREREREZWOUpm9DdDOlPXzzz9DpVIZJTxCCAghMGzYMPzxxx9MeIiIiIiISFallvQAQP/+/fHrr7/Czc3NKPGZOHEifvjhB6hUpTaZHBERERERVRCydm/r1q2bVcedOXNGv1iph4cH2rdvb1oxhQI7duyQq2pERERERFRByZr0KJVKqxd30z2t1PG6FiA5120gIiIiIqKKyS79yazJowyTHcPjy/qK2EREREREVL7YJemxNXFhokNERERERPYia9JTu3ZtJjBERERERFSmlNo6PURERERERI5QqlNWExERERERlTZZk54nn3wSK1euxN27d+UsloiIiIiIqNjsMmW1i4sLOnTogCeeeAJPPPEE6tSpI9dTUDE9ePAAJ0+eBABUq1aNC8ESERERlTEFBQW4desWAKBJkybw8PBwcI2ch+xJj75ggwkNmjRpok+AmjdvLtfTkQ3+/vtvtG3b1tHVICIiIiIrHDp0CG3atHF0NZyGrN3bjh07hunTp6N58+YQQuhvJ0+exMyZM9GqVSuEhoZi4sSJ2LlzJzQajZxPT0REREREZMJus7dduXIF69evx4YNG/DXX3+hoKBA+4QGLUB+fn7o06cP+vXrh0ceeQReXl72qAoBSEpKQt26dQFofzmoWbOmg2vkXC5fvoyOHTsCAPbs2cMunU6EsXVOjKvzYmydV0WI7fXr1/U9cy5duoTQ0FDHVsiJ2G1gR+3atTFhwgRMmDABd+/exe+//44NGzZgy5YtyM7OBgDcvXsXP/zwA3744Qe4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G6hdW956EREZKrWkx1wiwxYdIiKi8kkIbZe24iY8gHYcT61a8tWJiEiK3ZOezp07m01s8vLykJycjGvXrkGj0UChUMDd3R3t2rWzd7WIiIiohOLizI/hsdaZM8CuXUBMjBw1IiKSZvekJy4urshjLl26hHfeeQc//PADcnNz0a9fP0yaNMneVSMiIqISWLxYvnKY9BCRPZWJKavr1q2LlStX4pFHHoEQAq+//jpOnz7t6GoRERGRGRkZwLp18pT166/a8oiI7KVMLU46YMAA/PnnnygoKMCnn36Kb7/91tFVIrKKm5sbmjdv7uhqkB0wts6JcS25lBTtNNRyUKuBq1eNFy8tLsbWeTG2VBJloqVHJz09XX9/+/btDqwJERERWZKVJW95mZnylkdEZKjMJD1//fUXZs2apV/T5+bNm46uEhEREZlRqZK85fn4yFseEZEhu3dvq1evntl9Go0G+fn5uHv3LnJzcyGE0M/05itHGzdRKVGr1UhLSwMABAQEwMXFxcE1Irkwts6JcS25kBDAxUWeLm4qFRAcXPJyAMbWmTG2VBJ2T3qSkpL0rTdF0R2nUCgQHR1t76oRyUatVuPatWsAAD8/P16InQhj65wY15Lz9dUuSrp2bcnL6t9fnvE8AGPrzBhbKolS696mUCiKvOkrpVTitddeK62qERERUTGMG1e2yiEiMqfUkh4hhFU3Hx8frFixgi09REREZZybG2Bm/XGrRUUBXbrIUx8iInPs3r2tc+fORq04hSkUCnh4eKBGjRpo164dBg0aBH9/f3tXi4iIiErg6FGgTx/Ait7rZnl7A8uXlzxxIiIqit2Tnri4OHs/BREREZWi06eBXr0Ag5UmbObtrV3ctGVL+epFRGROmZmymoiIiMq+xETg4YeB27eNt3fsCERGWldGVBSwezfQo4f89SMiksKkh4iIiKySkgJ07w5cv268vWtXYOtW4NQpIDYWGDhQO521IZUKGDRIu//ECbbwEFHpsnv3NqKKQKFQwNvbW3+fnAdj65wYV9vdvKlNeC5fNt7+0EPAxo2Ap6f275gY7S0jA7h6FcjM1C48Ghws37TUljC2zouxpZJQCGsW0LGS4UKkCxcuRJ8+fSwuTmqxYgoFEhMT5apahZeSkoJatWoBAJKTkxESEuLgGhERUXlx5462NefECePtzZtrW278/BxRKyLn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Noe2EVFZMekhIqdVvXp17N+/HxMmTEB8fDyqVKmCkJAQtG3bFrNnz8b69evLNCTq+++/x6pVqzB27Fh06NABtWrVgo+PDzw8PBAQEID69eujX79+WL58OXbv3q34Iubj44M//vgD8+bNw7Bhw9CyZUtUq1YNXl5e8PT0REhICJo3b45Ro0Zh165dmDNnTqWZ/Wn48OE4e/YsPvjgA3Tt2hU1atRAlSpV4Ovri9q1a6NPnz745ptv8Mcff5S6fo6lpMfPzw8tWrRQlFn6Ih8QEGBxTSC1NGvWzOw+Lp1OhylTpsjP27dvj19++QVDhgxBZGQkvLy8EBERgYceegibNm1SrPtUmqpVq2Lv3r0YM2YM4uPjyzQBQkxMDLZv346tW7fi2Wefxd13342qVatCo9HAz88PMTEx6NatG/773/8iNTUVmZmZ8vA8R+vTp4/Z0DStVou+ffsq1rtq1aoVTpw4gZdffhn16tWDt7c3qlWrhp49e+KHH37AjBkzLE7Dbbqm1Nq1awEYZmGzdL8ZEZGRJIQQju4EERER2d/8+fPNJndwlq8FQgg0btxYcT9UjRo15GF/J06cQKNGjQAAPXr0wI8//uiQfr799tuKmepiYmIcNpMeEZWMV3qIiIhIJkmS/KPmkLG5c+ciLS2txO1TpkwxWy+pR48e8mPjVR7AvkPbMjIyFK9RSVNzE5Fz4UQGREREZHdr1qzByJEj0a5dO3Tp0gWxsbHw9PREVlYW1q9fjz179ijqazQajBs3Tn4+fvx4jB8/3t7dJqJKikkPEREROYQQAjt37sTOnTtLrTt16lQ0bNjQDr0iIlfEpIeIiMhNderUCUuXLi1xe1RUlB17Y1nVqlUxffp0PP30047uCgAgPDzc6mtWfCFbInIOnMiAiIiI7O6vv/7Chg0bsGnTJpw6dQrZ2dnIycmBn58fwsPD0bx5c3Tv3h39+/cvcfpwIqKyYtJDREREREQujbO3ERERERGRS2PSQ0RERERELo1JDxERERERuTQmPURERERE5NKY9BARERERkUtj0kNERERERC6NSQ8REREREbk0Jj1EREREROTSmPQQEREREZFLY9JDREREREQujUkPERERERG5NCY9RERERETk0pj0EBERERGRS2PSQ0RERERELo1JDxERERERuTQmPURERERE5NKY9BARERERkUtj0kNERERERC7t/wFVc+3N945yeAAAAABJRU5ErkJggg==\n" }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" + "metadata": {} } ], "source": [ - "### BEGIN SOLUTIONS\n", + "import matplotlib.pyplot as plt\n", "\n", "# Initialize m1 and x6 lists\n", "m1_values = []\n", "x6_values = []\n", "\n", - "for m1 in range(1000,11000,500):\n", + "for m1 in range(1000, 11000, 500):\n", " # Update list of m1 values\n", " m1_values.append(m1)\n", "\n", @@ -500,22 +506,36 @@ "\n", " # Solve for unknown flow rates and mass fractions\n", " m_flow = solve_flow(m1, m2)\n", - " x_mass = solve_comp(m2, m_flow) # x_mass = [x5_Cr, x6_Cr, x5_H2O, x6_H2O]\n", + " x_mass = solve_comp(m2, m_flow) # x_mass = [x5_Cr, x6_Cr, x5_H2O, x6_H2O]\n", "\n", " # Update list of x6 values\n", " x6_values.append(x_mass[1])\n", "\n", - "plt.figure(figsize=(4,4))\n", - "plt.plot(m1_values,x6_values,'bx',markersize=8)\n", - "plt.xlabel(\"$m_{1}$ [kg/h]\",fontsize=16,fontweight='bold')\n", - "plt.ylabel(\"$x_{6}$ [kg Cr/kg]\",fontsize=16,fontweight='bold')\n", - "plt.xticks(fontsize=15)\n", - "plt.yticks(fontsize=15)\n", - "plt.tick_params(direction=\"in\",top=True, right=True)\n", - "plt.grid(False)\n", - "plt.show()\n", + "# Create a publication-quality plot with reduced size\n", + "plt.figure(figsize=(4, 3), dpi=200) # Set figure size and DPI for a smaller plot\n", + "plt.plot(m1_values, x6_values, 'bo-', markersize=6, label='x6_Cr') # Use blue circles with a solid line\n", "\n", - "### END SOLUTIONS" + "# Customize plot appearance with reduced font size (60% of the current size)\n", + "plt.xlabel(\"Mass Flow Rate [kg/h]\", fontsize=0.6 * 16, fontweight='bold')\n", + "plt.ylabel(\"Mass Fraction of Chromium [kg Cr/kg]\", fontsize=0.6 * 16, fontweight='bold')\n", + "plt.xticks(fontsize=0.6 * 12)\n", + "plt.yticks(fontsize=0.6 * 12)\n", + "plt.tick_params(direction=\"in\", top=True, right=True)\n", + "plt.grid(True, linestyle='--', alpha=0.6) # Add a grid with dashed lines\n", + "\n", + "# Add a legend with reduced font size\n", + "plt.legend(fontsize=0.6 * 12)\n", + "\n", + "# Customize plot title and axis labels with reduced font size\n", + "plt.title(\"Chromium Mass Fraction vs. Mass Flow Rate\", fontsize=0.6 * 18, fontweight='bold')\n", + "plt.xlabel(\"Mass Flow Rate [kg/h]\", fontsize=0.6 * 16, fontweight='bold')\n", + "plt.ylabel(\"Mass Fraction of Chromium [kg Cr/kg]\", fontsize=0.6 * 16, fontweight='bold')\n", + "\n", + "# Save the plot as a high-resolution image (e.g., in PNG format)\n", + "plt.savefig(\"smaller_plot.png\", bbox_inches='tight')\n", + "\n", + "# Show the plot\n", + "plt.show()\n" ] }, { @@ -540,14 +560,146 @@ "\n", "**Answer:** In deciding whether to add capacity to the treatment, it's important to know the cost of additional capacity. For example, the costs of installation and maintenance, revenue from additional recovered Cr, anticipated wastewater production in coming years, capacity of waste lagoon, regulatory limits on Cr emissions. Depending on these values, it can be determined whether it's best to add capacity to the treatment unit or not." ] + }, + { + "cell_type": "markdown", + "source": [ + "#6. Economic Analysis of Chromium\n", + "\n", + "Develop a function ``econ_cr`` to evaluate the cost of the chromium that is going to waste stream when the inlet flow is above 4500 kg/h.\n" + ], + "metadata": { + "id": "KsIEHKlIpO1y" + } + }, + { + "cell_type": "code", + "source": [ + "def econ_cr(m1, cost_per_kg):\n", + " \"\"\"\n", + " Calculate the cost of chromium in the waste stream x6 for m1.\n", + "\n", + " Arguments:\n", + " m1: Inlet feed flow\n", + " cost_per_kg_chromium: Cost per kilogram of chromium (USD)\n", + "\n", + " Returns:\n", + " chromium_cost: Total cost of chromium in the waste stream (USD)\n", + " \"\"\"\n", + " # BEGIN SOLUTION\n", + " if m1 >= 4500:\n", + " m2 = 4500\n", + " else:\n", + " m2 = m1\n", + "\n", + " m_flow = solve_flow(m1, m2)\n", + " x_mass = solve_comp(m2, m_flow)\n", + "\n", + " # Calculate the mass of chromium in the waste stream\n", + " if m1 >= 4500:\n", + " mass_chromium_waste = (m1 - 4500) * x1_Cr\n", + " else:\n", + " mass_chromium_waste = 0\n", + "\n", + " # Calculate the cost of chromium in the waste stream\n", + " chromium_cost = mass_chromium_waste * cost_per_kg\n", + "\n", + " return chromium_cost\n", + "# END SOLUTION" + ], + "metadata": { + "id": "9OcmThaM8NG-" + }, + "execution_count": 61, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "Assume the value of chromium per kg is $9. Estimate the cost of chromium for different flow rate and the print the cost. Also plot the varying inlet flow vs chromium value in the waste stream." + ], + "metadata": { + "id": "vE-sqCw6t0Rx" + } + }, + { + "cell_type": "code", + "source": [ + "# BEGIN SOLUTION\n", + "\n", + "# Your data and calculations for chromium cost\n", + "m1_values = range(1000, 11000, 500)\n", + "cost_per_kg= 9\n", + "chromium_costs = [econ_cr(m1,cost_per_kg) for m1 in m1_values]\n", + "\n", + "# Create a figure with custom size and high DPI\n", + "plt.figure(figsize=(4, 3), dpi=200)\n", + "\n", + "# Plot the data with a solid red line and circular markers\n", + "plt.plot(m1_values, chromium_costs, 'r-o', markersize=6, label=\"Chromium Cost\")\n", + "\n", + "# Set axis labels and title with increased font size and bold style\n", + "plt.xlabel(\"Inlet Flow (m1) [kg/h]\", fontsize=16, fontweight='bold')\n", + "plt.ylabel(\"Chromium Cost [$]\", fontsize=16, fontweight='bold')\n", + "plt.title(\"Chromium Cost vs. Inlet Flow\", fontsize=18, fontweight='bold')\n", + "\n", + "# Increase tick label font size\n", + "plt.xticks(fontsize=14)\n", + "plt.yticks(fontsize=14)\n", + "\n", + "# Add a grid\n", + "plt.grid(True, linestyle='--', alpha=0.7)\n", + "\n", + "# Add a legend\n", + "plt.legend(fontsize=14)\n", + "\n", + "# Save the plot to a high-quality file (e.g., PNG or PDF) for publication\n", + "plt.savefig(\"chromium_cost_plot.png\", bbox_inches='tight')\n", + "\n", + "# Show the plot\n", + "plt.show()\n", + "\n", + "# END SOLUTION\n", + "\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 685 + }, + "id": "wBcKzlJN8Tut", + "outputId": "43b7083a-76ae-4b0c-d39f-75bb6fd96459" + }, + "execution_count": 63, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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FRUV4cSJEzh//jzu3r2LgoIC1KpVC3Xr1kVERATatm1r92MYpnjNugdef9KUDRtPTk7GnTt3EBwcjLCwMERFRcHb29shdZB7YnBKREREREREslPL3QAiIiIiIiIiBqdEREREREQkOwanREREREREJDsGp0RERERERCQ7BqdEREREREQkOwanREREREREJDsGp0RERERERCQ7BqdEREREREQkOwanREREREREJDsGp0RERERERCQ7BqdEREREREQkOwanREREREREJDsGp0RERERERCQ7BqdEREREREQkOwanREREREREJDsGp0RERERERCQ7BqdEREREREQkOwanRORUTZs2hUqlMvvTtGlTuZtHNixfvtxi/6lUKixfvlzuJpKJRx55xGxfRUZGQhAEuZunKCdOnLB4bWzYsMHl7dm9e7fV69XSz+7duy2WaS1fTEyMy87Nndjqh1mzZslWd0X+DxC5EoNToirOWnDn7Dc5qjpsBYmV+Tl58qTcp0cO8ueff2LdunVmj82aNQsqlcrFLZLH1atXsXr1akyZMgX3338/atas6ZS/oxEREXj44YfNHpsyZQqKi4srfhJUJRUXFyMgIED0/6ddu3ZyN4tIMTzkbgARUVW0fPlyXL161eJxfilAVY1Op8PkyZPNHouIiMDQoUNd3CLXmj9/Pvbt24fDhw8jPT3dZfXOnDkTv/32W7n9ly9fxqeffoq33nrLZW0h59u5cyeys7NF+yx9QUFE9mNwSkRkxvLly7Fnzx6LxxmcUlWzcuVKxMfHmz325ptvurg1rvef//wHWVlZLq+3U6dOeOCBB7Bz585yxz744AM8//zz8Pf3d3m7yDnMfRHB4JTIcTisl4iIyM2VlpZizpw5Zo+FhIRg1KhRLm5R9fLGG2+Y3X/nzh188sknrm0MOY0gCOWeJW7UqBG6du0qU4uIlIfBKRERkZv76aefcPnyZbPHJk6cCE9PTxe3qHp56KGH0Lx5c7PHFixYgNzcXBe3yLzExEQIglDuhxMbSXPo0CHcuHFDtG/YsGFV6lnumJgYs32cmJgod9OIJGFwSkRE5OYWLlxodr9KpcL48eNd3Jqqx9fX16nlq1QqjBs3zuyxrKwsLFu2zKn1k2uYm2yMQ3qJHIvBKRGRQpj7tlzKT6dOneRuOlXC3r17ceLECbPH+vTpg7CwMBe3SF7+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\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "Discussion: Is it economically and environmentally worthwhile to recover chromium in the circular economy, given the associated cost of recovery?\n", + "\n", + "**Your Answer:** The circular economy approach for chromium recovery involves recycling and reusing chromium-containing materials to minimize waste and resource consumption. While the cost of chromium recovery may initially appear high, its economic and environmental worth is determined by the combination of market conditions, technological advancements, and regulatory support. Given the strategic importance of chromium and the desire to reduce its environmental impact, the cost of recovery can be justified in a circular economy framework. It is not only a matter of economic feasibility but also a proactive step towards sustainable resource management and environmental responsibility." + ], + "metadata": { + "id": "qvf8GwgUvf1U" + } } ], "metadata": { "colab": { "collapsed_sections": [ - "DDVNeQMWYUaG", - "k4HCkABDkPll", - "pjxObl08j9Vc" + "DDVNeQMWYUaG" ], "provenance": [] }, @@ -561,4 +713,4 @@ }, "nbformat": 4, "nbformat_minor": 0 -} +} \ No newline at end of file