#A helpful script for Exercise 3.4.10, modeling a cooling potato. #The data, in time/temperature pairs: data = [[0, 204], [2, 193], [4, 184], [8, 169], [10, 162], [13, 156], [17, 149], [20, 143], [24, 138], [30, 130]] N = len(data); #However, we will operate on the quantities (t, log(u(t)-A)-log(u(0)-A), with u(0)=204 and A = 72. logdata = [[data[i][0],log(data[i][1]-72)-log(204-72)] for i in range(N)]; #A plot: plt1 = scatter_plot(logdata); show(plt1) #We seek to fit a line y = -k*t to this var('t k'); u(t,k) = -k*t; #The model function to fit SS = function('SS')(k); SS(k) = add((u(logdata[i][0],k)-logdata[i][1])^2 for i in range(N)); #Now minimize SS(k) with respect to k.