Skip to content
Permalink
fb4326f1dc
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
1030 lines (1029 sloc) 134 KB
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Computational Mechanics Project #01 - Heat Transfer in Forensic Science\n",
"\n",
"We can use our current skillset for a macabre application. We can predict the time of death based upon the current temperature and change in temperature of a corpse. \n",
"\n",
"Forensic scientists use Newton's law of cooling to determine the time elapsed since the loss of life, \n",
"\n",
"$\\frac{dT}{dt} = -K(T-T_a)$,\n",
"\n",
"where $T$ is the current temperature, $T_a$ is the ambient temperature, $t$ is the elapsed time in hours, and $K$ is an empirical constant. \n",
"\n",
"Suppose the temperature of the corpse is 85$^o$F at 11:00 am. Then, 2 hours later the temperature is 74$^{o}$F. \n",
"\n",
"Assume ambient temperature is a constant 65$^{o}$F.\n",
"\n",
"1. Use Python to calculate $K$ using a finite difference approximation, $\\frac{dT}{dt} \\approx \\frac{T(t+\\Delta t)-T(t)}{\\Delta t}$. "
]
},
{
"cell_type": "code",
"execution_count": 136,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"K = 0.37931034\n"
]
}
],
"source": [
"T_ambient=65\n",
"T_0=85\n",
"T_1=74\n",
"delta_t = 2\n",
"dTdt=(T_1-T_0)/delta_t\n",
"K=-dTdt/((T_1+T_0)/2-T_ambient)\n",
"print('K =',round(K,8))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"2. Change your work from problem 1 to create a function that accepts the temperature at two times, ambient temperature, and the time elapsed to return $K$. "
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"def measure_K(Temp_t1,Temp_t2,Temp_ambient,delta_t):\n",
" ''' Determine the value of K based upon temperature of corpse \n",
" when discovered, Temp_t1\n",
" after time, delta_t, Temp_t2\n",
" with ambient temperature, Temp_ambient'''\n",
" dTdt=(Temp_t2-Temp_t1)/delta_t\n",
" K = -dTdt/((Temp_t1+Temp_t2)/2-Temp_ambient)\n",
" return K "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"3. A first-order thermal system has the following analytical solution, \n",
"\n",
" $T(t) =T_a+(T(0)-T_a)e^{-Kt}$\n",
"\n",
" where $T(0)$ is the temperature of the corpse at t=0 hours i.e. at the time of discovery and $T_a$ is a constant ambient temperature. \n",
"\n",
" a. Show that an Euler integration converges to the analytical solution as the time step is decreased. Use the constant $K$ derived above and the initial temperature, T(0) = 85$^o$F. \n",
"\n",
" b. What is the final temperature as t$\\rightarrow\\infty$?\n",
" \n",
" c. At what time was the corpse 98.6$^{o}$F? i.e. what was the time of death?"
]
},
{
"cell_type": "code",
"execution_count": 108,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0, 0.5, 'Temperature (degF)')"
]
},
"execution_count": 108,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"\n",
"#Analytical Solution:\n",
"#The below code calculates the analytical values of the\n",
"#body temperature for 10000 times between 3 hours before\n",
"#11 AM and 10 hours after to be used in future plots\n",
"time_a=[]\n",
"temp_a=[]\n",
"Tamb= 65\n",
"T0 = 85\n",
"K_a = K\n",
"for time in np.linspace(-3,10,10000):\n",
" temp_current= Tamb+(T0-Tamb)*np.exp(-K_a*time)\n",
" time_a.append(time)\n",
" temp_a.append(temp_current)\n",
"\n",
"plt.plot(time_a,temp_a)\n",
"plt.title('Analytical Model')\n",
"plt.xlabel('Time (From 11AM), hours')\n",
"plt.ylabel('Temperature (degF)')"
]
},
{
"cell_type": "code",
"execution_count": 105,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7f732f41ff28>"
]
},
"execution_count": 105,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#This code calculates data for a Euler appoximation of\n",
"#the body temperature using a timestep of 1 hour, and plots\n",
"#the data on the same axes with the analytical data previously\n",
"#calculated\n",
"K_e = K\n",
"temp_current=85\n",
"Temp_Euler=[temp_current]\n",
"time_Euler=[0]\n",
"t_final=10\n",
"temp_current=85\n",
"temp_current2 = temp_current\n",
"temp_ambient_euler=65\n",
"timestep = 1 #hours\n",
"for t in np.linspace(timestep,t_final,(t_final/timestep)):\n",
" dTdt_Euler = -K_e*(temp_current-temp_ambient_euler)\n",
" temp_current = temp_current+timestep*dTdt_Euler\n",
" Temp_Euler.append(temp_current)\n",
" time_Euler.append(t)\n",
" \n",
"for t2 in np.linspace(0-timestep,-3,(3/timestep)):\n",
" dTdt_Euler2 = -K_e*(temp_current2-temp_ambient_euler)\n",
" temp_current2 = temp_current2-timestep*dTdt_Euler2\n",
" Temp_Euler.insert(0,temp_current2)\n",
" time_Euler.insert(0,t2)\n",
"\n",
"plt.plot(time_Euler, Temp_Euler,label='Euler Approximation')\n",
"plt.plot(time_a,temp_a,label='Analytical')\n",
"\n",
"\n",
"plt.xlabel('Time (From 11AM), hours')\n",
"plt.ylabel('Temperature (degF)')\n",
"plt.title('Temperature over Time with 1 Hour Timestep')\n",
"plt.legend()"
]
},
{
"cell_type": "code",
"execution_count": 132,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7f732eb7ac18>"
]
},
"execution_count": 132,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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2bMnkydPJiUlhauvvprjx4+Xxvm73/2OESNG8Oabb7JmzRqGDRtGSkoKEydO5PDhwxQVFTF06FAWL14MwAMPPMBvfvMbAEaPHl3a1U5cXBz3338/gwcP5sILL2TlypWMHj2arl278t5775XGMnLkSAYNGsSgQYP48ssvAZgyZQqff/45AwYM4IknnmDx4sVcdtllAGRmZjJhwgRSUlIYNmwYa9euLX2fbr311tJtPPXUU9X/wAI0ypJC3/bxPNlkJL7892DLJzCgvAuljKk/Hn1/Axv3Zp96xiro3S6ehy/vU+k8ubm5DBgwoHT4gQce4Jprrglq/ffddx8/+9nPGDFiBLt372bs2LFs2rQJgFWrVrF06VJiYmJOWm7WrFlcd911jBw5km+++YaDBw/SqlUrAFauXMn69euJjY1l6NChXHrppSQmJvLNN98wffp0hg8fzq233srTTz/NL3/p3Fk0OjqapUuXApCSksI//vEPzjvvPB566CEeffRRnnzySWbMmMHVV1/NU089xccff8yKFStOiuvYsWOMHj2aP//5z0ycOJEHH3yQefPmsXHjRiZPnsz48eNp1aoV8+bNIzo6mq1bt3LdddeRmprK1KlTefzxx/ngA6dKuyQBATz88MMMHDiQuXPnsnDhQm666abS0tnmzZtZtGgROTk59OjRgzvvvLNKbRLK0yiTgojQpe9w9qa2JGnDu0RYUjCmWk6n+mj+/Pkn1MdnZ2eTk5MDwPjx48tNCACzZ89mzpw5+Hw+rrzySt58803uvvtuAMaMGUPLli0BuPLKK1m6dCkTJkygQ4cODB8+HIAbbriBp556qjQplCSxI0eOkJWVxXnnnQfA5MmTmTRpEgB9+vThxhtv5PLLL2fZsmVERkaeFFdkZCTjxo0DoF+/fkRFRREREUG/fv3YuXMn4DQ4vOeee1izZg1hYWFs2bLllO/T0qVLeftt55br559/PhkZGaXnUi699FKioqKIioqiVatWHDhwgOTk5FOuszKNMikAXJzSlo9XDGXytwudE89Rnt8X3phqO9URfW0LDw/H7/cDVNji2u/3s2zZsnL//Js0aVLuMmvXrmXr1q2MGTMGgIKCArp27VqaFMpeglkyXNH4yrZV1rp162jWrBkHDhwod3pERETpen0+H1FRUaWvi4qKAOcEeevWrfn666/x+/1ER0efcrvl3d6gZDsl2wDnpH/Jdk5HozynADCwQ3NWRp9LmD8fts33OhxjGpTOnTuzatUqgNKj3LIuuugipk2bVjocTIlj1qxZPPLII+zcuZOdO3eyd+9evvvuO3btcnqCnjdvHpmZmeTm5jJ37tzS0sHu3btZtmxZ6TpGjBhx0roTEhJo3rw5n3/+OQAvv/xyaanhnXfeISMjgyVLlnDvvfeSlZUV7FtxgiNHjtC2bVt8Ph8vv/wyxcVOxw1NmzYtLSWVNWrUKF599VXAqVZKTEwkPj6+WtsPRqNNCj6f0KbvaDI0nqIN73kdjjH1Usk5hZLHlClTAKce/L777mPkyJEVXtHz1FNPkZqaSkpKCr179+bZZ5895fZmz57NxIkTTxg3ceJEZs+eDcCIESO48cYbGTBgAFdddVXpFTy9evVi5syZpKSkkJmZyZ133lnu+mfOnMmvfvUrUlJSWLNmDQ899BCHDh1iypQpTJ8+nTPPPJN77rmH++67L+j3KNBdd93FzJkzGTZsGFu2bCktpaSkpBAeHk7//v154oknTljmkUceKX2fpkyZwsyZM6u17WDV63s0DxkyRE/nJjvLvs1g54u3cXX0SiKm7IDwqFMvZEwdsWnTJnr16uV1GHXGjBkzSE1NPaH0Ac4VP5dddhnr16+vYMmGrbzviYisUtVyr3lttCUFgLO6tODLyHOIKDoG2z/zOhxjjPFco04KYT4hofeF5GgMRRve9TocY8xpuPnmm08qJYBzfqOxlhKqo1EnBYCLUjqywD8Q/+b/QPHpn7k3xpj6rNEnhXO6tWRJ2DlE5h+GXUu9DscYYzzV6JNCRJiP6F5jOabRFK0t/9I5Y4xpLBp9UgAYN7Ar8/yD8G98D4oLvQ7HGGM8Y0kBOLdbSxZHjCSyIMuuQjKmiubMmYOIsHnz5lPPXIGbb76Zt956q9J5/vjHP54wfO6551ZrW4888giPP/54tZZtDCwpAOFhPhL6jiVbYylaV/kX0xhzopIWwiUNyEKlbFIo6WHU1CxLCq5LBnTmU/8QdNMHUJTvdTjG1AtHjx7liy++YPr06aVJYfHixYwePZqrr76anj17cv3115f23/O73/2OoUOH0rdvX+64446T+vVZsGDBCS2W582bx5VXXsmUKVNKW09ff/31gNNVdYm//OUv9OvXj/79+5e2qv73v//N0KFD6d+/P1dddVVpd9mmco22Q7yyhnZuwayokVxduAS+XQg9LvY6JGOC99EU2L+uZtfZph9cXPmd1ObOncu4ceM488wzadGiBV999RUAq1evZsOGDbRr147hw4fzxRdfMGLECO655x4eeughAG688UY++OADLr/88tL1nX/++dx9992kp6eTlJTEiy++yC233MLll1/OtGnTyu0f6aOPPmLu3LmsWLGC2NhYMjOde6RceeWV3H777QA8+OCDTJ8+nZ/85Cc18tY0ZFZScPl8QlLKOA5rHAVfWxWSMcGYNWsW1157LQDXXntt6U1vzjrrLJKTk/H5fAwYMKC06+hFixZx9tln069fPxYuXMiGDRtOWJ+IcOONN/LKK6+QlZXFsmXLuPjiyg/Q5s+fzy233EJsbCwALVq0AGD9+vWMHDmSfv368eqrr560LVM+KykEuHRgRz5aOZRJ33wIhbkQUX5/7sbUOac4og+FjIwMFi5cyPr16xERiouLEREuueSScrt0zsvL46677iI1NZUOHTrwyCOPlNutdknJIDo6mkmTJpV7O85AqnpS19jgnLyeO3cu/fv3Z8aMGSfcuMZULGQlBRF5QUQOisj6gHF/FZHNIrJWROaISLOAaQ+IyDYR+UZExoYqrsr0T05gZZPRRBQfh62fehGCMfXGW2+9xU033cSuXbvYuXMne/bsoUuXLqV3MSurJAEkJiZy9OjRCq82ateuHe3ateMPf/jDCfdfjoiIoLDw5EvGL7roIl544YXScwYl1Uc5OTm0bduWwsLC0q6nzamFsvpoBjCuzLh5QF9VTQG2AA8AiEhv4Fqgj7vM0yJStTto1wARof2ACzmk8eSvsSokYyoza9ask7qxvuqqq3jttdfKnb9Zs2bcfvvt9OvXjwkTJjB06NAK13399dfToUMHevfuXTrujjvuICUlpfREc4lx48Yxfvx4hgwZwoABA0ovN/3973/P2WefzZgxY+jZs2d1d7PRCWnX2SLSGfhAVfuWM20icLWqXi8iDwCo6p/caZ8Aj6jqssrWf7pdZ5dn8/5sVk67lR9Efk74/dsgqmmNrt+YmtKQu86+5557GDhwILfddpvXodR79anr7FuBj9zX7YE9AdPS3HEnEZE7RCRVRFLT09NrPKiebeJZ3WwM4f482PR+ja/fGFO5wYMHs3btWm644QavQ2mUPEkKIvIb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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#The below code recalculates the Euler approximation\n",
"#data with a smaller timestep of 0.05 hours and plots\n",
"#the data again with the analytical data. It shows that\n",
"#the Euler approximation does converge to the analytical model\n",
"K_ei = K\n",
"temp_currenti=85\n",
"Temp_Euleri=[temp_currenti]\n",
"time_Euleri=[0]\n",
"t_finali=10\n",
"temp_currenti=85\n",
"temp_current2i = temp_currenti\n",
"temp_ambient_euleri=65\n",
"timestepi = .05 #hours\n",
"for ti in np.linspace(timestepi,t_finali,(t_finali/timestepi)):\n",
" dTdt_Euleri = -K_ei*(temp_currenti-temp_ambient_euleri)\n",
" temp_currenti = temp_currenti+timestepi*dTdt_Euleri\n",
" Temp_Euleri.append(temp_currenti)\n",
" time_Euleri.append(ti)\n",
" \n",
"for t2i in np.linspace(0-timestepi,-3,(3/timestepi)):\n",
" dTdt_Euler2i = -K_ei*(temp_current2i-temp_ambient_euleri)\n",
" temp_current2i = temp_current2i-timestepi*dTdt_Euler2i\n",
" Temp_Euleri.insert(0,temp_current2i)\n",
" time_Euleri.insert(0,t2i)\n",
"\n",
"plt.plot(time_Euleri, Temp_Euleri,label='Euler Approximation')\n",
"plt.plot(time_a,temp_a,label='Analytical')\n",
"\n",
"\n",
"plt.xlabel('Time (From 11AM), hours')\n",
"plt.ylabel('Temperature (degF)')\n",
"plt.title('Temperature over Time with 0.05 Hour Timestep')\n",
"plt.legend()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"__Answer 3 Part A:__ As can be seen in the previous two plots, as the timestep is decreased, the Euler approximation does in fact converge to the analytical solution. In the above plot, the two curves are completely overlaid.\n",
"\n",
"\n",
"__Answer 3 Part B:__ In the above plot, it can be observed that both the Euler approximation and the analytical solution approach a value of 65 degrees F as time approaches infinity."
]
},
{
"cell_type": "code",
"execution_count": 131,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"-3.0 126.7446\n",
"-2.95 125.5954\n",
"-2.9 124.4676\n",
"-2.85 123.3607\n",
"-2.8 122.2745\n",
"-2.75 121.2085\n",
"-2.7 120.1623\n",
"-2.65 119.1356\n",
"-2.6 118.128\n",
"-2.55 117.1391\n",
"-2.5 116.1687\n",
"-2.45 115.2163\n",
"-2.4 114.2817\n",
"-2.35 113.3644\n",
"-2.3 112.4642\n",
"-2.25 111.5808\n",
"-2.2 110.7138\n",
"-2.15 109.863\n",
"-2.1 109.0279\n",
"-2.05 108.2085\n",
"-2.0 107.4043\n",
"-1.95 106.615\n",
"-1.9 105.8404\n",
"-1.85 105.0803\n",
"-1.8 104.3343\n",
"-1.75 103.6022\n",
"-1.7 102.8837\n",
"-1.65 102.1786\n",
"-1.6 101.4866\n",
"-1.55 100.8075\n",
"-1.5 100.141\n",
"-1.45 99.487\n",
"-1.4 98.8451\n",
"-1.35 98.2151\n",
"-1.3 97.5969\n",
"-1.25 96.9902\n",
"-1.2 96.3948\n",
"-1.15 95.8105\n",
"-1.1 95.237\n",
"-1.05 94.6742\n",
"-1.0 94.1219\n",
"-0.95 93.5799\n",
"-0.9 93.0479\n",
"-0.85 92.5259\n",
"-0.8 92.0136\n",
"-0.75 91.5108\n",
"-0.7 91.0173\n",
"-0.65 90.5331\n",
"-0.6 90.0579\n",
"-0.55 89.5915\n",
"-0.5 89.1338\n",
"-0.45 88.6846\n",
"-0.4 88.2437\n",
"-0.35 87.8111\n",
"-0.3 87.3865\n",
"-0.25 86.9699\n",
"-0.2 86.561\n",
"-0.15 86.1596\n",
"-0.1 85.7658\n",
"-0.05 85.3793\n",
"0 85\n",
"0.05 84.6207\n",
"0.1 84.2486\n",
"0.15 83.8835\n",
"0.2 83.5254\n",
"0.25 83.174\n",
"0.3 82.8294\n",
"0.35 82.4912\n",
"0.4 82.1595\n",
"0.45 81.834\n",
"0.5 81.5148\n",
"0.55 81.2016\n",
"0.6 80.8943\n",
"0.65 80.5929\n",
"0.7 80.2971\n",
"0.75 80.007\n",
"0.8 79.7224\n",
"0.85 79.4432\n",
"0.9 79.1693\n",
"0.95 78.9005\n",
"1.0 78.6369\n",
"1.05 78.3783\n",
"1.1 78.1245\n",
"1.15 77.8756\n",
"1.2 77.6314\n",
"1.25 77.3919\n",
"1.3 77.1569\n",
"1.35 76.9263\n",
"1.4 76.7001\n",
"1.45 76.4782\n",
"1.5 76.2605\n",
"1.55 76.047\n",
"1.6 75.8374\n",
"1.65 75.6319\n",
"1.7 75.4303\n",
"1.75 75.2324\n",
"1.8 75.0384\n",
"1.85 74.848\n",
"1.9 74.6612\n",
"1.95 74.478\n",
"2.0 74.2982\n",
"2.05 74.1219\n",
"2.1 73.9489\n",
"2.15 73.7792\n",
"2.2 73.6127\n",
"2.25 73.4493\n",
"2.3 73.2891\n",
"2.35 73.1319\n",
"2.4 72.9777\n",
"2.45 72.8264\n",
"2.5 72.6779\n",
"2.55 72.5323\n",
"2.6 72.3895\n",
"2.65 72.2493\n",
"2.7 72.1118\n",
"2.75 71.9769\n",
"2.8 71.8446\n",
"2.85 71.7148\n",
"2.9 71.5875\n",
"2.95 71.4625\n",
"3.0 71.34\n",
"3.05 71.2197\n",
"3.1 71.1018\n",
"3.15 70.986\n",
"3.2 70.8725\n",
"3.25 70.7611\n",
"3.3 70.6519\n",
"3.35 70.5447\n",
"3.4 70.4395\n",
"3.45 70.3364\n",
"3.5 70.2351\n",
"3.55 70.1359\n",
"3.6 70.0385\n",
"3.65 69.9429\n",
"3.7 69.8492\n",
"3.75 69.7572\n",
"3.8 69.667\n",
"3.85 69.5785\n",
"3.9 69.4916\n",
"3.95 69.4064\n",
"4.0 69.3229\n",
"4.05 69.2409\n",
"4.1 69.1605\n",
"4.15 69.0815\n",
"4.2 69.0041\n",
"4.25 68.9282\n",
"4.3 68.8537\n",
"4.35 68.7806\n",
"4.4 68.7089\n",
"4.45 68.6386\n",
"4.5 68.5696\n",
"4.55 68.5019\n",
"4.6 68.4354\n",
"4.65 68.3703\n",
"4.7 68.3064\n",
"4.75 68.2437\n",
"4.8 68.1821\n",
"4.85 68.1218\n",
"4.9 68.0626\n",
"4.95 68.0045\n",
"5.0 67.9475\n",
"5.05 67.8916\n",
"5.1 67.8368\n",
"5.15 67.783\n",
"5.2 67.7302\n",
"5.25 67.6784\n",
"5.3 67.6276\n",
"5.35 67.5778\n",
"5.4 67.5289\n",
"5.45 67.4809\n",
"5.5 67.4339\n",
"5.55 67.3877\n",
"5.6 67.3424\n",
"5.65 67.298\n",
"5.7 67.2544\n",
"5.75 67.2117\n",
"5.8 67.1697\n",
"5.85 67.1286\n",
"5.9 67.0882\n",
"5.95 67.0486\n",
"6.0 67.0098\n",
"6.05 66.9716\n",
"6.1 66.9342\n",
"6.15 66.8976\n",
"6.2 66.8616\n",
"6.25 66.8263\n",
"6.3 66.7916\n",
"6.35 66.7577\n",
"6.4 66.7243\n",
"6.45 66.6916\n",
"6.5 66.6595\n",
"6.55 66.6281\n",
"6.6 66.5972\n",
"6.65 66.5669\n",
"6.7 66.5372\n",
"6.75 66.508\n",
"6.8 66.4794\n",
"6.85 66.4514\n",
"6.9 66.4238\n",
"6.95 66.3968\n",
"7.0 66.3703\n",
"7.05 66.3444\n",
"7.1 66.3189\n",
"7.15 66.2938\n",
"7.2 66.2693\n",
"7.25 66.2452\n",
"7.3 66.2216\n",
"7.35 66.1984\n",
"7.4 66.1757\n",
"7.45 66.1534\n",
"7.5 66.1315\n",
"7.55 66.1101\n",
"7.6 66.089\n",
"7.65 66.0684\n",
"7.7 66.0481\n",
"7.75 66.0282\n",
"7.8 66.0087\n",
"7.85 65.9896\n",
"7.9 65.9708\n",
"7.95 65.9524\n",
"8.0 65.9344\n",
"8.05 65.9166\n",
"8.1 65.8993\n",
"8.15 65.8822\n",
"8.2 65.8655\n",
"8.25 65.8491\n",
"8.3 65.833\n",
"8.35 65.8172\n",
"8.4 65.8017\n",
"8.45 65.7865\n",
"8.5 65.7715\n",
"8.55 65.7569\n",
"8.6 65.7425\n",
"8.65 65.7285\n",
"8.7 65.7147\n",
"8.75 65.7011\n",
"8.8 65.6878\n",
"8.85 65.6748\n",
"8.9 65.662\n",
"8.95 65.6494\n",
"9.0 65.6371\n",
"9.05 65.625\n",
"9.1 65.6132\n",
"9.15 65.6015\n",
"9.2 65.5901\n",
"9.25 65.5789\n",
"9.3 65.5679\n",
"9.35 65.5572\n",
"9.4 65.5466\n",
"9.45 65.5362\n",
"9.5 65.5261\n",
"9.55 65.5161\n",
"9.6 65.5063\n",
"9.65 65.4967\n",
"9.7 65.4873\n",
"9.75 65.478\n",
"9.8 65.469\n",
"9.85 65.4601\n",
"9.9 65.4514\n",
"9.95 65.4428\n"
]
}
],
"source": [
"#This code prints each temperature from the small\n",
"#timestep Euler appoximation and the corresponding\n",
"#time in hours. It can be used to determine when the\n",
"#body temperature was 98.6 degrees, predicting time of death\n",
"for index in range(int(13/timestepi)):\n",
" print(round(time_Euleri[index],2),' ',round(Temp_Euleri[index],4))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"__Answer 3 Part C:__ In the above printed list of all time and temperature values from the small timestep Euler approximation data, the time value of -1.4 hours from 11 AM corresponds to a predicted body temperature of 98.85, and -1.35 corresponds to a temp of 98.22 degress. So the time of death was approximately 1.38 hours before 11 AM or about __9:36 AM__"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"4. Now that we have a working numerical model, we can look at the results if the\n",
"ambient temperature is not constant i.e. T_a=f(t). We can use the weather to improve our estimate for time of death. Consider the following Temperature for the day in question. \n",
"\n",
" |time| Temp ($^o$F)|\n",
" |---|---|\n",
" |8am|55|\n",
" |9am|58|\n",
" |10am|60|\n",
" |11am|65|\n",
" |noon|66|\n",
" |1pm|67|\n",
"\n",
" a. Create a function that returns the current temperature based upon the time (0 hours=11am, 65$^{o}$F) \n",
" *Plot the function $T_a$ vs time. Does it look correct? Is there a better way to get $T_a(t)$?\n",
"\n",
" b. Modify the Euler approximation solution to account for changes in temperature at each hour. \n",
" Compare the new nonlinear Euler approximation to the linear analytical model. \n",
" At what time was the corpse 98.6$^{o}$F? i.e. what was the time of death? \n",
" \n",
" "
]
},
{
"cell_type": "code",
"execution_count": 139,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7f732ea40a20>"
]
},
"execution_count": 139,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#Problem 4 Part A:\n",
"#The code below defines a function which calculates\n",
"#the ambient temperature using linear interpolation\n",
"def ambientTemp(time3):\n",
" ''' Determine the ambient temperature based upon time \n",
" in military time input interpolating between hour intervals''' \n",
" xp = [8,9,10,11,12,13]\n",
" fp = [55,58,60,65,66,67]\n",
" temp_i = np.interp(time3,xp,fp)\n",
" return temp_i\n",
"\n",
"#The below code tests the ambient temp function by utilizing\n",
"#it for a list of 1000 distributed points and plotting it\n",
"times2=np.linspace(8,13,1000)\n",
"temps2=[]\n",
"for k in times2:\n",
" temps2.append(ambientTemp(k))\n",
"plt.plot(times2,temps2,label='Interpolation')\n",
"\n",
"#The below code plots the discrete data points for comparison\n",
"#to data from the interpolation function\n",
"times= [8,9,10,11,12,13]\n",
"temps=[55,58,60,65,66,67]\n",
"plt.plot(times, temps, marker='o', linewidth=0,label='Known Values')\n",
"\n",
"#The below code formats the plot\n",
"plt.xlabel('Time')\n",
"plt.ylabel('Ambient Temp (degF)')\n",
"plt.legend()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"__Answer 4 Part A:__ As can be seen in the above plot, the function created to return the ambient temperature for a range of times throughout the data exactly matches the discrete data that was provided. However it is extremely unlikely that the temperature throughout the day varied linearly. More discrete data points for temperatures throughout the day would make the approximation more accurate."
]
},
{
"cell_type": "code",
"execution_count": 143,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7f732e934f28>"
]
},
"execution_count": 143,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEWCAYAAACJ0YulAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nOzdd3gVZfbA8e9J74UQaugi0kIIAREREFRQQQF1Bcvae1nZXVdcde27uu7afqy6dmygriKIrksHadJBqoC0UBMggfR2fn/MTUhICBfIzU05n+eZZ2beaecmcE/mnXnfV1QVY4wxBsDH2wEYY4ypOSwpGGOMKWFJwRhjTAlLCsYYY0pYUjDGGFPCkoIxxpgSlhSMMSckIheJyGpvx2GqjyUFc9pEJKPUVCQi2aXWr/d2fGdCRPaJSF9vx+FpIjKr1O8sX0RyS62/qqozVLWbt+M01cfP2wGY2ktVw4qXRWQ7cLuqzvBeRO4RET9VLajt1zgdx8elqgNLbZsIrFXV57wSnKkR7E7BeIyI+IrIEyLyq4ikisinIhLl2naOiBSIyG0isltEDorIrSJynoisFZE0EXm51Lnudv1V+28ROSIi60WkX6ntDUTkI9df+LtE5EkR8Tnu2H+JyGFgrOv6c0TkkIikiMh4EQl37f8l0AiY5vqL+UERGSIiW477fCV3EyLygoh8JiKfi8hRYFRln/8EP6/7RGSr62fxtYg0dpV/KCLPHbfv/0TkXtdyCxGZ7LrGryJyd6n9ysV1ir/DMp/b9Zl/LyLrXD+bN0WkqYhMd/1efhCRiFL7XyAiP7l+nytE5PxTub6pfpYUjCc9DFwC9AXigHzglVLbfYF4oC1wC/B/wB+B/q7yW0Tk3FL79wNWAzHAC8A3pb6APgXSXefqBQwHbjzu2FVAQ+CfrrJngCZAV6AD8BiAql4DHAAuUdUwVX3dzc97FTAeiAS+cuPzlxCRy4AngBFAcyAV+MS1+TNKfZmLSCPX5/lCRHyB74GFQDNgCPBnEelfSVxnagTO76iTK67JwO+BxkAYcI8rztbANzg/1wbA4zi/s+gqiMF4iCUF40l3AWNVdY+q5gBPA9eKiJTa5xlVzVXVKa71j1T1oKruxPmi615q312q+oaq5qvqR0AyMFhEWuF8Sf5eVbNUdS/wOmX/Kv5VVd9R1UJVzVbVjao6S1XzVHUf8CrOF92ZmKuq36tqkapmu/n5i10PvK2qa1z7/gkYJCJNgJlAmIj0cu17LTBbVVNxEk6Qqr7o+iy/AB8c99mPj+tMvaqqqaV+RwtU9WfXuSdz7Hd2E/C167lEkap+D6zHSZSmhrJnCsYjXF98LYDvRaR0r4s+OH/pAxSq6sFS27KB/ceth5VaTz7uMjtw/jpuBQQBKaW+b32A0tU9u46LrxnwGtAHCHftv9edz1aJkmu48flTjzu2GTCreEVV00TkCNBcVfeJyBfAaGAJcB0wzrVrK6C1iKSVOpcvUPrZTpnPXgWO/x2d6HfWChgtIteU2u6P81lNDWVJwXiEqqqI7AZGqury47eLSMPTOG3ccestgT04X3oZQLSeuNvf48tfAjKBLqp6WERGAc9Vsn8mEFK8IiL+OFUiFV7jZJ+/AntwvkSLzx8JRAC7XUUTgK9E5F841V3fuMp3ARtVtWsl5/ZWV8i7gHdV9QEvXd+cBqs+Mp70FvCCiLQApy5cRIadwflauB4a+4nIDThJYZqqbgMWA38XkXAR8RGR9lL5K6XhOInkiIi0xKkTL20/zvOJYhuABiIyyJUQnubk/39O5fNPAO4QkS4iEgS8CMxyVW2hqouAHOBN4FtVzXQdN9917odEJMj1s4kXkcSTxFYdxgPXuH5mviIS7Fpu4u3AzIlZUjCe9HecaoxZrjdfFgJn8mU1D6e++hDOw8sRqpru2jYaiAI2urZ/jvPg80T+glMfnw5MovwD2OeB511vzdzvqr//Hc4D7WRgH+WrgI7n9udX1anA34ApOHcNTSj7oBycxHERzoPn4uPygctwqsF2ACk4iSMML1PVX3Eecj+N87PagfMztO+dGkxskB1TG7hes7xaVS/ydizG1GWWsY0xxpSwpGCMMaaEVR8ZY4wp4bE7BRF5X0QOiMjaCrb9UUS09GuJIvKoiGwRkU0iMthTcRljjDkxT7ZT+BCngc1HpQtdr+ddDOwsVVbcXL4zTsOWGSJytqoWVnaBhg0bauvWras2amOMqeOWL1+eqqqxFW3zWFJQ1Xmuvk+O9wpOE/7JpcquBCaqai6wzdUBVy9gUWXXaN26NcuWLauagI0xpp4QkR0n2latD5pF5Apgt6oeP2hHc8o2xU92lVV0jjtFZJmILEtJSfFQpMYYUz9VW1IQkRCcBkd/qWhzBWUVPgFX1bdVNUlVk2JjK7z7McYYc5qqs++jdkAbYLWr07I4YIWr58dknM7DisXhtOo0xhhTjaotKajqzzgDlwAlI3UlqWqqiEwBPhNnUJVmQHuc3iCNqVPy8/NJTk4mJyfH26GYeiAoKIi4uDj8/f3dPsZjSUFEJgADgIYikgw8qarvVbSvqq5zdQ28HigA7jvZm0fG1EbJycmEh4fTunVrKh5WwZiqoaocPHiQ5ORk2rRp4/Zxnnz7aPRJtrc+bv15nE7IjKmzcnJyLCGYaiEixMTEcKov5Fg3F8ZUM0sIprqczr+1epkUdqdl8+IPG9mXbvW6xhhTWr1MCpm5Bbw5ZyuzNx3wdijGVKsBAwbwv//9r0zZq6++yr333ntK57nssstIS0urdJ+wsIqHdLj55pv5z3/+c0rXA+jWrRujR1daK12h7du306VLlwq33X777axfv/6UzwkwZ84cFi5cWK78gw8+ICEhgYSEBAICAujatSsJCQmMHTv2tK5T3erlcJztG4XRLDKIuZtSGN2rpbfDMabajB49mokTJzJ48LHuxSZOnMhLL73k1vGqiqry/fffeyrECm3YsIGioiLmzZtHZmYmoaGhVXLed99997SPnTNnDmFhYfTp06dM+S233MItt9wCOL0uzJ49m4YNT2f0We+ol3cKIkL/DrEs2JJKfmGRt8MxptpcffXVTJ06ldzcXMD5K3rPnj307duXjIwMBg0aRGJiIl27dmXy5Mkl+3Ts2JF7772XxMREdu3aRevWrUlNdQaeGz58OD169KBz5868/fbbZa73hz/8gcTERAYNGlThA8/ly5fTv39/evToweDBg9m7d2+FcX/22WfceOONXHLJJUyZMqWkfMCAAYwZM4Z+/frRsWNHli5dysiRI2nfvj2PP/54yX4FBQXcdNNNxMfHc/XVV5OVlVVyfHFXOdOmTeO8884jMTGRa665hoyMDMD5Yn/yySdLfi4bN25k+/btvPXWW7zyyiskJCTw448/uvXzz8jI4Oabb6ZXr150796db7/9FnCS08iRIxk6dCht2rThzTff5KWXXqJ79+706dOn5K6sb9++PPTQQ5x33nl07drVI9381Ms7BYD+ZzdiwpJdrNhxmHPbxng7HFMPPf3tOtbvOVKl5+zULIInh3U+4faYmBh69erFDz/8wJVXXsnEiRO59tprERGCgoKYNGkSERERpKam0rt3b6644goANm3axAcffMAbb7xR7pzvv/8+DRo0IDs7m549e3LVVVcRExNDZmYmiYmJ/POf/+SZZ57h6aefZty4cSXH5efn88ADDzB58mRiY2P5/PPPeeyxx3j//ffLXePzzz9n+vTpbNq0iXHjxpWpRgoICGDevHm89tprXHnllSxfvpwGDRrQrl07xowZUxL/e++9x/nnn8+tt97KG2+8wR//+MeSc6SmpvLcc88xY8YMQkNDefHFF3n55Zf5y1+cDhgaNmzIihUreOONN/jHP/7Bu+++y913301YWFiZ85zMM888w5AhQ/jwww85fPgw5557LhdffDEA69atY8WKFWRkZNC+fXtefvllVq5cyQMPPMAnn3zC/fffD0Bubi6LFi1i1qxZ3H777axatcrt67ujXt4pAJx/Vgx+PsKcX6z/JFO/FFchgVN1VPwFq6r8+c9/Jj4+nosuuojdu3ezf/9+AFq1akXv3r0rPN/rr79Ot27d6N27N7t27WLz5s0A+Pj4cO211wJwww03MH/+/DLHbdq0ibVr13LxxReTkJDAc889R3JycrnzL126lNjYWFq1asWgQYNYsWIFhw8fLtlenLi6du1K586dadq0KYGBgbRt25Zdu5wu1Vq0aMH5559/wlgWL17M+vXrOf/880lISGD8+PHs2HGsz7iRI0cC0KNHD7Zv336yH/EJTZs2jeeff56EhAQuvPBCcnJy2LnT6TB64MCBhIaG0rhxY8LCwhg2bFjJ5yp9zeLf18CBAzlw4EDJHU1Vqbd3CuFB/vRoFc3cTSk8MuQcb4dj6qHK/qL3pOHDh/P73/+eFStWkJ2dTWJiIgCffvopKSkpLF++HH9/f1q3bl3S8vpEdfhz5sxhxowZLFq0iJCQEAYMGHDC1trHvx6pqnTu3JlFiyrtDJkJEyawceNGirvJP3LkCF999RW33347AIGBgYCThIqXi9cLCgoqvHZFsVx88cVMmDChwhiKz+vr61tyztOhqnzzzTe0a9euTPm8efPKxV76c5W+5sk+y5mqt3cKAAM6NGL93iMcOGKvppr6IywsjAEDBnDrrbeWqYZJT0+nUaNG+Pv7M3v27DJ/KZ9Ieno60dHRhISEsHHjRhYvXlyyraioqOQto88++4y+ffuWObZDhw6kpKSUJIX8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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"K_e4 = K\n",
"temp_current4=85\n",
"Temp_Euler4=[temp_current4]\n",
"time_Euler4=[0]\n",
"t_final4=10\n",
"temp_current4=85\n",
"temp_current24 = temp_current4\n",
"timestep4 = .05 #hours\n",
"for t4 in np.linspace(timestep4,t_final4,(t_final4/timestep4)):\n",
" dTdt_Euler4 = -K_e4*(temp_current4-ambientTemp(t4+11))\n",
" temp_current4 = temp_current4+timestep4*dTdt_Euler4\n",
" Temp_Euler4.append(temp_current4)\n",
" time_Euler4.append(t4)\n",
" \n",
"for t4 in np.linspace(0-timestep4,-3,(3/timestep4)):\n",
" dTdt_Euler24 = -K_e4*(temp_current24-ambientTemp(t4+11))\n",
" temp_current24 = temp_current24-timestep4*dTdt_Euler24\n",
" Temp_Euler4.insert(0,temp_current24)\n",
" time_Euler4.insert(0,t4)\n",
"\n",
"plt.plot(time_Euler4, Temp_Euler4,label='Variable Ambient Temp')\n",
"plt.plot(time_Euleri, Temp_Euleri,label='Constant Ambient Temp')\n",
"\n",
"\n",
"plt.xlabel('Time (From 11AM), hours')\n",
"plt.ylabel('Temperature (degF)')\n",
"plt.title('Temperature over Time')\n",
"plt.legend()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"__Answer 4 Part B:__ The above plot compares the two small timestep Euler approximations of the body temperature over time. The blue curve uses a changing ambient temperature with the previously defined AmbientTemp function while the orange curve performs the Euler approximation with a constant ambient temperature of 65 degrees. The constant ambient temp model increases to higher temperatures more rapidly at earlier points in the day but converges to a lower final temperature later in the day. From the below printed list of varaible ambient temperature values, the predicted time of death is approximately -1.25 hours from 11 AM. So the variable ambient temp model predicts the time of death to have been about __9:45 AM__"
]
},
{
"cell_type": "code",
"execution_count": 144,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"-3.0 136.9773\n",
"-2.95 135.4515\n",
"-2.9 133.9569\n",
"-2.85 132.4929\n",
"-2.8 131.0589\n",
"-2.75 129.6544\n",
"-2.7 128.2789\n",
"-2.65 126.9317\n",
"-2.6 125.6124\n",
"-2.55 124.3205\n",
"-2.5 123.0554\n",
"-2.45 121.8166\n",
"-2.4 120.6037\n",
"-2.35 119.4162\n",
"-2.3 118.2535\n",
"-2.25 117.1153\n",
"-2.2 116.0011\n",
"-2.15 114.9103\n",
"-2.1 113.8427\n",
"-2.05 112.7978\n",
"-2.0 111.775\n",
"-1.95 110.7742\n",
"-1.9 109.7938\n",
"-1.85 108.8335\n",
"-1.8 107.8929\n",
"-1.75 106.9717\n",
"-1.7 106.0695\n",
"-1.65 105.186\n",
"-1.6 104.3208\n",
"-1.55 103.4735\n",
"-1.5 102.6439\n",
"-1.45 101.8316\n",
"-1.4 101.0362\n",
"-1.35 100.2576\n",
"-1.3 99.4952\n",
"-1.25 98.749\n",
"-1.2 98.0184\n",
"-1.15 97.3034\n",
"-1.1 96.6035\n",
"-1.05 95.9185\n",
"-1.0 95.2481\n",
"-0.95 94.592\n",
"-0.9 93.9528\n",
"-0.85 93.3302\n",
"-0.8 92.7238\n",
"-0.75 92.1333\n",
"-0.7 91.5585\n",
"-0.65 90.9991\n",
"-0.6 90.4547\n",
"-0.55 89.925\n",
"-0.5 89.4099\n",
"-0.45 88.9091\n",
"-0.4 88.4222\n",
"-0.35 87.949\n",
"-0.3 87.4893\n",
"-0.25 87.0428\n",
"-0.2 86.6093\n",
"-0.15 86.1885\n",
"-0.1 85.7801\n",
"-0.05 85.3841\n",
"0 85\n",
"0.05 84.6216\n",
"0.1 84.2514\n",
"0.15 83.8891\n",
"0.2 83.5347\n",
"0.25 83.1879\n",
"0.3 82.8487\n",
"0.35 82.5168\n",
"0.4 82.1922\n",
"0.45 81.8746\n",
"0.5 81.5641\n",
"0.55 81.2604\n",
"0.6 80.9634\n",
"0.65 80.6729\n",
"0.7 80.389\n",
"0.75 80.1113\n",
"0.8 79.8399\n",
"0.85 79.5746\n",
"0.9 79.3152\n",
"0.95 79.0618\n",
"1.0 78.814\n",
"1.05 78.572\n",
"1.1 78.3354\n",
"1.15 78.1043\n",
"1.2 77.8785\n",
"1.25 77.658\n",
"1.3 77.4426\n",
"1.35 77.2322\n",
"1.4 77.0268\n",
"1.45 76.8262\n",
"1.5 76.6303\n",
"1.55 76.4392\n",
"1.6 76.2526\n",
"1.65 76.0704\n",
"1.7 75.8927\n",
"1.75 75.7193\n",
"1.8 75.5502\n",
"1.85 75.3852\n",
"1.9 75.2242\n",
"1.95 75.0673\n",
"2.0 74.9143\n",
"2.05 74.7642\n",
"2.1 74.617\n",
"2.15 74.4725\n",
"2.2 74.3308\n",
"2.25 74.1917\n",
"2.3 74.0554\n",
"2.35 73.9215\n",
"2.4 73.7903\n",
"2.45 73.6615\n",
"2.5 73.5352\n",
"2.55 73.4112\n",
"2.6 73.2896\n",
"2.65 73.1703\n",
"2.7 73.0533\n",
"2.75 72.9385\n",
"2.8 72.8259\n",
"2.85 72.7154\n",
"2.9 72.607\n",
"2.95 72.5007\n",
"3.0 72.3963\n",
"3.05 72.294\n",
"3.1 72.1936\n",
"3.15 72.0951\n",
"3.2 71.9985\n",
"3.25 71.9037\n",
"3.3 71.8107\n",
"3.35 71.7194\n",
"3.4 71.6299\n",
"3.45 71.5421\n",
"3.5 71.456\n",
"3.55 71.3715\n",
"3.6 71.2885\n",
"3.65 71.2072\n",
"3.7 71.1274\n",
"3.75 71.0491\n",
"3.8 70.9723\n",
"3.85 70.897\n",
"3.9 70.8231\n",
"3.95 70.7506\n",
"4.0 70.6795\n",
"4.05 70.6097\n",
"4.1 70.5412\n",
"4.15 70.4741\n",
"4.2 70.4082\n",
"4.25 70.3435\n",
"4.3 70.2801\n",
"4.35 70.2179\n",
"4.4 70.1569\n",
"4.45 70.097\n",
"4.5 70.0383\n",
"4.55 69.9807\n",
"4.6 69.9241\n",
"4.65 69.8687\n",
"4.7 69.8143\n",
"4.75 69.7609\n",
"4.8 69.7085\n",
"4.85 69.6572\n",
"4.9 69.6068\n",
"4.95 69.5573\n",
"5.0 69.5088\n",
"5.05 69.4612\n",
"5.1 69.4146\n",
"5.15 69.3688\n",
"5.2 69.3238\n",
"5.25 69.2798\n",
"5.3 69.2365\n",
"5.35 69.1941\n",
"5.4 69.1525\n",
"5.45 69.1117\n",
"5.5 69.0716\n",
"5.55 69.0323\n",
"5.6 68.9938\n",
"5.65 68.956\n",
"5.7 68.9189\n",
"5.75 68.8825\n",
"5.8 68.8468\n",
"5.85 68.8118\n",
"5.9 68.7774\n",
"5.95 68.7437\n",
"6.0 68.7106\n",
"6.05 68.6782\n",
"6.1 68.6464\n",
"6.15 68.6151\n",
"6.2 68.5845\n",
"6.25 68.5544\n",
"6.3 68.525\n",
"6.35 68.496\n",
"6.4 68.4677\n",
"6.45 68.4398\n",
"6.5 68.4125\n",
"6.55 68.3857\n",
"6.6 68.3595\n",
"6.65 68.3337\n",
"6.7 68.3084\n",
"6.75 68.2836\n",
"6.8 68.2592\n",
"6.85 68.2353\n",
"6.9 68.2119\n",
"6.95 68.1889\n",
"7.0 68.1664\n",
"7.05 68.1443\n",
"7.1 68.1226\n",
"7.15 68.1013\n",
"7.2 68.0804\n",
"7.25 68.0599\n",
"7.3 68.0398\n",
"7.35 68.0201\n",
"7.4 68.0007\n",
"7.45 67.9817\n",
"7.5 67.9631\n",
"7.55 67.9449\n",
"7.6 67.9269\n",
"7.65 67.9094\n",
"7.7 67.8921\n",
"7.75 67.8752\n",
"7.8 67.8586\n",
"7.85 67.8423\n",
"7.9 67.8263\n",
"7.95 67.8107\n",
"8.0 67.7953\n",
"8.05 67.7802\n",
"8.1 67.7654\n",
"8.15 67.7509\n",
"8.2 67.7367\n",
"8.25 67.7227\n",
"8.3 67.709\n",
"8.35 67.6955\n",
"8.4 67.6823\n",
"8.45 67.6694\n",
"8.5 67.6567\n",
"8.55 67.6442\n",
"8.6 67.632\n",
"8.65 67.62\n",
"8.7 67.6083\n",
"8.75 67.5967\n",
"8.8 67.5854\n",
"8.85 67.5743\n",
"8.9 67.5634\n",
"8.95 67.5527\n",
"9.0 67.5423\n",
"9.05 67.532\n",
"9.1 67.5219\n",
"9.15 67.512\n",
"9.2 67.5023\n",
"9.25 67.4928\n",
"9.3 67.4834\n",
"9.35 67.4742\n",
"9.4 67.4652\n",
"9.45 67.4564\n",
"9.5 67.4478\n",
"9.55 67.4393\n",
"9.6 67.4309\n",
"9.65 67.4228\n",
"9.7 67.4148\n",
"9.75 67.4069\n",
"9.8 67.3992\n",
"9.85 67.3916\n",
"9.9 67.3842\n",
"9.95 67.3769\n"
]
}
],
"source": [
"#This code prints each temperature from the small\n",
"#timestep Euler appoximation and the corresponding\n",
"#time in hours for the data with a changing ambient temp\n",
"#It can be used to determine when the body temperature\n",
"#was 98.6 degrees, predicting time of death\n",
"for index in range(int(13/timestep4)):\n",
" print(round(time_Euler4[index],2),' ',round(Temp_Euler4[index],4))"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 4
}