Von neumann stability analysis

deadringer
Messages
32
Reaction score
0
We have a hyperbolic pde (in fact the 1d wave equation) with indep vars X, T
We use the central difference approximations for the second derivatives wrt X, T to get

[phi(Xn, Tj+1) -2phi(Xn, Tj) + phi(Xn, Tj+1)]/(dT^2) = [c^2][phi(Xn-1, Tj) -2phi(Xn, Tj) + phi(Xn=1, Tj)]/(dX^2)

where dX and dT are the changes in the independent variables between steps, c is the speed of the wave.

We are supposed to show that the scheme is stable only if cdT/dX = lambda<=1

We have to apply Von Neumann stability analysis. This usually means assuming a solution of the form phi = A(T)*exp(ikX)

Xn = ndX

therefore phi(Xn, Tj) = Aj*exp(ikndX)

The stability condition is that sigma = Aj+1/Aj and we want the modulus of sigma is less than or equal to one.

The first problem I have is that the above PDE finite difference equation has phi's with three different times in it; j-1,j,j+1. Therefore I tried using two differenct sigma factors sigma1 = Aj/Aj-1 and sigma2 = Aj+1/Aj
I do not think that you can assume that these are the same. I think that for stability you need the modulus of both sigmas is less than or equal to one.

the original finite difference equation gives us

sigma1 = 1/[2(lambda^2)cos(kdX) +2(1-(lambda^2)) - sigma2)

I set the modulus of this is less than or equal to one (call this stage A), giving two more equations:

-2(lambda^2)cos(kdX) - 2 + 2(lambda^2) + sigma2 <=1

this must be true for the largest values of the LHS (i.e when sigma2 = 1) , giving us Lambda^2 <= 1/(1-cos(kdX))

The RHS is largest when cos = 0, and also note that dX, dT, c are all positive by def'n, giving us the required condition. The only problem is we also get another equation from stage A:

2(lambda^2)cos(KdX) + 2 - 2(lambda^2) - sigma2 >=1

This must be true for the smallest values of the LHS i.e when sigma2 = 1
This implies that (lambda^2)(cos(kdX) - 1)>=0

We know that lambda^2>=0 which means that the other bracketed term must be greater than or equal to one. This is only satisfied for cos = 0
This extra condition was not mentioned in the question and doesn't look right. I'm not sure where I've gone wrong.
 
Last edited:
From what I remember about this stuff, you plug the assumed solution [tex]\phi(x,t)=A(t)e^{ikx}[/tex] into the difference equation, and then use the fact that [tex]x[n+m]-x[n]=m \Delta x[/tex] to obtain an ordinary difference equation in t_j which can be solved exactly.

So in this case you would obtain
[tex]e^{ikx[n]}(A[j+1]-2A[j]+A[j-1]) = \frac{c^2 \Delta t^2}{\Delta x^2} A[j] (e^{ikx[n-1]} - 2e^{ikx[n]} + e^{ikx[n+1]})[/tex]
which you can rearrange as

[tex]A[j+1] + (\alpha-2)A[j] + A[j-1] = 0[/tex]

where
[tex]\alpha = \frac{c^2 \Delta t^2}{\Delta x^2}(2cos(k\Delta x)-2)[/tex]
( or something similar to that).

Difference equations have solutions of the form [tex]A[j] = z^j[/tex], so plug that solution into the final difference equation above and you end up with a quadratic equation in z. Note that the solutions z depend on alpha. Then, since the original solution is now [tex]\phi = z^j e^{ikx}[/tex], you need z<=1 to prevent the solution from blowing up as j grows, so you need to pick alpha to give you z roots which are less than one.

So if you solve the quadratic equation for z as a function of alpha, you will get a constraint on alpha, and then using the definition of alpha, that should give you a constraint on c^2dt^2/dx^2 which is the one you're after.
 
Last edited:

Similar threads

Replies
46
Views
8K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 8 ·
Replies
8
Views
2K
  • · Replies 4 ·
Replies
4
Views
5K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 11 ·
Replies
11
Views
5K
  • · Replies 24 ·
Replies
24
Views
8K
  • · Replies 6 ·
Replies
6
Views
2K
  • · Replies 235 ·
8
Replies
235
Views
19K
  • · Replies 12 ·
Replies
12
Views
2K