{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Week 5 Lab — Error Propagation for Engineers and Scientists\n",
"\n",
"In this lab, we will study how uncertainty in measured variables affects the uncertainty of computed quantities.\n",
"\n",
"We will work through three parts:\n",
"\n",
"1. **Repeated measurements and uncertainty estimation**\n",
"2. **Propagation of uncertainty for one variable**\n",
"3. **Propagation of uncertainty for several variables**\n",
"\n",
"At the end of the lab, you should be able to:\n",
"\n",
"- compute the mean and sample standard deviation from repeated measurements,\n",
"- report a measurement with uncertainty,\n",
"- propagate uncertainty through simple formulas,\n",
"- identify which measured variable contributes most to the final uncertainty."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Part A — Repeated Measurements\n",
"\n",
"In real experiments, the same quantity is often measured several times. \n",
"These repeated measurements help us estimate:\n",
"\n",
"- a representative value of the quantity, using the **sample mean**,\n",
"- the variability of the measurements, using the **sample standard deviation**.\n",
"\n",
"We begin with a small set of repeated voltage measurements."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Repeated voltage measurements\n",
"\n",
"The following values represent repeated measurements of the same voltage."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([4.98, 5.01, 5. , 5.03, 4.99, 5.02, 4.97, 5.01])"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"V_samples = np.array([4.98, 5.01, 5.00, 5.03, 4.99, 5.02, 4.97, 5.01])\n",
"\n",
"V_samples"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Compute the mean and sample standard deviation\n",
"\n",
"We will use:\n",
"\n",
"\\[\n",
"\\bar{x} = \\frac{1}{n}\\sum_{i=1}^n x_i\n",
"\\]\n",
"\n",
"and\n",
"\n",
"\\[\n",
"s = \\sqrt{\\frac{1}{n-1}\\sum_{i=1}^n (x_i-\\bar{x})^2}\n",
"\\]\n",
"\n",
"The mean gives a central value, while the sample standard deviation describes the spread of the repeated measurements."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mean voltage = 5.0013 V\n",
"Sample standard deviation = 0.0203 V\n"
]
}
],
"source": [
"V_mean = np.mean(V_samples)\n",
"V_std = np.std(V_samples, ddof=1)\n",
"\n",
"print(f\"Mean voltage = {V_mean:.4f} V\")\n",
"print(f\"Sample standard deviation = {V_std:.4f} V\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Report the measurement\n",
"\n",
"A basic engineering report format is:\n",
"\n",
"\\[\n",
"V \\approx \\bar{V} \\pm s_V\n",
"\\]\n",
"\n",
"This is a practical summary of the measured value and its variability."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Reported measurement: V = 5.0013 ± 0.0203 V\n"
]
}
],
"source": [
"print(f\"Reported measurement: V = {V_mean:.4f} ± {V_std:.4f} V\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Organize the measurements in a table"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(8, 4))\n",
"plt.plot(df_voltage[\"trial\"], df_voltage[\"voltage_V\"], marker=\"o\", linestyle=\"none\", label=\"samples\")\n",
"plt.axhline(V_mean, linestyle=\"--\", linewidth=2, label=f\"mean = {V_mean:.4f} V\")\n",
"plt.xlabel(\"Trial\")\n",
"plt.ylabel(\"Voltage [V]\")\n",
"plt.title(\"Repeated Voltage Measurements\")\n",
"plt.legend()\n",
"plt.grid(True, alpha=0.3)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Exercise A\n",
"\n",
"Using the measurements above, answer the following:\n",
"\n",
"1. What is the estimated voltage?\n",
"2. What does the sample standard deviation tell us?\n",
"3. Are the measurements relatively precise or widely scattered?\n",
"\n",
"Write a short interpretation in your own words."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Part B — Propagation of Uncertainty for One Variable\n",
"\n",
"Now we consider a quantity that is not measured directly, but computed from another measured variable.\n",
"\n",
"Suppose the output quantity is:\n",
"\n",
"\\[\n",
"A = \\pi r^2\n",
"\\]\n",
"\n",
"If the radius \\(r\\) has uncertainty, then the area \\(A\\) also has uncertainty.\n",
"\n",
"For one variable, we use the first-order propagation formula:\n",
"\n",
"\\[\n",
"\\sigma_A \\approx \\left|\\frac{dA}{dr}\\right| \\sigma_r\n",
"\\]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Example: Area of a circle\n",
"\n",
"Let:\n",
"\n",
"- \\(r = 10.0\\) mm\n",
"- \\(\\sigma_r = 0.2\\) mm\n",
"\n",
"Then:\n",
"\n",
"\\[\n",
"A = \\pi r^2\n",
"\\]\n",
"\n",
"and\n",
"\n",
"\\[\n",
"\\frac{dA}{dr} = 2\\pi r\n",
"\\]\n",
"\n",
"So the propagated uncertainty is:\n",
"\n",
"\\[\n",
"\\sigma_A \\approx |2\\pi r| \\sigma_r\n",
"\\]"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Radius: r = 10.000 ± 0.200 mm\n",
"Area: A = 314.159 ± 12.566 mm^2\n"
]
}
],
"source": [
"r = 10.0\n",
"sigma_r = 0.2\n",
"\n",
"A = np.pi * r**2\n",
"sigma_A = abs(2 * np.pi * r) * sigma_r\n",
"\n",
"print(f\"Radius: r = {r:.3f} ± {sigma_r:.3f} mm\")\n",
"print(f\"Area: A = {A:.3f} ± {sigma_A:.3f} mm^2\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Observe how the output uncertainty changes\n",
"\n",
"We now vary the uncertainty in the radius and observe how the area uncertainty changes.\n",
"\n",
"This helps us see that larger uncertainty in the input produces larger uncertainty in the output."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sigma_r_values = np.linspace(0.01, 0.5, 100)\n",
"sigma_A_values = abs(2 * np.pi * r) * sigma_r_values\n",
"\n",
"plt.figure(figsize=(8, 4))\n",
"plt.plot(sigma_r_values, sigma_A_values)\n",
"plt.xlabel(\"Uncertainty in radius, sigma_r [mm]\")\n",
"plt.ylabel(\"Uncertainty in area, sigma_A [mm^2]\")\n",
"plt.title(\"Propagation of Uncertainty: A = pi r^2\")\n",
"plt.grid(True, alpha=0.3)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Exercise B\n",
"\n",
"Answer the following:\n",
"\n",
"1. If the uncertainty in radius doubles, what happens to the uncertainty in area?\n",
"2. Why does the derivative appear in the propagation formula?\n",
"3. For this example, is the relation between \\(\\sigma_r\\) and \\(\\sigma_A\\) linear?\n",
"\n",
"Write a brief explanation."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Part C — Propagation of Uncertainty for Several Variables\n",
"\n",
"Now we study a quantity that depends on more than one measured variable.\n",
"\n",
"Consider resistance:\n",
"\n",
"\\[\n",
"R = \\frac{V}{I}\n",
"\\]\n",
"\n",
"If both voltage and current are uncertain, then the resistance will also be uncertain.\n",
"\n",
"For independent variables, we use:\n",
"\n",
"\\[\n",
"\\sigma_R \\approx \\sqrt{\n",
"\\left(\\frac{\\partial R}{\\partial V}\\sigma_V\\right)^2 +\n",
"\\left(\\frac{\\partial R}{\\partial I}\\sigma_I\\right)^2\n",
"}\n",
"\\]\n",
"\n",
"For this case:\n",
"\n",
"\\[\n",
"\\frac{\\partial R}{\\partial V} = \\frac{1}{I},\n",
"\\qquad\n",
"\\frac{\\partial R}{\\partial I} = -\\frac{V}{I^2}\n",
"\\]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Example: Resistance from voltage and current\n",
"\n",
"Let:\n",
"\n",
"- \\(V = 12.0 \\pm 0.2\\) V\n",
"- \\(I = 2.0 \\pm 0.05\\) A\n",
"\n",
"We first compute the resistance, and then propagate the uncertainty."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Voltage: V = 12.000 ± 0.200 V\n",
"Current: I = 2.000 ± 0.050 A\n",
"Resistance: R = 6.000 ± 0.180 ohm\n"
]
}
],
"source": [
"V = 12.0\n",
"sigma_V = 0.2\n",
"\n",
"I = 2.0\n",
"sigma_I = 0.05\n",
"\n",
"R = V / I\n",
"\n",
"sigma_R = np.sqrt(\n",
" (sigma_V / I)**2 +\n",
" ((V * sigma_I) / (I**2))**2\n",
")\n",
"\n",
"print(f\"Voltage: V = {V:.3f} ± {sigma_V:.3f} V\")\n",
"print(f\"Current: I = {I:.3f} ± {sigma_I:.3f} A\")\n",
"print(f\"Resistance: R = {R:.3f} ± {sigma_R:.3f} ohm\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Contribution of each variable\n",
"\n",
"The total propagated variance is the sum of separate terms. \n",
"This allows us to estimate which measurement contributes more to the final uncertainty.\n",
"\n",
"That is important in engineering because it helps decide which sensor or measurement process should be improved first."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Contribution from voltage uncertainty: 30.77%\n",
"Contribution from current uncertainty: 69.23%\n"
]
}
],
"source": [
"term_V = (sigma_V / I)**2\n",
"term_I = ((V * sigma_I) / (I**2))**2\n",
"total = term_V + term_I\n",
"\n",
"percent_V = 100 * term_V / total\n",
"percent_I = 100 * term_I / total\n",
"\n",
"print(f\"Contribution from voltage uncertainty: {percent_V:.2f}%\")\n",
"print(f\"Contribution from current uncertainty: {percent_I:.2f}%\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Visualize the contribution of each source of uncertainty"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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oIAdPnzYBVEAACC+99CYx1IpWLCgy9147rnn7L777nMdgp04cSLW1QAAgAQSdcCxY8cOu/vuu61GjRp27733WqVKlWzlypV26aWXWq1atezTTz/1NqUAACDzF6mo7kaJEiWsc+fO9vnnn9uPP/7oBmiTDRs22F//+lc3/7333rOMhiIVAAC8vYdG3SxWfWyo3kbFihVdE9jy5csH5lWtWtUWLlzoiloAAABSHHDUq1fPBg8ebJ06dbK5c+e6opVw3bp1i3Z1AAAggURdh0M9iWrI+T59+tgvv/ziujUHAACIaw6HBnCbMWNGtIsDAADElsOhCiGxOHr0qMWDBoVTp2KqL5I7d25Xf2TEiBEWXM9Vf6uop2TJkm6ZFi1a2ObNm+Py/QAA4CIGHIUKFbK9e/dGvdLSpUvb1q1bLbWeeeYZGz9+vL388suuJYzeP/vss66nUz+9f/HFF10nZEuXLrU8efK4Sq30DQIAQAYrUlEuwmuvvWZ58+aNaqUaPTYevv76a2vdurXdcccd7n25cuXcaLTLli0LpGvs2LE2cOBAt5y/rknx4sXtww8/tA4dOsQlHQAA4CIEHFdccYVNnDgx6pWqP47s2bNbajVq1Mg1tf3hhx/sqquucs1y//Of/9iYMWPc/G3bttnu3btdMYqf2gLXr1/flixZQsABAEBGCji2b99uaeGxxx5z9UeqVKlil1xyiavT8dRTT7meTkXBhihHI5je++dFotY2eoXXUTl37px7AQCA6ER734y6lUpaUK+lU6dOdaPQVq9e3dasWWO9e/e2UqVKuf5AUmrkyJE2bNiwJNP37dtH3Q8AADxoKBLzaLEXk4a8Vy5H9+7dA9OefPJJe/vtt23jxo2uYqparqxevdpq164dWObGG29071944YWoczj0XQcPHmS0WAAAYqB7qBqXxK1r87Tw+++/W9asoQ1pVLTiz75Rc1nVF5k3b14g4NAPV2uVhx56KNn15syZ073C6bvCvw8AACQv2vtmug44WrVq5epsqNKqilSUk6EKow888ICbnyVLFlfEolwPjV6rAET9dqjIpU2bNmmdfAAAkBECDvW3oQDib3/7m+sHRIGERqVVR19+/fv3t99++82N43Lo0CG7/vrr7bPPPrNcuXKladoBAEAq63AsWrTIjaWiIerV3bk6+nrrrbdcDoNu+BkNw9MDAODtPTTmCgszZ850PXmqG3EVcfgrX+qLnn766RQmFwAAZGYxBxyqL6FuxNURWHDnXo0bN7ZVq1bFO30AACARA45NmzZZkyZNkkxXdorqUAAAAKQ64FAz1C1btiSZri7HK1SoEOvqAABAAog54Ojatav16tXL9XWhZqm7du1yvYH269fvvH1fAACAxBVzs1j1/KmOt5o3b+465lLxijrRUsDRo0cPb1IJAAAytBR3bX7q1ClXtHLs2DGrVq1a1EPXp0c0iwUAwNt7aMw5HFqhRm0tXLiwCzT8Dhw4YNmyZWMsEgAAkPo6HB06dLDp06dHHNlV8wAAAFIdcKiyaLNmzZJMb9q0qZsHAACQ6oBDPYueOXMmyfTTp0/b8ePHY10dAABIADEHHNddd529+uqrSaar99F69erFK10AACATyZaSrs1btGhha9eudU1jZd68ebZ8+XKbM2eOF2kEAACJlsOhMVOWLFliZcqUcRVFP/74Y7vyyivt22+/tRtuuMGbVAIAgMTshyMzoR8OAADSWT8cop5G1enX3r173d/BIg3sBgAAElvMAcc333xj99xzj/30008WnjmisVXUKRgAAECqAo4HH3zQrrnmGps9e7aVLFnSBRkAAABxDTg2b95sM2bMcBVFAQAAPGmlUr9+fVd/AwAAwLMcDg1B37dvX9u9e7fVqFHDsmfPHjK/Zs2asa4SAABkcjE3i82aNWmmiOpxaDUZtdIozWIBAEhnzWK3bduWwiQBAIBEFXPAUbZsWW9SAgAAMq0Udfwl69evtx07dtipU6dCpt91113xSBcAAEjkgGPr1q3Wtm1bW7duXaDuhvj748iIdTgAAEA6axbbq1cvK1++vOvW/NJLL7Xvv//eFi5c6DoDmz9/vjepBAAAiZXDoZFiv/zyS7vssstcixW9rr/+ehs5cqT17NnTVq9e7U1KAcAj5R6bzbZFwtg+6o6MkcOhIpN8+fK5vxV07Nq1K1CZdNOmTfFPIQAASLwcjquvvtrWrl3rilXU6+izzz5rOXLksFdffdUqVKjgTSoBAEBiBRwDBw603377zf09fPhwu/POO+2GG26wIkWK2LvvvutFGgEAQKIFHC1btgz8rQHcNm7caAcOHLBChQoxciwAAIhvPxzBChcuHI/VAACARA442rVrZ1OmTHF9pOvv85k1a1a80gYAABIp4NCgLP6OvfQ3AABA3AOOyZMnu//Vq+iwYcOsaNGiljt37pi+CAAAJK6Y+uFQwKGKoj///LN3KQIAAIkdcKhX0UqVKtn+/fu9SxEAAMh0Yu5pdNSoUfboo4/ad999502KAABAphNzs9j77rvPfv/9d6tVq5brYTS8Lof65AAAAEhVwDF27NhYPwIAABJczAFHp06dvEkJAADItFLV0+iJEyfs1KlTIdPUORgAAECqKo1q4LaHH37YihUrZnny5HFjqAS/AAAAUh1w9O/f37788ksbP3685cyZ01577TXXGVipUqXszTffjHV1AAAgAcRcpPLxxx+7wKJp06Z2//33u6Hp1RlY2bJlberUqXbvvfd6k1IAAJA4ORxq9lqhQoVAfQ1/M9jrr7/eFi5cGP8UAgCAxAs4FGxs27bN/V2lShV77733AjkfBQsWjH8KAQBA4gUcKkZZu3at+/uxxx6zcePGWa5cuaxPnz6uB1IAAIBU1+FQYOHXokUL27hxo61cudLV46hZs2asqwMAAAkg5oBj586dVqZMmcB7VRbVCwAAIG5FKuXKlbMbb7zRJk6caAcPHjSv/fLLL/anP/3JihQp4sZtqVGjhq1YsSIw3+fz2eDBg61kyZJuvnJdNm/e7Hm6AACAhwGHbvbXXXedDR8+3N3k27RpYzNmzLCTJ09avCmgady4sWXPnt0+/fRTW79+vY0ePTqkg7Fnn33WXnzxRXvllVds6dKlrjOyli1bul5QAQBA+pDFpyyCFNDH5s+fb9OmTbOZM2fauXPnrF27djZp0qS4JU6VUhcvXmyLFi1KNg3qcKxv377Wr18/N+3w4cNWvHhxmzJlinXo0CGq7zly5IgVKFDAfZau2YHEU+6x2WmdBOCi2T7qjriuL9p7aIoDjmCrVq2yLl262Lfffmtnz561eKlWrZrLrfj5559twYIFVrp0afvb3/5mXbt2dfO3bt1qFStWtNWrV1vt2rUDn1ORj96/8MILEder3JjgHBltLNVLUY4KAQeQeK58/JO0TgJw0Wx5+va4rk/3UJU8XCjgSPHgbQoClLuh13fffWcNGzZ0TWTjSQGFulB/5JFH7PHHH7fly5dbz549LUeOHG7U2t27d7vllKMRTO/98yIZOXKk64493L59+yiKARJQ1UKpfu4CMoy9e/fGdX1Hjx6NarmYA44JEya4IENFHer4S12Z/+tf//KkpYqKaa655hp7+umn3fs6deq44Eb1NRRwpNSAAQNcEBOew1G0aFFyOIAEtOFglrROAnDRaPDVeFJfXJ4EHE8++aR17NjRVdSsVauWeUmVUlWsEqxq1aquzoiUKFHC/b9nzx63rJ/eBxexhNOgc3qFy5o1q3sBSCznjIADiSNrnO9z0a4v5oBjx44dliXLxTk51UJl06ZNIdN++OGHQG5K+fLlXdAxb968QICh3Aq1VnnooYcuShoBAIAHAcfFCjb8vZo2atTIFancfffdtmzZMnv11Vfdy5+W3r17u1yXSpUquQBk0KBBruWKmusCAID0IcWVRi+Ga6+91j744ANX50L9fiigGDt2rKs34te/f3/77bffrFu3bnbo0CE3au1nn30WdZkSAADwXlyaxWZ09MMBJDb64UAi2Z5G/XBQQxIAAHiOgAMAAKSPOhzq/yLayqLqdRQAACDmgIMWHwAAwPOAY8iQIan6EgAAkNiowwEAANJfPxwaDfb555+39957z/U6eurUqZD5Bw4ciGf6AABAIuZwaJTVMWPG2B//+EfX5laDoLVr1871pT506FBvUgkAABIr4Jg6dapNnDjR+vbta9myZXMDub322ms2ePBg++abb7xJJQAASKyAY/fu3VajRg33d968eV0uh9x55502e/bs+KcQAAAkXsBx+eWX26+//ur+rlixos2ZM8f9vXz58ohDvgMAAMQccLRt29YNBy89evRwo7NqpNb77rvPHnjgAbYoAABIfSuVUaNGBf5WxdGyZcva119/7YKOVq1axbo6AACQAGIOOBYuXGiNGjVyFUalQYMG7nXmzBk3r0mTJl6kEwAAJFKRSrNmzSL2taHKo5oHAACQ6oDD5/NFHMht//79lidPnlhXBwAAEkDURSrq3EsUbHTu3DmkRYp6H/32229dUQsAAECKA44CBQoEcjjy5ctnuXPnDszLkSOHq8fRtWvXaFcHAAASSNQBx+TJk93/5cqVs379+lF8AgAAvGul4h+qft++fbZp0yb3d+XKla1o0aKxrgoAACSImCuN/v77766Dr5IlS7omsHqVKlXKunTp4uYBAACkOuDo06ePLViwwD7++GM7dOiQe/3rX/9y0zSgGwAAQKqLVGbOnGkzZsywpk2bBqbdfvvtrhLp3XffbePHj491lQAAIJNLUZFK8eLFk0wvVqwYRSoAACA+AUfDhg1dxdETJ04Eph0/ftyGDRvm5gEAAKS6SGXs2LF26623umHqa9Wq5aatXbvWcuXKZZ9//nmsqwMAAAkg5oCjRo0atnnzZps6dapt3LjRTevYsaPde++9IZ2BAQAApHq02PBeRRktFgAAJIfRYgEAgOcYLRYAAHiO0WIBAIDnGC0WAAB4jtFiAQBA+h0tFgAAwLNKowAAALEi4AAAAJ4j4AAAAJ4j4AAAAOkz4FiwYIG1atXKrrzySve66667bNGiRfFPHQAASMyA4+2337YWLVrYpZdeaj179nQvDdrWvHlzmzZtmjepBAAAGVoWn8/ni+UDVatWtW7dulmfPn1Cpo8ZM8YmTpxoGzZssIzmyJEjVqBAATt8+LDlz58/rZMD4CIr99hstjkSxvZRd6TJPTTmHI6tW7e64pRwKlbZtm1b7CkFAACZXswBR5kyZWzevHlJps+dO9fNAwAASHVPo3379nX1NtasWWONGjVy0xYvXmxTpkyxF154IdbVAQCABBBzwPHQQw9ZiRIlbPTo0fbee+8F6nW8++671rp1ay/SCAAAEi3gkLZt27oXAACAJ3U4KlSoYPv3708y/dChQ24eAABAqgOO7du329mzZ5NMP3nypP3yyy+xrg4AACSAqItUPvroo8Dfn3/+uWtz66cARC1XypUrF/8UAgCAxAk42rRp4/7PkiWLderUKWRe9uzZXbChiqQAAAApDjjOnTvn/i9fvrwtX77cLrvssmg/CgAAElzMdTjUm2haBRujRo1yOSy9e/cOTDtx4oR1797dihQpYnnz5rX27dvbnj170iR9AAAggw9Pr1yVCRMmWM2aNUOma0yXjz/+2N5//303iu2uXbusXbt2aZZOAACQQQOOY8eO2b333usGhytUqFBgugaKef31193AcTfddJPVq1fPJk+ebF9//bV98803aZpmAACQyo6/LjYVmdxxxx3WokULe/LJJwPTV65caadPn3bT/apUqWJXXHGFLVmyxBo0aBBxfWrCq1fwSHf+eir+uioAEkdWi2nQbCBDOxfn+1y060v3Acf06dNt1apVrkgl3O7duy1HjhxWsGDBkOnFixd385IzcuRIGzZsWJLp+/btc3VCACSWqoUIOJA49u7dG9f1HT161LuAQ9HMli1bXKLDI5smTZpYvOzcudN69eplX3zx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U6VKFbviiitsyZIlaZJGAAAQh2axv/32m40aNcoNV7937147d+5cyHyvuj3X9/Tu3dsaN27suleX3bt3u+Kc8IHkVH9D85Kjuh56+fl7SNV3hP+e1MhqvritC0jv4nnuXGycq0gk5+J8rka7vpgDjr/85S+ubsWf//xnK1myZMQWK15QXY7vvvvO/vOf/8SlMuqwYcOSTFdzX1VCjZeqhQg4kDj0AJJRca4ikeyN87l69OhRbwKOTz/91FXSVE7DxaKKoBq7ZeHChXb55ZcHppcoUcJOnTplhw4dCsnl2LNnj5uXnAEDBgRa3fhzONSZWdGiReNaXLTh4MUJxoD0QPWrMirOVSSSYnE+V6PtEiPmgKNQoUKBOhReU4uYHj162AcffGDz589P0rFYvXr1LHv27K54p3379m7apk2bbMeOHdawYcNk15szZ073Cpc1a1b3ipdzRsCBxBHPc+di41xFIska53M12vXF/K0jRoywwYMH2++//24Xoxjl7bffdq1Q8uXL5+pl6HX8+HE3X81gu3Tp4nIr1IpGlUjVikbBBi1UAABIP2LO4Rg9erT9+OOPrmJmuXLlXA5DsFWrVsUtcePHj3f/N23aNElLmc6dO7u/n3/+eRddKYcjuOMvAACQgQOONm3a2MWiIpVoyo7GjRvnXgAAIJMEHEOGDPEmJQAAINOKOeDwU32JDRs2uL+rV69uderUiWe6AABAIgccar/boUMH12rE3xRVzVKbNWvmBlBT01IAAIBUtVJRM1V18vH999/bgQMH3Esdcqkvi549e7J1AQBA6nM4NKDa3Llz3QBpftWqVXOVNjWSKwAAQKpzONRnenhTWNG0jDyWAgAASEcBh4aB79Wrl+3atSsw7ZdffrE+ffpY8+bN450+AACQiAHHyy+/7OprqNOvihUrupe6HNe0l156yZtUAgCAxKrDoUHO1Juo6nFs3LjRTVN9jhYtWniRPgAAkKj9cGhI+ptvvtm9AAAA4lak8uWXX7rWKCo6CXf48GHX+deiRYuiXR0AAEggUQccY8eOta5du1r+/PmTzNOorX/9619tzJgx8U4fAABIpIBj7dq1duuttyY7X31wqLtzAACAFAcce/bsidj/hl+2bNls37590a4OAAAkkKgDjtKlS7suzJPz7bffWsmSJeOVLgAAkIgBx+23326DBg2yEydOJJl3/PhxN2z9nXfeGe/0AQCARGoWO3DgQJs1a5ZdddVV9vDDD1vlypXddPXFoXFUzp49a0888YSXaQUAAJk94ChevLh9/fXX9tBDD9mAAQPM5/MF+uRo2bKlCzq0DAAAQKo6/ipbtqx98skndvDgQduyZYsLOipVqmSFChWKZTUAACDBpKinUQUY1157bfxTAwAAMqWYB28DAACIFQEHAADwHAEHAADwHAEHAADwHAEHAADwHAEHAADwHAEHAADwHAEHAADwHAEHAADwHAEHAADwHAEHAADwHAEHAADwHAEHAADwHAEHAADwHAEHAADwHAEHAADwHAEHAADwHAEHAADwHAEHAADwHAEHAADwHAEHAADwHAEHAADwHAEHAADwHAEHAADwHAEHAADwHAEHAADwHAEHAADwHAEHAADwHAEHAADwHAEHAADwHAEHAADwXKYJOMaNG2flypWzXLlyWf369W3ZsmVpnSQAAJCZAo53333XHnnkERsyZIitWrXKatWqZS1btrS9e/emddIAAEBmCTjGjBljXbt2tfvvv9+qVatmr7zyil166aU2adKktE4aAAAws2wZfSucOnXKVq5caQMGDAhMy5o1q7Vo0cKWLFkS8TMnT550L7/Dhw+7/w8dOmTnzp2LX+JO/ha/dQHpnM6fDItzFQnkUJzP1SNHjrj/fT5f5g44/vvf/9rZs2etePHiIdP1fuPGjRE/M3LkSBs2bFiS6WXLlvUsnUBmV2hsWqcAQFqeq0ePHrUCBQpk3oAjJZQbojoffsrVOHDggBUpUsSyZMmSpmlD6iPtMmXK2M6dOy1//vxsTiCd4lzNPJSzoWCjVKlS510uwwccl112mV1yySW2Z8+ekOl6X6JEiYifyZkzp3sFK1iwoKfpxMWlYIOAA0j/OFczh/PlbGSaSqM5cuSwevXq2bx580JyLPS+YcOGaZo2AACQSXI4RMUjnTp1smuuucauu+46Gzt2rP3222+u1QoAAEh7mSLg+OMf/2j79u2zwYMH2+7du6127dr22WefJalIisxPRWXqjyW8yAxA+sK5mniy+C7UjgUAACCVMnwdDgAAkP4RcAAAAM8RcAAAAM8RcOCi0Ei+aj0EAEhMBBw4r1atWtmtt94acd6iRYtcz6zffvttzFtRn/vwww/Txdbfvn27S8+aNWvSOilAqqmlXo8ePaxChQqu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",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"labels = [\"Voltage term\", \"Current term\"]\n",
"values = [percent_V, percent_I]\n",
"\n",
"plt.figure(figsize=(6, 4))\n",
"plt.bar(labels, values)\n",
"plt.ylabel(\"Contribution to total variance [%]\")\n",
"plt.title(\"Which Measurement Dominates the Uncertainty?\")\n",
"plt.ylim(0, 100)\n",
"plt.grid(True, axis=\"y\", alpha=0.3)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Relative uncertainty\n",
"\n",
"In many cases, it is useful to express uncertainty relative to the value itself:\n",
"\n",
"\\[\n",
"\\text{Relative uncertainty} = \\frac{\\sigma_R}{R}\n",
"\\]\n",
"\n",
"This can also be written as a percentage."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Relative uncertainty of R = 0.0300\n",
"Relative uncertainty of R = 3.00%\n"
]
}
],
"source": [
"relative_R = sigma_R / R\n",
"relative_R_percent = 100 * relative_R\n",
"\n",
"print(f\"Relative uncertainty of R = {relative_R:.4f}\")\n",
"print(f\"Relative uncertainty of R = {relative_R_percent:.2f}%\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Summary table\n",
"\n",
"The following table gathers the main values computed in this lab."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
quantity
\n",
"
value
\n",
"
uncertainty
\n",
"
units
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
"
Voltage
\n",
"
12.000000
\n",
"
0.200000
\n",
"
V
\n",
"
\n",
"
\n",
"
1
\n",
"
Current
\n",
"
2.000000
\n",
"
0.050000
\n",
"
A
\n",
"
\n",
"
\n",
"
2
\n",
"
Resistance
\n",
"
6.000000
\n",
"
0.180278
\n",
"
ohm
\n",
"
\n",
"
\n",
"
3
\n",
"
Area
\n",
"
314.159265
\n",
"
12.566371
\n",
"
mm^2
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" quantity value uncertainty units\n",
"0 Voltage 12.000000 0.200000 V\n",
"1 Current 2.000000 0.050000 A\n",
"2 Resistance 6.000000 0.180278 ohm\n",
"3 Area 314.159265 12.566371 mm^2"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"summary_df = pd.DataFrame({\n",
" \"quantity\": [\"Voltage\", \"Current\", \"Resistance\", \"Area\"],\n",
" \"value\": [V, I, R, A],\n",
" \"uncertainty\": [sigma_V, sigma_I, sigma_R, sigma_A],\n",
" \"units\": [\"V\", \"A\", \"ohm\", \"mm^2\"]\n",
"})\n",
"\n",
"summary_df"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Exercise C\n",
"\n",
"Use the results above to answer:\n",
"\n",
"1. What is the computed resistance?\n",
"2. What is its propagated uncertainty?\n",
"3. Which variable contributes more to the uncertainty in resistance?\n",
"4. If you could improve only one instrument, would you improve the voltage measurement or the current measurement?\n",
"\n",
"Justify your answer briefly."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Additional Student Exercise\n",
"\n",
"Now modify the values below and recompute the propagated uncertainty.\n",
"\n",
"Suggested values:\n",
"\n",
"- \\(V = 9.0 \\pm 0.1\\) V\n",
"- \\(I = 0.50 \\pm 0.03\\) A\n",
"\n",
"Then compare the result with the previous example."
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"R = 18.000 ± 1.098 ohm\n",
"Relative uncertainty = 6.10%\n"
]
}
],
"source": [
"V2 = 9.0\n",
"sigma_V2 = 0.1\n",
"\n",
"I2 = 0.50\n",
"sigma_I2 = 0.03\n",
"\n",
"R2 = V2 / I2\n",
"sigma_R2 = np.sqrt(\n",
" (sigma_V2 / I2)**2 +\n",
" ((V2 * sigma_I2) / (I2**2))**2\n",
")\n",
"\n",
"print(f\"R = {R2:.3f} ± {sigma_R2:.3f} ohm\")\n",
"print(f\"Relative uncertainty = {100 * sigma_R2 / R2:.2f}%\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Reflection prompt\n",
"\n",
"Compare the two resistance examples.\n",
"\n",
"- Which one has the larger relative uncertainty?\n",
"- Why?\n",
"- What role does the current measurement play in each case?\n",
"\n",
"Write a short paragraph discussing your observation."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Second example - voltage contribution: 3.32%\n",
"Second example - current contribution: 96.68%\n"
]
}
],
"source": [
"term_V2 = (sigma_V2 / I2)**2\n",
"term_I2 = ((V2 * sigma_I2) / (I2**2))**2\n",
"total2 = term_V2 + term_I2\n",
"\n",
"percent_V2 = 100 * term_V2 / total2\n",
"percent_I2 = 100 * term_I2 / total2\n",
"\n",
"print(f\"Second example - voltage contribution: {percent_V2:.2f}%\")\n",
"print(f\"Second example - current contribution: {percent_I2:.2f}%\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Final Questions\n",
"\n",
"Before finishing the lab, make sure you can answer the following:\n",
"\n",
"1. What is the difference between repeated-measurement variability and propagated uncertainty?\n",
"2. Why is the sample standard deviation useful in experimental work?\n",
"3. Why does a computed quantity inherit uncertainty from its inputs?\n",
"4. Why is it useful to identify the dominant source of uncertainty?\n",
"\n",
"These questions are central to experimental design and data analysis."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Conclusion\n",
"\n",
"In this lab, you learned how to:\n",
"\n",
"- estimate uncertainty from repeated measurements,\n",
"- report values with uncertainty,\n",
"- propagate uncertainty through simple formulas,\n",
"- compare uncertainty contributions from different variables.\n",
"\n",
"This is one of the most practical uses of statistics in engineering and scientific measurement."
]
}
],
"metadata": {
"kernelspec": {
"display_name": ".venv (3.14.2)",
"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.14.2"
}
},
"nbformat": 4,
"nbformat_minor": 5
}