fem1d_spectral_numeric, a MATLAB code which applies the spectral finite element method to solve the problem u'' = - pi^2 sin(x) over [-1,+1] with zero boundary conditions, using as basis elements the functions x^n*(x-1)*(x+1), and carrying out the integration numerically using MATLAB's quad() function, by Miro Stoyanov.
This function solves the problem u'' = - pi^2 * sin( pi * x ) for x in (-1,1), with boundary conditions u(-1) = u(1) = 0.
This problem has exact solution u(x) = sin(pi*x).
We use the spectral finite element method. We assume that the solution can be written in terms of polynomials:
phi_1 = x^0 * (x-1)*(x+1), phi_2 = x^1 * (x-1)*(x+1) ... phi_i = x^(i-1) * (x-1)*(x+1) ...For this particular problem, the solution is an odd function, so only every other basis function will actually be useful.
The computer code and data files described and made available on this web page are distributed under the MIT license
fem1d_spectral_numeric is available in a MATLAB version.
bvp4c_test, a MATLAB code which illustrates how to use the MATLAB command bvp4c(), which can solve boundary value problems (bvp's) in one spatial dimension.
fem1d, a MATLAB code which applies the finite element method to a 1d linear two point boundary value problem.
fem1d_adaptive, a MATLAB code 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 code which reads three files defining a 1d arbitrary degree finite element function, and displays a plot.
fem1d_function_10_display, a MATLAB code which reads a prefix defining three finite element data files, reads the data, samples the finite element function, and displays a plot.
fem1d_nonlinear, a MATLAB code which applies the finite element method to a nonlinear two point boundary value problem in a 1d region.
fem1d_pmethod, a MATLAB code 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 code which samples a scalar or vector finite element function of one variable, defined by fem files, returning interpolated values at the sample points.
Miroslav Stoyanov, Oak Ridge National Laboratory.