Fernando Guevara Vasquez's homepage
Class meets: MWF 9:40am - 10:30am
Where: LCB 225
Textbook: J. Nocedal and S. Wright, Numerical Optimization, Springer, second edition.
Prerequisites: Linear algebra (Math 2270 or similar), vector calculus (Math 2210 or similar) and basic Matlab knowledge. Permission from the instructor.
Instructor: Fernando Guevara Vasquez
Office: LCB 212
Office hours: MWF 11am-12pm or by appointment
Phone number: +1 801-581-7467
Email: fguevara(AT)math.utah.edu
(replace (AT) by @)
Homeworks 40%, Final project 60%
Homeworks will be given roughly biweekly. The project will consist on applying the methods we see in class to your particular research problem or to a problem chosen in conjunction with the instructor.
Your grades for Math 5750 and 6880 have been submitted to the registrar. You should have received an email with your class grade, HW grade, project grade and presentation grade. Taking both classes together the average grade is a B+, and here is a histogram (with the two classes together):
A | ######## |
A- | ### |
B+ | ## |
B | # |
B- | |
C+ | ## |
C | |
C- | # |
D+ | |
D | |
D- | |
E | # |
Some comments on the Project Reports:
Thanks to Hilary for spotting the following typos (corrected in the newest versions of project.pdf and eit.tgz):
fobj_GNHessian.m
, line 44 should be: H = J'*kron(eye(nb),pars.Qbdry)*J;
Today we continued with trust region method (including for SQP). Lecture notes are here: opti019.pdf.
pars.V=eye(nbe);
(or data for some conductivity) instead of the suggested randn(nbe)
.pars.alpha=0
. Regularization is needed to solve for the minimization, so do not leave pars.alpha
as such.Homework 4 is due Monday December 1st 2008 and is here: hw4.pdf. Supporting code is:
The common project support files and instructions have been updated: project.pdf and eit.tgz. A demo will be given tomorrow.
The lecture notes for today and Monday are here: opti015.pdf. We covered interior point methods for quadratic programming and bound constrained optimization.
Today we continued the discussion on the simplex method and today we started interior point methods for linear problems. The class notes are here: opti013.pdf. The next homework will be available next week, you will have to implement your own interior point solver and use it to solve l1 minimization problems.
If you submit your Matlab code listings electronically I prefer if you send them as a single PS or PDF file. Here is how to do it (and this helps you if you want to print the code with syntax hightlighting):
a2ps
a2ps -o outfile.ps -2 -A virtual -g -Ematlab4 file1.m file2.m file3.m
listings
, create a document containing essentially the following. (you could add headers to indicate which file you are listing etc…)\documentclass{article} \usepackage{listings} \begin{document} \lstset{language=Matlab,basicstyle=\small,breaklines=true} \lstinputlisting{file1.m} \lstinputlisting{file2.m} \lstinputlisting{file3.m} % etc ... \end{document}
b
and the regularization parameter α) may not be easy if you are not familiar with the SVD, so this will be an extra credit part. However, you still have to find an expression for the solution.tar zxvf eit.tgz
). A companion PDF file that explains the code and shows how to compute gradients using the adjoint state method is here as well: project.pdf.Today we continued with constrained optimization, we saw the first and second order optimality conditions. We will get back to this next time. The class notes are here: opti009.pdf.
plot(xtrue)
and not plot(x)
(already updated in the website)exp(x)
at x=1
, using forward finite differences and centered differences for h= 10.^(0:-1:-20)
. Explain your results. Are the empirical optimal values for h
and the errors in the approximations of the order predicted by the theory, assuming the only error is floating point error (ε = O(10-16))? Note: for forward differences h* = O(ε1/2); for centered difference h* = O(ε1/3). The error for forward differences is O(ε1/2) and for centered differences O(ε2/3).[f,g] = expfit(x,pars)
, where x
is a vector containing the four unknown parameters, and figure out what is the gradient. pars
helps this time: you can use it to give your function the data points y
and t
.bnoisy
).
alpha
and k
.On Wednesday’s lecture we resumed the discussion on Linear Least squares problems. Today’s lecture was on Non Linear Equations (Chapter 11). Notes are available here: opti007.pdf.
HW1: Here are more clarifications
opts.maxit
is large enough or reduce the tolerance opts.tol
.x
and v
as you like (provided x
is not a stationary point and v
is a nonzero vector)t
(Taylor theorem does not hold) or too small t
(floating point error kicks in). We will study this better next week.In Monday’s lecture we got started with non-linear least squares (chapter 10). Notes are available here: opti006.pdf.
1e-4
.The file steepest_descent.m I handed out has a typo on line 31, where the maximum number of iterations was set to 100 even if you had set opts.maxit
to something else. The file linked above corrects the problem, or change line 31 to:
if ~isfield(opts,'maxit') opts.maxit=100; end; % default max iterations
Let me know if you spot any other bugs like this one.
We saw the theory behind the conjugate gradient (CG) method (Chap 5). Next time we will briefly go back to CG to address preconditioning and Newton-CG methods (p 165-170). Then we will start least-squares problems (Chap 10).
We reviewed BFGS and DFP, practical considerations and convergence theory. We got started with the linear conjugate gradient method (Chap 5). The notes are here: opti004.pdf, but most of this material will be covered next Wednesday.
opts.tol=1e-5; % set tolerance to stop computations [f,g] = steepest_descent([1;1],@quad,[],opts)
@quad
(perhaps @rosenbrock
in your code). If the function you want to optimize needs extra data, you can pass it in the structure pars
(which in this case is just an empty struct []
).check_gradient(f,x,v,pars)
and check_hessian(f,x,v,pars)
that check that the gradient and Hessian information returned by the function f
evaluated at x
is consistent with Taylor’s theorem in direction v
.t=10.^[0:-1:-10]
).We covered line search methods (pp30-41 in N&W). Plan for next time: convergence results for line-search methods. Quasi-Newton methods. Lecture notes for today are here: opti002.pdf.
In lecture 1 we reviewed optimization for functions of the real line. Notes for this lecture are available here: opti001.pdf.