Numerical Methods Marisa Villano, Tom Fagan, Dave Fairburn, Chris Savino, David Goldberg, Daniel Rave
An Overview • The Method of Finite Differences • Error Approximations and Dangers • Approxmations to Diffusions • Crank Nicholson Scheme • Stability Criterion
Finite Differences Best known numerical method of approximation Marisa Villano
Finite Differences • Approximating the derivative with a difference quotient from the Taylor series • Function of One Variable • Choose mesh size Δx • Then uj~ u(jΔx)
First Derivative Approximations • Backward difference: (uj – uj-1) / Δx • Forward difference: (uj+1 – uj) / Δx • Centered difference: (uj+1 – uj-1) / 2Δx
Taylor Expansion 2 • u(x + Δx) = u(x) + u΄(x)Δx + 1/2 u˝(x)(Δx) + 1/6 u˝΄(x)(Δx) + O(Δx) • u(x – Δx) = u(x) – u΄(x)Δx + 1/2 u˝(x)(Δx) - 1/6 u˝΄(x)(Δx) + O(Δx) 3 4 2 3 4
Taylor Expansion u΄(x) = u(x) – u(x – Δx) + O(Δx) Δx u΄(x) = u(x + Δx) – u(x) + O(Δx) Δx u΄(x) = u(x + Δx) – u(x – Δx) + O(Δx) 2Δx 2
Second Derivative Approximation 2 • Centered difference: (uj+1 – 2uj + uj-1) / (Δx) • Taylor Expansion u˝(x) = u(x + Δx) – 2u(x) + u(x – Δx) + O(Δx) (Δx) 2 2
Function of Two Variables n u(jΔx, nΔt) ~ uj • Backward difference for t and x (jΔx, nΔt)~ (uj– uj ) / Δt (jΔx, nΔt)~ (uj– uj ) / Δx ∂u n n-1 ∂t ∂u n n-1 ∂x
Function of Two Variables • Forward difference for t and x (jΔx, nΔt)~ (uj – uj ) / Δt (jΔx, nΔt)~ (uj – uj ) / Δx ∂u n+1 n ∂t ∂u n+1 n ∂x
Function of Two Variables • Centered difference for t and x (jΔx, nΔt)~ (uj – uj ) / (2Δt) (jΔx, nΔt)~ (uj – uj ) / (2Δx) ∂u n+1 n-1 ∂t ∂u n+1 n-1 ∂x
Error • Truncation Error: introduced in the solution by the approximation of the derivative • Local Error: from each term of the equation • Global Error: from theaccumulation of local error • Roundoff Error: introduced in the computation by the finite number of digits used by the computer
The Dangers of the Finite Difference Method Evidence from an example in 8.1 Dave Fairburn
Example from 8.1 • Consider ut = uxx u(x,0) = h(x) • We will use the finite difference method to approximate the solution • Forward difference for ut • Centered difference for uxx • Re-write equation in terms of the finite difference approximations
Finite Difference Eqn. • ujn+1 - ujn = unj+1 - 2ujn + unj-1 t ( x ) 2 Error: The local truncation error is O( t) from the left hand side and is O( x)2 from the right hand side.
Assumptions • Assume that we choose a small change in x, and that the denominator on both sides of the equation are equal. • We are now left with the scheme: ujn+1 = unj+1 - unj + unj-1 • Solving u with this scheme is now easy to do once we have the initial data.
Initial Data • Let u(x,0) = h(x) = a step function with the following properties: h(x) = 0 for all j except for j = 5, so hj = 0 0 0 0 1 0 0 0 0 0 0 …. • Initially, only a certain section, which is at j = 5 is equal to the value of 1. • “j” serves as the counter for the x values.
How to solve? • We know u0j = 1 at j = 5 and 0 at all other j initially (given by superscript 0). • We can plug into our scheme to solve for u1j at all j’s. • u1j = u0j-1 - u0j + u0j+1 • u15 = -1; u14 = 1; u16 = 1 • Now we can continue to increase the # of iterations, n, and create a table…
Solution for 4 iterations n-values j values
Analysis of Solution • Is this solution viable? • Maximum principle states that the solution must be between 0 and 1 given our initial data • At n = 4, our solution has already ballooned to u = 19! • Clearly, there are cases when the finite difference method can pose serious problems.
Charting the Error • Assume the solution is constant and equal to 0.5 (halfway between the possible 0 and 1)
Lessons Learned • While the finite difference method is easy and convenient to use in many cases, there are some dangers associated with the method. • We will investigate why the assumption that allowed us to simplify the scheme could have been a major contributor to the large error.
Approximations of Diffusions Neumann Boundary Conditions and the Crank-Nicolson Scheme Chris Savino
Approximations of Diffusions • Errors have accumulated from the approximations of the derivatives using the previous scheme • The problem is the choice of the mesh Δt to the mesh Δx • Let s= can solve scheme
Neumann Boundary Conditions • 0 x l • Simplest Approximations are
To get smallest error, we use centered differences for the derivatives on the boundary • Introduce ghost points • Boundary Conditions become
Crank-Nicolson Scheme • Can avoid any restrictions on stability conditions • Unconditionally stable no matter what the value of s is.
Centered Second Difference: • Pick a number theta between 0 and 1 • Theta scheme:
Must Check stability condition • If then • Therefore is always true
If then there is no restriction on the size of s for stability to hold • The scheme is unconditionally stable • When theta = ½ it is called the Crank-Nicolson scheme • If theta < ½ then the scheme is stable if
Stability Criterion Approximations of the diffusion equation, ut=uxx David Goldberg
Stability Criterion The method of finite differences gives an answer, but it does not guarantee that this answer is meaningful. Values must be chosen appropriately, to ensure that the results make sense and are applicable to real world scenarios. This condition, that values must satisfy in order to be worthwhile, is called the “stability criterion.”
Example As per the book, take, for instance, the diffusion problem:
Example, continued As can be easily shown, the graph of φ(x) looks like this.
Example, continued In attempting to use the method of finite differences, we are using a forward difference for utand a centered difference for uxx. This means that It is important to note here that the superscript n denotes a counter on the t variable, and the subscript j denotes a counter on the x variable.
Example, continued In order to make the calculations a bit cleaner, we are introducing a variable, s, which is defined by Rearranging, we have It would be nice if we could just plug in values and get a valid result…
Example, continued However, putting in different values can lead to the results being close to, or far from, that actual answer. For instance, letting ∆x=π/20, and letting s=5/11, we get a relatively nice result. Letting s=5/9 does not get such a nice result. So what, of significance, changes?
Example, Continued As it turns out, changing the value of s can significantly change the validity of the solution. To see why, we return to our equation.
Example, continued Since the left hand side is a function of T and the right hand side is a function of X, they must be equal to a constant.
Example, continued This is a discrete version of an ODE, which when solved gives
Example, finished Thus, to achieve stability, . This is why setting s=5/9 didn’t give a valid result. It is to be noted that usually the necessary criterion is that , but that in this case it was irrelevant. So the stability criterion must be worked out before one can effectively use the method of finite differences.
Approximations of Diffusions Example from 8.2 Daniel Rave
Summary • Breif Review of Methods • Wide Applicability • Importance of Stability