# NUMERICAL approach to NONLINEAR PDE

1. Jan 13, 2014

### Romik

Hi guys,

I need to simulate wave propagation for a nonlinear dispersive wave PDE and since I can't find proper resources for handling nonlinear PDEs numerically, I would appreciate any help and clues.

the PDE is in the form of
utt-(au+bu2+cu3+duxx)xx=0

Romik

Ps:
BC: Clamped at both ends
IC: u(x,0)=f, ut(x,0)=g

Last edited: Jan 14, 2014
2. Jan 13, 2014

### Staff: Mentor

What are the initial and boundary conditions?

3. Jan 14, 2014

### Staff: Mentor

I assume that clamped at both ends means zero displacement and zero slope, correct? You need to solve the equation numerically. You can use central differences wr to time and x. You can look up finite difference approximations to the derivatives in Abramowitz and Stegun. Also, the following link presents some good numerical schemes you can use:
http://pauli.uni-muenster.de/tp/fileadmin/lehre/NumMethoden/WS1011/script1011Wave.pdf

Skip the first part where they talk about analytic methods.

4. Jan 14, 2014

### Romik

Thanks Chester for your reply.

yes, that means zero displacement at both ends.

finite difference (FD) is the first approach that came in mind and I searched over internet to find similar PDEs with FD, and all I found was linear wave PDE (same as your link), or nonlinear first order hyperbolic PDEs.
My question is more about nonlinear and dispersive terms in this PDE which I don't know how to treat them with this approach, or even if the FD method is the best option for this problem.
or among FD approaches which one is better for this type of problem? Central? forward? backward? Upwind? Lax-Wendroff? Crank-Nicolson?

Thanks

5. Jan 14, 2014

### Staff: Mentor

This can't take more than a couple of hours to program using explicit finite differences, with central differences in time and space. For time, use the same explicit approach as linear, with (ut+Δt-2ut+ut-Δt)/(Δt)2 for the time derivative. If that doesn't stay stable, I would go directly to fully implicit at t + Δt. But I think that if you use explicit, you can control stability with a small enough time step and get what you want in a manageable amount of computation time.

Chet

Chet

Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook