您当前的位置:首页 > 书籍 > O数理科学和化学 > O2运筹学

《偏微分方程数值解法(第二版)》孙志忠著 科学出版社 2012/3/1

偏微分方程数值解法(第二版)

内容简介:

    本书内容包括常微分方程两点边值问题的差分解法、椭圆型方程的差分解法、抛物型方程的差分解法、双曲型方程的差分解法和有限元方法简介。力求做到:(1)精选内容。重点介绍有限差分方法。(2)难点分散。对于差分方法,先从常微分方程两点边值问题出发,介绍差分方法的有关概念以及常用的分析技巧,然后将这些概念和技巧分别应用于椭圆型方程、抛物型方程和双曲型方程的数值求解。对于有限元方法,也先从常微分方程两点边值问题出发,介绍有限元方法的基本思想,再研究椭圆型方程的有限元解法。(3)强调会“用”各种数值方法。先举例示范,再要求学生模仿,最后到熟练掌握。书末的两个附录分别介绍有限Fourier级数法和Schr?dinger方程的差分方法。
    本书是信息与计算科学及数学与应用数学专业的基础课教材,也可作为高等学校数学及其他专业研究生的教学参考书。

更多科学出版社服务,请扫码获取。

目录:

第1 章常微分方程两点边值问题的差分解法
有限差分方法是用于微分方程定解问题求解的最广泛的数值方法, 其基本思想是
用离散的只含有有限个未知量的差分方程组去近似代替连续变量的微分方程和定解
条件, 并把差分方程组的解作为微分方程定解问题的近似解. 常微分方程两点边值问
题可以看成一维椭圆型方程的定解问题, 模型简单. 本章研究此模型问题的差分解法,
介绍微分方程数值解法中的一些基本概念, 分析差分格式的能量方法和提高数值解精
度的Richardson 外推法.
1.1 Dirichlet 边值问题
考虑如下定解问题:
?u00 + q(x)u = f(x); a < x < b; (1.1.1)
u(a) = ?; u(b) = ˉ; (1.1.2)
其中q(x) > 0; f(x) 为已知函数, ? 和ˉ 为已知常数.
当q(x) ′ 0 时, 对方程(1.1.1) 的两边从a 到x 积分一次, 得到
u0(x) = u0(a) ? Z x
a
f(s)ds:
将上式再从a 到x 积分一次, 并应用左边界条件u(a) = ?; 得到
u(x)=? + u0(a)(x ? a) ? Z x
a "Z ?
a
f(s)ds#d?
=? + u0(a)(x ? a) ? Z x
a ?Z x
s
f(s)d??ds
=? + u0(a)(x ? a) ? Z x
a
(x ? s)f(s)ds:
再应用右边界条件u(b) = ˉ; 可得
u0(a) =
ˉ ? ? + Z b
a
(b ? s)f(s)ds
b ? a
:
因而(1.1.1), (1.1.2) 的解可表示为
u(x) = ? + "ˉ ? ? + Z b
a
(b ? s)f(s)ds#x ? a
b ? a ? Z x
a
(x ? s)f(s)ds:
要想求出某点处的值还需要借助于数值积分. 当q(x) 6′ 0 时, 用同样的方法要想得到
解的精确表达式是困难的, 甚至是办不到的. 读者可对q(x) ′ 1 的情形试一试.
尽管难以求出精确解, 但我们可以设法给出解的估计式.
1.1.1 基本微分不等式
本书中Cm[a; b] 表示闭区间[a; b] 上所有具有m 阶连续导数的函数的集合.
设u(x) 2 C[a; b]: 记
kuk1 = max
a6x6b ju(x)j; kuk = sZ b
a
u2(x)dx;
如果u(x) 2 C0[a; b], 则进一步记
juj1 = sZ b
a
[u0(x)]2dx; kuk1 = qkuk2 + juj2
1:
引理1.1 (a) 设u(x) 2 C2[a; b]; v(x) 2 C1[a; b]; 则有
?Z b
a
u00(x)v(x)dx = Z b
a
u0(x)v0(x)dx + u0(a)v(a) ? u0(b)v(b); (1.1.3)
(b) 设u(x) 2 C2[a; b]; 且u(a) = 0; u(b) = 0; 则有
?Z b
a
u00(x)u(x)dx = juj2
1 ; (1.1.4)
(c) 设v(x) 2 C1[a; b]; 且v(a) = v(b) = 0; 则有
kvk1 6
pb ? a
2 jvj1; (1.1.5)
kvk 6 b ? a
p6 jvj1; (1.1.6)
(d) 设v(x) 2 C1[a; b]; 且v(a) = v(b) = 0; 则对任意" > 0 有
kvk2
1 6 "jvj2
1 +
1
4"kvk2; (1.1.7)
(e) 设v(x) 2 C1[a; b]; 则对任意" > 0 有
kvk2
1 6 "jvj2
1 + μ1
"
+
1
b ? a?kvk2: (1.1.8)
证明(a) 由分部积分直接可得(1.1.3).
(b) 由(1.1.3) 易得(1.1.4).
(c) 对于任意的x 2 (a; b); 有
v(x) = Z x
a
v0(s)ds; (1.1.9)
v(x) = ?Z b
x
v0(s)ds: (1.1.10)
将(1.1.9) 和(1.1.10) 两端平方并应用Cauchy-Schwarz 不等式, 得到
v2(x) 6 Z x
a
ds Z x
a
[v0(s)]2ds = (x ? a) Z x
a
[v0(s)]2ds; (1.1.11)
v2(x) 6 Z b
x
ds Z b
x
[v0(s)]2ds = (b ? x) Z b
x
[v0(s)]2ds: (1.1.12)
将(1.1.11) 乘以b ? x, 将(1.1.12) 乘以x ? a, 并将结果相加, 得
(b ? a)v2(x) 6 (x ? a)(b ? x) Z b
a
[v0(s)]2ds = (x ? a)(b ? x)jvj2
1 : (1.1.13)
注意到当x 2 (a; b) 时,
(x ? a)(b ? x) 6
(b ? a)2
4 ;
由(1.1.13) 得
(b ? a)v2(x) 6
(b ? a)2
4 jvj2
1 ; x 2 (a; b):
将上式两边开方, 得
jv(x)j 6
pb ? a
2 jvj1; x 2 (a; b);
易知
kvk1 6
pb ? a
2 jvj1:
对(1.1.13) 式两端关于x 积分, 得
(b ? a) Z b
a
v2(x)dx 6 jvj2
1 Z b
a
(x ? a)(b ? x)dx 6
(b ? a)3
6 jvj2
1;
两边开方得
kvk 6 b ? a
p6 jvj1:
(d) 对任意" > 0; 有
v2(x) = Z x
a
d
ds
[v2(s)]ds = 2 Z x
a
v(s)v0(s)ds;
v2(x) = ?Z b
x
d
ds
[v2(s)]ds = ?2 Z b
x
v(s)v0(s)ds:
将以上两式相加并除以2; 得到
v2(x)6Z x
a jv(s)v0(s)j ds + Z b
x jv(s)v0(s)j ds = Z b
a jv(s)v0(s)j ds
6" Z b
a
[v0(s)]2ds +
1
4" Z b
a
[v(s)]2ds = "jvj2
1 +
1
4"kvk2; a 6 x 6 b:
因而(1.1.7) 成立.
(e) 留给读者作为练习.
引理证毕.
1.1.2 解的先验估计式
我们给出齐次边值问题解的先验估计式.
定理1.1 设v(x) 2 C2[a; b] 为两点边值问题
?v00 + q(x)v = f(x); a < x < b; (1.1.14)
v(a) = 0; v(b) = 0 (1.1.15)
的解, 其中q(x) > 0, 则有
jvj1 6 b ? a
p6 kfk; (1.1.16)
kvk1 6
(b ? a)2
2p6 kfk1: (1.1.17)
证明(a) 将(1.1.14) 的两端同乘以v(x), 并关于x 在(a; b) 上积分, 得
?Z b
a
v00(x)v(x)dx + Z b
a
q(x)v2(x)dx = Z b
a
f(x)v(x)dx: (1.1.18)
注意到(1.1.15), 由引理1.1 有
?Z b
a
v00(x)v(x)dx = jvj2
1:
由q(x) > 0; 有
Z b
a
q(x)v2(x)dx > 0:
此外, 应用Cauchy-Schwarz 不等式, 有
Z b
a
f(x)v(x)dx 6 kfk ¢ kvk:
将以上三式代入(1.1.18), 得
jvj2
1 6 kfk ¢ kvk:
再次应用引理1.1, 有
jvj2
1 6 b ? a
p6 kfk ¢ jvj1;
于是
jvj1 6 b ? a
p6 kfk:
(b) 注意到
kfk 6 pb ? akfk1;
由(1.1.16) 及引理1.1, 得
kvk1 6
pb ? a
2 jvj1 6
pb ? a
2 ¢
b ? a
p6 kfk 6
(b ? a)2
2p6 kfk1:
定理证毕.
称(1.1.16) 和(1.1.17) 为两点边值问题(1.1.14), (1.1.15) 解的先验估计式.
1.2 差分格式
由1.1 节我们知道对于一般的q(x); 要想求出问题(1.1), (1.2) 的精确解的表达式
是很难做到的. 这就促使人们换个思路去寻找近似解(数值解).
首先我们列出几个常用的数值微分公式:
引理1.2 设h > 0 和c 为两个常数,
(a) 如果g(x) 2 C2[c ? h; c + h], 则有
g(c) =
1
2
[g(c ? h) + g(c + h)] ?
h2
2 g00(?0); c ? h < ?0 < c + h; (1.2.1)
(b) 如果g(x) 2 C2[c; c + h], 则有
g0(c) =
1
h
[g(c + h) ? g(c)] ?
h
2 g00(?1); c < ?1 < c + h; (1.2.2)
(c) 如果g(x) 2 C2[c ? h; c], 则有
g0(c) =
1
h
[g(c) ? g(c ? h)] + h
2 g00(?2); c ? h < ?2 < c; (1.2.3)
(d) 如果g(x) 2 C3[c ? h; c + h], 则有
g0(c) =
1
2h
[g (c + h) ? g (c ? h)] ?
h2
6 g000(?3); c ? h < ?3 < c + h; (1.2.4)
(e) 如果g(x) 2 C4[c ? h; c + h], 则有
g00(c) =
1
h2 [g(c + h) ? 2g(c) + g(c ? h)] ?
h2
12 g(4)(?4); c ? h < ?4 < c + h; (1.2.5)
(f) 如果g(x) 2 C3[c; c + h], 则有
g00(c) =
2
h ?g(c + h) ? g(c)
h ? g0(c)??
h
3 g000(?5); c < ?5 < c + h; (1.2.6)
(g) 如果g(x) 2 C6[c ? h; c + h]; 则有[13]
1
12
[g00(c?h)+10g00(c)+g00(c+h)]=
1
h2 [g(c+h)?2g(c)+g(c?h)]
+ h4
240g(6)(?6); ?6 2 (c ? h; c + h): (1.2.7)
证明应用带微分余项的Taylor 公式很容易得到式(1.2.1)?(1.2.6). 下面用带
积分余项的Taylor 公式证明(1.2.7).
由带积分余项的Taylor 公式可得
g(c + h)=g(c) + hg0(c) + h2
2 g00(c) + h3
6 g000(c) + h4
24 g(4)(c)
+ h5
120g(5)(c) + h6
120 Z 1
0
g(6)(c + sh)(1 ? s)5ds;
g(c ? h)=g(c) ? hg0(c) + h2
2 g00(c) ?
h3
6 g000(c) + h4
24 g(4)(c)
?
h5
120g(5)(c) + h6
120 Z 1
0
g(6)(c ? sh)(1 ? s)5ds:
将以上两式相加, 得
1
h2 [g(c + h) ? 2g(c) + g(c ? h)]
=g00(c) + h2
12 g(4)(c) + h4
120 Z 1
0 hg(6)(c + sh) + g(6)(c ? sh)i(1 ? s)5ds: (1.2.8)
类似地, 由带积分余项的Taylor 公式
g00(c + h)=g00(c) + hg(3)(c) + h2
2 g(4)(c) + h3
6 g(5)(c)
+h4
6 Z 1
0
g(6)(c + sh)(1 ? s)3ds;
g00(c ? h)=g00(c) ? hg(3)(c) + h2
2 g(4)(c) ?
h3
6 g(5)(c)
+h4
6 Z 1
0
g(6)(c ? sh)(1 ? s)3ds
可得
1
12
[g00(c + h) + 10g00(c) + g00(c ? h)]
=g00(c) + h2
12 g(4)(c) + h4
72 Z 1
0 hg(6)(c + sh) + g(6)(c ? sh)i(1 ? s)3ds: (1.2.9)

添加互助QQ群

加入互助QQ群,获取书籍相关资源和交流帮助,群号:330354268

试读查询

获取试读电子版,请规范使用。

免责申明: 本站仅提供书籍相关信息展示服务,不提供任何书籍下载服务。请购买正版,支持正版。所有资源信息均来源于网络,如侵权,请点击 侵权处理 ,我们第一时间删除处理。