Math/CS 466/666
Fall 2019 University of Nevada Reno
466/666 NUMERICAL METHODS I (3+0) 3 credits
Instructor Course Section Time Room
------------------------------------------------------------------------
Eric Olson Math/CS 466/666 Numerical Methods I TR 3:00-4:15pm DMSC106
Course Information
- Instructor:
- Eric Olson
- email:
- ejolson at unr dot edu
- Office:
- Tuesday and Thursday at 2pm in DMS 238 and by appointment.
- Homepage:
- http://fractal.math.unr.edu/~ejolson/466/
- Required Texts:
- R.W. Hamming,
Numerical Methods for Scientists and Engineers, Second Edition
(online).
- Supplemental Texts on Numerical Methods:
- Justin Solomon, Numerical Algorithms: Methods for Computer
Vision, Machine Learning and Graphics, CRC Press, 2015.
- David Kincaid and Ward Cheney,
Numerical Analysis: Mathematics of Scientific Computing,
3rd Revised Edition,
Pure and Applied Undergraduate Texts,
American Mathematical Society, 2002.
- Classic Texts on Numerical Methods:
- Kendall Atkinson, An Introduction to Numerical Analysis,
Second Edition, Wiley, 1989.
- Eugene Isaacson, Analysis of Numerical Methods, Revised Edition,
Dover Books on Mathematics, 1993.
- Supplemental Texts on Computer Programming:
-
JTC1/SC22/WG14,
C99
Programming Standard, ISO/IEC, 2007.
- Simon Long, Learn
to Code with C, MagPi, 2017.
- Richard Smedley,
Conquer the Command Line, MagPi, 2016.
- Williamt Shots, The Linux Command Line,
Creative Commons, 2019.
- Classic Texts on Computer Programming:
- Brian Kernighan, Dennis Ritchie,
C Programming Language, 2nd Edition,
Prentice Hall, 1988.
- Brian Kernighan, Rob Pike, Unix Programming Environment,
Prentice-Hall Software Series, 1984.
- Information about Other Software:
- Thomas Williams, Colin Kelley,
Gnuplot 5.2:
An Interactive Plotting Program, official documentation.
- The Julia Project,
The Julia 1.2
Language, official documentation.
Sample Code
- sep03
Newton's Method
- sep05
Machine Epsilon through Bisection
- sep12
Polynomial Evaluation with Synthetic Division
- sep17
Root Tracking and Homotopy Methods
- sep19
Bracketed Newton's Method (needs debugging)
- sep24
Bracketed Newton's Method
- sep26
Newton's Method for Complex Roots
- oct08
Gauss Elimination no Pivoting
- oct10
Back Substitution after Gauss Elimination
- oct15
Gauss Elimination with Partial Pivoting
- oct17
FLOPS and Solving Systems of Linear Equations
- oct22
The Vandermonde Matrix and Interpolating Polynomials
- oct29
Automatic Report Generation using a Makefile
- oct31
Interpolating Polynomials Using Newton's Formula
- nov07
Including a Graph in a Report
- nov12
Maple Worksheet for Newton-Cotes Quadrature
- nov14
Newton-Cotes Quadrature with Julia
- dec05
Adaptive Quadrature and Error Control
Student Learning Outcomes
Upon completion of this course
- Students will be able to implement a numerical method to solve a
nonlinear equation using the bisection method and Newton's method.
- Students will be able to solve linear systems using direct and
iterative methods.
- Students will be able to construct interpolating functions.
Announcements
[18-Dec-2019] Final Exam
The final exam is scheduled for Wednesday, December 18
from 2:30-4:30pm in DMSC 106. It will consist of two
parts: A written part which is closed book and closed
notes followed by a computer part which is open book, open notes
and further allows the use of non-interactive electronic
resources. The material
covered is comprehensive and includes all items from the study
guides for the four previous quizzes.
In addition to questions from the previous study guides
please be prepared for the written part to answer
questions similar to
- Problems 3.4.1, 3.4.4, 3.4.5, 3.4.6
- Problems 4.7.1, 4.7.2, 4.7.3
also know the new theoretical questions
- Explain the reason partial pivoting is used when
performing Gaussian elimination.
- Define the reciprocal distribution and explain how
it relates to the mantissas of the numbers which appear
in floating-point computations.
from the textbook and for the computer part to create a
program that approximates
an integral using the composite the Newton-Cotes quadrature
formulas. For example, please be able to use Simpsons 3/8 rule as
before (see also
here),
as well as the analogous methods of
- 2nd order (Trapezoid rule)
- 3rd order (Simpson's rule)
- 5th order (Boole's rule).
[10-Dec-2019] Quiz 4
We will have a computer quiz in class on Tuesday December 10.
You must complete two out of three specified computations.
For each computation I will provide a program written in C
or possibly Julia that is missing some code. Your task is to
fill in the missing lines so the program runs correctly. You
could also create a new program of your own using C, Julia or
a different language. In preparation for the quiz, please
know how to compute the following:
- Approximate the integral
∫ab f(x) dx
by breaking the interval [a,b] into N subintervals and using
Simpson's 3/8 rule on each subinterval.
- Given a square matrix A of dimension n x n where n is greater
than 12, find the determinant det(A).
- Use Newton's method to find a complex root of the equation f(z)=0.
- Use Gaussian elimination with partial pivoting to solve Ax=b.
Note, this quiz is intended to measure whether you've understood
how to read and write computer codes that carry out complicated
numerical algorithms. As the above tasks are quite standard,
there are many good subroutine libraries available which can be
used to perform those computations.
However, do not use Linpack, Boost or similar
libraries to solve these problems with one system call.
Similarly, if you use a programming language which has built-in
functions for computing the determinant, solving Ax=b or finding
interpolating polynomials, you must still include detailed code
that performs the same computations in your solution.
In particular, it is not sufficient to simply call the built-in
determinant function of Julia, Matlab or Octave when answering
the second question and so forth.
[25-Nov-2019] Solutions for Project 1
I have posted my solutions to Programming Project 1
here for your reference and
to help you prepare your reports for Programming
Project 2.
[03-Dec-2019] Quiz 3
We will have a written quiz in class on Tuesday December 3.
The following list of topics is under construction and include:
- Know how to convert binary expansions to decimal vice versa as in
homework problems 2.7.6, 2.7.7, 2.7.11 and 2.7.12.
- Know how to rearrange an algebraic expression as in
homework problems 3.3.1, 3.3.4, 3.3.5 and 3.3.6.
- Know how to create a table of differences by hand and use it to
construct the corresponding Newton interpolating polynomial.
- Be able to state Taylor's theorem precisely from memory.
- Be able to state with equal precision the analogous theorem on
the accuracy of interpolating polynomials, which by the way is
Theorem:
Let f(x) be an n+1 times differential function and pn(x)
the polynomial of degree n passing through n+1 distinct points given by
(xi,f(xi)) where i = 0, ..., n. Then there
exists a value for c between x and one of the xi's such that
f(x)=pn(x)+
((x-x0) ···(x-xn)/(n+1)!)
f(n+1)(c).
- For extra credit and Math 666, know how to prove the above theorem.
[18-Dec-2019] Combined Programming Homework 2
A combined homework and programming project worth 40 points will
be due on the day of the final exam. It is available
here so you may begin working on
it now.
[13-Nov-2019] Solutions to Homework 1
I have made a solution key for Homework 1 which you
may download here. The LaTeX
source including C code, gnuplot scripts and a Makefile are
also available if you would like to
see how I created the pdf file.
[19-Nov-2019] Quiz 2
We will have a computer quiz in class on Tuesday November 19.
You must complete two out of three specified computations.
For each computation I will provide a program written in C that
is missing some code. Your task is to fill in the missing
lines so the program runs correctly. You could also create
a new program of your own using C or a different language.
In preparation for the quiz,
please know how to compute the following:
- Given a square matrix A, find the determinant det(A).
- Use Gaussian elimination with partial pivoting to solve Ax=b.
- Find n iterations of Newton's method for a specified
x0 and polynomial p(x).
-
Evaluate the interpolating polynomial through
n points (xi,yi)
at specified values of x.
Note, this quiz is intended to measure whether you've understood
how to read and write computer codes that carry out complicated
numerical algorithms. As the above tasks are quite standard,
there are many good subroutine libraries available which can be
used to perform those computations.
However, do not use Linpack, Boost or similar
libraries to solve these problems with one system call.
Similarly, if you use a programming language which has built-in
functions for computing the determinant, solving Ax=b or finding
interpolating polynomials, you must still include detailed code
that performs the same computations in your solution.
In particular, it is not sufficient to simply call the built-in
determinant function of Matlab when answering
the first question and so forth.
[14-Nov-2019] Programming Project 1
Programming project 1 is available here.
It will be due in class on November 14. Please begin it right away
so there is time to discuss any problems that come up in class.
[03-Oct-2019] Quiz 1
We will have a quiz in class on Thursday October 3. Please know
how to explain the following:
[15-Oct-2019] Homework 1
Homework One consists of the following problems from our text
- Problems 2.7.6, 2.7.7, 2.7.11, 2.7.12
- [Extra Credit and for Math 666] Problems 2.6.2, 2.8.1
- Problems 3.3.1, 3.3.4, 3.3.5, 3.3.6
- Problems 3.4.1, 3.4.4, 3.4.5, 3.4.6
- Problems 4.7.1, 4.7.2, 4.7.3
and will be due October 15 in class.
[21-Sep-2019] Command-line Tutorial
On Saturday we went through steps 3 through 6 in this
command-line tutorial. If you were unable to come and would like to
learn more about how to interact with a computer using words instead
of mouse clicks, feel free to go through the tutorial on your own and
let me know if you have any difficulties.
[19-Sep-2019] Newton's Method
I have made a handout on Newton's Method
that covers what we did on the first day of class.
[05-Sep-2019] UNR Library Online Books
The text for this course is also available as an online book
from the UNR Library
here and also
here.
[01-Sep-2019] Handouts are Available
As discussed at the end of class there are now
handouts posted to help get
started with your reading.
[28-Aug-2019] Introductory Lecture
The lecture notes for the introductory lecture
are now available online as well as
all the source code examples
used for computing the Euler-Mascheroni constant
in the hands-on discussion.
Grading
Written Quiz 1 20 points
Computer Quiz 2 20 points
Written Quiz 3 40 points
Computer Quiz 4 40 points
2 Homework Assignments 20 points each
2 Programming Projects 20 points each
In-class Lab Work 30 points
Final Exam 120 points
------------------------------------------
350 points total
Exams and quizzes will be interpreted according to the following
grading scale:
Grade Minimum Percentage
A 90 %
B 80 %
C 70 %
D 60 %
The instructor reserves the right to give plus or minus grades and
higher grades
than shown on the scale if he believes they are warranted.
Final Exam
The final exam is scheduled for
Wednesday, December 18 from 2:30-4:30pm in DMSC 106.
Equal Opportunity Statement
The Mathematics Department is committed to equal opportunity in
education for all students, including those with documented physical
disabilities or documented learning disabilities. University policy
states that it is the responsibility of students with documented
disabilities to contact instructors during the first week of each
semester to discuss appropriate accommodations to ensure equity in
grading, classroom experiences and outside assignments.
Academic Conduct
Bring your student identification to all exams. Work independently on
all exams and quizzes. Behaviors inappropriate to test taking may
disturb other students and will be considered cheating. Don't talk or
pass notes with other students during an exam. Don't read notes or books
while taking exams given in the classroom. You may work on the
programming assignments in groups of two if desired. Homework may be
discussed freely. If you are unclear as to what constitutes cheating,
please consult with me.
Last Updated:
Tue Aug 27 12:19:07 PDT 2019