{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### Hughes and Hase, Problem 4.8" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import numpy as np" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The volume flow rate is given by \n", "\n", "$$\n", "\\frac{dV}{dt} = \\frac{\\pi\\rho ghr^4}{8\\eta L},\n", "$$ \n", "\n", "where $\\eta$ and $\\rho$ are the viscosity and density of the fluid, $h$ is the head of pressure across the tube, and $g$ the gravitational field strength. In an experiment, the graph of the flow rate versus height has a slope measured to 7%, the length is known to 0.5%, and the radius to 8%. What is the fractional precision to which the viscosity is known? If more experimental time is available, should this be devoted to (i) collecting more flow-rate data, (ii) measuring the length better, or (iii) measuring the radius of the tube better?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, we need to rewrite this relation in terms that will enable us to calculate the viscosity $\\eta$ from the\n", "length $L$, the radius $r$ and the slope of a plot of flow rate $F = dV/dt$ versus $h$. Let’s call that \n", "slope $s$ to simplify the notation.\n", "\n", "The slople of the flow rate vs. $h$ graph is\n", "\n", "$$\n", "s = \\frac{\\pi\\rho gr^4}{8\\eta L},\n", "$$\n", "\n", "and solving for the viscosity gives\n", "\n", "$$\n", "\\eta = \\frac{\\pi\\rho gr^4}{8sl}.\n", "$$\n", "\n", "The uncertainty in the viscosity is given by\n", "\n", "\\begin{eqnarray*}\n", "\\alpha_\\eta^2 &=& \\left(\\frac{\\partial \\eta}{\\partial s}\\right)^2\\alpha_s^2 \n", " + \\left(\\frac{\\partial \\eta}{\\partial L}\\right)^2\\alpha_L^2 \n", " + \\left(\\frac{\\partial \\eta}{\\partial r}\\right)^2\\alpha_r^2 \\\\\n", " &=& \\left(\\frac{-\\eta}{s}\\right)^2\\alpha_s^2 + \\left(\\frac{-\\eta}{L}\\right)^2\\alpha_L^2 \n", " + \\left(\\frac{4\\eta}{r}\\right)^2\\alpha_r^2,\n", "\\end{eqnarray*}\n", "\n", "and the fractional uncertainty is given by\n", "\n", "$$\n", "\\left(\\frac{\\alpha_\\eta}{\\eta}\\right)^2 \n", " = \\left(\\frac{\\alpha_s}{s}\\right)^2 + \\left(\\frac{\\alpha_L}{L}\\right)^2 \n", " + \\left(4\\frac{\\alpha_r}{r}\\right)^2\n", "$$" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.32760494501762333" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Frac_alpha_s = 0.07 # Fractional uncertainty in s\n", "Frac_alpha_L = 0.005 # Fractional uncertainy in L\n", "Frac_alpha_r = 0.08 # Fractional uncertainty in r\n", "Frac_alpha_eta = np.sqrt(Frac_alpha_s**2+Frac_alpha_L**2+(4*Frac_alpha_r)**2)\n", "Frac_alpha_eta " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So, the fractional precision to which the viscosity is known is 33%. Note that this is dominated by the\n", "error in the radius measurement. If the fractional error were zero for both the slope and the length L\n", "measurement, we’d get a fractional uncertainty of 32% with the radius measurement alone because of\n", "the factor of 4 that comes in from the fact that we take the 4th power of $r$ in the relation.\n", "\n", "So, clearly if we want to improve the measurement, the radius of the tube is the thing that we need to\n", "work on -- that dominates the error." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Version information\n", "`version_information` is from J.R. Johansson (jrjohansson at gmail.com); see Introduction to scientific computing with Python for more information and instructions for package installation.\n", "\n", "`version_information` is installed on the linux network at Bucknell" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "%load_ext version_information" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "application/json": { "Software versions": [ { "module": "Python", "version": "3.7.7 64bit [GCC 7.3.0]" }, { "module": "IPython", "version": "7.16.1" }, { "module": "OS", "version": "Linux 3.10.0 1062.9.1.el7.x86_64 x86_64 with centos 7.7.1908 Core" }, { "module": "numpy", "version": "1.18.5" } ] }, "text/html": [ "
SoftwareVersion
Python3.7.7 64bit [GCC 7.3.0]
IPython7.16.1
OSLinux 3.10.0 1062.9.1.el7.x86_64 x86_64 with centos 7.7.1908 Core
numpy1.18.5
Fri Aug 07 09:47:30 2020 EDT
" ], "text/latex": [ "\\begin{tabular}{|l|l|}\\hline\n", "{\\bf Software} & {\\bf Version} \\\\ \\hline\\hline\n", "Python & 3.7.7 64bit [GCC 7.3.0] \\\\ \\hline\n", "IPython & 7.16.1 \\\\ \\hline\n", "OS & Linux 3.10.0 1062.9.1.el7.x86\\_64 x86\\_64 with centos 7.7.1908 Core \\\\ \\hline\n", "numpy & 1.18.5 \\\\ \\hline\n", "\\hline \\multicolumn{2}{|l|}{Fri Aug 07 09:47:30 2020 EDT} \\\\ \\hline\n", "\\end{tabular}\n" ], "text/plain": [ "Software versions\n", "Python 3.7.7 64bit [GCC 7.3.0]\n", "IPython 7.16.1\n", "OS Linux 3.10.0 1062.9.1.el7.x86_64 x86_64 with centos 7.7.1908 Core\n", "numpy 1.18.5\n", "Fri Aug 07 09:47:30 2020 EDT" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%version_information numpy" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.7" } }, "nbformat": 4, "nbformat_minor": 1 }