Difference in numerical approach for PDE vs ODE

  • Python
  • Thread starter TheCanadian
  • Start date
  • #1
367
13

Main Question or Discussion Point

I think I am missing something painfully obvious, but what exactly is the difference in algorithms used to solve PDEs vs ODEs? For example, I've been looking at finite difference methods and the general steps (from what I've seen, although particular approaches may vary) used to numerically solve PDEs and ODEs using this method is to set up a grid for your domain, define boundary/initial conditions, and then take the total (partial) derivative and add it to the previous step's value to find adjacent values.

For example (after initializing values), if I have a function P composed of two variables (t and z) with the total (partial) derivative operator given by Dt for the time derivative and Dz for the spatial derivative, then I set up a loop and it might look something like this:

Code:
j = 0
i = 0
while i < len(t):
    DtP = Dt(P[j,i])
    P[j,i+1] = P[j,i] + ht*DtP

    while j < len(z):
       DzP = Dz(P[j,i])
       P[j+1,i] = P[j,i] + hz*DzP
       j = j + 1

    i = i + 1
Please correct my huge misunderstanding here (or if my basic code is incredibly wrong in its approach), but how exactly is the finite difference method different for the two approaches, besides using a partial or total derivative to iterate the next step?

If you have any other methods besides finite difference methods that could also help distinguish the two approaches to solving ODEs and PDEs, that would be helpful as well.[/code]
 
Last edited:

Answers and Replies

  • #2
hilbert2
Science Advisor
Insights Author
Gold Member
1,342
415
If you use the straightforward finite differencing for a PDE, you usually encounter numerically unstable behavior, which means that the numerical errors in your solution grow exponentially as a function of the time variable t. That is why there are Crank-Nicolson schemes and semi-implicit schemes for solution of PDE:s.
 
  • #3
367
13
If you use the straightforward finite differencing for a PDE, you usually encounter numerically unstable behavior, which means that the numerical errors in your solution grow exponentially as a function of the time variable t. That is why there are Crank-Nicolson schemes and semi-implicit schemes for solution of PDE:s.
Thank you for the clarifying that. I'll definitely read more about the stability of the different approaches for PDE solvers. In case I'm misinterpreting you, why do ODE not encounter the same unstable behaviour for the different approaches?
 
  • #4
hilbert2
Science Advisor
Insights Author
Gold Member
1,342
415
Sometimes the finite difference method can be unstable for ODE:s too, but it's more rare. When it happens, the equation is called a "stiff" ODE.
 

Related Threads on Difference in numerical approach for PDE vs ODE

Replies
6
Views
612
Replies
4
Views
1K
  • Last Post
Replies
2
Views
1K
  • Last Post
Replies
1
Views
15K
Replies
1
Views
2K
Replies
6
Views
754
Replies
10
Views
3K
  • Last Post
Replies
3
Views
505
Replies
2
Views
720
Replies
6
Views
3K
Top