<- previous    index    next ->

Lecture 31b, Nonlinear PDE


Some of the most difficult to solve PDE's have an
"order" greater than one. These are nonlinear PDE's.

A specific problem, challenge if you prefer, is the
possibility of "non physical solutions" and
"bifurcating solutions" in addition to no possible solution.
A small change in the boundary conditions or a different
starting vector for the nonlinear solver can produce
different results with no way of knowing the result is
ambiguous.


A PDE having any product or ratio of U, Ux, Uxx, etc.
is nonlinear.

Several nonlinear PDE of interest are:

  Second order, third degree:
  U^2 U'' + 2 U U' + 3U = f(x)

  Reciprocal nonlinear:
  D U' - E(x) U'/U^2 - F U'' = f(x) 

An example that can handle up to third degree nonlinear systems of
equations is shown by using a Newton iteration based on the inverse
of the Jacobian:

  x_next = x_prev - J^-1 * ( A * x_prev - Y)

Java nonlinear

simeq_newton5.java basic solver test_simeq_newton5.java test program test_simeq_newton5_java.out test_output on four test cases (automatic adjusting heuristic used) A linear PDE using conventional Finite Element Method, FEM, works: source code fem_nl11_la.java output fem_nl11_la_java.out A nonlinear PDE using conventional FEM does not work. source code fem_nl12_la.java output fem_nl12_la_java.out (very similar, nonlinear, fails) Discretization works on nonlinear PDE's: source code pde_nl21.java output pde_nl21_java.out source code pde_nl22.java output pde_nl22_java.out solver simeq_newton5.java

Ada nonlinear PDE

simeq_newton5.adb basic solver test_simeq_newton5.adb test program test_simeq_newton5_ada.out test_output on five test cases (automatic adjusting heuristic used) hard coded nonlinear coefficients, non unique solution source code pde_nl13.adb output pde_nl13_ada.out solver simeq_newton5.adb automated computation of nonlinear coefficients, still non unique solution source code pde_nl13a.adb output pde_nl13a_ada.out solver simeq_newton5.adb More examples with many checks: source code pde_nl21.adb output pde_nl21_ada.out source code pde_nl22.adb output pde_nl22_ada.out Third order PDE in 3 dimensions with 3rd degree nonlinearity. Demonstrates use of least square fit of boundary as an initial guess to solve nonlinear system of equations. See Lecture 4 for lsfit.ads, lsfit.adb source code pde_nl33.adb output pde_nl33_ada.out

C nonlinear

source code pde_nl13.c output pde_nl13_c.out solver simeq_newton5.c header simeq_newton5.h

difficulties

The nonlinear PDE can not be solved by simple application of Finite Element Method, covered in lecture 32. For example, the above nonlinear PDE is not solved by: source code fem_checknl_la.c output fem_checknl_la_c.out Using discretization with a nonlinear solver, such as simeq_newton5, works accurately and efficiently.

Kuramoto-Sivashinsky nonlinear

There seem to be many variations of the Kuramoto-Sivashinsky non linear, fourth order PDE, depending on the physical problem. I have seen in various reference papers: Ut + Uxxxx + Uxx + 1/2 (Ux)^2 = 0 mainly variations in the last term, and ∂U(x,t)/∂t + ∂^4 U(x,t)/∂x^4 + ∂^2 U(x,t)/∂x^2 -(∂U(x,t)/∂x)^2 = 0 In the figure below, read h as U, read y as t. For nonlinear PDE to be solved by solving a system of equations, the simultaneous equations are non linear. To solve a system of nonlinear equations reasonably efficiently, use a Jacobian matrix and an iterative solution and adaptive solver such as simeq_newton5, available in a few languages.
    <- previous    index    next ->

Other links

Go to top