Web Page for Math 414
TEXTBOOK: "A Course in Mathematical Biology: Quantitative Modeling with Mathematical and Computational Methods," de Vries, Hillen, Lewis, Muller, Schonfisch, SIAM, 2006.
Assignment 1 (due 2/5), Problems 1.4.1, 1.4.2, 1.4.3 (some code to get you started), 2.4.5.
Assignment 2 (due 2/17), Problems 2.4.2, 2.4.9 (for this modify ParameciumAureliaNonLinFit.m, nonlin_ls.m), 2.4.14, and hand in code that generates output from the difference equation you developed in 2.4.14(b).
Assignment 3 (due 2/28, 9am 3/3 latest):
(i) modify ParameciumAureliaNonLinFit.m, nonlin_ls.m so that the optimization is over the THREE parameters [K,r,p_model(1)]. Do this for both the logistic and Beverton-Holt (using your code from HW 2) difference equations. Hand in a listing of your code and determine which model fits the data best.
(ii) 2.4.1, 2.4.4, 2.4.13, and write a small piece of code that generates the solution for the parameter values given in 2.4.13 (b)
Assignment 4 (due 3/12),
Problem 2.4.18 (a) and (b); and write code that generates the output in Figures 2.21 and 2.22.
Assignment 5 (due 3/21):
(i) Implement the 3rd order Taylor series method to approximately solve x'=x(1-x), x(0)=0.01, on the interval [0,10]. Use the code taylor3method.m (you will have to write a function that evaluates x', x'', and x'') and compare your results with different step sizes (i.e., values of h) with the analytic solution x(t)=1/(1+(1/0.01-1)exp(-t)).
(ii) Use MATLAB's ode23 (which implements a 3rd order Taylor series method) and ode45 (which implements a 5th order Taylor series method) on the previous problem. Plot the results from the three different methods. What do you notice and can you explain?
(iii) Use ode23 and ode45 to solve the following harvesting model differential equation: x'=x(1-x)-a*x/(b+x), x(0)=0.01, with a=b=1/10, on the interval [0,30]. Plot the two solutions together and note any differences. Finally, try different values of a and b, compute the solutions using ode45, and quantify what effect their values have on solutions.
(iv) EXTRA CREDIT (or in place of (iii)): Write an m-file that implements the 4th order Runge-Kutta method from class. Use taylor3method.m as a template. Implement the method on the example from (i) and verify that it is more accurate than the 3rd order Taylor series method.
Assignment 6 (due 4/11): this will be useful Examples.
(i) Newton's method:
(a) The following iterative method was know to Heron in 100 B.C. for computing the square root of R: b_k+1=(b_k+R/b_k)/2. Derive this by applying Newton's method to solving b^2-R=0, then write an m-file implementing the method, stopping iterations once they are within 1e-10 of the true square root.
(ii) Gauss-Newton method: Suppose you have observations y=[0.076,0.258,0.369,0.492,0.559]^T at times t=[1,3,5,7,9]^T, and you assume the model y_i=X(b1,b2,t_i)+eps_i, where X(b1,b2,t_i)=b1*(1-exp(-b2*t_i)).
(b) Derive the form of Newton's method for minimizing the Rosenbrock function, f(b1,b2)=(1-b1)^2+100(b2-b1^2)^2. Write an m-file that implements the method using the initial guess (b1,b2)=(-1.5,1) and stops iterations once the norm of the gradient of f is less than 1e-10.
(a) Derive the Gauss-Newton method for minimizing f(b1,b2)= sum_i (X(b1,b2,t_i)-y_i)^2. Write an m-file that implements the method using the initial guess (b1,b2)=(1,1), and stops iterations once the norm of the gradient of f is less than 1e-10.
NOTE: parts (b) and (c) are done in NonlinDemo.m, expfun_resid.m, and sample_plot.m.
(b) Repeat part (a), but this time use MATLAB's function lsqnonlin.
(c) Use the parametric bootstrap method to determine the uncertainties in the estimate of (b1,b2). Plot histograms of the b1 and b2 bootstrap samples; report 95% confidence bounds for b1 and b2; and plot 95% confidence bounds for the model output. Hand in a listing of your code.
Assignment 9/Final (due 5/22): Do project 10 on page 246; see Table 9.9. WORK ALONE. Note that this project is solved in Chapter 10. At the very least, for a B grade, you can simply write-up a summary of the book's solution, up through 10.1.4. But for full marks, you need to perform the computations done in the book in MATLAB. Then use bootstrapping to obtain 95\% confidence intervals for the estimated parameters. Hand in your code when you're done. To get you started, here are the computations for 10.1.1 done in MATLAB: PAureliaPcaudatumContinuous.m, logistic_resid.m, logisticODE.m.
Example 1, week 1, Paramecium Aurelia using the book's technique for fitting the logistic model, to Paramecium data.
Example 2, week 3, lab codes
Example 3, week 4, skeleton code for 2_4_14, part (b).
Example 4, week 4, love affair, system of two difference equations, for generating Fig 2.19.
Example 5, week 6, phase plane/vector field MATLAB function, for Chapter 3.
Example 5, week 7, third order Taylor series method for solving an ODE, for Chapter 3.
Example 6, week 8, MATLAB's ode45 for solving the logistic ODE. You will also need this right hand side function for logistic ODE.
Example 7, week 11, nonlinear least squares data fitting: example 1 (NonlinDemo.m, expfun_resid.m, sample_plot.m).
Example 8, week 12, sketching vector field plots with pplane6.m