Skip to content
Permalink
3d85cfc0e3
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
679 lines (679 sloc) 136 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": 18,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.6111111111111112\n"
]
}
],
"source": [
"#Problem 1\n",
"T_1=85\n",
"t_1=0\n",
"T_2=74\n",
"t_2=2\n",
"dTdt=((T_2-T_1)/(t_2-t_1))\n",
"T=74\n",
"T_a=65\n",
"T_diff=(T-T_a)\n",
"K=-1*(dTdt/T_diff)\n",
"print(K)"
]
},
{
"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": 19,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.6111111111111112\n"
]
}
],
"source": [
"#Problem 2\n",
"Temp_ambient=65\n",
"Temp_t1=85\n",
"'''Input value for first temperature reading above'''\n",
"Temp_t2=74\n",
"'''Input value for second temperature reading above'''\n",
"delta_t=2\n",
"'''Input value for time elapsed in hours between temperature readings above'''\n",
"def measure_K(Temp_t1,Temp_t2,Temp_ambient,delta_t):\n",
" \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",
" Arguments\n",
" ---------\n",
" delta_t: change in time from Temp_t1 reading to Temp_t2 reading in hours\n",
" Temp_t1: first temperature reading\n",
" Temp_t2: second temperature reading\n",
" Temp_ambient: ambient temperature (65 degrees)\n",
" \n",
" Returns\n",
" -------\n",
" K: emprical constant for Newton's law of cooling'''\n",
" \n",
" K=-1*(((Temp_t2-Temp_t1)/delta_t)/(Temp_t2-Temp_ambient))\n",
" return K\n",
"print(K)\n"
]
},
{
"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": 85,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Current temp numerical [85. 71.41975309 67.06066148 65.6614469 65.21231629 65.06815091\n",
" 65.0218756 65.0070218 65.00225391 65.00072348]\n",
"[85. 75.14235204 70.14336525 67.60829105 66.3227103 65.67076968\n",
" 65.34015911 65.17250067 65.08747813 65.0443617 ]\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7efdc6285e48>"
]
},
"execution_count": 85,
"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 3a where N=10\n",
"import numpy as np\n",
"N=10\n",
"time_passed=10\n",
"t=np.linspace(0,time_passed,N)\n",
"dt=t[1]-t[0]\n",
"Temp_ambient=65\n",
"Temp_t1=85\n",
"K=-1*(((Temp_t2-Temp_t1)/delta_t)/(Temp_t2-Temp_ambient))\n",
"\n",
"T_numerical=np.zeros(len(t))\n",
"T_numerical[0]=Temp_t1=85\n",
"\n",
"for i in range(1,len(t)):\n",
" T_numerical[i]=T_numerical[i-1]+(-K*(T_numerical[i-1]-Temp_ambient)*dt)\n",
" \n",
"print('Current temp numerical',T_numerical)\n",
"\n",
"T_analytical=np.zeros(len(t))\n",
"T_analytical=Temp_ambient+(np.exp(-K*(t))*(Temp_t1-Temp_ambient))\n",
"T_analytical[0]=Temp_t1\n",
"print(T_analytical)\n",
"\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"plt.plot(t,T_numerical,'o',label=str(n)+' Euler steps')\n",
"plt.plot(t,T_analytical,label='analytical')\n",
"plt.title('First 10 hours of Temp')\n",
"plt.xlabel('time (Hours)')\n",
"plt.ylabel('Temperature (F)')\n",
"plt.legend()"
]
},
{
"cell_type": "code",
"execution_count": 88,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Current temp numerical [85. 82.50566893 80.32242224 78.41146255 76.73883117 75.2748046\n",
" 73.99336639 72.87174473 71.89000786 71.03070983 70.27858048 69.62025412\n",
" 69.04403195 68.53967422 68.09821826 67.71181915 67.37361042 67.07758191\n",
" 66.81847305 66.59167936 66.3931706 66.21941916 66.06733741 65.93422276\n",
" 65.81770972 65.71572778 65.62646468 65.54833416 65.47994782 65.42009038\n",
" 65.36769816 65.32184011 65.28170132 65.2465685 65.21581733 65.18890134\n",
" 65.16534221 65.1447213 65.12667216 65.11087404 65.09704622 65.08494295\n",
" 65.07434915 65.06507658 65.05696046 65.04985655 65.04363861 65.03819615\n",
" 65.03343246 65.02926288]\n",
"[85. 82.65494158 80.58484811 78.75747914 77.14437452 75.72041114\n",
" 74.46341161 73.35379896 72.37429163 71.50963439 70.74636075 70.07258316\n",
" 69.47780797 68.9527719 68.48929785 68.08016749 67.71900885 67.40019712\n",
" 67.118767 66.87033538 66.65103309 66.45744464 66.286555 66.13570267\n",
" 66.00253821 65.88498768 65.78122029 65.68961993 65.60875998 65.53738109\n",
" 65.47437159 65.41875013 65.36965046 65.32630786 65.28804731 65.25427292\n",
" 65.22445868 65.19814024 65.17490772 65.15439928 65.13629551 65.12031447\n",
" 65.10620724 65.09375413 65.08276119 65.0730572 65.06449103 65.05692927\n",
" 65.05025414 65.0443617 ]\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7efdc6148e48>"
]
},
"execution_count": 88,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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Y6oxSxBFte7vvFspwhhTw1mCKKrhWVD7NGuHMKYGevXVV7nllluK3WfXrl/HDr3hhhv48ceSz2W2dOnSchkOI5QsQRQl4pQitn4O+fnhjsYYU8kUTRDTp0+nQ4cOYYwodCxB+NK6PxzbB3sqpiuZMabsRo4cSffu3Tn77LOZNm0a4AzXfe+999KlSxd69erFnj17APjggw8499xz6dq1K4MGDSrcXuDw4cO0atWKnJwcAA4dOkTLli159913WblyJWPHjiUpKYnMzEz69+9PwQO6H3/8Md26daNLly4MHDgQgBUrVtCnTx+6du1Knz592LSp6sxYGdLB+qqs1v2d961LoXHnMAZiTBXz0UT4ZW35nvO0TjDM90Q/3l5++WXq169PZmYm55xzDpdddhlHjx6lV69ePPTQQ9x999289NJL/P3vf+e8885j2bJliAjTp0/n0Ucf5fHHf527rE6dOvTv35/58+czcuRI3nrrLS677DJGjx7Nc889x2OPPUaPHic+fJyWlsaNN97IF198QatWrThw4AAA7du354svviAyMpIlS5bwt7/9jffee698/0YhYgnCl7qNIbG90w7R97ZwR2OMCcLUqVMLB9TbuXMnmzdvJjo6urCev3v37ixevBiAlJQUrrzySnbv3k12djatWrU66Xw33HADjz76KCNHjuSVV17hpZdeCnj9ZcuWcf755xeeq2ACo4yMDMaNG8fmzZsRkcJSSVVgCcKf1gNg1auQcxyiYsMdjTFVQxC/9ENh6dKlLFmyhG+++YZatWrRv39/jh8/TlRUVOHQ2B6Pp3Dqz1tvvZU777yTESNGsHTpUh544IGTztm3b1+Sk5P5/PPPycvLO2m+66JU9aRhuAHuu+8+BgwYwJw5c0hOTqZ///5lvt+KYm0Q/rTuD7mZsHN5uCMxxhQjIyODU045hVq1arFx40aWLVtW7P5NmzojyBYMB+7Lddddx5gxY/jd735XuK3osNwFevfuzeeff862bdsACquYvK/16quvlui+wi2kCUJE/iwi60VknYi8KSKxIjJFRDaKyA8iMkdEEvwcmywia0VkjYiUYYjW0vkwozW5eHju5enlNrG6MSY0hg4dSm5uLp07d+a+++6jV69eAfd/4IEHGD16NP369ePUU0/1u9/YsWM5ePAgY8aMKdx2/fXXc/PNNxc2UhdITExk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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#Problem 3a where N=50\n",
"import numpy as np\n",
"N=50\n",
"time_passed=10\n",
"t=np.linspace(0,time_passed,N)\n",
"dt=t[1]-t[0]\n",
"Temp_ambient=65\n",
"Temp_t1=85\n",
"K=-1*(((Temp_t2-Temp_t1)/delta_t)/(Temp_t2-Temp_ambient))\n",
"\n",
"T_numerical=np.zeros(len(t))\n",
"T_numerical[0]=Temp_t1=85\n",
"\n",
"for i in range(1,len(t)):\n",
" T_numerical[i]=T_numerical[i-1]+(-K*(T_numerical[i-1]-Temp_ambient)*dt)\n",
" \n",
"print('Current temp numerical',T_numerical)\n",
"\n",
"T_analytical=np.zeros(len(t))\n",
"T_analytical=Temp_ambient+(np.exp(-K*(t))*(Temp_t1-Temp_ambient))\n",
"T_analytical[0]=Temp_t1\n",
"print(T_analytical)\n",
"\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"plt.plot(t,T_numerical,'o',label=str(n)+' Euler steps')\n",
"plt.plot(t,T_analytical,label='analytical')\n",
"plt.title('First 10 hours of Temp')\n",
"plt.xlabel('time (Hours)')\n",
"plt.ylabel('Temperature (F)')\n",
"plt.legend()\n",
"#As shown, the solution converges as the time step is decreased"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#Problem 3b\n",
"#As shown in the above graph as t approaches infinity the final temperature is approximately 65 degrees F. "
]
},
{
"cell_type": "code",
"execution_count": 99,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Current temp numerical [85. 82.00680272 79.46156694 77.2972508 75.45684592 73.89187578\n",
" 72.56111886 71.42952284 70.46728133 69.64904875 68.95327274 68.36162648\n",
" 67.85852592 67.43071932 67.0669382 66.75760051 66.49455826 66.27088287\n",
" 66.08068271 65.91894789 65.78141827 65.66447132 65.56502663 65.48046482\n",
" 65.40855852 65.34741371 65.29541982 65.25120733 65.21361168 65.18164258\n",
" 65.15445798 65.13134182 65.11168522 65.09497042 65.08075716 65.06867106\n",
" 65.05839376 65.04965455 65.04222326 65.03590413 65.03053073 65.0259615\n",
" 65.02207611 65.0187722 65.01596275 65.01357377 65.01154232 65.0098149\n",
" 65.008346 65.00709694]\n",
"[ 85. 123.45718651 115.33168342 108.33561889 102.31200184\n",
" 97.12566284 92.66022089 88.81547187 85.50513995 82.65494158\n",
" 80.20091854 78.08800278 76.26878066 74.70242898 73.35379896\n",
" 72.19262745 71.19285788 70.33205549 69.59090395 68.9527719\n",
" 68.40333971 67.93027816 67.52297179 67.17228069 66.87033538\n",
" 66.61036023 66.38652142 66.19379603 66.02785932 65.88498768\n",
" 65.76197508 65.65606114 65.56486916 65.48635279 65.41875013\n",
" 65.36054419 65.31042883 65.26727947 65.23012783 65.19814024\n",
" 65.17059891 65.14688579 65.12646878 65.10888972 65.09375413\n",
" 65.08072238 65.06950204 65.05984131 65.05152341 65.0443617 ]\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7efdc5cb2748>"
]
},
"execution_count": 99,
"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 3c\n",
"import numpy as np\n",
"N=50\n",
"time_passed=10\n",
"t=np.linspace(-2,time_passed,N)\n",
"dt=t[1]-t[0]\n",
"Temp_ambient=65\n",
"Temp_t1=85\n",
"K=-1*(((Temp_t2-Temp_t1)/delta_t)/(Temp_t2-Temp_ambient))\n",
"\n",
"T_numerical=np.zeros(len(t))\n",
"T_numerical[0]=Temp_t1=85\n",
"\n",
"for i in range(1,len(t)):\n",
" T_numerical[i]=T_numerical[i-1]+(-K*(T_numerical[i-1]-Temp_ambient)*dt)\n",
" \n",
"print('Current temp numerical',T_numerical)\n",
"\n",
"T_analytical=np.zeros(len(t))\n",
"T_analytical=Temp_ambient+(np.exp(-K*(t))*(Temp_t1-Temp_ambient))\n",
"T_analytical[0]=Temp_t1\n",
"print(T_analytical)\n",
"\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"plt.plot(t,T_numerical,'o',label=str(n)+' Euler steps')\n",
"plt.plot(t,T_analytical,label='analytical')\n",
"plt.title('First 10 hours of Temp')\n",
"plt.xlabel('time (Hours)')\n",
"plt.ylabel('Temperature (F)')\n",
"plt.legend()\n",
"#As shown by the analytical solution below in the graph, the temperature of 98.6 can be estimated to approximately\n",
"#fifty minutes before the body was first discovered at 11am. Therefore this individual died around 10:10am. "
]
},
{
"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": 364,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"At 2 hours before or after 11am, the ambient temperature is 67\n"
]
},
{
"data": {
"text/plain": [
"Text(0, 0.5, 'ambient temperature (F)')"
]
},
"execution_count": 364,
"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 4a\n",
"T_new=np.array([55,58,60,65,66,67])\n",
"time=np.array([-3,-2,-1,0,1,2])\n",
"T_newVStime=[[55,-3],[58,-2],[60,-1],[65,0],[66,1],[67,2]]\n",
"\n",
"def T_amb(time):\n",
" '''Outputs the ambient temperature based on the given time input. The input represents the number of hours before\n",
" (negative values) and after (positive values) 11am (11am=0)'''\n",
" for pair in T_newVStime:\n",
" if (pair[1]==time):\n",
" print('At',time,'hours before or after 11am, the ambient temperature is',pair[0])\n",
" return pair[0]\n",
"T_amb(2)\n",
"\n",
"plt.plot(time,T_new,)\n",
"plt.title('Ambient Temperature vs Time')\n",
"plt.xlabel('time from 11am (hours)')\n",
"plt.ylabel('ambient temperature (F)')\n",
"\n",
"#The graph is correct based on the values however there is a better way to do this. If the graph was generated using\n",
"#continuous variables rather than discrete arrays, the curve would be smoother and contain more accurate data. The way\n",
"#it is currently set up, there are only 6 discrete times for which the ambient temperature can be solved for. "
]
},
{
"cell_type": "code",
"execution_count": 371,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Current temp numerical [85. 83.45123758 81.93089125 80.43843962 78.97337091 77.53518269\n",
" 76.12338179 74.73748404 73.3770142 72.04150572 70.73050063 69.44354933\n",
" 68.1802105 66.94005092 65.72264529 64.52757614 63.35443364 62.2028155\n",
" 61.07232679 59.96257984 58.87319409 57.80379595 56.75401871 55.72350236\n",
" 54.71189352 53.71884528 52.7440171 51.78707467 50.84768985 49.92554048\n",
" 49.02031035 48.13168902 47.25937176 46.40305944 45.56245839 44.73728036\n",
" 43.92724236 43.13206663 42.35148046 41.58521618 40.83301101 40.094607\n",
" 39.36975094 38.65819425 37.95969292 37.27400742 36.6009026 35.94014764\n",
" 35.29151595 34.6547851 ]\n",
"[85. 96.86226919 95.11196858 93.39348897 91.70625185 90.04968923\n",
" 88.42324344 86.82636693 85.25852214 83.71918125 82.20782606 80.72394778\n",
" 79.26704686 77.83663286 76.43222423 75.05334819 73.69954054 72.37034553\n",
" 71.06531571 69.78401173 68.52600225 67.29086378 66.07818052 64.88754421\n",
" 63.71855404 62.57081647 61.44394513 60.33756066 59.25129061 58.18476928\n",
" 57.13763765 56.10954319 55.10013981 54.10908769 53.13605322 52.18070881\n",
" 51.24273286 50.3218096 49.41762902 48.52988672 47.65828385 46.802527\n",
" 45.96232806 45.13740421 44.32747773 43.53227596 42.75153122 41.98498065\n",
" 41.23236621 40.49343453]\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7efdc5d1d2b0>"
]
},
"execution_count": 371,
"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 4b\n",
"import numpy as np\n",
"N=50\n",
"time_passed=10\n",
"t=np.linspace(-2,time_passed,N)\n",
"dt=t[1]-t[0]\n",
"Temp_ambient=((67-55)/(5))*dt\n",
"Temp_t1=85\n",
"K=-1*(((Temp_t2-Temp_t1)/delta_t)/(Temp_t2-Temp_ambient))\n",
"\n",
"T_numerical=np.zeros(len(t))\n",
"T_numerical[0]=Temp_t1=85\n",
"\n",
"for i in range(1,len(t)):\n",
" T_numerical[i]=T_numerical[i-1]+(-K*(T_numerical[i-1]-Temp_ambient)*dt)\n",
" \n",
"print('Current temp numerical',T_numerical)\n",
"\n",
"T_analytical=np.zeros(len(t))\n",
"T_analytical=Temp_ambient+(np.exp(-K*(t))*(Temp_t1-Temp_ambient))\n",
"T_analytical[0]=Temp_t1\n",
"print(T_analytical)\n",
"\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"plt.plot(t,T_numerical,'o',label=str(n)+' Euler steps')\n",
"plt.plot(t,T_analytical,label='analytical')\n",
"plt.title('First 10 hours of Temp')\n",
"plt.xlabel('time (Hours)')\n",
"plt.ylabel('Temperature (F)')\n",
"plt.legend()\n",
"##As shown by the analytical solution below in the graph, the temperature of 98.6 can be estimated to approximately\n",
"#90 minutes before the body was first discovered at 11am. Therefore this individual died around 9:30am. "
]
},
{
"cell_type": "code",
"execution_count": 383,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[85. 83.50161237 82.11548301 80.8332016 79.64698793 78.54964465\n",
" 77.53451365 76.59543563 75.72671276 74.92307408 74.1796435 73.49191029\n",
" 72.85570162 72.26715731 71.72270638 71.21904537 70.75311834 70.32209827\n",
" 69.92336996 69.55451412 69.21329274]\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7efdc5627128>"
]
},
"execution_count": 383,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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T1GhRCGe6FCT7g1zoqy5Mf6dPn3akr4JORGhdOnS7N+/P+Bl8mTin/zr7zw9cRWnzjmVb38/fIqnJ64CsORvgsqSvvFCZr93efLk7qv/2cCpcxeIl98YFPk1AKfOXeDV/2zwODJjjPFenkz8uw8741h3j1zA09Ff0C1iwUXTjcmr7r33XsqVK0e9evUumn7w4EHatWtH9erVadeuHYcOHfK7/MaNG7npppu4+uqrqV27Nr1792bv3r2MGjWKhx56yO8yOalZs2ZB30Yg+vfvz4QJE9KdZ9u2bXz+eUZDMYSnPJn4K5QoBMDfz9/JTxfq8K/oD4iX31KmGxMOJv/6O82HfkvVxGk0H/otk3/N/giL/fv3Z+bMmZdMHzp0KG3btmXTpk20bduWoUOHXjLP6dOn6dy5M0OGDOG3335j3bp1DBkyJFNtx9n1448/hmxb2WWJP8w80aEmhaIjOU8UQ879hf9qST4o8G+eb1U8oOWD8Q9pjK/k81C/Hz6F8ud5qOx+11q1akWpUqUumT5lyhT69esHQL9+/Zg8efIl83z++ec0bdqUm2++OWVamzZtUo4edu/eTceOHalevTpPPvlkyjxDhgyhcePG1K1blxdeeCFlepUqVXjhhRdISEggLi6O9eudgcT2799Pu3btSEhIYNCgQVx55ZX88YczuFnRos547vPmzaN169b07NmTWrVq0bdvX5IrCU+fPp1atWrRokULHnnkEbp06XLJe9m2bRstW7YkISGBhISElB+UefPmcf3119O7d29q1KhBYmIin332Gddeey1xcXFs3rw5ZR1z5syhZcuW1KhRg2+++eaSbSQmJvLDDz8QHx/PsGHDuHDhAk888QTXXHMN9evX5/3338/UNvv378/gwYPT3WZOyZOJv3vDivyjRxwVSxTiCMV4NuZZSkSfo+OqR+HsyXSXDdY/pDG+ks9D+Qrmeai9e/cSGxsLQGxsLPv27btkntWrV9OoUaM017F8+XLGjh3LqlWrGDt2LDt37gTg5ZdfZsmSJaxcuZL58+ezcuXKlGXKlCnDsmXLGDJkCK+99hoAL730EjfccAPLli3jlltuYceOHX639+uvv/L666+zdu1atmzZwsKFCzl9+jSDBg1ixowZLFiwIM2jkXLlyjF79myWLVvG2LFjeeSRR1JeW7FiBW+88QarVq1izJgxbNy4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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#Problem 4b (tried solving more accurately however I am unsure of the resulting graph)\n",
"Temp1=85\n",
"Temp2=74\n",
"t=np.linspace(0,20,21)\n",
"Temp_numerical=np.zeros(len(t));\n",
"for i in range(0,len(t)):\n",
" if i<1:\n",
" Tamb=65\n",
" Temp_numerical[0]=Temp1\n",
" Temp_numerical[i]=Temp_numerical[i-1]+(-K*((Temp_numerical[i-1])-Tamb))\n",
" if i<2:\n",
" Ta=66\n",
" Temp_numerical[0]=Temp1\n",
" Temp_numerical[i]=Temp_numerical[i-1]+(-K*((Temp_numerical[i-1])-Tamb))\n",
" else:\n",
" Ta=67\n",
" Temp_numerical[0]=Temp1\n",
" Temp_numerical[i]=Temp_numerical[i-1]+(-K*((Temp_numerical[i-1])-Tamb))\n",
"print(Temp_numerical)\n",
"\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline \n",
"plt.plot(t,Temp_numerical,'o',label=str(n)+' Changing amb temp')\n",
"plt.plot(t,T_analytical,label='analytical constant temp')\n",
"plt.title('First 20 hours of Temp')\n",
"plt.xlabel('time (Hours)')\n",
"plt.ylabel('Temperature (F)')\n",
"plt.legend()"
]
},
{
"cell_type": "code",
"execution_count": 389,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[85. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n",
" 0. 0. 0.]\n"
]
}
],
"source": [
"Temp1, Temp2 = 85, 74\n",
"t = np.linspace(0, 20, 21)\n",
"Temp_numerical = np.zeros(len(t))\n",
"Tamb = np.array([67 for _ in t])\n",
"Tamb[0], Tamb[1] = 65, 66\n",
"\n",
"for i in range(len(t)):\n",
" if i == 0:\n",
" Temp_numerical[i] = Temp1\n",
" continue\n",
" Temp_numerical[i] = Temp_numerical[i-1] + (-K *((Temp_numerical[i-1]) - Tamb[i]))\n",
"\n",
"print(Temp_numerical)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 4
}