18.303 Problem Set 7 Problem 1: Born again

advertisement
18.303 Problem Set 7
Due Wednesday, 30 October 2013.
Problem 1: Born again
In the class notes on “Green’s functions in inhomogeneous media,” section 3, we applied the Born approximation to a
small “object” far from both the source (x0 ) and the observer (x). A key step in the derivation was to approximate
the integrand
g(x0 ) = ∇0 G0 (x, x0 ) · ∇0 u0 (x0 )
of B̂u0 as a constant in V and to pull it out of the integral. In this problem, you will carry out that process more
carefully, as a Taylor expansion of g(x0 ) around x1 :
g(x0 ) ≈ g(x1 ) + ∇0 g|x1 · (x0 − x1 ) + (x0 − x1 ) · H · (x0 − x1 ) + . . .
where H is the 3 × 3 second-derivative (“Hessian”) matrix with entries Hij =
simply keep only the first term in this expansion.
∂2g
∂x0i ∂x0j .
What we did in class was to
(a) Show that the second term in the Taylor expansion, ∇0 g|x1 · (x0 − x1 ) , contributes zero to B̂u0 if the point x1
is chosen correctly. Give a formula for the correct x1 . (Do you recognize this formula?)
(b) Work out the third term (the H term) in the Taylor expansion. This is called the “quadrupole” term. How fast
does this term’s contribution to u(x) decay with |x − x1 | and |x0 − x1 |? (In comparison, the “dipole” term we
examined in class decayed as ∼ 1/|x − x1 |2 and ∼ 1/|x0 − x1 |2 .)
Problem 2: Crank-Nicolson vs. Leapfrog
In class, we considered negative-definite discretizations A = A∗ < 0 of ∂u
∂t = Âu and showed that the Crank-Nicolson
discretization
un+1 − un
un+1 + un
=A
∆t
2
is unconditionally stable, where the right-hand side was a way of approximating un+0.5 . Here, we will instead consider
using un+0.5 directly. That is, we will imagine computing u at timesteps u0 , u0.5 , u1 , u1.5 , . . . where we update u by
the center-difference equations:
un+1 − un
= Aun+0.5 ,
∆t
un+0.5 − un−0.5
= Aun .
∆t
This is called “leapfrog” scheme, for reasons that should become apparent (if you know the children’s game of leapfrog).
(a) Suppose we are given the initial condition u0 . Outline an algorithm to update u successively in order to compute
un and un+0.5 for as many n > 0 as desired, using the leapfrog scheme above. (You may need to construct a
different way to compute u0.5 . Preserve second-order accuracy in time!)
n+1
n
n
n−1
(b) Consider u ∆t−u − u −u
and show that you can get an equation in un alone (no half-integer timesteps).
∆t
2
Relate this to the original PDE via ∂∂t2u = · · · .
2
um+1 −2um +um−1
∂
00
(c) Suppose  = ∂x
. Perform a Von
2 and A is the usual center-difference approximation um =
∆x2
n
ikm n
n+0.5
ikm n+0.5
Neumann stability analysis by pluggin in um = e G and um
=e G
a for an unknown growth rate
G, an unknown relative amplitude a of unm and un+0.5
, and arbitrary real k.
m
(i) Show that a = ±1.
(ii) If we can restrict ourselves to solutions with a = +1 (i.e. integer and half-integer timesteps have the same
sign), find conditions on ∆t and ∆x (if any) such that |G| < 1 for all real k (stability, since the original
PDE is a diffusion equation with decaying solutions).
1
Download