Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

6/6/2017 FEM1D_NONLINEAR - Finite Element Method for 1D Nonlinear Problem

FEM1D_NONLINEAR
Finite Element Method for 1D Nonlinear
Problem.
FEM1D_NONLINEAR is a MATLAB program which applies the finite element method to a simple nonlinear
boundary value problem in one spatial dimension.

The nonlinear boundary problem involves an unknown function u on an interval [a,b]. Typically, a single
boundary condition, either u(a) or u'(a), is given at the left endpoint, and u(b) or u'(b) at the right endpoint. The
associated differential equation, which must hold in the interior of [a,b], happens to have the form:

-d/dx ( p(x) du/dx ) + q(x) * u + u * du/dx = f(x)

where p(x), q(x) and f(x) are given functions.

The nonlinearity arises because of the term u*du/dx; if this term were not present, standard finite element
techniques would allow the system to be set up and solved almost as easily as a linear system of algebraic
equations is solved.

Newton's method, which works well for scalar nonlinear equations, can also be applied to this problem, as long
as we are willing to extend our notions of a function and derivative. We need to imagine our differential equation
as a function F(u):

F(u) = -d/dx ( p(x) du/dx ) + q(x) * u + u * du/dx - f(x)

(with the boundary conditions wrapped in here somewhere as well!) If we differentiate this function, we get a
Jacobian operator, which is evaluated at u, and applied to any small increment v. This equation implicitly
describes the tangent plane of solutions near to a given solution u.
J(u,v) = -d/dx ( p(x) dv/dx ) + q(x) * v + u * dv/dx + v * du/dx

Now if we apply the finite element formulation to represent u and v in terms of sums of basis functions, we can
set up a linear system, to be evaluated at u and solved for the Newton increment delta_u:
J(u,delta_u) = - F(u)

By using the Newton increment to update u and repeating the process as needed, we can expect to get a good
finite element solution of our original nonlinear boundary value problem.

Licensing:

The computer code and data files described and made available on this web page are distributed under the GNU
https://people.sc.fsu.edu/~jburkardt/m_src/fem1d_nonlinear/fem1d_nonlinear.html 1/3
6/6/2017 FEM1D_NONLINEAR - Finite Element Method for 1D Nonlinear Problem

LGPL license.

Languages:

FEM1D_NONLINEAR is available in a C version and a C++ version and a FORTRAN77 version and a
FORTRAN90 version and a MATLAB version.

Related Data and Programs:

FEM_NEUMANN, a MATLAB program which sets up a time-dependent reaction-diffusion equation in 1D,


with Neumann boundary conditions, discretized using the finite element method.

FEM1D, a data directory which contains examples of 1D FEM files, three text files that describe a 1D finite
element model;

FEM1D, a MATLAB program which applies the finite element method to a linear two point boundary value
problem.

FEM1D_ADAPTIVE, a MATLAB program which applies the finite element method to a linear two point
boundary value problem in a 1D region, using adaptive refinement to improve the solution.

FEM1D_DISPLAY, a MATLAB program which reads three files defining a 1D arbitrary degree finite element
function, and displays a plot.

FEM1D_FUNCTION_10_DISPLAY, a MATLAB program which reads a prefix defining three finite element
data files, reads the data, samples the finite element function, and displays a plot.

FEM1D_PMETHOD, a MATLAB program which applies the p-method version of the finite element method to
a linear two point boundary value problem in a 1D region.

FEM1D_SAMPLE, a MATLAB program which samples a scalar or vector finite element function of one
variable, defined by FEM files, returning interpolated values at the sample points.

Reference:

1. Hans Rudolf Schwarz,


Finite Element Methods,
Academic Press, 1988,
ISBN: 0126330107,
LC: TA347.F5.S3313.
2. Gilbert Strang, George Fix,
An Analysis of the Finite Element Method,
Cambridge, 1973,
ISBN: 096140888X,
LC: TA335.S77.
3. Olgierd Zienkiewicz,
The Finite Element Method,
https://people.sc.fsu.edu/~jburkardt/m_src/fem1d_nonlinear/fem1d_nonlinear.html 2/3
6/6/2017 FEM1D_NONLINEAR - Finite Element Method for 1D Nonlinear Problem

Sixth Edition,
Butterworth-Heinemann, 2005,
ISBN: 0750663200,
LC: TA640.2.Z54

Source Code:

fem1d_nonlinear.m the source code.

Examples and Tests:

problem1_output.txt, the output from solving problem 1.


problem2_output.txt, the output from solving problem 2.

You can go up one level to the MATLAB source codes.

Last revised on 01 August 2009.

https://people.sc.fsu.edu/~jburkardt/m_src/fem1d_nonlinear/fem1d_nonlinear.html 3/3

You might also like