Pde 18 A
Pde 18 A
1 Heat equation 3
1.1 Initial-boundary value problems . . . . . . . . . . . . . . . . . . 3
1.2 Uniqueness and maximum principle . . . . . . . . . . . . . . . . 5
1.3 Construction of a solution and Fourier’s method . . . . . . . . 6
1.4 Duhamel’s principle . . . . . . . . . . . . . . . . . . . . . . . . 8
5 Nonlinear problems 45
5.1 Semilinear diffusion equation . . . . . . . . . . . . . . . . . . . 45
5.2 Explicit scheme . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.3 Implicit schemes . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.4 An example: Gray-Scott model . . . . . . . . . . . . . . . . . . 53
11 Shape-regularity of triangulations 94
11.1 Interpolation error estimates . . . . . . . . . . . . . . . . . . . 94
11.2 Proof of Lemma 11.1 . . . . . . . . . . . . . . . . . . . . . . . . 96
16 Applications 123
16.1 Convection-diffusion equation . . . . . . . . . . . . . . . . . . . 123
16.2 Elliptic PDE of the second order . . . . . . . . . . . . . . . . . 126
References 133
4
Introduction. Modeling and analysis
The aim of this lecture is to give an introduction to the mathematical theory
of numerical methods for solving partial differential equations. To accomplish
this purpose, I shall concentrate my attention on the following two typical
topics:
1. the finite difference method for the one dimensional heat equation; and
2. the finite element method for the two dimensional Poisson equation.
I believe that they contain the core idea of numerical methods for PDEs.
Anyway, why does one study Numerical Analysis?
continuous variables
data visualization
1
• All of these branches of processes are connected to the strong trunk of
mathematics.
Norikazu Saito
June 7, 2019
2
I. Finite difference method for the heat equation
1 Heat equation
1.1 Initial-boundary value problems
The heat equation (heat conduction equation) is a simple mathematical model
of the heat conduction phenomenon of a thin wire. The wire is assumed
to be the unit length. We suppose that a function u = u(x, t) denotes the
temperature of the wire at a position x ∈ [0, 1] and a time t ≥ 0.
The heat equation is expressed as
∂u ∂2u
ut = , uxx = .
∂t ∂x2
This equation should be considered under one of the following boundary
conditions:
3
and
ut = kuxx + f (x, t) (0 < x < 1, t > 0)
u(0, t) = 0, u(1, t) = 0 (t > 0) (1.2)
u(x, 0) = a(x) (0 ≤ x ≤ 1).
Hereinafter, we make the following assumptions:
• k > 0 is a constant;
u(0, t) = 0, u(1, t) = 0.
Definition.
A function u = u(x, t) is a (classical) solution of (1.1) or (1.2) if and only if
4
Definition (L∞ norm).
For v ∈ C[0, 1], we let
∥v∥∞ = max |v(x)|,
x∈[0,1]
QT = (0, 1) × (0, T ],
QT = [0, 1] × [0, T ],
ΓT = {(x, t) | 0 ≤ x ≤ 1, t = 0} ∪ {(x, t) | x = 0, 1, 0 ≤ t ≤ T }
= QT \QT (parabolic boundary).
QT
ΓT
x
O 1
Theorem 1.1.
Let T > 0 be fixed. Suppose that a function u = u(x, t) is continuous in QT
and smooth in QT . Then, we have the following.
5
Proof. (i) Assume that ut − kuxx ≤ 0 in QT . Let α = max u(x, t) and set
(x,t)∈ΓT
w= e−t (u − α). Clearly, we have w(x, t) ≤ 0 for (x, t) ∈ ΓT . Hence, it suffices
to prove
w(x, t) ≤ 0 for (x, t) ∈ QT , (∗)
since this implies that u(x, t) ≤ α for (x, t) ∈ QT , which is the desired inequal-
ity.
Inequality (∗) is proved in the following way. We suppose that the function
w achieves its positive maximum µ at (x0 , t0 ) ∈ QT . Thus, we assume that
Theorem 1.2.
Problem (1.1) (or (1.2)) has at most one solution.
Theorem 1.3.
The solution u of (1.1) satisfies the following:
Proof of Theorems 1.2 and 1.3. They are readily obtainable consequences of
Theorem 1.1.
Theorem 1.4.
(positivity) a(x) ≥ 0, ̸≡ 0 ⇒ u(x, t) > 0 for (x, t) ∈ (0, 1) × (0, ∞).
6
(i) −φ′′ (x) = λφ(x), φ(0) = φ(1) = 0;
The system (i) is nothing but the eigenvalue problem, and its solution is given
as
√ √ √
λn = (nπ)2 , φ(x) = 2 sin λn x = 2 sin(nπx) (n = 1, 2, . . .).
Theorem 1.5.
The function defined by the right-hand side of (1.3) is continuous in [0, 1] ×
[0, ∞) and is of class C ∞ in [0, 1] × (0, ∞). Moreover, it is a solution of (1.1).
[12] 藤田宏,池部晃生,犬井鉄郎,高見穎郎:数理物理に現れる偏
微分方程式 I [岩波講座基礎数学,解析学 II-iv],岩波書店,1977 年.
7
✓Remark. The function defined by the right-hand side of (1.3) itself is
well-defined for a ∈ L2 (0, 1). Then, it is of class C ∞ in [0, 1] × (0, ∞), and it
satisfies the heat equation with the boundary condition. Moreover, the initial
condition is satisfied in the following sense;
∫ 1
lim |u(x, t) − a(x)|2 dx = 0.
t→+0 0
where
∞
∑
G(x, y, t) = e−kλn t φn (y)φn (x)
n=1
2. G(x, y, t) satisfies the heat equation ut = kuxx with the boundary con-
dition u(0, t) = u(1, t) = 0 as a function of both (x, t) and (y, t);
For the proof of those facts, see Chapter 1 of [12] for example.
8
We are unable to apply Fourier’s method and need another device. We first
decompose u into u(x, t) = v(x, t) + w(x, t), where v(x, t) and w(x, t) are,
respectively, solutions of
vt = kvxx (0 < x < 1, t > 0)
v(0, t) = 0, v(1, t) = 0 (t > 0)
v(x, 0) = a(x) (0 ≤ x ≤ 1),
wt = kwxx + f (x, t) (0 < x < 1, t > 0)
w(0, t) = 0, w(1, t) = 0 (t > 0)
u(x, 0) = 0 (0 ≤ x ≤ 1).
9
2 Explicit finite difference scheme
2.1 Finite difference quotients
Recall that the differentiation of a function u(x) at x = a is defined by
du u(a + h) − u(a)
u′ (a) = (a) = lim .
dx h→0 h
So, it is natural to expect that
u(a + h) − u(a)
u′ (a) ≈ (|h| ≪ 1).
h
Actually, letting I be a bounded closed interval containing a and a ± h for
h > 0, we have
1
u(a + h) = u(a) + u′ (a)h + u′′ (a + θh)h2
2
with some θ ∈ (0, 1) and, hence,
′
u (a) − u(a + h) − u(a) = 1 u′′ (a + θh)h ≤ 1 h∥u′′ ∥L∞ (I) . (2.1)
h 2 2
10
Name Definition Target Accuracy Assum.
u(a + h) − u(a)
forward Euler u′ (a) O(h) u ∈ C2
h
u(a) − u(a − h)
backward Euler u′ (a) O(h) u ∈ C2
h
u(a + h
) − u(a − h
)
first order central difference 2 2
u′ (a) O(h2 ) u ∈ C3
h
11
t
h
t3
τ
t2
t1
x
x1 x2 xN xN+1
un+1 − uni
ut (xi , tn ) ≈ i
(forward Euler) and
τ
uni−1 − 2uni + uni+1
uxx (xi , tn ) ≈ (second order central difference).
h2
The boundary and initial conditions are computed by
We call this the explicit finite difference scheme (simply, explicit scheme) to
(1.1).
Set, throughout this chapter,
τ
λ=k .
h2
It is useful to rewrite (2.4) as
12
where
un1 a(x1 )
u(n) = ... ∈ RN , a = ... ∈ RN ,
unN a(xN )
1 − 2λ λ
λ 1 − 2λ λ
0
.. ..
Kλ =
. . ∈ RN ×N .
(2.5)
.. ..
. .
0 λ 1 − 2λ
Definition.
(i) The vector ∞ norm is defined by
∥Gu∥∞
∥G∥∞ = max (G ∈ RN ×N ).
u∈RN ∥u∥∞
Lemma 2.1.
For G = (gij ) ∈ RN ×N , we have
∑
N
(ii) ∥G∥∞ = max |gij |.
1≤i≤N
j=1
13
Then, we have ∥v∥∞ = 1 and gkj vj ≥ 0 for any j. Therefore, we can estimate
as
N
∥Gu∥∞ ∥Gv∥∞ ∑
∥G∥∞ = max ≥ = ∥Gv∥∞ = max gij vj
u∈RN ∥u∥∞ ∥v∥∞ 1≤i≤N
j=1
N
∑ ∑ N ∑N
≥ gkj vj = |gkj | = max |gij | = M.
j=1 j=1 1≤i≤N
j=1
Definition.
def.
(i) For u = (ui ) ∈ RN , u ≥ 0 ⇐⇒ ui ≥ 0 (∀i).
def.
(ii) For G = (gij ) ∈ RN ×N , G ≥ O ⇐⇒ gij ≥ 0 (∀i, j).
Theorem 2.2.
Assume that
1
(0 <)λ ≤ .
2
Then, the solution u(n) = (ui ) ∈ RN of (2.4) satisfies, for n ≥ 1,
Listing 1: heat11.sci
// *** explicit scheme for heat equation without source ***
// INPUTS:
1
It is explained in Wikipedia as follows: Scilab is an open source, cross-platform numerical
computational package and a high-level, numerically oriented programming language. It
can be used for signal processing, statistical analysis, image enhancement, fluid dynamics
simulations, numerical optimization, and modeling, simulation of explicit and implicit
dynamical systems and (if the corresponding toolbox is installed) symbolic manipulations.
MATLAB code, which is similar in syntax, can be converted to Scilab. Scilab is one of
several open source alternatives to MATLAB. (http://en.wikipedia.org/wiki/Scilab)
14
// N: division of space, lambda: parameter (<= 0.5),
// Tmax: length of time inverval
// coef: heat conduction coefficient
function heat11(N, lambda, Tmax, coef)
// [a, b]: space interval, u(a, t) = ua, u(b, t) = ub: boundary values
a = 0.0; b = 1.0; ua = 0.0; ub = 0.0;
// h: space mesh, x[ ]: vector for computation, xx[ ]: vector for
drawing
h = (b - a)/(N + 1); x = [a + h: h: b - h]’; xx = [a; x; b];
// tau: time increment, nmax: nmax*tau < Tmax <= (nmax+1)*tau
tau = lambda*h*h/coef; nmax = int(Tmax/tau) + 1;
// step: parameter for drawing
step_num = 40; step = max(int(nmax/step_num), 1);
// u: approximation of u(x, t), uu: vector for drawing
// set initial value
u = func_a(x); uu = [ua; u; ub];
scf(1); plot2d(xx, uu, style = 5);
// def of matrices A and K
A = 2*eye(N, N)-diag(ones(N-1 , 1), -1)-diag(ones(N-1 , 1), 1);
K = eye(N, N) - lambda*A;
// iteration
for n = 1:nmax
u = K*u;
if modulo(n, step)==0
uu = [ua; u; ub]; plot2d(xx, uu, style = 2);
end
end
// label for scf(1)
xlabel(’x’); ylabel(’u’);
// pdf file
xs2pdf(1,’heat11.pdf’);
endfunction
// *** local function ***
// Initial values
function [y] =func_a(x)
y=min(x, 1.0 - x);
//=x.*sin(3*%pi*x).*sin(3*%pi*x);
//y=sin(%pi*x);
endfunction
After running Scilab, we use heat11.sci in the following manner (see Fig.
2.2):
15
In Scilab Window:
--> exec(’heat11.sci’);
--> heat_ex1(63, 0.5, 0.2, 1)
Figure 2.2: Results of computation. (left) a(x) = x sin2 (3πx) (right) a(x) =
sin(πx).
Listing 2: heat12.sci
// *** explicit scheme for heat equation without source ***
// INPUTS:
// N: division of space, lambda: parameter (<= 0.5),
// Tmax: length of time inverval
// coef: heat conduction coefficient
function heat12(N, lambda, Tmax, coef)
// [a, b]: space interval, u(a, t) = ua, u(b, t) = ub: boundary values
a = 0.0; b = 1.0; ua = 0.0; ub = 0.0;
// h: space mesh, x[ ]: vector for computation, xx[ ]: vector for
drawing
h = (b - a)/(N + 1); x = [a + h: h: b - h]’; xx = [a; x; b];
// tau: time increment, nmax: nmax*tau < Tmax <= (nmax+1)*tau
tau = lambda*h*h/coef; nmax = int(Tmax/tau) + 1;
// step: parameter for drawing
step_num = 40; step = max(int(nmax/step_num), 1);
// u: approximation of u(x, t), uu: vector for drawing
// set initial value
u = func_a(x); uu = [ua; u; ub];
// draw initial value
scf(1); plot2d(xx, uu, style = 5);
// def of matrices A and K
A = 2*eye(N, N)-diag(ones(N-1 , 1), -1)-diag(ones(N-1 , 1), 1);
K = eye(N, N) - lambda*A;
// set current time
tnow = 0.0;
// for 3D plot
tsp=tnow*ones(1,N); xsp=x.’; Z=u’;
// iteration
for n = 1:nmax
u = K*u + tau*func_f(x, tnow);
16
tnow = n*tau;
if modulo(n, step)==0
uu = [ua; u; ub]; plot2d(xx, uu, style = 2);
tsp=[tsp;tnow*ones(1,N)]; xsp=[xsp;x’];
Z=[Z;u’];
end
end
// label for scf(1)
xlabel(’x’); ylabel(’u’);
// 3D view
scf(2); mesh(xsp,tsp,Z);
xset(’colormap’,coolcolormap(32));
xlabel(’x’); ylabel(’time’);
// pdf file
xs2pdf(1,’heat12a.pdf’); xs2pdf(2,’heat12b.pdf’);
endfunction
// *** local functions ***
// Initial values
function [y] =func_a(x)
y=min(x, 1.0 - x);
// y=x.*sin(3*%pi*x).*sin(3*%pi*x);
// y=sin(%pi*x);
// I = find(x<=0.3); J = find(x>0.3 & x<=0.6); K = find(x>0.6);
// y = zeros(size(x,1)); y(I) = 0.3; y(J) = -2*(x(J) - 0.6); y(
K) = 0.6;
endfunction
// sorce terms
function [y] = func_f(x, t)
y=0.0;
//y=exp(t+3)*(x.^2).*(1-x);
endfunction
Listing 3: heat13.sci
// *** explicit scheme for heat equation with source ***
function heat13(N, lambda, Tmax, coef)
a = 0.0; b = 1.0; ua = 0.0; ub = 0.0;
h = (b - a)/(N + 1); x = [a + h: h: b - h]’; xx = [a; x; b];
tau = lambda*h*h/coef; nmax = int(Tmax/tau) + 1;
step_num = 30; step = max(int(nmax/step_num), 1); rate = 0.05;
u = func_a(x); uu = [ua; u; ub]; tt = 0.0*ones(N+2,1);
//scf() a new window for drawing,
scf(10);
set(’current_figure’,10); HF = get(’current_figure’); set(HF, ’
figure_size’,[800, 400]);
utp = max(uu) + rate*(max(uu)-min(uu)); ubt = min(uu) - rate*(max(uu)-
min(uu));
17
subplot(1,2,1); plot2d(xx, uu, style = 5);
subplot(1,2,2); param3d(xx, tt, uu, flag=[1,4], ebox=[min(xx),max(xx)
,-0.001,Tmax,ubt,utp]);
// def of matrices A and K
A = 2*eye(N, N)-diag(ones(N-1 , 1), -1)-diag(ones(N-1 , 1), 1);
K = eye(N, N) - lambda*A;
// iteration
tpast = 0.0;
for n = 1:nmax
u = K*u + tau*func_f(x, tpast); // tpast = t_{n-1}
tnow = n*tau; // tnow = t_n
if modulo(n, step)==0
uu = [ua; u; ub];
tt = tnow*ones(N+2,1);
utp = max(uu) + rate*(max(uu)-min(uu)); ubt = min(uu) - rate*(
max(uu)-min(uu));
subplot(1,2,1); plot2d(xx, uu, style = 2);
subplot(1,2,2);
param3d(xx, tt, uu,-45,65,flag=[1,4], ebox=[min(xx),max(xx),min(
tt),max(tt),ubt,utp]);
end
tpast = tnow;
end
// label
subplot(1,2,1); xlabel(’x’); ylabel(’u’);
subplot(1,2,2); xlabel(’x’); ylabel(’t’); zlabel(’u’);
// pdf file
xs2pdf(10,’heat13.pdf’);
endfunction
// *** local functions ***
// Initial values
function [y] =func_a(x)
//y=min(x, 1.0 - x);
y=x.*sin(3*%pi*x).*sin(3*%pi*x);
//y=sin(%pi*x);
//I = find(x<=0.3); J = find(x>0.3 & x<=0.6); K = find(x>0.6);
// y = zeros(size(x,1)); y(I) = 0.3; y(J) = -2*(x(J) - 0.6); y(K) =
0.6; //
endfunction
// sorce terms
function [y] = func_f(x, t)
//y=0.0;
y=exp(t+3)*(x.^2).*(1-x);
endfunction
⋆Example 2.3. We are going to examine the explicit scheme with the aid
of Scilab. Assuming k = 1, we consider the initial-boundary value problem
(1.1) and its explicit scheme (2.4) with the following four initial functions
0.3 (0 ≤ x ≤ 0.3)
2
a1 (x) = x sin (3πx), a2 (x) = −2(x − 0.6) (0.3 < x ≤ 0.6)
0.6 (0.6 < x ≤ 0.3),
{
x (0 ≤ x ≤ 1/2)
a3 (x) = a4 (x) = sin(πx).
1 − x (1/2 < x ≤ 1),
• In Figures 2.5, 2.6 and 2.7, numerical solutions u(n) for a1 (x), a2 (x), and
a3 (x), respectively, are displayed.
18
Figure 2.4: A result of computation by heat13.sci
• Figures 2.8 and 2.9 are numerical solutions for a3 (x) with λ = 0.51 >
1/2. In this case, since we cannot apply Theorem 2.2, the ℓ∞ stability
and the non-negativity conservation are not guaranteed. In fact, a non-
physical oscillation appears (Fig. 2.8) and then negative part of solutions
appears (Fig. 2.9). Moreover, we observe the following. A positive part
of solutions at some tn > 0 becomes negative at the next time step
tn+1 . And, then, it becomes positive again at the next time step tn+2 .
This change of the sign occurs successively and, consequently, numerical
solution is violated.
• On the other hand, we take λ = 0.51 again and compute the explicit
scheme for a4 (x) (Fig. 2.10). Then, we do not observe the oscillation.
However, if we take a larger λ, then the oscillation actually appears again
(Fig. 2.11).
19
Figure 2.5: Initial value a1 (x); λ = 0.49; N = 127; 0 ≤ t ≤ 0.1.
20
Figure 2.8: Initial value a3 (x); λ = 0.51 ; N = 23; 0 ≤ t ≤ 0.1.
21
Figure 2.11: Initial value a4 (x); λ = 0.55 ; N = 23; 0 ≤ t ≤ 0.212.
22
3 Implicit finite difference schemes
3.1 Simple implicit scheme
We continue to study finite difference schemes to approximate the initial-
boundary value problem for the heat equation with no source term;
ut = kuxx (0 < x < 1, t > 0)
u(0, t) = u(1, t) = 0 (t > 0) (1.1)
u(x, 0) = a(x) (0 ≤ x ≤ 1).
It is equivalently written as
1 (n) k
{u − u(n−1) } = − 2 Au(n) (n ≥ 1), u(0) = a,
τ h
where
2 −1 0
.. .. 0 un1
. .
un2
A=
−1 2 −1 ,
u(n) = .. . (3.2)
.. .. .
. .
unN
0 −1 2
Moreover, we set
1 + 2λ −λ 0
. . 0
.. ..
Hλ = I + λA =
−λ 1 + 2λ −λ
(3.3)
.. ..
. .
0 −λ 1 + 2λ
23
finite difference scheme (or, simply, implicit scheme), because the solution is
determined by solving the system of equations. (We note that the recursive
formula (2.4) is called the explicit scheme.) As described below, there are many
implicit schemes. So, (3.1) is sometimes called the simple implicit scheme to
distinguish it with other implicit schemes.
The simple implicit scheme has fine mathematical properties. Thus, we have
the following result.
Theorem 3.1.
For any λ > 0 and n ≥ 1, there exists a solution u(n) = (uni ) ∈ RN of the
simple implicit scheme (3.1) with properties
Lemma 3.2.
The matrix Hλ defined by (3.3) is non-singular. Moreover, Hλ−1 > O and
∥Hλ−1 ∥∞ ≤ 1.
Lemma 3.3.
If G ∈ RN ×N satisfies ∥G∥ < 1 for a norm ∥ · ∥ of RN , then we have the
following:
1
(iii) ∥(I − G)−1 ∥ ≤ .
1 − ∥G∥
24
Therefore,
∑
m
[ ]
l
−1
(I − G) − G
=
(I − G)−1 I − (I − Gm+1 )
l=0
≤ ∥(I − G)−1 ∥ · ∥G∥m+1 → 0 (m → ∞).
∞
∑
−1
This gives (I − G) = Gl .
l=1
(iii) Noting
we obtain
1
∥(I − G)−1 ∥ ≤ ∥I∥ + ∥G∥ · ∥(I − G)−1 ∥ ⇔ ∥(I − G)−1 ∥ ≤ .
1 − ∥G∥
λ
Since ∥G∥∞ = · 2 < 1, we can apply Lemma 3.3 to obtain
1 + 2λ
∞
1 1 ∑ l
Hλ−1 = (I − G)−1 = G,
1 + 2λ 1 + 2λ
l=0
1
∥Hλ−1 ∥∞ = ∥(I − G)−1 ∥∞
1 + 2λ
1 1 1 1
≤ · = · = 1.
1 + 2λ 1 − ∥G∥∞ 1 + 2λ 1 − 1+2λ
2λ
25
is non-singular. Thus, v ≥ 0, ̸= 0. Without loss of generality, we suppose that
vk = 0 and vk+1 > 0. Then, noting that (I − G)v = ej = (δij ) ≥ 0, the kth
component of v is
λ λ
− vk−1 + vk − vk+1 ≥ 0 ⇔ −vk−1 ≥ vk+1 .
1 + 2λ 1 + 2λ
Hence, we have vk−1 < 0 which implies a contradiction. Therefore, we have
verified (I − G)−1 > O.
and
u(n) ≥ 0 ⇒ u(n+1) = Hλ−1 u(n) > 0.
i−1 − 2ui
un−1 n−1
uni − un−1
i
+ un−1
i+1
= k
τ h2
uni − un−1 un − 2uni + uni+1
i
= k i−1 .
τ h2
At this stage, as an approximation of (1.1), we consider their average with
weight θ ∈ [0, 1];
i−1 − 2ui
un−1 n−1
uni − un−1 + un−1
i
= (1 − θ)k i+1
τ h 2
un − 2uni + uni+1
+θk i−1 (1 ≤ i ≤ N, n ≥ 1) (3.4)
h2
un = un = 0 (n ≥ 1)
0
0 N +1
ui = a(xi ) (0 ≤ i ≤ N + 1).
26
Here,
1 + 2θλ −θλ 0
. 0
. .
Hθλ = I + θλA = −θλ 1 + 2θλ −θλ ,
(3.5)
..
.
0 −θλ 1 + 2θλ
′ ′
1 − 2θ λ θ λ 0
. 0
..
Kθ′ λ = I − θ′ λA =
θ′ λ 1 − 2θ′ λ θ′ λ .
(3.6)
..
.
0 θ λ 1 − 2θ′ λ
′
We remark that (3.4) coincides with the explicit and simple implicit schemes
when θ = 0 and θ = 1, respectively.
The cases θ = 0 and θ = 1 have been described in Theorems 2.2 and 3.1.
We here deal with only the case 0 < θ < 1.
Theorem 3.4.
Assume that
0 < θ < 1, 1 − 2(1 − θ)λ ≥ 0. (3.7)
Then, for any n ≥ 1, there exists a unique solution u(n) = (uni ) ∈ RN of (3.4)
with properties
−1
∥u(n+1) ∥∞ = ∥Hθλ Kθ′ λ u(n) ∥∞ ≤ ∥u(n) ∥∞ .
Next, assuming that a ≥ 0, ̸= 0, we have Kθ′ λ a ≥ 0, ̸= 0. Therefore, u(1) =
−1
Hθλ Kθ′ λ a > 0 and, consequently, u(n) > 0 for n ≥ 1.
27
where f (x, t) is a given continuous function that represents a supply/absorp-
tion of heat.
The explicit scheme reads as
n+1
u − uni un − 2uni + uni+1
i
= k i−1 + f (xi , tn ) (0 < i < N, n ≥ 0)
τ h2
un0 = unN +1 = 0 (n ≥ 1)
0
ui = a(xi ) (0 ≤ i ≤ N + 1).
τ
We set λ = k and
h2
f (x1 , tn )
f (x2 , tn )
f (n) = .. .
.
f (xN , tn )
Since the first and second equalities could be expressed as
1 (n+1) k
{u − u(n) } = − 2 Au(n) + f (n) ,
τ h
the explicit scheme is equivalently written as
or, equivalently,
u(0) = a, (3.8)
where Hθλ and Kθ′ λ are those defined by (3.5) and (3.6), respectively.
28
Theorem 3.5.
Assume that
0 ≤ θ ≤ 1, 2(1 − θ)λ ≤ 1.
Then, for any n ≥ 1, there exists a unique solution u(n) = (uni ) ∈ RN of (3.8)
that satisfies the following.
∑
n
(ℓ∞ stability) ∥u(n) ∥ ∞ ≤ ∥a∥∞ + τ ∥f (l−1+θ) ∥∞ ;
l=1
(positivity)
θ ̸= 0, a ≥ 0, ̸= 0, f (l) ≥ 0 (0 ≤ l ≤ n) ⇒ u(n) > 0;
(non-negativity)
θ = 0, a ≥ 0, f (l) ≥ 0 (0 ≤ l ≤ n − 1) ⇒ u(n) ≥ 0.
Lemma 3.6.
If G = (gij ) ∈ RN ×N is a strictly diagonally dominant matrix, i.e.,
∑
N
|gii | > |gij | (1 ≤ i ≤ N ),
j=1,j̸=i
29
From this, we have
{
Lc(n) = g (n)
Hu(n) = g (n) ⇔
U u(n) = c(n) .
• LU factorization. H is decomposed as H = LU ;
• For n = 1, 2, . . .,
Forward elimination Find c(n) by solving Lc(n) = g (n) ,
Backward substitution find u(n) by solving U u(n) = c(n) .
In Scilab Window:
// def of example
--> A = [3, -1, 0; 1, 4, 2; 1, 1, 3];
--> b = [1,2,3]’;
// LU factorization
--> [L, U] = lu(A)
U =
3. - 1. 0.
0. 4.3333333 2.
0. 0. 2.3846154
L =
1. 0. 0.
0.3333333 1. 0.
0.3333333 0.3076923 1.
// Solve Ly = b
--> y = L\b
y =
1.
1.6666667
2.1538462
// Solve Ux = y
--> x = U\y
x =
0.3225806
- 0.0322581
0.9032258
// Check the residual
--> norm(b-A*x)
ans =
0.
30
Moreover, the LU factorization for sparse matrices is available (the matrix
H above is a sparse matrix!);
In Scilab Window>>>
// def of example
--> m = 10;
--> A = 2*eye(m,m)-diag(ones(m-1,1),-1)-diag(ones(m-1,1),1);
--> b = [1:1:10]’;
// redefinition of A as a sparse matrix
--> As = sparse(A);
// LU factorization for a space matrix
--> [Lh, rk] = lufact(As);
--> x=lusolve(Lh, b)
x =
20.
39.
56.
70.
80.
85.
84.
76.
60.
35.
--> norm(b-A*x)
ans =
3.178D-14
Listing 4: heat23.sci
// *** implicit theta scheme for heat equation with source ***
function heat23(N, lambda, theta, Tmax, coef)
a = 0.0; b = 1.0; ua = 0.0; ub = 0.0;
h = (b - a)/(N + 1); x = [a + h: h: b - h]’; xx = [a; x; b];
tau = lambda*h*h/coef; nmax = int(Tmax/tau) + 1;
step_num = 30; step = max(int(nmax/step_num), 1); rate = 0.05;
u = func_a(x); uu = [ua; u; ub]; tt = 0.0*ones(N+2,1);
//scf() a new window for drawing,
scf(10);
set(’current_figure’,10); HF = get(’current_figure’); set(HF, ’
figure_size’,[800, 400]);
utp = max(uu) + rate*(max(uu)-min(uu)); ubt = min(uu) - rate*(max(uu)-
min(uu));
subplot(1,2,1); plot2d(xx, uu, style = 5);
subplot(1,2,2); param3d(xx, tt, uu, flag=[1,4], ebox=[min(xx),max(xx)
,-0.001,Tmax,ubt,utp]);
// def of matrices A and K
A = 2*eye(N, N)-diag(ones(N-1 , 1), -1)-diag(ones(N-1 , 1), 1);
31
K = eye(N, N) - (1-theta)*lambda*A; H = eye(N, N) + theta*lambda*A;
// LU factorization of H
Hs = sparse(H); Ls = lufact(Hs);
// iteration
tpast = 0.0;
for n = 1:nmax
tnow = n*tau;
u = K*u + tau*((1.0-theta)*func_f(x,tpast) + theta*func_f(x,tnow))
;
u = lusolve(Ls, u);
if modulo(n, step)==0
uu = [ua; u; ub];
tt = tnow*ones(N+2,1);
utp = max(uu) + rate*(max(uu)-min(uu)); ubt = min(uu) - rate*(
max(uu)-min(uu));
subplot(1,2,1); plot2d(xx, uu, style = 2);
subplot(1,2,2);
param3d(xx, tt, uu,-45,65,flag=[1,4], ebox=[min(xx),max(xx),min(
tt),max(tt),ubt,utp]);
end
tpast = tnow;
end
// label
subplot(1,2,1); xlabel(’x’); ylabel(’u’);
subplot(1,2,2); xlabel(’x’); ylabel(’t’); zlabel(’u’);
// eps file
xs2pdf(10,’heat23.pdf’);
endfunction
// *** local functions ***
// Initial values
function [y] =func_a(x)
//y=min(x, 1.0 - x);
y=x.*sin(3*%pi*x).*sin(3*%pi*x);
//y=sin(%pi*x);
//I = find(x<=0.3); J = find(x>0.3 & x<=0.6); K = find(x>0.6);
// y = zeros(size(x,1)); y(I) = 0.3; y(J) = -2*(x(J) - 0.6); y(K
) = 0.6; //
endfunction
// sorce terms
function [y] = func_f(x, t)
//y=0.0;
y=exp(t+3)*(x.^2).*(1-x);
endfunction
32
Figure 3.1: An example of computation of the implicit θ scheme (3.8) by
heat23.sci, k = 1, a(x) = x sin2 (3πx), f (x, t) = et+3 x2 (1 − x),
N = 63, λ = 1.0, θ = 0.5.
33
4 Convergence and error estimates
4.1 ℓ∞ analysis
We consider the initial-boundary value problem
ut = kuxx + f (x, t) (0 < x < 1, t > 0)
u(0, t) = u(1, t) = 0 (t > 0) (1.2)
u(x, 0) = a(x) (0 ≤ x ≤ 1)
where
where u(x, t) and u(n) = (uni ) are solutions of (1.2) and (3.8), respectively.
We need some more notations.
Notation.
n − 2v n + v n
vin − vin−1 vi−1 i i+1
Dτ vin = , ∆h vin = .
τ h2
Then, the problem (3.8) is rewritten as
Dτ ui = (1 − θ)k∆h ui + θk∆h ui + fi
n n−1 n n−1+θ
(0 < i < N, n ≥ 0)
un0 = unN +1 = 0 (n ≥ 1) (3.8′ )
0
ui = a(xi ) (0 ≤ i ≤ N + 1).
Moreover, setting
Uin = u(xi , tn ),
we have
34
At this stage, introducing r (n) = (rin ), which is called the residual vector, we
obtain
Hθλ e(n) = Kθ′ λ e(n−1) + τ r (n) (n ≥ 1), e(0) = 0. (4.1)
Therefore, in view of Theorem 3.5, we have the following lemma.
Lemma 4.1.
Assume that
0 ≤ θ ≤ 1, 2(1 − θ)λ ≤ 1. (4.2)
Then, the error vector e(n) = (eni ) satisfies
∑
n
∥e(n) ∥∞ ≤ τ ∥r (l) ∥∞ .
l=1
where
k τ 2
h2 ∥∂x4 u∥L∞ (Q) + ∥∂ u∥ ∞ (θ ̸= 1/2)
αθ (T ) = 12 2 t L (Q) (4.4)
k h2 ∥∂ 4 u∥ ∞ 5 2 3
x L (Q) + τ ∥∂t u∥L∞ (Q) (θ = 1/2).
12 12
35
Theorem 4.3.
Let T > 0 be fixed. Assume that (4.2) and (4.3) are satisfied. Then, we have
the error estimate
{
CT,θ (τ + h2 ) (θ ̸= 1/2)
max ∥e(n) ∥∞ ≤ 2 2
(4.5)
0≤tn ≤T CT,1/2 (τ + h ) (θ = 1/2),
where
{ }
k 4 1 2
T · max
∥∂ u∥ ∞ , ∥∂ u∥ ∞ (θ ̸= 1/2)
12 x L (Q) 2 t L (Q)
CT,θ = { } (4.6)
k 4 5 3
T · max ∥∂ u∥ ∞ , ∥∂ u∥ ∞ (θ = 1/2).
12 x L (Q) 12 t L (Q)
Proof of Lemma 4.2. By considering the heat equation at (xi , tn ) and (xi , tn−1 ),
we have
Hence,
First, we derive the estimations for space discretizations. The error estimate
(2.3) gives
1 2 4
|∆h u(xi , tn−1 ) − uxx (xi , tn−1 )| ≤ h ∥∂x u(·, tn−1 )∥L∞ (0,1) ,
12
1
|∆h u(xi , tn ) − uxx (xi , tn )| ≤ h2 ∥∂x4 u(·, tn )∥L∞ (0,1) .
12
Therefore,
k 2 4
|R2 | + |R3 | ≤ h ∥∂x u∥L∞ (Q) .
12
Next, we examine the time discretization. Suppose θ ̸= 1/2. For the sake
of simplicity, setting v(t) = u(xi , t), we have
36
Hence, by using (2.1) and (2.2), we obtain
τ τ
|R1 | ≤ (1 − θ) · ∥∂t2 u(xi , ·)∥L∞ (0,T ) + θ · ∥∂t2 u(xi , ·)∥L∞ (0,T )
2 2
τ 2 τ 2
≤ (1 − θ) · ∥∂t u∥L∞ (Q) + θ · ∥∂t u∥L∞ (Q)
2 2
τ 2
= ∥∂ u∥ ∞ .
2 t L (Q)
Combining those inequalities, we have |rin | ≤ |R1 | + |R2 | + |R3 | ≤ αθ (T ).
Now, we suppose θ = 1/2. By Taylor’s theorem,
1 1
v(tn ) = v(tn−1 ) + v ′ (tn−1 )τ + v ′′ (tn−1 )τ 2 + v (3) (t̃)τ 3 ,
2 3!
′ 1 ′′ 1 (3)
v(tn−1 ) = v(tn ) − v (tn )τ + v (tn )τ − v (t̂)τ 3
2
2 3!
with tn−1 < t̃, t̂ < tn . These imply
v(tn ) − v(tn−1 ) 1 1
− v ′ (tn−1 ) = v ′′ (tn−1 )τ + v (3) (t̃)τ 2 ,
τ 2 3!
v(tn ) − v(tn−1 ) 1 1
− v ′ (tn ) = − v ′′ (tn )τ + v (3) (t̂)τ 2 ,
τ 2 3!
and, moreover,
1 1
R1 = Dτ v(tn ) − v ′ (tn−1 ) − v ′ (tn )
2 2
1 1
= [Dτ v(tn ) − v ′ (tn−1 )] + [Dτ v(tn ) − v ′ (tn )]
2 2
τ ′′ τ 2
= [v (tn−1 ) − v ′′ (tn )] + [v (3) (t̃) + v (3) (t̂)]
4 2 · 3!
∫
τ tn (3) τ 2 (3)
= − v (s) ds + [v (t̃) + v (3) (t̂)].
4 tn−1 2 · 3!
Therefore, we have
∫ tn
τ τ2
|R1 | ≤ ∥∂t3 u∥L∞ (Q) ds + · 2∥∂t3 u∥L∞ (Q)
4 tn−1 2 · 3!
τ2 3 τ2
= ∥∂t u∥L∞ (Q) + ∥∂t3 u∥L∞ (Q)
4 6
5τ 2 3
= ∥∂ u∥ ∞ .
12 t L (Q)
Thus, we deduce |rin | ≤ |R1 | + |R2 | + |R3 | ≤ α1/2 (T ).
37
4.2 ℓ2 analysis
We continue to study the error e(n) of the implicit θ scheme for the heat
equation.
Definition.
(i) The vector 2 norm is defined as
(N )1/2
∑
∥v∥2 (= ∥v∥ℓ2 ) = |vi |2 (v = (vi ) ∈ RN ).
i=1
∥Gv∥2
∥G∥2 = max (G ∈ RN ×N ).
v∈RN ∥v∥2
Lemma 4.4.
Let λ1 , . . . , λN be eigenvalues of a symmetric matrix G ∈ RN ×N . Then, we
have ∥G∥2 = max |λi |.
1≤i≤N
Proof. Set ρ(G) = max |λi |, which is called the spectral radius. Since G is a
1≤i≤N
real symmetric matrix, it admits a diagonalization G = U ΛU T , where
λ1
.. 0
Λ= . , U T U = U U T = I.
0 λN
∑
N
⟨x, y⟩ = xi yi (x = (xi ), y = (yi ) ∈ RN ).
i=1
Recall that ∥x∥22 = ⟨x, x⟩ and ⟨Ax, x⟩ = ⟨x, AT x⟩ for any x ∈ RN and
A ∈ RN ×N .
Now we let 0 ̸= v ∈ RN and set w = U T v. Then, we can calculate as
∥w∥22 = ⟨U T v, U T v⟩ = ⟨U U T v, v⟩ = ∥v∥22 ,
∥Gv∥22 = ⟨Gv, Gv⟩ = ⟨U Λw, U Λw⟩ = ⟨U T U Λw, Λw⟩
∑
N ∑
N
= ⟨Λw, Λw⟩ = |λi vi |2 = |λi |2 |wi |2
i=1 i=1
∑
N
≤ ρ(G)2 |wi |2 = ρ(G)2 ∥w∥22 = ρ(G)2 ∥v∥22 .
i=1
Therefore,
∥Gv∥2 ρ(G)∥v∥2
∥G∥2 = max ≤ max = ρ(G).
v∈RN ∥v∥2 v∈RN ∥v∥2
38
On the other hand, suppose that |λk | = ρ(G) and Gu = λk u. Then,
∥Gu∥2 |λk |∥u∥2
∥G∥2 ≥ = = ρ(G).
∥u∥2 ∥u∥2
Combining those inequalities, we obtain ∥G∥2 = ρ(G).
The crucial point of the ℓ2 analysis is to rewrite the finite difference schemes
in terms of A as follows:
where
2 −1 0
.. .. 0
. .
A= −1 2 −1 ,
.. ..
. .
0 −1 2
−1 ( ′
)
Fθ,λ (A) = (I + θλA) I − θ λA , θ′ = 1 − θ.
Lemma 4.5.
The eigenpairs of the eigenvalue problem
Aϕ = µϕ, ϕ = (φi ) ̸= 0
are give as
( )
µ⟨m⟩ = 4 sin2 mπ
,
2(N + 1) (4.7)
φ⟨m⟩ = (φ⟨m⟩ ) = (√2 sin(mπx ))
(1 ≤ m ≤ N ).
i i
39
Proof. See Problem 4.
Lemma 4.6.
(i) For 12 ≤ θ ≤ 1, we have ∥Fθ,λ (A)∥2 ≤ 1.
(ii) For 0 ≤ θ < 12 , we have ∥Fθ,λ (A)∥2 ≤ 1 if 2λ(1 − 2θ) ≤ 1.
d −λ
Fθ,λ (0) = 1; Fθ,λ (s) = < 0;
ds (1 + θ′ λs)2
Fθ,λ (s) = −1 ⇔ sλ(1 − 2θ) = 2.
Therefore,
1
0≤θ< ⇒ |Fθ,λ (s)| ≤ 1 (∀s > 0 s.t. sλ(1 − 2θ) ≤ 2)
2
and
1
≤ θ ≤ 1 ⇒ |Fθ,λ (s)| ≤ 1 (∀s > 0).
2
Thus, if 1/2 ≤ θ ≤ 1, we always have ∥Fθ,λ (A)∥2 ≤ 1. On the other hand, if
0 ≤ θ < 1/2, we have
( )
⟨m⟩ mπ 2
(0 <)µ = 4 sin 2
≤4≤ (1 ≤ m ≤ N )
2(N + 1) λ(1 − 2θ)
40
Theorem 4.7.
Assume that {
2λ(1 − 2θ) ≤ 1 (0 ≤ θ < 1/2)
(4.8)
no condition (1/2 ≤ θ ≤ 1).
∥u(n) ∥h ≤ ∥a∥h
for n ≥ 1.
Proof. It is a direct consequence of Lemma 4.6 and
∥u(n+1) ∥h = ∥Fθ,λ (A)u(n) ∥h ≤ ∥Fθ,λ (A)∥h ∥u(n) ∥h ≤ ∥Fθ,λ (A)∥2 ∥u(n) ∥h .
∑
n
∥u(n) ∥h ≤ ∥a∥h + τ ∥f (l−1+θ) ∥h
l=1
for n ≥ 1.
Proof. We can prove ∥(I + θλA)−1 ∥2 ≤ 1 (θ, λ > 0) in the exactly same way
as the proof of Lemma 4.6. Hence, the result follows Lemma 4.6.
Theorem 4.9.
For arbitrary T > 0, we set Q = [0, 1] × [0, T ]. Assume that (4.8) and (4.3)
are satisfied. Then, we have an error estimate
{
CT,θ (τ + h2 ) (θ ̸= 1/2)
max ∥e ∥h ≤
(n)
2 2
(4.9)
0≤tn ≤T CT,1/2 (τ + h ) (θ = 1/2),
41
Proof. In virtue of Theorem 4.8,
∑
n ∑
n
∥e(n) ∥h ≤ τ ∥r (l) ∥h ≤ τ ∥r (l) ∥∞ .
l=1 l=1
heat_error1.sci, error_plo1.sci.
42
// *** error observation: dependence on h (implicit theta scheme with
source) ***
function [errvect0, errvect2, hvect] = error_plot1(lambda, theta, Tmax
, coef)
errvect0 = []; errvect2 = []; hvect=[]; N0 = 10; jmax = 5;
for j = 1:jmax
N = N0*j;
[err0, err2, h] = heat_error1(N, lambda, theta, Tmax, coef)
errvect0 = [errvect0; err0]; errvect2 = [errvect2; err2]; hvect =
[hvect; h];
end
//plot errors
scf(20); set(’current_figure’,20); HF = get(’current_figure’); set(HF,
’figure_size’,[400, 800]);
xset(’thickness’,2)
plot2d(hvect, errvect0, style = 2, logflag="ll");
plot2d(hvect, errvect2, style = 5, logflag="ll");
xset(’thickness’,1)
xgrid(); xtitle(’Mesh size h vs. E_infty and E_2 Errors’,’log (h)’,’
log (error)’)
legend(’E_infty’,’E_2’,4);
xs2pdf(20,’error1.pdf’)
endfunction
Letting T = 1, we define as
E∞ = max ∥e(n) ∥∞ ,
0≤tn ≤1
√
E2 = max ∥e(n) ∥h = max ∥e(n) ∥2 h.
0≤tn ≤1 0≤tn ≤1
⋆Example 4.10. Let f (x, t) = 0 and a(x) = sin(πx). Then, the solution of
(1.2) is
u(x, t) = e−πt sin(πx).
2
⋆Example 4.11. Let f (x, t) = et (−x4 +x3 +12x−6x) and a(x) = x3 (1−x).
Then, the solution of (1.2) is
u(x, t) = et x3 (1 − x).
43
(a) θ = 0 (b) θ = 1/2 (c) θ = 1
Figure 4.1: log h vs. log E∞ and log E2 for u(x, t) = e−π t sin(πx) (Example
2
Figure 4.2: log h vs. log E∞ and log E2 for u(x, t) = et x3 (1 − x) (Example
4.11) and λ = 1/2.
44
5 Nonlinear problems
5.1 Semilinear diffusion equation
Our next target is the initial-boundary value problems for a semilinear diffu-
sion equation:
ut = kuxx + ε(1 − u)u (0 < x < 1, t > 0)
u(0, t) = u(1, t) = 0 (t > 0) (5.1)
u(x, t) = a(x) (0 ≤ x ≤ 1),
where
• k, ε are positive constants;
• a ∈ C[0, 1], a ̸≡ 0, 0 ≤ a ≤ 1, a(0) = a(1) = 0.
Theorem 5.1.
The problem (5.1) admits a unique (classical ) solution u = u(x, t) in [0, 1] ×
[0, ∞) and it satisfies 0 ≤ u(x, t) ≤ 1 for 0 ≤ x ≤ 1 and t ≥ 0.
We introduce the steady-state problem associated with (5.1): Find a func-
tion w = w(x) (0 ≤ x ≤ 1) which depends only on x such that
{
0 = kw′′ + ε(1 − w)w, w > 0 (0 < x < 1)
(5.2)
w(0) = w(1) = 0.
The function w ≡ 0, which is called a trivial solution, clearly solves (5.2).
Theorem 5.2.
We have the following.
(i) If ε > kπ 2 , we have lim ∥u(·, t) − w∥∞ = 0, where w(x) denotes the
t→∞
non-trivial solution of (5.2).
45
k ε λ r ρ
Fig. 5.1 10 10 0.4 0.0101 0.8002
Fig. 5.2 1 10 0.4 1.0132 0.8015
Fig. 5.3 0.1 10 0.4 101.32 0.8153
Fig. 5.4 10 10 0.5 0.0101 1.0002
Fig. 5.5 1 10 0.5 1.0132 1.0019
Fig. 5.6 0.1 10 0.5 101.32 1.0192
• uni ≈ u(xi , tn ).
Notation. We let
( ) 1
τ ε 2k ..
λ=k , r= , ρ=τ ε+ 2 , q = . ∈ RN .
h2 kπ 2 h
1
Below we offer some numerical results in Fig. 5.1–5.6; Parameters are sum-
marized in Tab. 5.1 .
The cases r > 1 and r ≤ 1, respectively, correspond (i) and (ii) in Theorem
5.3. We observe from Fig. 5.1–5.3 that the solution decays if r ≤ 1 and that the
solution converges a non-trivial steady-state solution if r > 1. On the other
hand, Fig. 5.4–5.6 are results with the same parameters as Fig. 5.1–5.3 except
for λ (and thus ρ). We see that there are no differences between Fig. 5.1,
5.2 and 5.4, 5.5, respectively. However, we observe an oscillation of numerical
solution in Fig. 5.6. As a matter of fact, the value of ρ plays an important
role to obtain a stable numerical solution. We examine this issue next.
46
Figure 5.1: k = 10, ε = 10, N = 50, λ = 0.4, 0 ≤ t ≤ 0.2; r = 0.0101,
ρ = 0.8002
47
Figure 5.4: k = 10, ε = 10, N = 50, λ = 0.5, 0 ≤ t ≤ 0.2; r = 0.0101,
ρ = 1.0002
48
Theorem 5.4.
Assume that
( )−1
2k
1 − ετ − 2λ ≥ 0 ⇔ τ≤ ε+ 2 ⇔ ρ ≤ 1. (5.4)
h
Then, we have
0 ≤ u(n) ≤ q (n ≥ 0),
where u(n) = (uni ) denotes the solution of (5.3).
0 ≤ u0i ≤ 1 (1 ≤ i ≤ N ).
un+1
i = λ(uni−1 + uni+1 ) + (1 − 2λ)uni + ετ uni (1 − uni ),
we deduce un+1
i ≥ 0. On the other hand, setting vin = 1 − uni , we have
0 ≤ vi ≤ 1 and
n
vin+1 = λ(vi−1
n n
+ vi+1 ) + (1 − 2λ − ετ uni ) vin ≥ 0.
| {z }
≥1−2λ−ετ ≥0
Theorem 5.5. • Let T > 0 be fixed. Assume that (5.4) holds true.
1 k
ZT = ∥utt ∥L∞ (Q) + ∥uxxxx ∥L∞ (Q) .
2 12
eεT − 1
max ∥e(n) ∥∞ ≤ (τ + h2 )ZT .
0≤tn ≤T ε
49
we have
Dτ en+1
i − k∆h eni
= Dτ Uin+1 − k∆h Uin − [Dτ uin+1 − k∆h uni ]
= Dτ Uin+1 − k∆h Uin − ε(1 − uni )uni
= Dτ Uin+1 − k∆h Uin − [ut (xi , tn ) − kuxx (xi , tn )]
| {z }
=rin
+ ε(1 − Uin )Uin− ε(1 − uni )uni .
| {z }
=gin
That is,
Dτ ei
n+1
= k∆h eni + rin + gin (1 ≤≤ N, n ≥ 0)
en0 = enN +1 = 0 (n > 0)
0
ei = 0 (0 ≤ i ≤ N ).
It is equivalently written as
∥Kλ ∥∞ ≤ 1, Kλ ≥ O.
and, hence,
∥r (n) ∥∞ ≤ ZT (τ + h2 ).
Moreover, we can calculate as
∥g (n) ∥∞ ≤ ε∥e(n) ∥∞ .
50
In conclusion, we have
∥e(n) ∥∞
≤ (1 + τ ε)∥e(n−1) ∥∞ + τ (τ + h2 )ZT
≤ (1 + τ ε)2 ∥e(n−2) ∥∞ + [(1 + τ ε) + 1]τ (τ + h2 )ZT
≤ ···
≤ (1 + τ ε)n ∥e(0) ∥∞ + [(1 + τ ε)n−1 + · · · + (1 + τ ε) + 1]τ (τ + h2 )ZT
(1 + τ ε)n − 1
≤ · τ (τ + h2 )ZT
τε
enτ ε − 1 eεT − 1
≤ · (τ + h2 )MT ≤ (τ + h2 )ZT .
ε ε
and
where
1 − v1 v1
1 − v2
0 v2
D(v) = .. for v = . .
. ..
0 1 − vN vN
51
Theorem 5.6.
Assume that
1
τ< . (5.7)
ε
Then, the solutions u(n) = (uni ) both (5.5) and (5.6) satisfy
0 ≤ u(n) ≤ q (n ≥ 0).
and
Hλ q − q = (λ, 0, . . . , 0, λ)T ≥ 0.
Therefore,
Hλ v (n) = Hλ q − Hλ u(n)
= Hλ q − u(n−1) − ετ D(u(n−1) )u(n−1)
= Hλ q − q + v (n−1) − ετ D(v (n−1) )v (n−1)
[ ]
≥ I − τ εD(v (n−1) ) v (n−1) .
| {z }
=W
1 + 2λ − τ ε(1 − un−1
i ) ≥ 1 + 2λ − τ ε > 1 − τ ε ≥ 0.
∑
N
vi,j = 1 + 2λ − τ ε(1 − un−1
i ) − 2λ = 1 − τ ε > 0
j=1
52
and, for i = 1, N ,
∑
N
vi,j = 1 + 2λ − τ ε(1 − uin−1 ) − λ > 0.
j=1
Hλ v (n) = Hλ q − Hλ u(n)
= Hλ q − u(n−1) − ετ D(u(n−1) )u(n)
= Hλ q − q + v (n−1) − ετ D(v (n−1) )v (n)
≥ v (n−1) − ετ D(v (n−1) )v (n) .
53
The explicit scheme to (5.8) is
n+1
ui − uni uni+1 − 2uni + uni−1
= ku + (uni )2 vin − (β + γ)uni ,
τ h 2
n+1
− vin v n − 2vin + vi−1
n
vi = kv i+1 − (uni )2 vin + β(1 − vin )
τ h2
(1 ≤ i ≤ N, n ≥ 0),
un+1 = un+1 , un+1 = un+1 n+1
N +1 , v0 = v1n+1 , vN n+1
= vN +1 (n ≥ 0),
n+1
0 1 N
0
ui = u0 (x̂i ), vi0 = u0 (x̂i ) (1 ≤ i ≤ N )
(5.9)
where
Some patterns created by this system are displayed in Fig. 5.7, where we
suppose 0 ≤ t ≤ 1000 and 0 ≤ x ≤ L = 0.5.
54
0.5 0.6
0.4 0.5
0.4
0.3
0.3
0.2
0.2
0.1 0.1
500 500
0 450 0 450
0 0
0.1 400 0.1 400
0.2 350 0.2 350
0.3 300 0.3 300
0.4 250 0.4 250
0.5 200 0.5 200
0.6 150 time 0.6 150 time
x 0.7 x 0.7
100 100
0.8 0.8
0.9 50 0.9 50
1 0 1 0
0.7 0.9
0.6 0.8
0.7
0.5 0.6
0.4 0.5
0.3 0.4
0.2 0.3
0.2
0.1 500 0.1 500
0 450 0 450
0 0
0.1 400 0.1 400
0.2 350 0.2 350
0.3 300 0.3 300
0.4 250 0.4 250
0.5 200 0.5 200
0.6 150 time 0.6 150 time
x 0.7 x 0.7
100 100
0.8 0.8
0.9 50 0.9 50
1 0 1 0
0.8 0.8
0.7 0.7
0.6 0.6
0.5 0.5
0.4 0.4
0.3 0.3
0.2 0.2
0.1 500 0.1 500
0 450 0 450
0 0
0.1 400 0.1 400
0.2 350 0.2 350
0.3 300 0.3 300
0.4 250 0.4 250
0.5 200 0.5 200
0.6 150 time 0.6 150 time
x 0.7 x 0.7
100 100
0.8 0.8
0.9 50 0.9 50
1 0 1 0
55
6 Complement for FDM
6.1 Non-homogeneous Dirichlet boundary condition
So far, we have studied only the homogeneous Dirichlet boundary condition
u(0, t) = 0, u(1, t) = 0.
where b0 (t) and b1 (t) are given continuous function of t ≥ 0. We use the same
notation of Sections 2 and 3.
First, we consider the explicit scheme. That is,
where
b0 (tn )
0
b(n) = ... ∈ Rn .
0
b1 (tn )
In the similar manner, we derive the implicit θ scheme as
where
b(n−1+θ) = (1 − θ)b(n−1) + θb(n) .
Since the error vector e(n) satisfies (4.2), we are able to obtain exactly the
same error estimates in the previous section for non-homogeneous problems.
56
6.2 Neumann boundary condition
We move on to the initial-boundary value problem with the Neumann bound-
ary condition:
ut = kuxx + f (x, t) (0 < x < 1, t > 0)
ux (0, t) = ux (1, t) = 0 (t > 0) (6.2)
u(x, t) = a(x) (0 ≤ x ≤ 1)
We introduce:
1
• h= with 0 < N ∈ Z;
N
• τ > 0;
{ ( ) }
1
• Q̂h = (x̂i , tn ) | x̂i = i −
τ
h, tn = nτ (0 ≤ i ≤ N + 1, n ≥ 0) ;
2
• uni ≈ u(x̂i , tn ).
u(x̂1 , t) − u(x̂0 , t)
ux (0, t) = 0 ⇒ ≈ 0,
h
u(x̂N +1 , t) − u(x̂N , t)
ux (1, t) = 0 ⇒ ≈ 0.
h
From these, we have
un1 − un0
=0 ⇔ un0 = un1 ,
h
uN +1 − uN
n n
=0 ⇔ unN +1 = unN .
h
The resulting scheme now reads as
n+1
u − uni un − 2uni + uni+1
i
= k i−1 + f (x̂i , tn ) (1 ≤ i ≤ N, n ≥ 0)
τ h2
un0 = un1 , unN +1 = unN (n ≥ 1)
0
ui = a(x̂i ) (0 ≤ i ≤ N + 1).
As before we set λ = kτ /h2 . The first and second equalities are written as
1 (n+1) k
{u − u(n) } = − 2 Bu(n) + f (n) ,
τ h
57
where
1 −1 0
.. .. 0
. . un1 f (x̂1 , tn )
B=
−1 2 −1 ,
u(n) = ... , f (n) = ..
.
.. ..
. . unN f (x̂N , tn )
0 −1 1
where 0 ≤ θ ≤ 1, θ′ = 1 − θ and
Theorem 6.1.
Assume that
0 ≤ θ ≤ 1, 1 − 2(1 − θ)λ ≥ 0. (6.4)
Then, for any n ≥ 1, there exists a unique solution u(n) of (6.3) and it satisfies
∑
n
(ℓ∞ stability) ∥u (n)
∥∞ ≤ ∥a∥∞ + τ ∥f (l−1+θ) ∥∞ .
l=1
58
Proof. We first note that we have Lθ′ λ ≥ O under the assumption (6.4).
Nonnegativity. When θ = 0, we have Mθλ = I and, hence, u(1) = Lθ′ λ a ≥ 0
for a ≥ 0.
Positivity. Assume that θ ̸= 0. If 1 − 2(1 − θ)λ > 0, then the diagonal
entries of Lθ′ λ are positive. Hence, Lθ′ λ a ≥ 0, ̸= 0 for a ≥ 0, ̸= 0. To show
−1
Mθλ > O, we follow the method of the proof of Lemma 3.2. The matrix Mθλ
is represented as Ms = I + sB = D(I − G), where s = θλ and
1+s
1 + 2s
0
..
D= . ,
1 + 2s
0 1+s
0 µ1
µ2 0 µ2 0
.. s
G= . , µm =
1 + ms
µ2 0 µ2
0 µ1 0
{ }
s 2s 2s
Since ∥G∥∞ = max , = < 1, we can apply Lemma 3.3
1 + s 1 + 2s 1 + 2s
to obtain that I − G is non-singular. Hence, Ms = D(I − G) is also non-
∑∞
singular and Ms−1 = (I − G)−1 D−1 = Gl D−1 ≥ O. On the other hand, we
l=0
can verify that Ms−1 > O by the exactly same manner as the proof of Lemma
3.2.
ℓ∞ stability. Let n ≥ 1 be fixed. We set q = (1, . . . , 1)T ∈ RN ,
{ } { }
n−1 n−1+θ
α = max 0, max ui , β = max 0, max fi .
1≤i≤N 1≤i≤N
• Bq = 0;
and
59
These inequalities, together with the equation (6.3), give
αq + τ βq − u(n) ≥ 0.
Ms (u(n) − α′ q − τ β ′ q) ≥ 0
and, hence,
u(n) − α′ q − τ β ′ q ≥ 0,
where
{ } { }
′ ′
α = min 0, min un−1
i , β = min 0, min fin−1+θ .
1≤i≤N 1≤i≤N
α′ q + τ β ′ q ≤ u(n) ≤ αq + τ βq.
Thus, we get
∥u(n) ∥∞ ≤ ∥u(n−1) ∥∞ + τ ∥f (n−1+θ) ∥∞ ,
which implies the desired inequality.
we have
1
∥Ms−1 ∥∞ ≤ ∥(I − G)−1 ∥∞ ∥D−1 ∥∞ ≤ (1 + 2s) · > 1.
1+s
Thus, we can not directly obtain the ℓ∞ stability, although ∥Lθ′ λ ∥∞ = 1.
60
that ũ(x, t) is a C 2 function of x. This indicates that ũ(x, t) is a solution of the
heat equation ũt = kũxx + f˜(x, t) in (−1, 2) × (0, ∞). In the similar manner,
if we assume that
m
∂ u ∈ C([0, 1] × [0, T ]) (0 ≤ m ≤ 4),
∂xm
{
lu (0 ≤ l ≤ 2) if θ ̸= 1/2 (4.3)
∂
∈ ×
∂tl C([0, 1] [0, T ])
(0 ≤ l ≤ 3) if θ = 1/2,
we obtain
m
∂ ũ
∂xm ∈ C([−1, 2] × [0, T ]) (0 ≤ m ≤ 4),
{
l ũ (0 ≤ l ≤ 2) if θ ̸= 1/2 (6.5)
∂
∂tl ∈ C([−1, 2] × [0, T ])
(0 ≤ l ≤ 3) if θ = 1/2,
61
Theorem 6.2.
Let T > be fixed. Let u(x, t) and u(n) be solutions of (6.2) and (6.3), respec-
tively. Assume that (6.4) and (4.3) are satisfied. Then, the error vector (6.6)
admits an error estimate
{
CT,θ (τ + h2 ) (θ ̸= 1/2)
max ∥e(n) ∥∞ ≤ 2 2
0≤tn ≤T CT,1/2 (τ + h ) (θ = 1/2),
where { }
k 0 1 2
T · max 12 M̃4 (T ), M̃ (T ) (θ ̸= 1/2)
2 0
CT,θ = { }
k 0 5 3
T · max M̃ (T ), M̃ (T ) (θ = 1/2).
12 4 12 0
where ∫ 1
J(t) = cu(x, t) dx (c: the heat capacity)
0
denotes the total heat flux. Note that we are assuming
Now, we introduce a discrete heat flux for the solution u(n) = (uni ) of (6.3):
∑
N
Jn = cuni h.
i=1
∑
N
Jn = ca(x̂i )h.
i=1
62
Thomée [39, page 118]. Moreover, the proof is almost the same as that of
Thomée’s one. However, my stability results, Theorem 6.5 and Lemma 6.6,
are not described in [39]; Those results may be out of scope of his interest. I
shall give an open question about the stability.
In this (rather long) paragraph, we revisit stability and convergence analysis
of the FDM for a one-dimensional heat equation
ut = κuxx + f (x, t) (0 < x < d, t > 0)
u(0, t) = 0, u(d, t) = 0 (t > 0) (6.7)
u(x, 0) = a(x) (0 ≤ x ≤ d),
where κ, d are positive constants, f (x, t), a(x) are prescribed continuous func-
tions with a(0) = a(d) = 0.
In order to state the finite difference scheme, we introduce 0 < N ∈ Z and
τ > 0, and set h = d(1 + N )−1 , xi = ih (0 ≤ i ≤ N + 1), and tn = nτ
(n ≥ 0). We denote by uni the finite-difference approximation of u(xi , tn ) to
be computed.
Let 0 ≤ θ ≤ 1. Then, we consider the standard implicit θ scheme
n
Dτ ui = κ∆h ui
n−1+θ
+ fin−1+θ (1 ≤ i ≤ N, n ≥ 1)
un0 = unN +1 = 0 (n ≥ 1) (6.8)
0
ui = a(xi ) (0 ≤ i ≤ N + 1),
where
un−1+θ
i = (1 − θ)un−1
i + θuni ,
fin−1+θ = (1 − θ)f (xi , tn−1 ) + θf (xi , tn ),
n − 2un + un
uni − un−1 ui−1 i i+1
Dτ uin = i
, ∆h uni = .
τ h2
We introduce A, H, K ∈ RN ×N as
2 −1 0
−1 2 −1 0
A= .. .. , H = (I + θλA), K = [I − (1 − θ)λA],
. .
0 −1 2
G = H −1 K.
Introducing
un1 a(x1 ) f1n−1+θ
un = ... , a = ... , f n−1+θ = ...
unN a(xN ) n−1+θ
fN
63
we can rewrite (6.8) equivalently as
As usual, we write as
1/2
∑N
∥v∥∞ = max |vi |, ∥v∥2 = |vj |2 h (v = (vi ) ∈ RN ).
1≤i≤N
j=1
We use
∑
N
(v, w)2 = v i wi h (v = (vi ), w = (wi ) ∈ RN ).
i=1
Obviously, ∥v∥22 = (v, v)2 . And, for any norm ∥ · ∥ in RN , we use the same
symbol to express the matrix norm corresponding to ∥ · ∥;
∥Bv∥
∥B∥ = max (B ∈ RN ×N ).
v∈RN ∥v∥
64
Theorem 6.3.
Let T > 0 and set Q = [0, d] × [0, T ].
(i) Let 1/2 ≤ θ ≤ 1. Suppose that the solution u of (16.5) satisfies
∂l ∂m
u, u, u ∈ C(Q) (1 ≤ l ≤ 2, 1 ≤ m ≤ 4). (6.10)
∂tl ∂xm
Then, there exists a positive constant C1 which depends only on κ and d such
that
√ ( )
max ∥en ∥∞ ≤ C1 (τ + h2 ) T ∥utt ∥L∞ (Q) + ∥uxxxx ∥L∞ (Q) . (6.11)
0≤tn ≤T
∂l ∂m
u, u, u ∈ C(Q) (1 ≤ l ≤ 3, 1 ≤ m ≤ 4). (6.12)
∂tl ∂xm
Then, there exists a positive constant C2 which depends only on κ and d such
that
√ ( )
max ∥en ∥∞ ≤ C2 (τ 2 + h2 ) T ∥uttt ∥L∞ (Q) + ∥uxxxx ∥L∞ (Q) . (6.13)
0≤tn ≤T
provided with
λ ≤ 1.
Theorem 6.3 claims that the condition λ ≤ 1 is not necessary to prove the
convergence (with the optimal-order) of the finite difference scheme.
The matrix
1
Ah = A ∈ RN ×N
h2
1/2
is positive-definite symmetric matrix so that its square root Ah is defined in
a natural way. We introduce
1/2
|||v||| = ∥Ah v∥2 (v ∈ RN ). (6.16)
65
Lemma 6.4. √
(i) ∥v∥∞ ≤ d |||v||| for v ∈ RN .
(ii) |||v||| ≤ 2h−1 ∥v∥2 for v ∈ RN .
1/2
∑
N
−vi−1 + 2vi − vi−1
∥Ah v∥22 = (Ah v, v)2 = vi h
h2
i=1
∑
N +1 ( )2
vi − vi−1
= h. (6.17)
h
i=1
∑
i
Now let 1 ≤ i ≤ N . We can write as vi = (vj − vj−1 ). Hence,
j=0
∑ +1
vj − vj−1 1/2 1/2
N
|vi | ≤ h h
h
j=1
1/2 1/2
∑ +1
∑ √
N
vj − vj−1 2 N +1
≤ h h = d ∥A1/2 v∥2 .
h h
j=1 j=1
∑
N +1 ( )2
1/2 vi − vi−1
|||v|||2 = ∥Ah v∥22 = h
h
i=1
N∑+1
vi2 + vi−1
2
4
≤2 2
h ≤ 2 ∥v∥22 .
h h
i=1
We know
{
√ C4 τ ∥utt ∥L∞ (Q)
∥r ∥2 ≤
n
d ∥r ∥∞
n
≤ (6.18)
C5 τ 2 ∥uttt ∥L∞ (Q) if θ = 1/2,
√
∥Rn ∥2 ≤ d ∥Rn ∥∞ ≤ C6 κh2 ∥uxxxx ∥L∞ (Q) , (6.19)
66
where en−1+θ = (1 − θ)en−1 + θen . From this, we have the identity
( n )
e − en−1
, v + κ(Ah en−1+θ , v)2 = (r n + Rn , v)2 (6.20)
τ 2
Proof of Theorem 6.3. (i) and (ii). Let 1/2 ≤ θ ≤ 1. In view of (6.21), we can
calculate as
( n )
e − en−1 n−θ+1
, Ah e
τ 2
( )( n ) ( n )
1 e − en−1 en − en−1 e − en−1 en + en−1
= τ θ− , Ah + , Ah
2 τ τ 2 τ 2 2
( )
2
1
n−1 )
1 ( 1/2 n 2 )
1/2
Ah (e − e
n
1/2
= τ θ−
+ ∥Ah e ∥2 − ∥Ah en−1 ∥22
2
τ
2τ
2
1 ( n 2 )
≥ |||e ||| − |||en−1 |||2 . (6.22)
2τ
Substituting v = Ah en−1+θ into (6.20), using (6.22) and Young’s inequality,
we have
1 ( n 2 )
|||e ||| − |||en−1 |||2 + κ∥Ah en−1+θ ∥22 ≤ (r n + Rn , Ah en−1+θ )2
2τ
1 n κ
≤ ∥r + Rn ∥22 + ∥Ah en−1+θ ∥22 .
2κ 2
Hence,
τ
|||en |||2 ≤ |||en−1 |||2 + ∥r n + Rn ∥22
κ
τ ∑ k 2τ ∑ k 2
n n
≤ ∥r + R ∥2 ≤
k 2
(∥r ∥2 + ∥Rk ∥22 ).
κ κ
k=1 k=1
This, together with Lemma 6.4 (i), (6.18) and (6.19), gives the error estimate
(6.11) and (6.13).
(iii) Let 0 ≤ θ < 1/2 and assume (6.14) with some 0 < δ < 1. We have
( n )
e − en−1 n− 12 1
1/2 n
2 1
1/2 n−1
2
, Ah e =
Ah e
−
Ah e
.
τ 2 2τ 2 2τ 2
67
1
Substituting v = Ah en− 2 into (6.20) and using those identities, we deduce
1 ( n 2 ) 1
|||e ||| − |||en−1 |||2 + κ∥Ah en− 2 ∥22
2τ ( )
κ 1 ( ) 1 n κ 1
+ θ− ∥Ah en ∥22 − ∥Ah en−1 ∥22 ≤ ∥r + Rn ∥22 + ∥Ah en− 2 ∥22 .
2 2 2κ 2
Hence, setting ( )
1
εn = |||e ||| − κτ
n 2
− θ ∥Ah en ∥22 ,
2
we obtain
2τ ∑ ( k 2 )
n
τ n
εn ≤ εn−1 + ∥r + R ∥2 ≤
n 2
∥r ∥2 + ∥R ∥2 .
k 2
κ κ
k=1
Therefore,
2δτ ∑ ( k 2 )
n
|||en |||2 ≤ ∥r ∥2 + ∥Rk ∥22 .
κ
k=1
Summing up this, Lemma 6.4 (i), (6.18) and (6.19), we complete the proof of
Theorem 6.3 (iii).
Theorem 6.5.
For the solution un of (6.8), we have the stability inequality
∑
n
|||un ||| ≤ |||a||| + τ |||f k−1+θ |||
k=1
provided with
2λ(1 − 2θ) ≤ 1 (6.23)
if 0 ≤ θ < 1/2.
Lemma 6.6.
(i) |||G||| ≤ 1 provided with (6.23) if 0 ≤ θ < 1/2.
(ii) |||H −1 ||| ≤ 1.
68
Proof. (i) It is well-known that (or it is a readily obtainable consequence of
1/2 1/2
the Spectral Mapping Theorem) ∥G∥2 ≤ 1. Hence, noting Ah G = GAh ,
we obtain |||G||| ≤ 1.
(ii) It follows ∥H −1 ∥2 ≤ 1 and Ah H −1 = H −1 Ah .
1/2 1/2
∑
n
|||e ||| ≤ τ
n
(|||r k ||| + |||Rk |||) (n ≥ 1). (6.24)
k=1
Therefore, we can deduce the error estimate if |||r n ||| and |||Rn ||| are estimated
in terms of h and τ . Consequently, we will succeed in avoiding the constant
δ in the condition (6.14). As a matter of fact, the estimation of |||r n ||| is not
difficult. In view of (6.17), we can derive
{
C7 τ ∥uttx ∥L∞ (Q)
|||r n ||| ≤
C8 τ 2 ∥utttx ∥L∞ (Q) (if θ = 1/2)
have r0n = rN
n
+1 = 0.) However, we are able to derive only
√ √ ∑
n
∥un ∥∞ ≤ d ∥ax ∥L2 (0,d) + dτ ∥fx (·, tk )∥L2 (0,d)
k=1
un = Gn a (n ≥ 1).
69
In view of Theorem 6.3, there exists τ0 , h0 > 0 such that
∥Gn ∥∞ ≤ MT (0 ≤ tn ≤ T ). (6.25)
2−θ
∥G∥∞ ≤ 1 ⇔ λ≤ . (6.29)
4(1 − θ)
70
Problems and further readings for Chapter I
Problems
Problem 1. Prove that eigenvalues {λj } and eigenvectors {uj } of a tri-
diagonal matrix
b a
.. 0
.
a b a ∈ RN ×N (6.30)
.
. .
0 a b
are given as
jπ
λj = b + 2a cos and
( N +1 )
jπ N jπ
uj = sin , · · · , sin (1 ≤ j ≤ N ).
N +1 N +1
as h, τ → 0.
Problem 5. In the proof of Lemma 4.6, prove that Fθ,λ (A) is a symmetric
matrix.
71
Problem 6. In the proof of Lemma 4.6, prove that {Fθ,λ (µ⟨m⟩ )}N
m=1 are all
the eigenvalues of Fθ,λ (A).
Prove that
( )
µ⟨m⟩ = 4 sin2 mπ
,
h2 2(N + 1)
⟨m⟩
⟨m⟩ (√ )
φ = (φi ) = 2 sin(mπxi ) (1 ≤ m ≤ N ).
Further readings
In this chapter, I explained only FDM for the one space-dimensional heat
equation. But, FDM can be applied to higher space-dimensional partial dif-
ferential equations of parabolic, elliptic and hyperbolic types. For those topics,
the following standard textbooks are useful:
72
[25] K. W. Morton and D. F. Mayers: Numerical Solution of Par-
tial Differential Equations (2nd ed.), Cambridge University Press,
2005.
[37] G. D. Smith: Numerical Solution of Partial Differential Equa-
tions, Oxford University Press, 1965. (藤川洋一郎訳:コンピュー
タによる偏微分方程式の解法,新訂版,サイエンス社,1996 年)
[36] 齊藤宣一:線形・非線形拡散方程式の差分解法と解の可視化,講
義ノート (http://www.infsup.jp/saito/ns/notes.html),2011
年.
[27] 三村昌泰:微分方程式と差分方程式—数値解は信用できるか?—,
「数値解析と非線形現象 (山口昌哉編)」の第 3 章,日本評論社,1996
年 (オリジナルは 1981 年).
73
II. Finite element method for the Poisson equation
where
∫ ∫
1
J(v) = |∇v|2 dx − f v dx
2
∫ [( ) ]
Ω Ω
) ( ∫
1 ∂v 2 ∂v 2
= + dx − f v dx,
2 Ω ∂x1 ∂x2 Ω
Theorem 7.1.
A function u is a solution of (7.2), if and only if it is a solution of (7.3).
74
Conversely, let u be a solution (7.3). Let v ∈ U be arbitrary, and set ϕ =
v − u ∈ U . Then,
∫ ∫
1
J(v) − J(u) = ∇(u + ϕ) · ∇(u + ϕ) dx − f (u + ϕ) dx − J(u)
2 Ω
∫ ∫ Ω ∫
1 1
= |∇ϕ|2 dx + (∇u · ∇ϕ + ∇ϕ · ∇u) dx − f ϕ dx
2 Ω 2 Ω
∫ [∫ ∫ ] Ω
1
= |∇ϕ| dx +
2
(∇u · ∇ϕ) dx − f ϕ dx
2 Ω
∫ Ω Ω
1
≥ |∇ϕ|2 dx ≥ 0.
2 Ω
where n = n(s) (s ∈ Γ) denotes the unit outward vector to Γ and dS the line
element of Γ. Since ϕ is arbitrary, u solves (7.3). Hence, in view of Theorem
7.1, it also solves (7.2).
(ii) We deduce ∫
(f + ∆u)ϕ dx = 0 (∀ϕ ∈ U )
Ω
in the similar manner as (i). We argue by contradiction to show that w =
f + ∆u ≡ 0. Assume that there exists z ∈ Ω such that w(z) > 0. Then, by
continuity of w, there exists δ satisfying
w(x) > 0 (x ∈ B(z; δ) = {x ∈ R2 | |z − x| < δ} ⊂ Ω).
At this stage, we define ϕ ∈ U as
ϕ ≥ 0 (x ∈ Ω), ϕ(x) > 0 (x ∈ B(z; δ/2)), supp ϕ ⊂ B(z; δ).
Then, we have
∫ ∫ ∫
wϕ dx = wϕ dx ≥ wϕ dx > 0,
Ω B(z;δ) B(z;δ/2)
75
✓Remark. At this stage, we do not know whether a solution exists or not.
Au = f , (7.6)
where
∫
N ×N
A = (aij ) ∈ R , aij = ∇ϕj · ∇ϕi dx;
∫Ω
f = (fi ) ∈ RN , fi = f ϕi dx;
Ω
∑N
u = (ui ) ∈ RN with uh = ui ϕi .
i=1
76
8 Finite element method (FEM)
We give a concrete example VN by the finite element method (FEM). We
assume that Ω is a polygonal domain for the sake of simplicity. Below we
collect some notions of FEM. In this section, we write (x, y) = (x1 , x2 ) to
express the generic point in R2 and dx implies dx = dx1 dx2 .
where
hT = the diameter of the circumscribed circle of T.
Below, we write T = Th .
77
Figure 8.1: Triangulation of Ω = (0, 1) × (0, 1) by a uniform division. Number
of nodes: 81 (left), 289 (center) and 1089 (right). Number of
elements: 128 (left), 512 (center), 2048 (right).
78
Pj Pi
Pk
• {Pi }N̄
i=1 is the set of all nodes, where
{Pi }N
i=1 is the set of all nodes located on Ω and
{Pi+NI }N B
i=1 is the set of all nodes located on Γ.
• Let Λi = {T ∈ Th | Pi ∈ T }.
• The space
Xh = span{ϕi }N̄
i=1 (8.5)
is called the P1 element on Th . Each vh ∈ Xh is characterized by the
following two conditions:
– vh is a continuous function in Ω;
79
P
i
�� ��
����
����
����
��
����
����
�� ���� ��
���� ����
��
�� ���� ��
�� ����
���� ���� ���� ����
���� ����
���� ���� ���� ����
���� ����
�� �� �� ��
At this stage, we can state the finite element approximation to (7.3), which
reads as
∫ ∫
Find uh ∈ Vh s.t. ∇uh · ∇vh dx = f vh dx (∀vh ∈ Vh ). (8.7)
Ω Ω
80
It is equivalently written as
Au = f ,
where
∫
N ×N
A = (aij ) ∈ R , aij = ∇ϕj · ∇ϕi dx;
∫Ω
f = (fi ) ∈ RN , fi = f ϕi dx;
Ω
u = (ui ) ∈ RN , ui = uh (Pi ).
Pi
κi
Pk Pj
Figure 8.8:
We have
∫ |T | (i = j),
6
λi λj dx = (8.8)
T |T | (i ̸= j)
12
and
∫
∇λi · ∇λj dx
T
4|T
1
| [(xj − xk ) + (yj − yk ) ]
2 2 (i = j),
= (8.9)
1 [(x − x )(x − x ) + (y − y )(y − y )] (i =
̸ j).
4|T | j k k i j k k i
81
✓Remark. It is a hard task to construct a triangulation of a given polygonal
domain. Some useful soft-wares are available; freefem++ [14].
82
9 Tools from Functional Analysis
In order to establish a mathematical justification of FEM, we introduce some
concepts from Functional Analysis. In particular, Sobolev spaces H 1 (Ω) and
H01 (Ω) play important roles. We collect some notions below.
We introduce, for k ≥ 0,
83
• We recall partial derivatives in the L2 sense. Let v ∈ L2 (Ω). If there is
a function g ∈ L2 (Ω) such that
∫ ∫
∂φ
v dx = − gφ dx (∀φ ∈ C0∞ (Ω)),
Ω ∂x1 Ω
together with
• We also introduce
{ }
H 2 (Ω) = u ∈ L2 (Ω) | ∂1 u, ∂2 u, ∂12 u, ∂1 ∂2 u, ∂22 u ∈ L2 (Ω)
together with
∑ ∑
(u, v)H 2 (Ω) = (u, v) + (∂i u, ∂i v) + (∂i ∂j u, ∂i ∂j v),
i=1,2 i,j=1,2
√
∥u∥H 2 (Ω) = (u, u)H 2 (Ω) .
84
• We use Schwarz’s inequalities:
• Let H0m (Ω) be the closure of C0∞ (Ω) in the norm ∥ · ∥H m (Ω) . That is,
|ϕ(y1 )| ≤ a2 /2 (y1 ∈ U1 ),
Ω ∩ U = {(y1 , y2 ) | y2 < ϕ(y1 ), y1 ∈ U1 },
Γ ∩ U = {(y1 , y2 ) | y2 = ϕ(y1 ), y1 ∈ U1 }.
y2
a2
φ (y )
1
y
1
a2
a1 a1
85
9.3 Lemmas
Lemmas 9.1 and 9.2 below are valid for a bounded C 0 domain Ω.
Lemma 9.1 (Density).
C ∞ (Ω) is dense in H m (Ω). That is, for any u ∈ H m (Ω), there exists {φn } ⊂
C ∞ (Ω) such that ∥u − φn ∥H m (Ω) → 0 (n → ∞).
γu = u|∂Ω (v ∈ C(Ω)),
∥γv∥L2 (Γ) ≤ CT ∥v∥H 1 (Ω) (v ∈ H 1 (Ω))
Lemma 9.5.
The space H01 (Ω) is characterized by
where γ : H 1 (Ω) → L2 (Γ) denotes the trace operator described in Lemma 9.4.
Lemma 9.6.
Suppose that a bounded Lipschitz domain Ω is decomposed to two (disjoint)
Lipschitz subdomains Ω1 and Ω2 by a simple smooth curve S; Ω = Ω1 ∪ S ∪ Ω2
and Ω1 ∩Ω2 = ∅. Then, v ∈ C(Ω), v1 = v|Ω1 ∈ C 1 (Ω1 ) and v2 = v|Ω2 ∈ C 1 (Ω2 )
implies v ∈ H 1 (Ω).
86
this note Nečas’ book assumption on Ω
Lemma 9.1 Theorem 3.1 (Chapter 2) bounded C 0
Lemma 9.2 Theorem 1.1 (Chapter 1) bounded C 0
Lemma 9.3 Theorem 3.8 (Chapter 2) bounded Lipschitz
Lemma 9.4 Theorem 1.2 (Chapter 1) bounded Lipschitz
Lemma 9.5 Theorem 4.10 (Chapter 2) bounded Lipschitz
Table 9.1: The correspondence between Lemmas in this note and Nečas’ book.
Let nk = (n1,k , n2,k ) be the unit normal vector to S outgoing from Ωk . Ob-
viously, we have n1 = −n2 . For an arbitrary φ ∈ C0∞ (Ω), we have by the
integration by parts
∫ ∫ ∫
∂v1 ∂v2
gj φ dx = φ dx + φ dx
Ω Ω1 ∂xj Ω2 ∂xj
∫ ∫ ∫
∂φ ∂φ
= − v1 dx − v2 dx + v(nj,1 + nj,2 )φ dS
Ω1 ∂xj Ω2 ∂xj S
∫
∂φ
= − v dx.
Ω ∂xj
Proof. (i) We follow the proof of Theorem 1-1.3 of Něcas [29]. Let v ∈ C 1 (D)
and express it as
87
for x, y ∈ D. We have
∫ a ∫ a
∂v ∂v
|v(x) − v(y)| ≤
∂ξ1 (ξ1 , x2 ) dξ1 + ∂ξ2 (y1 , ξ1 ) dξ2
0 0
( )1/2 (∫ )1/2
∫ a 2 2
√ ∂v a
≤ a ∂v (y1 , ξ2 ) dξ2
∂ξ1 (ξ1 , x2 ) dξ1 + ∂ξ2
0 0
and
(∫ 2 ∫ a 2 )
a ∂v
|v(x) − v(y)| ≤ 2a
2 ∂v (ξ1 , x2 ) dξ1 +
∂ξ1 ∂ξ2 (y1 , ξ2 ) dξ2
0 0
for x, y ∈ D. Hence,
∫∫
|v(x) − v(y)|2 dxdy
D×D
( ∫ 2 ∫ 2 )
∂v ∂v
≤ 2a a3 (ξ1 , x2 ) dξ1 dx2 + a3 (y1 , ξ2 ) dy1 dξ2
D ∂ξ1 D ∂ξ2
Since ṽ ∈ H 1 (D) in view of Lemma 9.6, we can apply (9.1). On the other
hand,
∫ ∫
∥ṽ∥2L2 (D) = 2∥v∥2L2 (T ) , ∥∇ṽ∥2L2 (D) = 2∥∇v∥2L2 (T ) , ṽ(x) dx = 2 v(x) dx.
D T
88
At this stage, we recall an important application of the projection theorem;
For the proof, see a text book of Functional Analysis.
|F (v)|
∥F ∥X ′ = sup < ∞.
v∈X ∥v∥X
Then, there exists a unique a ∈ X such that F (v) = (a, v)X for all v ∈ X.
89
10 Weak solution and regularity
10.1 Weak formulation
We return to consider the Dirichlet BVP for the Poisson equation:
− ∆u = f in Ω, u = 0 on ∂Ω, (10.1)
V = H01 (Ω)
which is a Hilbert space equipped with the standard scalar product and norm
of H 1 (Ω). As scalar product and norm in V , however, we take
∫ √
(u, v)V = (∇u, ∇v) = ∇u · ∇v dx, ∥u∥V = (u, u)V .
Ω
We call (10.2) a weak form of (10.1). The solution u of (10.2) called a weak
solution (generalized solution) of (10.1). The solution u ∈ C 2 (Ω) ∩ C(Ω) of
(10.1) is called a classical solution of (10.1).
90
Theorem 10.1.
Suppose that Ω is a bounded Lipschitz domain and f ∈ L2 (Ω). Then, we have
the following.
Proof. (i) We apply Riesz’s representation theorem (Lemma 9.8). In doing so,
F ∈ V ′ is defined by setting F (v) = (f, v). We have F ∈ V ′ , since |F (v)| ≤
∥f ∥ · ∥v∥ ≤ CP ∥f ∥ · ∥v∥V in view of the Schwarz and Poincaré inequalities.
Hence, there exists a unique u ∈ V satisfying (u, v)V = F (v) = (f, v) for all
v ∈V.
(ii) Choosing v = u, we have by Schwarz and Poincaré inequalities,
Proof. The proof of (i) is described in the standard monographs of PDEs. The
proof of (ii) is given, for example, in the following references:
• M. Dauge: Elliptic Boundary Value Problems on Corner Domains. Smooth-
ness and Asymptotics of Solutions, Lecture Notes in Mathe. 1341,
Springer, 1988.
• P. Grisvard: Elliptic Problems in Nonsmooth Domains, Pitman, 1985.
91
• P. Grisvard: Behavior of the solutions of an elliptic boundary value prob-
lem in a polygonal or polyhedral domain, Numerical solution of partial
differential equations, III (Proc. Third Sympos. (SYNSPADE), Univ.
Maryland, College Park, Md., 1975), pp. 207–274, Academic Press, New
York, 1976.
Theorem 10.3.
Suppose that Ω is a bounded Lipschitz domain and f ∈ L2 (Ω). Then, we have
the following.
(ii) ∥uh ∥V ≤ C∥f ∥ with the same domain constant C appearing Theorem
10.1.
92
Proof. Let vh ∈ Vh be arbitrary. By Galerkin’s orthogonality, we have
∥u − uh ∥2V = (u − uh , u − uh )V
= (u − uh , u − vh )V + (u − uh , vh − uh )V
= (u − uh , u − vh )V ≤ ∥u − uh ∥V ∥u − vh ∥V ;
∥u − uh ∥V ≤ ∥u − vh ∥V .
Hence,
∥u − uh ∥V ≤ inf ∥u − vh ∥V .
vh ∈Vh
93
11 Shape-regularity of triangulations
11.1 Interpolation error estimates
Throughout this section, we assume that Ω is a polygonal domain with the
boundary Γ = ∂Ω. We recall the following.
• {Th } = {Th }h↓0 is a family of triangulations of Ω, {Pi }N̄
i=1 is the set of
all vertices of Th ,
• According to Lemma 9.6, Xh and Vh are subspaces of H 1 (Ω) and H01 (Ω),
respectively.
The aim of this section is to show that every function v ∈ H 1 (Ω) can be
approximated by using functions of Xh .
We use the H 2 semi-norm defined as
(∫ [ ] )1/2
|u|2,ω = |u|H 2 (ω) = |∂1 u| + 2|∂1 ∂2 u| + |∂2 u| dx
2 2 2 2
,
ω
94
⋆Example 11.2. We consider the triangle T whose vertices are (0, 0), (L, 0)
and (L/2, Lα ) with L > 0 and α > 0. Obviously, u(x1 , x2 ) = u(x, y) = x2 is
in H 2 (T ) and (Πu)(x, y) = Lx − 41 L2−α y. Hence, we can calculate as
1
(u − Πu)x = 2x − L, (u − Πu)y = L2−α , uxx = 2, uxy = uyy = 0.
4
Therefore, we have
∥∇(Πu − u)∥2T 1 1
≥ · .
|u|22,T 32 L2α−4
Hence, if α > 2, Inequality (11.2) is meaningless as L → 0.
def. hT
⇐⇒ ∃ν1 > 0 s.t. ≤ ν1 (∀T ∈ Th ∈ {Th }). (11.3)
ρT
95
11.1. In fact, for u ∈ H 2 (Ω),
∑
∥∇(Πh u − u)∥2 = ∥∇(Πh u − u)∥2T
T ∈Th
∑ ( )2
h2T
≤ C22 |u|2H 2 (T )
ρT
T ∈Th
∑
≤ C22 (hT ν1 )2 |u|2H 2 (T )
T ∈Th
∑
≤ (C2 hν1 )2 |u|2H 2 (T ) = (C2 hν1 )2 |u|22,Ω ;
T ∈Th
This implies (11.9). The proofs of (11.8) and (11.10) are similar.
96
• T̂ is the reference element
def.
⇐⇒ T̂ is the triangle with vertices P̂1 = (0, 0), P̂2 = (1, 0), and P̂3 =
(0, 1).
• Set B = [b1 , b2 ], b1 = p2 − p1 , b2 = p3 − p1 , and consider
x = Φ(ξ) ≡ Bξ + p1 (ξ ∈ T̂ )
P2
P3
P3
Φ T
T b2 b1
P1 P2 P1
Lemma 11.6.
There exists an absolute positive constant Ĉ2 such that
Proof. We write, for example, L2 = L2 (T̂ ), ∥ · ∥ = ∥ · ∥T̂ and ∂i = ∂ξi for short.
Let v ∈ H 2 . There is a p ∈ P1 such that
∫ ∫ ∫
(v + p) dξ = ∂1 (v + p) dξ = ∂2 (v + p) dξ = 0.
T̂ T̂ T̂
97
We apply Poincaré and Wirtinger to ∂i (v + p), i = 1, 2, and deduce
∫ ∫
(∂i (v + p)) dξ ≤
2
|∇ξ ∂i (v + p)|2 dξ ≤ |v + p|22,T̂ = |v|22,T̂ .
T̂ T̂
Hence,
∥∇ξ (v + p)∥2 ≤ 2|v|22,T̂ .
Again applying Poincaré and Wirtinger to obtain
Summing up,
Lemma 11.7.
Let S and T are closed triangles. Let
Φ : S ∋ ξ 7→ x = Bξ + b ∈ T,
1 hT
∥B∥ = sup |Bξ| ≤ .
ρS |ξ|=ρS ρS
(ii) Let JΦ and JΦ−1 be determinants of Jacobi matrices of Φ and Φ−1 . Then,
|JΦ | = | det B|(= |T |/|S| ̸= 0) and |JΦ−1 | = | det B −1 | = | det B|−1 (= |S|/|T |).
By the density, it suffices to consider the case v ∈ C 1 (T ). Then, w ∈ C 1 (S).
Since Φ is affine,
∇ξ w = B T ∇x v
98
Hence, by ∥B∥ = ∥B T ∥,
∫
∥∇w∥2S = |∇ξ w|2 dξ
∫S
= |B T ∇x v|2 JΦ−1 dx
∫T
∑ ∑
Dα w2 ≤ 16∥B∥4 |Dxα v|2 .
ξ
|α|=2 |α|=2
Hence,
∫ ∑
|w|2H 2 (S) ≤ 16∥B∥4 |Dxα v|2 JΦ−1 dx
T |α|=2
Lemma 11.8.
There exists an absolute positive constant Ĉ such that
∥v − Πv∥1,T̂ ≤ Ĉ|v|2,T̂
Proof. We write, for example, H 1 = H 1 (T̂ ) and (·, ·) = (·, ·)T̂ for short.
99
and
∥∇(Πv)∥L∞
{ }
|v( ˆ2 ) − v(Pˆ3 )|
P
= max |v(Pˆ1 ) − v(Pˆ2 )|, √ , |v(Pˆ3 ) − v(Pˆ1 )|
2
≤ 2∥v∥L∞ ≤ 2Ĉ1 ∥v∥2,T̂ .
• Therefore,
∥v − Πv∥1,
2
T̂
≤ ∥v − Πv∥2 + ∥∇(v − Πv)∥2
≤ 2(∥v∥2 + |T̂ |2 ∥Πv∥2L∞ ) + 2(∥∇v∥2 + |T̂ |2 ∥∇Πv∥2L∞ )
1
≤ 2∥v∥21,T̂ + (∥Πv∥2L∞ + ∥∇Πv∥2L∞ )
2
5
≤ 2∥v∥1,T̂ + Ĉ12 ∥v∥22,T̂
2
{ 2 }
5 2
≤ max 2, Ĉ1 ∥v∥22,T̂ ≡ Ĉ32 ∥v∥22,T̂ .
2
Thus,
|F (v)| ≤ ∥v − Πv∥1,T̂ ∥w∥1,T̂ ≤ Ĉ3 ∥v∥2,T̂ ∥w∥1,T̂ .
Proof of Lemma 11.1. Let T be any triangle, and let Φ(ξ) = Bξ + b be the
affine mapping which maps the reference triangle T̂ onto T . Set ĥ = hT̂ and
ρ̂ = ρT̂ . Fix v ∈ H 2 (T ), and define v̂ = v ◦ Φ. Suppose that Π̂v̂ is the affine
function defined on T̂ whose values at vertices coincide with those of v̂. (The
100
meaning of Πv is the same as described in Lemma.) First, by Lemma 11.7 (i)
and (iii),
C02 4
|v̂|22,T̂ ≤ C02 ∥B∥4 | det B|−1 |v|22,T ≤ h | det B|−1 |v|22,T .
ρ̂4 T
This, together with Lemma 11.8, gives
101
12 Error analysis of FEM
We are now ready to study the convergence of FEM. We recall that the weak
form of the Poisson equation is described as
∫ ∫
Find u ∈ V s.t. ∇u · ∇v dx = f v dx (∀v ∈ V ) (12.1)
| Ω
{z } | {z }
Ω
=(u,v)V =(f,v)
• Ω ⊂ R2 is a polygonal domain;
∫
• ∥u∥ = ∥u∥L2 (Ω) ,(u, v) = uv dx;
Ω
∑
N̄
(Πh v)(x) = v(Pi )ϕi (x) (v ∈ C(Ω)).
i=1
✓Remark. Problem (12.1) is the weak form of the Dirichlet BVP for the
Poisson equation
−∆u = f in Ω, u = 0 on ∂Ω.
There exists a unique u satisfying (12.1), and we have ∥u∥V = ∥∇u∥V ≤ C∥f ∥
(cf. Theorem 10.1). If Ω is a convex polygon, we further obtain u ∈ H 2 (Ω)
with ∥u∥H 2 (Ω) ≤ C∥f ∥ (cf. Theorem 10.2).
102
Theorem 12.1 (Convergence).
Suppose that {Th }h>0 is of shape-regular. Let u ∈ V and uh ∈ Vh be solutions
of (12.1) and (12.2), respectively. Then, we have
∥u − uh ∥V = min ∥u − vh ∥V . (12.3)
vh ∈Vh
∥u − uh ∥V ≤ ∥u − vh ∥V (∀vh ∈ Vh ).
∥u − uh ∥V ≤ ∥u − Πh u∥V ≤ C2 ν1 h|u|2,Ω .
103
which we call the adjoint problem of (12.1). In view of Theorems 10.1 and
10.2, there exists a unique solution w ∈ V satisfying ∥w∥H 2 (Ω) ≤ CR ∥g∥ with
a domain constant CR . Moreover, we know ∥eh ∥V ≤ ν1 C2 h|u|2,Ω by Theorem
12.2. Choosing v = eh , we deduce
104
13 Numerical experiments using FreeFem++
So far we have studied a mathematical theory of FEM. Unfortunately, the
implementation of FEM is not an easy task. Actually, Professor O. Pironneau
wrote in his famous book “Finite Element Methods for Fluids (Wiley, 1989)”
that
Numerical analysis is somewhat dry if it is taught without test-
ing the methods. Unfortunately experience shows that a simple
finite element solution of a Laplace equation with the P 1 conform-
ing element requires at least 20 hours of programming time; so it
is difficult to reach the more interesting applications discussed in
this book in the time allotted to a Master course. [page 197]
In order to avoid these difficulties, we are able to utilize a free software
Freefem++
http://www.freefem.org/ff++/index.htm
or Freefem++-cs
http://www.ann.jussieu.fr/~lehyaric/ffcs/index.htm
13.1 Examples
⋆Example 13.1. In the unit square Ω = (0, 1) × (0, 1), we consider the
Poisson equation
−∆u = x2 + 2y in Ω, u=0 on ∂Ω.
105
save
run
stop
List 7 is a freefrem++ code to solve this problem, and Fig. 13.3 is output.
⋆Example 13.2. Consider the same problem as Example 13.1 and apply
gnuplot to display the shape of the solution. List 8 is a freefrem++ code.
After running this, we get prog2.data. Then, at gnuplot terminal, type as
follows:
Results are Figs 13.4 and 13.5. To save those results as eps file, type as
follows:
106
Figure 13.3: Example 13.1
107
"prog2_10.data"
0.1
0.1
0.09
0.09 0.08
0.08 0.07
0.07 0.06
0.06 0.05
0.04
0.05
0.03
0.04 0.02
0.03 0.01
0.02 0
0.01
00
0.2
1
0.4 0.8
0.6 0.6
0.4
0.8
0.2
1 0
"prog2_30.data"
0.1
0.1
0.09
0.09 0.08
0.08 0.07
0.07 0.06
0.06 0.05
0.04
0.05
0.03
0.04 0.02
0.03 0.01
0.02 0
0.01
00
0.2
1
0.4 0.8
0.6 0.6
0.4
0.8
0.2
1 0
List 9 is a freefrem++ code to solve this problem, and Figs 13.6 and 13.7 are
outputs.
108
"prog3_10.data"
0.3
0.25
0.2
0.15
0.1
0.3
0.05
0.25
0
3
0.2 -0.05
0.15 2.5
0.1 2
0.05 1.5
0
1
-0.05
0 0.5 0.5
1 1.5 2 2.5 0
3
−∆u = 1 in Ω, u = x2 + y 2 on ∂Ω.
List 10 is a freefrem++ code to solve this problem, and Figs 13.8 and 13.9 are
outputs.
109
"prog3_30.data"
0.35
0.3
0.25
0.2
0.15
0.35
0.1
0.3
0.05
3
0.25 0
0.2 2.5
0.15 2
0.1 1.5
0.05
1
0
0 0.5 0.5
1 1.5 2 2.5 0
3
110
"prog4_30.data"
2.4
2.2
2
2.4
1.8
2.2 1.6
2 1.4
1.8 1.2
1.6 1
1.4 1
0.8
1.2 0.6
0.4
1
-1.5 0.2
-1 0
-0.5 -0.2
0 -0.4
0.5 -0.6
1 -0.8
1.5-1
"prog4_60.data"
2.4
2.2
2
2.4
1.8
2.2 1.6
2 1.4
1.8 1.2
1.6 1
1.4 1
1.2
0.5
1
-1.5
-1 0
-0.5
0 -0.5
0.5
1
1.5-1
in the unit square Ω = (0, 1) × (0, 1). The exact solution is given as
∥∇ũ − ∇uh ∥L2 (Ω) ≤ ∥∇ũ − ∇u∥L2 (Ω) + ∥∇u − ∇uh ∥L2 (Ω)
and that ∥∇u−∇ũ∥L2 (Ω) is expected to be much smaller than ∥∇u−∇uh ∥L2 (Ω) .
Hence, we observe
instead of ∥∇u − ∇uh ∥L2 (Ω) and ∥u − uh ∥L2 (Ω) . Moreover, we observe
log e2h − log eh log E2h − log Eh
ρh = and Rh = .
log(2h) − log(h) log(2h) − log(h)
111
Figure 13.10: Example 13.5
Results are reported in Fig. 13.11 and Tab. 13.1. We observe from those
results that errors are expressed as
and they are consistent with theoretical results (Theorems 12.2 and 12.3). List
11 is a freefrem++ code used for this calculation.
112
1
0.1
log (Error)
0.01
0.001
H1 Err
L2 Err
0.0001
0.01 0.1 1
log (h)
h eh ρh Eh Rh
0.353553 0.838452 — 0.079064 —
0.176777 0.431591 0.96 0.021119 1.90
0.088388 0.217113 0.99 0.005364 1.98
0.044194 0.108122 1.01 0.001337 2.00
0.022097 0.052783 1.03 0.000325 2.04
113
Numerical solutions uh for ω = 0.7π, 1.5π and 1.8π are displayed in Fig. 13.12–
13.14. We actually have u ∈ H01 (Ω). The function ϕ(r) is sufficiently regular
and the function w is “singular” as
{
< ∞ (0 < ω < π)
∥w∥L2 (Ω) < ∞, ∥∇w∥L2 (Ω) < ∞, |w|H 2 (Ω)
2 2 2
= ∞ (π < ω < 2π).
�����
����
�����
���� ��
����
����� ����
���� ����
����� ����
�� ����
���� ����
���� ����
����
�� ����
����
���� ����
����
���� ��
��
����
�����
����
�����
���� ��
����� ����
���� ����
����� ����
���� ����
����� ��
��
�� ���� ����
���� ���� ����
���� �� ����
���� ���� ����
���� ���� ��
��
114
����
�����
����
�����
���� ��
����� ����
���� ����
����� ����
���� ����
����� ��
��
�� ����
���� ����
�� ����
���� ����
��
��
1.000000
0.100000
0.010000
log (Error)
0.001000
H1: ome=0.7pi
0.000100 H1: ome=1.5pi
H1: ome=1.8pi
L2: ome=0.7pi
L2: ome=1.5pi
L2: ome=1.8pi
0.000010
0.01 0.1 1
log (h)
115
Problems and further readings for Chapter II
Problems
Problem 9. Prove Lemma 11.3.
Problem 10. Under the same notations of §8, prove the following equalities.
∑
3 ∑
3
(x − ai )λi = 0, (y − bi )λi = 0,
i=1 i=1
∑
3
∂λi ∑3
∂λi
(x − ai ) = −1, (y − bi ) = −1,
∂x ∂y
i=1 i=1
∑3
∂λi ∑3
∂λi
(x − ai ) = 0, (y − bi ) = 0.
∂y ∂x
i=1 i=1
−∆u = 1 in Ω, u = 0 on Γ,
−∂12 u − 10−2 ∂22 u = 1 in Ω, u = 0 on Γ.
Figure 13.16:
Further readings
There are many excellent textbooks devoted to the mathematical theory of
FEM. For example, I recommend students
116
[19] 菊地文雄: 有限要素法の数理 (数学的基礎と誤差解析),培風館,
1994 年.
[24] S. Larsson and V. Thomée: Partial Differential Equations with
Numerical Methods, Springer, 2009.
[22] 菊地文雄,齊藤宣一:数値解析の原理–現象の解明をめざして
(岩波数学叢書),岩波書店,2016.
[38] 田端正久:偏微分方程式の数値解析,岩波書店, 2010.
117
III. Abstract elliptic PDE and Galerkin method
• Let V be a (real) Hilbert space with the scalar product (·, ·)V and the
norm ∥ · ∥V .
• The space V ′ denotes the dual space of V (= the set of all bounded
linear functionals over V ). Thus,
def.
F ∈ V ′ ⇐⇒ F : V → R,
F (v + w) = F (v) + F (w) (v, w ∈ V )
F (αv) = αF (v) (v ∈ V, α ∈ R)
F (v) |F (v)|
∥F ∥V ′ ≡ sup = sup < ∞.
v∈V ∥v∥V v∈V ∥v∥V
def.
• A bilinear form a : V × V → R is bounded (or continuous) ⇐⇒
a(u, v)
∥a∥ ≡ sup < ∞.
u,v∈V ∥u∥V ∥v∥V
118
In fact, choosing v = u, we have α∥u∥2V ≤ a(u, u) = ⟨F, u⟩ ≤ ∥F ∥V ′ ∥u∥V .
Thus, ∥u∥V ≤ (1/α)∥F ∥V ′ .
We use the Riesz mapping σ = σV from V ′ to V that is a bijective operator
from V ′ to V defined as 4
(σF, v)V = ⟨F, v⟩ (∀v ∈ V )
for F ∈ V ′ . It satisfies
∥σF ∥V
∥σ∥V ′ ,V = sup = 1,
F ∈V ′ ∥f ∥V ′
∥σ −1 v∥V ′
∥σ −1 ∥V,V ′ = sup = 1.
v∈V ∥v∥V
Note that V ′ forms a Hiblert space equipped with the norm ∥ · ∥V ′ . Its scalar
product is defined by
(F, G)V ′ = (σF, σG)V (F, G ∈ V ′ ).
Proof of Theorem 14.1, I. For short, set ∥ · ∥ = ∥ · ∥V , (·, ·) = (·, ·)V , and
σ = σV . In view of Riesz’s representation theorem (Lemma 9.8), there exists
a linear operator A : V → V such that 5
(Au, v) = a(u, v) (u, v ∈ V ).
In particular,
(Au, u) ≥ α∥u∥2 , ∥Au∥ ≤ ∥a∥ · ∥u∥ (u ∈ V ).
Since F is expressed as ⟨F, v⟩ = (σF, v)V (∀v ∈ V ), the equation (14.2) is
equivalently written as
(Au, v) = (σF, v) (∀v ∈ V ) ⇔ Au − σF = 0 in V. (14.3)
We will show that this equation admits a unique solution by the contraction
mapping principle 6 . To this end, we introduce E : V → V and B : V → V by
Eu = u − ρ(Au − σF ) = Bu + ρσF (Bu = u − ρAu)
4
For an arbitrary F ∈ V ′ , there exists a unique w ∈ V satisfying ⟨F, v⟩ = (w, v)V (v ∈ V ).
This correspondence is denoted by σ : F 7→ w. Obviously, σ is a linear operator from
V ′ to V . Combining ∥F ∥V ′ = supv∈V |⟨F, v⟩|/∥v∥V ≤ ∥w∥V = ∥σF ∥V and ∥F ∥V ′ ≥
|⟨F, w⟩|/∥w∥V = ∥w∥V = ∥σF ∥V , we have ∥F ∥V ′ = ∥σF ∥V . Hence, we obtain ∥σ∥V ′ ,V =
1 (isometry). On the other hand, since, for any w ∈ V , we have (w, ·)V ∈ V ′ , σ is
subjective. Moreover, for F ∈ V with σF = 0, we have F = 0 by the isometry. Thus,
the operator σ is bijective.
5
Fix u ∈ V and consider φu (v) = a(u, v) (v ∈ V ). φu (v) is a linear functional on V . Since
|φu (v)| ≤ (∥a∥·∥u∥)·∥v∥, φu (v) is bounded. By virtue of Riesz (Lemma 9.8), there exists a
unique w ∈ V satisfying (w, v)V = φu (v) = a(u, v) (∀v ∈ V ). The correspondence u 7→ w
is denoted by w = Au. Then, the operator A is linear on V . Choosing v = w = Au, we
have ∥Au∥2 = a(u, Au) ≤ ∥a∥ · ∥Au∥ · ∥u∥. Hence, ∥A∥ = supu∈V ∥Au∥/∥u∥ ≤ ∥a∥. This
implies that A : V → V is a bounded linear operator.
6
Suppose that T is a contraction operator on a Hilbert space H. That is, T satisfies
∥T u − T v∥H ≤ λ∥u − v∥H (u, v ∈ H) with 0 < λ < 1. Then, there exists a unique u ∈ H
such that u = T u. Such u ∈ H is called the fixed point.
119
with a constant ρ. Then,
Now
√ we take ρ such that 0 < ρ < 2α/∥a∥2 ; Then, 0 < k < 1 and ∥Bu∥ ≤
k ∥u∥ (u ∈ V ). Therefore,
√
∥Eu − Ev∥ = ∥B(u − v)∥ ≤ k ∥u − v∥ (u, v ∈ V ).
u = Eu ⇔ u = u − ρ(Au − σF ).
Proof of Theorem 14.1, II. We prove that the linear operator A defined above
is bijective on V . First, since
(Av, v) ≥ α∥v∥2V (v ∈ V ),
120
15 Galerkin approximation
We follow the notation of the previous section. Further, we introduce a finite
dimensional subspace Vh of V , h being the discretization parameter such that
h ↓ 0.
For a given F ∈ V ′ , we consider an abstract elliptic problem:
Let {ϕi }N
i=1 be a basis of Vh , N being the dimension of Vh . We write uh as
∑
N
uh = Ui ϕ i .
i=1
Au = f ,
Therefore,
∥a∥
∥u − uh ∥V ≤ inf ∥u − vh ∥V .
α vh ∈Vh
121
✓Remark. Let Ph be the orthogonal projection operator from V to Vh .
Then, for u ∈ V , we have
∥u − Ph u∥V = min ∥u − vh ∥V .
vh ∈Vh
(This is nothing but the projection theorem.) Hence, we can replace inf by
min in Theorem 15.2.
Then, u ∈ V satisfies
((u − uh , wh )) = 0 (∀wh ∈ Vh ).
122
16 Applications
16.1 Convection-diffusion equation
Assume that Ω ⊂ R2 is a bounded Lipschitz domain and that its boundary
Γ = ∂Ω consists of two parts Γ1 , Γ2 ⊂ Γ such that Γ = Γ1 ∪ Γ2 . Since Ω is
a Lipschitz domain, the unit outer normal vector to Γ, which is denoted by
n = n(s) = (n1 (s), n2 (s)), is well-defined for almost every s ∈ Γ.
ν > 0, f, c : Ω → R, b : Ω → R2 , g1 : Γ1 → R, g2 : Γ2 → R.
Thus, we consider
Next, we take g̃1 : Ω → R satisfying g̃1 |Γ1 = g1 and put ũ = u − g̃1 . Then,
ũ|Γ = 0 and ∫ ∫
a(ũ, v) = f v dx + g2 v dS + a(g̃1 , v) .
Ω Γ2
| {z }
=F (v)=⟨F,v⟩
123
Function spaces and forms.
Weak formulation.
Assumptions.
Continuity of a. For u, v ∈ V ,
∫ ∫ ∫
|a(u, v)| ≤ ν |∇u| · |∇v| dx + ∥b∥∞ |u| · |∇v| dx + ∥c∥∞ · |u| · |v| dx
Ω Ω Ω
≤ ν∥∇u∥ · ∥∇v∥ + ∥b∥∞ ∥∇u∥ · ∥v∥ + ∥c∥∞ ∥u∥ · ∥v∥
≤ max{ν, ∥b∥∞ , ∥c∥∞ } ∥u∥V ∥v∥V .
| {z }
C1
124
Coercivity of a. We first note that
∫ ∫ ∑
2 ∫ ∑
2
∂u 1 ∂
− b(∇u)u dx = − bi u dx = − bi · (u2 ) dx
Ω Ω i=1 ∂xi Ω i=1 2 ∂xi
∫ ∑
2 ∫ ∑2
1 1 1 ∂bi
= − bi u2 ni dS + · u2 dx
2 ∂Ω i=1 2 2 Ω ∂x i
i=1
∫ ∫ ∑2
1 1 ∂bi
= − (b · n)u dS +
2
· u2 dx
2 Γ2 2 Ω ∂xi
i=1
∫
1
≥ (∇ · b)u2 dx.
2 Ω
Therefore, for u ∈ V ,
∫ ∫
2
a(u, u) = ν∥∇u∥ + b(∇u)u dx + cu2 dx
Ω∫ Ω∫
1
≥ ν∥∇u∥2 − (∇ · b)u2 dx + cu2 dx
2 Ω
∫ ( ) Ω
1
≥ ν∥∇u∥2 + c + ∇ · b u2 dx
Ω 2
≥ ν∥∇u∥2
ν ν
= ∥∇u∥2 + ∥∇u∥2
2 2
ν ν 1
≥ ∥∇u∥2 + ∥u∥2
2 2 CP2
≥ C42 ∥u∥2V .
Well-posedness.
Theorem 16.2.
Under assumptions (A1), (A2) and (A3), there exists a unique solution u of
(16.2). Moreover, it satisfies
125
Proof. We can apply Lax-Milgram’s theorem to obtain the unique existence
of a solution. Substituting v = ũ into (16.2), we have
C4 ∥ũ∥2V ≤ a(ũ, ũ) = ⟨F, ũ⟩ ≤ (∥f ∥ + C2 ∥g2 ∥2,Γ2 + C1 ∥g̃1 ∥V )∥ũ∥V .
Hence,
1
∥ũ∥V ≤ (∥f ∥ + C2 ∥g2 ∥2,Γ2 + C1 ∥g̃1 ∥V ).
C4
This, together with ∥ũ∥V ≥ ∥u∥V − ∥g̃1 ∥V , implies the desired inequality.
∂u
Lu = f in Ω, u = g1 on Γ1 , = g2 on Γ2 , (16.3)
∂nL
where
∑
N
∂ ∂v ∑
N
∂v
Lv = − aij (x) + bi (x) + c(x)v,
∂xj ∂xi ∂xi
i,j=1 i=1
∂v ∑
N
∂v
= aij (x) nj .
∂nL ∂xi
i,j=1
Setting
A = (aij (x)), b = (bi (x)),
the equation Lu = f is expressed as
−∇ · A∇u + b · ∇u + cu = f.
126
Consequently, the solution u of (16.3) satisfies
∫ ∫
a(u, v) = f v dx + g2 v dx
Ω Γ2
for any v ∈ C ∞ (Ω) with v|Γ1 = 0. Suppose g̃1 : Ω → R is such that g̃1 |Γ1 = g1 .
Put ũ = u − g̃1 . Then, we have ũ|Γ = 0 and
∫ ∫
a(ũ, v) = f v dx + g2 v dx + a(g̃1 , v) .
Ω Γ2
| {z }
=F (v)=⟨F,v⟩
Weak formulation.
Assumptions.
∑
(B2) ∃λ0 > 0 s.t. aij (x)ξi ξj ≥ λ0 |ξ|2 (∀x ∈ Ω, ∀ξ ∈ RN );
1≤i,j≤N
β2
(B3) γ ′ ≥ ;
2λ0
(B4) g̃1 ∈ H 1 (Ω), g1 = g̃1 |Γ1 ∈ L2 (Γ1 ), g2 ∈ L2 (Γ2 ).
Continuity of a.
127
Continuity of F . For v ∈ V ,
∫ ∫
|⟨F, v⟩| ≤ |f v| dx + |g2 v| dS + |a(g̃1 , v)|
Ω Γ2
≤ ∥f ∥∥v∥ + ∥g2 ∥Γ2 ∥v∥Γ2 + C1 ∥g̃1 ∥V ∥v∥V
≤ (∥f ∥ + C2 ∥g2 ∥Γ2 + C1 ∥g̃1 ∥V ) ∥v∥V .
| {z }
C3
Coercivity of a. For u ∈ V ,
λ0
≥ ∥∇u∥2 ≥ C42 ∥u∥2V .
2
Well-posedness
Theorem 16.3.
Under the assumptions (B1)–(B4), there exists a unique solution u of (16.4).
Moreover, it satisfies
128
Problems and further remark for Chapter III
Problems
Problem 14. Let Ω be a bounded domain in R2 with the smooth boundary
Γ. Let f ∈ L2 (Ω) and g ∈ L2 (Γ). Give a variational formulation of the
problem
∂u
−∆u = f in Ω, with + u = g on Γ,
∂n
where ∆ denotes the Laplacian and ∂/∂n differentiation along the outer unit
normal vector n to Γ. Prove existence and uniqueness of a weak solution. Give
an interpretation of the boundary condition in connection with some problem
in mechanics or physics.
−∆u1 = f in Ω1 , −ε∆u2 = f in Ω2 , u2 = 0 on Γ
give a variational formulation in H01 (Ω) of this interface problem and discuss
the unique existence of a weak solution.
Further remark
The Lax-Milgram theorem (Theorem 14.1) was presented in [23, theorem 2.1].
It is interesting that the main aim of [23] is to resolve higher order parabolic
equations by Hille–Yosida’s semigroup theory. It is described in [23] that
The following theorem is a mild generalization of the Fréchet–Riesz
Theorem on the representation of bounded linear functionals in
Hilbert space. [page 168]
Without the coercivity condition (14.1), we can prove the unique existence
of the variational problem (14.2). Actually, Theorem 14.1 is generalized as
follows.
129
Theorem 16.4.
Letting V be a Banach space and letting W be a reflexive Banach space, then,
for any continuous bilinear form a : V × W → R, the following (i)–(iii) are
equivalent.
(ii)
a(v, w)
∃β > 0, inf sup = β; (16.6a)
v∈V w∈W ∥v∥V ∥w∥W
w ∈ W, (∀v ∈ V, a(v, w) = 0) =⇒ (w = 0). (16.6b)
(iii)
a(v, w) a(v, w)
∃β > 0, inf sup = inf sup = β. (16.7)
v∈V w∈W ∥v∥V ∥w∥W w∈W v∈V ∥v∥V ∥w∥W
a(v, w)
∃β > 0, sup ≥ β∥v∥V (∀v ∈ V ).
w∈W ∥w∥W
in view of (16.6a).
130
Theorem 16.4 has a long history.
• In 1962, Nečas [28, Théorème 3.1] proved that part “(iii) ⇒ (i)” for the
Hilbert case (i.e., the case where both V and W are Hilbert spaces) as
a simple generalization of the Lax–Milgram theorem. Nečas described
that7
Considérant les espaces complexes et les opérateurs différentiels
elliptiques, le théorème de P. D. Lax and A. Milgram (cf. p.
ex. L. Nirenberg [31]) paraı̂t être très utile pour la méthode
variationnelle d’abord nous en signlons une généralisation facile.
[page 318]
He also described that (see [28, Théorème 3.2]) (16.6a) and
R(A) is dense in W ′
implies (i) for the Hilbert case, where A denotes the associating operator
with a(·, ·). Later, in 1967, Nečas [29, Théorème 6-3.1] proved that
(16.6a) and
a(v, w)
∃c > 0, sup ≥ c∥w∥Z (w ∈ W )
v∈V ∥v∥V
implies (i) for the Hilbert case, where Z denotes a Banach space such
that W ⊂ Z (algebraically and topologically). See also [30]. I infer that
Nečas noticed the part “(ii) ⇒ (i)”.
• In 1971, Babuška [1, theorem 2.1] stated the part “(iii) ⇒ (i)” for the
Hilbert case. Babuška described that 8
The proof is adapted from Nečas [28] and Nirenberg [31]. We
present this proof because we shall use a portion of it for proof
of the next theorem. [page 323]
Later, Babuška–Aziz [2, Theorem 5.2.1] stated in 1972 the part “(ii) ⇒
(i)” for the Hilbert case. It is described that
This theorem is a generalization of the well known Lax–Milgram
theorem. The theorem might be generalized easily to the case
where H1 and H2 are reflexive Banach spaces. The method
proof is an adaptation from [28] and [31] (see also Necas [29],
p.294). [page 116]
• In 1974, Brezzi [4, Corollary 0.1] proved the part “(i)⇔(iii)”for the
Hilbert case. It is described that
the results contained in theorem 0.1 and in corollary 0.1 are
of classical type and that they might not be new. For instance
part I)⇒III) of corollary 0.1 was used by Babuška [1]. [page
132]
7
In quotations below, we have adapted reference numbers for the list of references of this
note.
8
However, I was unable to find where proof of the theorem was given in [31].
131
• In 1989, Roşca [33, Theorem 3] proved the part “(i)⇔(ii)” for the Banach
case and called it the Babuška–Lax–Milgram theorem9 .
• Theorem 16.4 plays a crucial role in the theory of the finite element
method. Pioneering work was done for error analysis of elliptic problems
(see [1], [2]). Moreover, active applications for the mixed finite element
method are well-known: see [5], [3] and [8] for systematic study.
9
In the article “Babuska–Lax–Milgram theorem” in Encyclopedia of Mathematics (http:
//www.encyclopediaofmath.org/), the part “(i)⇔(ii)” of Theorem 16.4 is called the
Babuska–Lax–Milgram Theorem. (This article was written by I. Roşca.)
132
References
[1] I. Babuška. Error-bounds for finite element method. Numer. Math.,
16:322–333, 1970/1971.
[3] D. Boffi, F. Brezzi, and M. Fortin. Mixed finite element methods and
applications, volume 44 of Springer Series in Computational Mathematics.
Springer, Heidelberg, 2013.
[5] F. Brezzi and M. Fortin. Mixed and hybrid finite element methods, vol-
ume 15 of Springer Series in Computational Mathematics. Springer-
Verlag, New York, 1991.
[12] 藤田宏,池部晃生,犬井鉄郎,高見穎郎:数理物理に現れる偏微分方程式
I [岩波講座基礎数学,解析学 II-iv],岩波書店,1977 年.
[13] H. Fujita, N. Saito and T. Suzuki: Operator Theory and Numerical Meth-
ods, Elsevier, 2001.
133
(LJLL), University of Paris VI. (See also freefem++-cs http://www.ann.
jussieu.fr/~lehyaric/ffcs/index.htm)
[15] Y. Kametaka: On the nonlinear diffusion equation of Kolmogorov–
Petrovskii–Piskunov type, Osaka J. Math. 13 (1976) 11–66.
[16] 亀高惟倫:非線型偏微分方程式,産業図書,1977 年.
[17] 加藤敏夫:変分法,自然科学者のための数学概論 [応用編],寺沢寛一 (編),
岩波書店,1960 年.
[28] J. Nečas. Sur une méthode pour résoudre les équations aux dérivées
partielles du type elliptique, voisine de la variationnelle. Ann. Scuola
Norm. Sup. Pisa (3), 16:305–326, 1962.
[29] J. Nečas. Les méthodes directes en théorie des équations elliptiques. Mas-
son et Cie, Éditeurs, Paris; Academia, Éditeurs, Prague, 1967.
[30] J. Nečas. Direct methods in the theory of elliptic equations. Springer
Monographs in Mathematics. Springer, Heidelberg, 2012. Translated from
the 1967 French original by Gerard Tronel and Alois Kufner, Editorial co-
ordination and preface by Šárka Nečasová and a contribution by Christian
G. Simader.
134
[31] L. Nirenberg. Remarks on strongly elliptic partial differential equations.
Comm. Pure Appl. Math., 8:649–675, 1955.
[35] 齊藤宣一:数値解析入門,東京大学出版会,2012 年.
[36] 齊藤宣一:線形・非線形拡散方程式の差分解法と解の可視化,講義ノー
ト (http://www.infsup.jp/saito/materials/fdm_heat11b.pdf/),
2011 年.
135