scattering from sound-soft obstacle in 2D |
Rapid progress in computer power and numerical algorithms in recent decades has revolutionized science and technology. The Laplace equation (describing steady-state diffusion, heat flow, electrostatics) and Helmholtz equation (linear waves, acoustics, electromagnetics, optics, quantum) are linear PDE boundary value problems, ubiquitous in modeling the real world. They may be solved numerically by recasting the problem onto the boundary; this is more efficient at short wavelengths (and easier to code) than standard discretization methods. We will lay a foundation in numerical analysis, as well as some in PDEs, and build codes, study their errors, and later explore phenomena in wave scattering and so-called fast algorithms. You will learn some of the deep mathematics required to understand the success and efficiency of modern algorithms. Flyer from previous incarnation. |
Admin: Office hours (Kemeny 206): Tu 2-3 pm, Th 2:30-3:30pm, F 2-3pm, or by arrangement. X-hour is 3pm Wed; some will be used for coding workshops with your laptops (but you won't need laptops in regular lectures). The grading scheme will be 65% HW and 35% project.
Homework: You will do around 7 weekly homeworks, due on Sunday night (I start grading Monday 9am), handed out or emailed the Thursday/Friday over a week before. HW will be a mixture of theory, and coding numerical experiments and understanding the results. Writing intelligible and documented code is a useful skill that we will be emphasizing. I encourage you to discuss with each other (but see below). In the interests of you learning some tools for scientific collaboration, I want you to post your HW online on your website (see Resources). I am giving you time in the first few days to do this. You can write by hand your HW, and scan it; however a much better way, which you will rapidly get used to, is to typeset it in LaTeX (see Resources). This is an invaluable skill, so please dive in.
Project: In the last part of the course you will also do a project building upon the course material; see topic ideas list, and also previous student projects. Projects may be analysis-based (presenting theorems), or developing and demonstrating numerical code, or a mixture of both. Come and talk if you have your own ideas. Since it is a graduate level course, projects will be individual. You will present your projects with a short in-class talk on Tuesday March 6 and Wed March 7. Final project writeups (in LaTeX, with which you will be very familiar by then) due 5pm Fri March 9.
Honor Principle: For homework and projects, you are encouraged to discuss with others, but must acknowledge your collaborators (or other sources such as textbooks, papers, or the web), and must write up your work in your own words, and with your own understanding. If you collaborate on pieces of your code, this must be stated. Any copying (electronic or otherwise) of another person's solutions, in whole or in part, is a violation of the Honor Code.
Books: The content I wish to teach is distributed across several books. Thus there is no single required book, but I will suggest readings from the following which will be on 4-hr reserve at Baker Library. We may scan some small portions. Any serious student of numerical computing should consider buying the first two.
Background: While formally you could do well with only Math 22/24 and 23 and an introductory programming course (such as CS 1 or the old CS5), you will benefit from having taken at least one of the following: Math 46, Math 35/63, Math 26/Engs 91. You may have to do some background reading - please let me know what areas you are stuck on.
Computing languages:
I prefer, and suggest, that you use MATLAB (see
Resources for tutorials) or its free variant
octave
.
It is a wonderful and efficient environment, created by numerical
analysts (founded: Cleve Moler) for exactly our kind of work.
However, if you are really committed to another language, I won't
penalize you for it, as long as your code is clear, well commented, and works!
Disabilities: I encourage any students with disabilities, including "invisible" disabilities such as chronic diseases and learning disabilities, to discuss appropriate accommodations with me, which might help you with this class, either after class or during office hours. Please do this by the first 2 weeks of class. Dartmouth College has an active program to help students with disabilities, and I am happy to do whatever I can to help out, as appropriate. See Accessibility for Dartmouth's information on this.
Lecture notes are my own rough scribbles which should not however replace your own note-taking. Brackets [NLA] etc refer to
books as listed above.
Here is a complete set of scanned lecture
notes for Math 126, Winter 2012 (4MB; does not include worksheets, example
codes or homeworks).
week | date | readings & notes | topics | demos & codes | worksheets |
---|---|---|---|---|---|
1 | Jan 5 Th | website, lec 1, intro | Overview linear PDEs, linear systems, Vandermonde instability. | vandermonde: shows numerical rank of said matrix which we proved was full rank | |
10 Tu | lec 2, [NLA] Ch. 1-5; if you need it: Kalman notes on the SVD, Wendland num lin alg parts 1,2 only | Orthogonality, the SVD, the four fundamental spaces, numerical rank. | ellipse: shows action of 2x2 matrix on unit ball | singvals | |
11 W X-hr | Resources | LaTeX, HTML, and Matlab review | matlabtaylor (solution) | ||
2 | 12 Th | lec 3, [NLA] Ch. 12-14; this | Condition number, floating point representation | relcondnum | |
17 Tu | lec 4, [NLA] Ch. 14-15; [NA] Ch. 8.1 | Stability and backwards stability of algorithms. Polynomial interpolation on intervals. | |||
3 | 19 Th | lec 5, [SM Ch. 5], [NA] Ch. 9.1; ATAP Ch. 2, 12, 13, 14 | L-infinity interpolation error, analyticity, Chebyshev nodes and electrostatics in the plane. Interpolatory quadrature. | charges_polynomial: contours of size of log of monic polynomial q_{n+1} in C for two node spacings; charges_equilibrate: relaxation animation towards equilibrium for charges on an interval | interp |
24 Tu | lec 6, [NA] Ch 9.2-3 | Composite trapezoid, error bounds. Convergent quadratures and the Banach-Steinhaus theorem (See Ex 10.1 in [LIE]). Gaussian quadrature. | gauss_n=2 | ||
4 | 26 Th | lec 7.1, 7.2; [NA] Ch. 9.4; review complex analysis | Gaussian quadrature. Periodic trapezoid rule, exponential convergence rate proof for real analytic functions. | ||
31 Tu | lec8, [NA] 12.3, [Atkinson] Ch 1.1-3. | Integral Equations, Nystrom method. | |||
Feb 1 W X-hr | - |
Testing and debugging codes: buggycodes.m
,
and then buggycodes_debugged.m .
Spot the differences (best done by xxdiff or other tool).
| |||
5 | 2 Th | lec9, [NA] 12.1-2; [LIE] Ch. 6.1 | Compact operators, the Fredholm Alternative. Laplace's equation, fundamental solution. | greenident | |
7 Tu | lec10, [LIE] Ch. 6.1 | Green's representation formula, properties of harmonic functions. Boundary parametrization. | |||
6 | 9 Th | lec11, [LIE] Ch.6; [C] Ch. 5 | Layer potentials, jump relations, boundary integral equation for interior Dirichlet Laplace BVP. | Example code for HW5 #4: dlp_bvp_simple. Note the use of vectorization to fill Nystrom matrix with no loops. | |
14 Tu | lec12; [LIE] 6.3, 6.4 | Rigorous proof of double-layer value jump relation. Interior Neumann BVP and non-uniqueness. | |||
7 | 16 Th | lec13; [C] 6.3, 6.5 | Exterior Dirichlet BVP: ghost of the complementary BVP haunting the BIE. Helmholtz equation, scattering of time-harmonic scalar waves. | ||
21 Tu | lec14; [CK] 3.2. | Hankel and Bessel functions. Eigenvalues of the operator 2D, and the interior Neumann and Dirichlet eigenvalue problems for the Laplacian. Avoiding interior resonances in time-harmonic scattering: CFIE (Brakhage-Werner, Leis, Panich). Low-rank property of off-diagonal blocks of interaction matrix. |
dlp_eigvalsweep.m
for k-dependence of eigenvalues of 2D operator.
| ||
8 | 23 Th | lec15; Greengard-Rokhlin 1987 | Fast algorithms (fast application of 2D Laplace kernel matrix): multipole expansions, errors, simple O(N^{3/2}) 1-level scheme. | ||
28 Tu | lec16; Greengard-Rokhlin 1987 | Fast algorithms II: multipole-to-local operators, O(N^{4/3}) code using M2L. Hierarchical schemes: treecodes and FMM, adaptivity. | |||
29 W X-hr | this | Using Beamer and LaTeX for making slides for your talks. | |||
9 | Mar 1 Th | lec17; Kress '91, [LIE] Ch.8; [CK] Ch.2. | Advanced topics: Product quadratures, deriving the weights, in particular for log-singular kernels. Introduction to Sobolev spaces. Calderon identities and projectors for Helmholtz BIE operators. | ||
6 Tu | - | In-class project presentations | |||
7 W X-hr | - | In-class project presentations continued |