#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.