Math 320Numerical Analysis
(Updated Spring 2014)

General Information

News
Spring 2014  This course is over.
Take home quizzes:
Review questions:

Stuff

MATLAB is available on the department Linux cluster, turing.slu.edu.
Here's how to use it:
 Install the nomachine client on your computer
 Get an account on turing.slu.edu from Dr. Clair
 Run nomachine, and create a new connection. Protocol is SSH, host is turing.slu.edu, and you should use your system login password with no proxy. Once connected, you'll want a KDE desktop.
 MATLAB (Octave, too) is available on the KDE menu (lower left)/Applications/Science & Math
 Some free alternatives to Matlab (try them, let me know if they're working for you):

IEEE 754 floating point conversion applet.
 Cubic Spline applet, Parametric spline curve applets,
a wooden spline for boat design.
 Approximations

Matlab Programs
 biroot.m
 Compute the square root of x ≥ 1 by the bisection algorithm.
 eulergamma.m
 Compute Euler's gamma by 1 + 1/2 + 1/3 + ... + 1/n  log(n)
 wbisect.m
 wbisect(x) uses bisection to compute the Lambert W function W(x) which solves W*exp(W)=x
 cobweb.m
 Generate a cobweb plot for the orbit x_{n+1}=f(x_{n}).
 newton.m
 newton(f,df,guess) computes a root of f using Newton's method
 secant.m
 secant(f,x0,x1) computes a root of f using the secant method
 aitken.m
 aitken(x) applies Aitken's Δ^{2} process to x, returning a vector with two fewer entries than x
 polyinterp.m

polyinterp(x,y,u) computes v(j) = P(u(j)) where P is the polynomial of degree d = length(x)1 with P(x(i)) = y(i).
This uses Lagrange polynomials.
 newtoninterp.m

newtoninterp(x,y,u) computes v(j) = P(u(j)) where P is the polynomial of degree d = length(x)1 with P(x(i)) = y(i).
This uses Newton's divided difference method.
 horner.m

horner(a,x) evaluates a(1) + a(2) * x + a(3) * x.^2 + .. + a(n) * x^(n1), using Horner's method.
 led_data.m

led_data() returns a list of voltage and current data for some real LEDs.
 harmonicpoly.m

harmonicpoly(n,x) computes the interpolating polynomial with
nodes 1,2,..,n and values 1/1, 1/2,...,1/n.
Uses the nested form of the polynomial
1  (1/2)(x1)[ 1  (1/3)(x2) [ ... 1  (1/n1)(x(n1))]...]
 quadgui.m

quadgui(f,a,b) shows the steps in approximating the integral
of f(x) from a to b by adaptive extrapolated Simpson's quadrature.
quadgui(f,a,b,tol) uses the given tolerance instead of 1.e4.
 dirfield.m

dirfield(f, t1:dt:t2, y1:dy:y2) plots the direction field for the first order ODE y' = f(t,y), using tvalues from t1 to t2 with spacing of dt, and yvalues from y1 to t2 with spacing of dy
 euler.m

euler(f,tspan,y0,n) applies Euler's method to solve y' = f(y,t), y(a) = y0,
on the interval a <= t <= b with n steps.
 midpoint.m

Apply the midpoint method to solve y’ = f(y,t), y(a) = y0,
on the interval tspan(1) <= t <= tspan(2) with n steps.
 rungekutta4.m

Apply the RK4 method to solve y’ = f(y,t), y(a) = y0,
on the interval tspan(1) <= t <= tspan(2) with n steps.
 euleradapt.m

Apply adaptive Eulers's method to solve y' = f(y,t), y(a) = y0,
on the interval tspan(1) <= t <= tspan(2).
This uses Euler's method to step, and the modified Euler's method to
compute an error bound and adapt the step size.

Homework Assignments
 Due Friday, 1/24: 1.2 #1a, 1h, 9a, 15; 1.3 # 3,4; Problems on a handout.
 Due Monday, 2/3: 2.1 # 7, 15; 2.2 # 1,2,8,11a,16,17,19; Problems on a handout.
 Due Friday, 2/14: 2.3 #1, 3, 5b, 7b, 13, 23; 2.4 #7, 8, 9; 2.5 # 1c, 17; Problems on a handout.
 Due Monday, 3/3: Ch 2.6 #12; Ch 3.1 # 1a, 5a, 7a, 14, 17; Problems on a handout.
 Due Wednesday, 3/19: Ch 3.3 # 1*, 3*, 7a, 10, 11, 16, 17; Ch 3.5 # 3a, 13. Problems A,B,C,D,E and two Matlab problems on a handout
 Due Monday, 3/31: Ch 4.1 #5a, 7a; Ch 4.2 #11; Ch 4.3 # 1df, 3df, 5df, 7df; Problems on a handout.
 Due Friday, 4/11: Ch 4.3 #15; Ch 4.4 #1ae,3ae,11,26b; Ch 4.5 # 1b; Problems on a handout.
 Due Friday, 4/25: Ch 4.6 #1a,6a; Ch 5.1 #3a, 4abd; Ch 5.2 # 1bc, 3bc, 12; Problems on a handout.
 Due Friday, 5/2: Ch 5.4 #3a, 15a, 23a, 28; Problems on a handout.
