Main 数值分析

数值分析

0 / 0
How much do you like this book?
What’s the quality of the file?
Download the book for quality assessment
What’s the quality of the downloaded files?
本书是为理工科大学各专业普遍开设的“数值分析”课程编写的教材。其内容包括插值与逼近,数值微分与数值积分,非线性方程与线性方程组的数值解法,矩阵的特征值与特征向量计算,常微分方程数值解法。
Year:
2000
Publisher:
清华大学出版社
Language:
chinese
ISBN 10:
7302045615
File:
PDF, 6.40 MB
Download (pdf, 6.40 MB)
0 comments
 

You can write a book review and share your experiences. Other readers will always be interested in your opinion of the books you've read. Whether you've loved the book or not, if you give your honest and detailed thoughts then people will find new books that are right for them.
数

值

分

析

第4版

李庆扬

王能超

易大义

清华大学出版社
施普林格出版社

编

( 京 ) 新登字 158 号
内

容

提

要

本书是为理工科大 学各 专业普 遍开 设的“数值 分析”课程 编 写的 教材 .
其内容包括插值与逼近 , 数值微分与数 值积分 , 非线 性方程 与线性 方程组 的
数值解法 , 矩阵的特征值与 特征向 量计算 , 常微 分方程 数值 解法 . 每 章附 有
习题并在书末有部分答案 , 书末还附有计算实习题和 并行算法简 介 . 全 书阐
述严谨 , 脉络分明 , 深入浅出 , 便于教学 .
本书也可作为理工科大学各专业研究生学位课程的教材 , 并可供从事科
学计算的科技工作者参考 .

书

名 : 数值分析 (第 4 版 )

作

者 : 李庆扬

王能超

出版者 : 清华大学出版社

易大义

编

施普林格出版社

( 北京清华大学学研大厦 , 邮编 100084)
ht tp :/ / w ww .tup .tsinghua .edu .cn
印刷者 : 北京振华印刷厂
发行者 : 新华书店总店北京发行所
开

本 : 850×1168 1/ 32

印张 : 13 .125

版

次 : 2001 年 8 月第 4 版

书

号 : ISBN 7-302-04561-5/ O·259

印

数 : 0001~5000

定

价 : 16 .00 元

字数 : 328 千字

2001 年 8 月第 1 次印刷

第四版前言
本书由华中理工大学出版社出版至今已 20 年 , 重新修订的第
三版也已 15 年了 , 印数 已 近 20 万册 , 1988 年 获 国家 教 委优 秀 教
材二等奖 , 表明本教材在国内是受欢迎的 , 仍有 存在的价 值 . 为 使
本书适应新世纪的要求 , 我们 认为对 本书 重新 进行修 改是 完全 必
要的 . 这次修改除保 留本 书原 有风 格 和基 本内 容外 , 修改 的原 则
和内容有以下几点 :
(1 ) 随着计算机 技术 的发 展和 普 及 , 数值 分析 的 原理 与方 法
在各学科中的应用越 来越 多 . 因此 , 我们 将原 来主 要 面向 应用 数
学专业扩大为面 向 理工 科 大学 中 对 数学 要 求较 高 的专 业 的 本 科
生 , 同 时也兼顾 到一些院 校为各 专业研究 生开设 的“ 数值分 析”学
位课程 .
(2 ) 由于科学及 计算 机的 发展 , 计算 机算 法语 言 的多 样化 及
数学软件的 普及 , 要求“数 值分析”课 程更强 调算法原 理及理论 分
析 , 而对具体算法及编程已有现成数学软件 , 如 Ma tlab 等 , 方便了
读者使用 . 因此 , 我们对某些算法做了精简 , 另外也删 去了一些 较
少使用的算法 , 增加一 些实际 应用 中较重 要的 内容 , 如 帕德 逼近 ,
解线性方程组的 QR 方 法及超 定方 程组 最小二 乘解 , 非线 性方 程
组求解的牛顿法 , 解 刚性 常微 分方 程 的基 本概 念等 . 考虑 到很 多
高校配备了大型多处理机 , 具备了进行并行计算的条件 , 故增加了
“并行算法及其基本概 念”的附 录 , 便于 需要进 行并 行计算 的读 者
对此有初步的了解 .
(3 ) 学习本课程仍应加强上机计算实 习 , 为 此 , 新 版增加了 计
算实习的题目 , 便于教学 , 教师可根据实际条件让学生选做其中的

·Ⅱ·

第四版前言

3~5 题 . 由于计算机算法语言 发展 很快 , 故不 规定 用哪种 算法 语
言 , 目前我们向读者推荐的是集成化软件包 Matlab .
(4 ) 统一协调 , 改 正 错误 . 本书 第 三版 存 在 一些 不 协调 之 处
和各种错误 . 为保证新版质量 , 由李庆扬负责对 全书整理 加工 , 统
一规格并改正旧版中的各种错误 .
作者将新版“数值分 析”交清 华大 学出版 社重 新出 版 , 出版 社
委派曾多次使用本书的计 算数 学博士 刘颖 负责编 辑加 工 , 他不 但
改正了本书的一些错误并 对本 书修改 提出 了宝贵 意见 , 提 高了 本
书新版的质量 , 出版社还 在较 短时间 使本 书新 版在开 学前 与读 者
见面 , 我们对清华大学出版社及刘颖博士表示衷心感谢 .

作

者

2001 年 5 月

第三版说明
本书自 1981 年问世以来 , 为 许多 工科 院校 所采 用 , 已 先后 出
过两版 , 总发行量达四万余 册 . 1985 年 5 月召 开的 工科院 校计 算
数学教材评议会 ( 南北会议 ) 确认 本书“ 基本符 合应 用数学 专业 的
要求 , 可作为数 值分 析 课 程的 教 材 , 建 议作 者 加;  以 修改 后 重 新 出
版”. 我们遵照这次 会议 的建 议 和要 求 再 次进 行 了修 订 . 新 书 在
出版质量上有了显著的提高 . 编者诚挚地感 谢华中工 学院出版 社
的同志们 , 为本书的重版付出了辛勤的劳动 .

编

者

1986 年 12 月

第二版前言
1980 年 7 月在大连召开的工科 院校“ 应用数 学专业教 学学 术
会议”, 根据教育部直属工科院校“应用数学专业教学计划”制定了
“数值分析”课大纲 , 并 决定 由清华 大学、华 中工学 院、浙江 大学 合
编试用教材 . 本书就是根据这次会 议的决 定编 写的 . 全书 共分 九
章 , 第一、二、三章由李庆 扬编 写 , 第四、五、六章 由王 能 超编 写 , 第
七、八、九章由易大义编写 .
1981 年元月在杭 州召 开的 工科 院 校计 算 数 学第 一 次教 材 审
稿会 , 对本教材初 稿进 行了 审查 , 1982 年元 月 在 上海 交 大召 开 的
第二次计算数学 教 材审 稿 会 , 又 对本 书 第 一版 提 出 了 修 改意 见 .
会议考虑到 理工科 院校各专 业普遍开 设“ 数值 分析”课的 情况 , 重
新修订了大纲 ( 72 学 时 ) . 本 书 第二 版 就是 根 据 新大 纲 的要 求 修
改的 , 它保持了 第一 版 的 主要 内 容及 特 点 , 但 选 材 更注 意 基 本 要
求 , 减少了部分内容 , 增加了部分习题答案 . 本书可作 为理工科 院
校应用数学、力学、物理、计算机 软件 等专业 大学 生及 其他 专业 研
究生“数值分析”( 或“计 算 方法”) 课 的教 材 , 也可 供 学习“计 算 方
法”的科技工作者参考 .
我们对参加两次审稿会 的同志 表示 衷心感 谢 , 他 们以 认真 负
责的态度对本书提出了许 多宝 贵意见 , 对 提高 教材质 量起 了很 大
作用 .

编

者

1982 年 7 月

目
第1章

录

绪论 …………………………………………………… ( 1)

1 .1

数值分析研究对象与特点 ………………………… ( 1)

1 .2

数值计算的误差 …………………………………… ( 3)

1 .3

1 .2 .1

误差来源与分类( 3)

1 .2 .2

误差与有效数字( 4)

1 .2 .3

数值运算的误差估计 ( 8)

误差定性分析与避免误差危害 …………………… (10)
1 .3 .1

病态问题与条件数( 11)

1 .3 .2

算法的数值稳定性( 12)

1 .3 .3

避免误差危害的若干原则 (14)

评注 ……………………………………………………… (18)
习题 ……………………………………………………… (18)
第2章

插值法 ……………………………………………… (21)

2 .1

引言 ………………………………………………… (21)

2 .2

拉格朗日插值 ……………………………………… (23)

2 .3

2 .4

2 .2 .1

线性插值与抛物插值 ( 23)

2 .2 .2

拉格朗日插值多项式 ( 26)

2 .2 .3

插值余项与误差估计 ( 28)

均差与牛顿插值公式 ……………………………… (31)
2 .3 .1

均差及其性质( 31 )

2 .3 .2

牛顿插值公式( 33 )

差分与等距节点插值 ……………………………… (35)
2 .4 .1

差分及其性质( 35 )

·Ⅷ·

目
2 .4 .2

录

等距节点插值公式( 38)

2 .5

埃尔米特插值 ……………………………………… (41)

2 .6

分段低次插值 ……………………………………… (45)

2 .7

2 .6 .1

高次插值的病态性质 ( 45)

2 .6 .2

分段线性插值( 47 )

2 .6 .3

分段三次埃尔米特插值 (48)

三次样条插值 ……………………………………… (51)
2 .7 .1

三次样条函数( 51 )

2 .7 .2

样条插值函数的建立 ( 52)

2 .7 .3

误差界与收敛性( 57)

评注 ……………………………………………………… (58)
习题 ……………………………………………………… (58)
第3章
3 .1

3 .2

3 .3

3 .4

3 .5

函数逼近与曲线拟合 ……………………………… (61)
函数逼近的基本概念 ……………………………… (61)
3 .1 .1

函数逼近与函数空间 ( 61)

3 .1 .2

范数与赋范线性空间 ( 64)

3 .1 .3

内积与内积空间( 65)

正交多项式 ………………………………………… (69)
3 .2 .1

正交函数族与正交多项式 (69)

3 .2 .2

勒让德多项式( 71 )

3 .2 .3

切比雪夫多项式( 74)

3 .2 .4

其他常用的正交多项式 (77)

最佳一致逼近多项式 ……………………………… (78)
3 .3 .1

基本概念及其理论( 78)

3 .3 .2

最佳一次逼近多项式 ( 81)

最佳平方逼近 ……………………………………… (83)
3 .4 .1

最佳平方逼近及其计算 (83)

3 .4 .2

用正交函数族作最佳平方逼近 (87)

曲线拟合的最小二乘法 …………………………… (90)

目

3 .6

3 .7

录

3 .5 .1

最小二乘法及其计算 ( 90)

3 .5 .2

用正交多项式做最小二乘拟合 (96)

·Ⅸ·

最佳平方三角逼近与快速傅里叶变换 …………… (99)
3 .6 .1

最佳平方三角逼近与三角插值 (99)

3 .6 .2

快速傅氏变换( F FT ) (102)

有理逼近 ………………………………………… ( 108)
3 .7 .1

有理逼近与连分式( 108 )

3 .7 .2

帕德逼近 (110)

评注 ……………………………………………………… ( 114)
习题 ……………………………………………………… ( 115)
第4章
4 .1

4 .2

4 .3

4 .4

4 .5

数值积分与数值微分 ……………………………… ( 118)
引言 ……………………………………………… ( 118)
4 .1 .1

数值求积的基本思想 ( 118 )

4 .1 .2

代数精度的概念( 120 )

4 .1 .3

插值型的求积公式( 121 )

4 .1 .4

求积公式的收敛性与稳定性 (122)

牛顿-柯特斯公式 ………………………………… ( 123)
4 .2 .1

柯特斯系数( 123)

4 .2 .2

偶阶求积公式的代数精度 (125 )

4 .2 .3

几种低阶求积公式的余项 (126 )

复化求积公式 …………………………………… ( 127)
4 .3 .1

复化梯形公式( 128)

4 .3 .2

复化辛普森求积公式 ( 129 )

龙贝格求积公式 ………………………………… ( 131)
4 .4 .1

梯形法的递推化( 131 )

4 .4 .2

龙贝格算法( 133)

4 .4 .3

理查森外推加速法( 135 )

高斯求积公式 …………………………………… ( 139)
4 .5 .1

一般理论 (139)

·Ⅹ·

4 .6

目

录

4 .5 .2

高斯-勒让德求积公式( 144)

4 .5 .3

高斯-切比雪夫求积公式( 146)

数值微分 ………………………………………… ( 148)
4 .6 .1

中点方法与误差分析 ( 148 )

4 .6 .2

插值型的求导公式( 150 )

4 .6 .3

利用数值积分求导( 153 )

4 .6 .4

三次样条求导( 155)

4 .6 .5

数值微分的外推算法 ( 156 )

评注 ……………………………………………………… ( 157)
习题 ……………………………………………………… ( 158)
第5章
5 .1

5 .2

5 .3

5 .4

解线性方程组的直接方法 ………………………… ( 161)
引言与预备知识 ………………………………… ( 161)
5 .1 .1

引言 (161)

5 .1 .2

向量和矩阵( 162)

5 .1 .3

特殊矩阵 (163)

高斯消去法 ……………………………………… ( 165)
5 .2 .1

高斯消去法( 166)

5 .2 .2

矩阵的三角分解( 172 )

高斯主元素消去法 ……………………………… ( 174)
5 .3 .1

列主元素消去法( 176 )

5 .3 .2

高斯-若当消去法 (180)

矩阵三角分解法 ………………………………… ( 183)
5 .4 .1

直接三角分解法( 183 )

5 .4 .2

平方根法 (188)

5 .4 .3

追赶法 (193)

5 .5

向量和矩阵的范数 ……………………………… ( 196)

5 .6

误差分析 ………………………………………… ( 205)
5 .6 .1

矩阵的条件数( 205)

5 .6 .2

迭代改善法( 212)

目

5 .7

录

·Ⅺ·

矩阵的正交三角化及应用 ……………………… ( 214)
5 .7 .1

初等反射阵( 215)

5 .7 .2

平面旋转矩阵( 218)

5 .7 .3

矩阵的 QR 分解( 220)

5 .7 .4

求解超定方程组( 225 )

评注 ……………………………………………………… ( 228)
习题 ……………………………………………………… ( 229)
第6章

解线性方程组的迭代法 …………………………… ( 233)

6 .1

引言 ……………………………………………… ( 233)

6 .2

基本迭代法 ……………………………………… ( 236)

6 .3

6 .4

6 .2 .1

雅可比迭代法( 237)

6 .2 .2

高斯-塞德尔迭代法 (238)

6 .2 .3

解大型稀疏线性方程组的逐次超松弛迭代法( 240 )

迭代法的收敛性 ………………………………… ( 243)
6 .3 .1

一阶定常迭代法的基本定理 (243)

6 .3 .2

关于解某些特殊方程组迭代法的收敛性( 249)

分块迭代法 ……………………………………… ( 256)

评注 ……………………………………………………… ( 259)
习题 ……………………………………………………… ( 259)
第7章
7 .1

7 .2

非线性方程求根 …………………………………… ( 261)
方程求根与二分法 ……………………………… ( 261)
7 .1 .1

引言 (261)

7 .1 .2

二分法 (262)

迭代法及其收敛性 ……………………………… ( 265)
7 .2 .1

不动点迭代法( 265)

7 .2 .2

不动点的存在性与迭代法的收敛性 (267)

7 .2 .3

局部收敛性与收敛阶 ( 269 )

·Ⅻ·

7 .3

7 .4

7 .5

7 .6

目

录

迭代收敛的加速方法 …………………………… ( 272)
7 .3 .1

埃特金加速收敛方法 ( 272 )

7 .3 .2

斯蒂芬森迭代法( 273 )

牛顿法 …………………………………………… ( 276)
7 .4 .1

牛顿法及其收敛性( 276 )

7 .4 .2

牛顿法应用举例( 278 )

7 .4 .3

简化牛顿法与牛顿下山法 (279 )

7 .4 .4

重根情形 (282)

弦截法与抛物线法 ……………………………… ( 283)
7 .5 .1

弦截法 (283)

7 .5 .2

抛物线法 (285)

解非线性方程组的牛顿迭代法 ………………… ( 287)

评注 ……………………………………………………… ( 289)
习题 ……………………………………………………… ( 290)
第8章

矩阵特征值问题计算 ……………………………… ( 292)

8 .1

引言 ……………………………………………… ( 292)

8 .2

幂法及反幂法 …………………………………… ( 299)

8 .3

8 .4

8 .2 .1

幂法 (299)

8 .2 .2

加速方法 (304)

8 .2 .3

反幂法 (308)

豪斯霍尔德方法 ………………………………… ( 312)
8 .3 .1

引言 (312)

8 .3 .2

用正交相似变换约化一般矩阵为上海森伯格阵( 313 )

8 .3 .3

用正交相似变换约化对称阵为对称三对角阵( 317 )

QR 方法 ………………………………………… ( 319)
8 .4 .1

QR 算法 (319)

8 .4 .2

带原点位移的 QR 方法( 322 )

8 .4 .3

用单步 QR 方法计算上海森伯格阵特征值 (325)

目
8 .4 .4 *

录

·

·

双步 QR 方法 (隐式 Q R 方法 ) ( 329 )

评注 ……………………………………………………… ( 333)
习题 ……………………………………………………… ( 333)
第9章

常微分方程初值问题数值解法 …………………… ( 336)

9 .1

引言 ……………………………………………… ( 336)

9 .2

简单的数值方法与基本概念 …………………… ( 337)

9 .3

9 .4

9 .5

9 .6

9 .2 .1

欧拉法与后退欧拉法 ( 337 )

9 .2 .2

梯形方法 (340)

9 .2 .3

单步法的局部截断误差与阶 (341)

9 .2 .4

改进的欧拉公式( 343 )

龙格-库塔方法 …………………………………… ( 344)
9 .3 .1

显式龙格-库塔法的一般形式 ( 344 )

9 .3 .2

二阶显式 R-K 方法 (346)

9 .3 .3

三阶与四阶显式 R-K 方法( 348 )

9 .3 .4

变步长的龙格-库塔方法( 351)

单步法的收敛性与稳定性 ……………………… ( 352)
9 .4 .1

收敛性与相容性( 352 )

9 .4 .2

绝对稳定性与绝对稳定域 (355 )

线性多步法 ……………………………………… ( 360)
9 .5 .1

线性多步法的一般公式 (360 )

9 .5 .2

阿当姆斯显式与隐式公式 (362 )

9 .5 .3

米尔尼方法与辛普森方法 (366 )

9 .5 .4

汉明方法 (367)

9 .5 .5

预测-校正方法 (368)

9 .5 .6

构造多步法公式的注记和例 (371)

方程组和高阶方程 ……………………………… ( 373)
9 .6 .1

一阶方程组( 373)

9 .6 .2

化高阶方程为一阶方程组 (376 )

9 .6 .3

刚性方程组( 378)

·

·

目

录

评注 ……………………………………………………… ( 380)
习题 ……………………………………………………… ( 381)
计算实习题 …………………………………………………… ( 383)
附录

并行算法及其基本概念 ……………………………… ( 388)

参考文献 ……………………………………………………… ( 398)
部分习题答案 ………………………………………………… ( 400)

第1章
1 .1

绪

论

数值分析研究对象与特点

数值分析是计算数学 的一 个主要 部分 , 计 算数学 是数 学科 学
的一个分支 , 它研究用计 算机 求解各 种数 学问 题的数 值计 算方 法
及其理论与软件实现 . 为 了具 体说 明 数值 分析 的研 究对 象 , 我 们
考察用计算机解决科学计算问题时经历的几个过程 :
实际问题 → 数学模型 → 数值计算方法 → 程序设计 →
→ 上机计算求出结果

由实际问题的提出到上机求得问题解答的整个过程都可看作
是应用数学的范畴 . 如果 细分 的话 , 由实 际问 题应 用 有关 科学 知
识和数学理论建立数学模型这一过程 , 通常作为应用数学的任务 .
而根据数学模型提出求解的数值计算方法直到编出程序上机算出
结果 , 这一过程则是计 算数学 的任 务 , 也是数 值分 析研 究的 对象 .
数值分析的内容包括函数的数值逼近、数值微分与数值积分、非线
性方程数值解、数值线 性代数、常 微和 偏微数 值解 等 , 它们 都是 以
数学问题为研究对象的 , 只是 它不像 纯数 学那 样只研 究数 学本 身
的理论 , 而是把理论与计算紧密结合 , 着重研究数学问题的数值方
法及其理论 .
数值分析也称计算方法 , 但不 应片 面地 理解为 各 种数 值方 法
的简单罗列和堆积 , 同 数学分 析一 样 , 它也是 一门 内容 丰富 , 研 究
方法深刻 , 有自身理论体系的课程 , 既有纯数学高度抽象性与严密
科学性的特点 , 又有应用 的广 泛性与 实际 试验 的高度 技术 性的 特

· 2·

第 1章

绪

论

点 , 是一门与计算机 使用 密切 结合 的 实用 性很 强的 数学 课 程 . 为
了说明它与纯数学课的不 同 , 例如 考虑线 性方 程组 数值解 , 在“ 线
性代数”课程中只介绍解的存在唯一性及有关理论和精确解法 , 用
这些理论和方法还不能在 计算 机上解 上百 个未知 数的 方程 组 , 更
不用说求解十几万个未知 数的 方程组 了 , 要求 解这类 问题 还应 根
据方程特点 , 研究适合 计算机 使用 的 , 满足精 度要 求 , 计算 时间 省
的有效算法及其相关的理论 . 在实现这些算 法时往往 还要根据 计
算机的容量、字长、速度等指 标 , 研究 具体的 求解 步骤 和程 序设 计
技巧 . 有的方法在理论上虽不够严格 , 但通过实 际计算、对比分 析
等手段 , 证明是行之有效的方法 , 也应采用 . 这些就是 数值分析 具
有的特点 , 概括起来有四点 :
第一 , 面向计算机 , 要根据计算机特点提供切实可行的有效算
法 . 即算法只能包括加、减、乘、除运算和逻辑运 算 , 这 些运算是 计
算机能直接处理的运算 .
第二 , 有可靠的理论分 析 , 能任 意逼近 并达 到精 度 要求 , 对 近
似算法要保证收敛性 和数 值稳 定性 , 还要 对误 差进 行分 析 . 这 些
都建立在相应数学理论的基础上 .
第三 , 要有好的计算复 杂性 , 时 间复杂 性好 是指 节 省时 间 , 空
间复杂性好是指节省存储量 , 这也是建立算法要研究的问题 , 它关
系到算法能否在计算机上实现 .
第四 , 要有数值实验 , 即任何一个算法除了从理论上要满足上
述三点外 , 还要通过数值试验证明是行之有效的 .
根据“数值分析”课程的 特点 , 学 习时我 们首 先要 注意 掌握 方
法的基本原理和思想 , 要 注意 方法处 理的 技巧 及其与 计算 机的 结
合 , 要重视误差分析、收敛性及稳定性的基本理论 ; 其次 , 要通过例
子 , 学习使用各种数值 方法解 决实 际计算 问题 ; 最 后 , 为了 掌握 本
课的内容 , 还应做一 定数 量的 理论 分 析与 计算 练习 . 由于 本课 内
容包括了微积分、代数、常微 分方 程的 数值方 法 , 读者 必须 掌握 这

1 .2

数值计算的误差

·3·

几门课的基本内容才能学好这门课程 .

1 .2
1 .2 .1

数值计算的误差

误差来源与分类

用计算机解决科学计 算问 题首先 要建 立数学 模型 , 它 是对 被
描述的实际问题进行抽象、简化而得到的 , 因而 是近似的 . 我们 把
数学模型与实际问题之间出现的这种误差称为 模型误差 . 只有 实
际问题提法正确 , 建立 数学模 型时 又抽象、简 化得 合理 , 才 能得 到
好的结果 . 由于这种 误差 难于 用数 量 表示 , 通 常都 假 定数 学模 型
是合理的 , 这种误差可忽略不计 , 在“数值分 析”中不予讨 论 . 在 数
学模型中往往还有一些根 据观 测得 到的物 理量 , 如 温度、长 度、电
压等等 , 这些参量显 然也 包含 误差 . 这种 由观 测产 生 的误 差称 为
观测误差 , 在“ 数值分析”中也 不讨 论 这种 误差 . 数 值 分析 只研 究
用数值方法求解数学模型产生的误差 .
当数学模型不能得到精 确解时 , 通 常要 用数值 方 法求 它的 近
似解 , 其近似解 与精 确 解之 间 的误 差 称为 截 断 误 差 或 方 法误 差 .
例如 , 函数 f ( x ) 用泰勒 ( Taylor ) 多项式
f′(0 )
f " (0 ) 2
f ( n ) ( 0) n
Pn ( x ) = f ( 0) +
x+
x +…+
x
1!
2!
n!
近似代替 , 则数值方法的截断误差是
Rn ( x) = f ( x ) - Pn ( x ) =

f ( n+ 1 ) (ξ) n+ 1
x ,ξ在 0 与 x 之间 .
( n + 1) !

有了求解数学问题的计算公式以后 , 用计算机做数值计算时 ,
由于计算机的字长有限 , 原始数据在计算机上表示会产生误差 , 计
算过程 又可 能 产生 新 的 误差 , 这种 误 差 称为 舍 入 误 差 . 例 如 , 用
3. 14159 近似代替 π, 产生的误差
R = π - 3. 14159 = 0. 0000026…

· 4·

第 1章

绪

论

就是舍入误差 .
此外由原始数据或机器中的十进制数转化为二进制数产生的
初始误差对数值计算也将 造成 影响 , 分析 初始 数据的 误差 通常 也
归结为舍入误差 .
研究计算结果的误差是 否满足 精度 要求就 是误 差 估计 问题 ,
本书主要讨论算法的截断 误差 与舍入 误差 , 而 截断误 差将 结合 具
体算法讨论 . 为分析 数值 运算 的舍 入 误差 , 先 要对 误 差基 本概 念
做简单介绍 .
1 .2 .2

误差与有效数字

定义 1

设 x 为准确值 , x 为 x 的一 个近似 值 , 称 e = x

*

*

*

-

x 为近似值的绝对误差 , 简称误差 .
*

注意这样定义的误差 e 可正可负 , 当绝 对误差为 正时近似 值
偏大 , 叫强近似值 ; 当绝对误差为负时近似值偏小 , 叫弱近似值 .
*

通常我们不能算出 准 确值 x, 也 不 能算 出 误差 e 的 准 确值 ,
只能根据测量工具或计算情况估计出误差的绝对值不超过某正数
*

*

ε , 也就是误差绝对值的一个上界 .ε 叫做近似值的误差限 , 它 总
是正数 . 例如 , 用毫米刻度的米尺测量一 长度 x, 读 出和该 长度 接
*

*

近的 刻 度 x , x 是 x 的 近 似 值 , 它 的 误 差 限 是 0. 5mm , 于 是
| x * - x | ≤0. 5mm; 如读 出 的 长 度 为 765mm , 则 有 | 765 - x | ≤
0. 5 . 从这个不等式我们仍不知道准 确的 x 是 多少 , 但 知道 764. 5
≤ x≤765. 5 , 说明 x 在区间[ 764. 5 , 765. 5] 内 .
*

- x | ≤ε , 即

*

-ε ≤ x≤ x

对于一般情形 | x
x

*

*

*

*

+ε ,

这个不等式有时也表示为
*

*

x = x ±ε .
误差限的大小还 不能 完全 表示 近似 值 的好 坏 . 例如 , 有两 个
量 x = 10± 1 , y = 1000±5 , 则

数值计算的误差

1 .2

·5·

x * = 10 , εx* = 1; y * = 1000 , εy* = 5 .
*

*

*

*

虽然εy 比εx 大 4 倍 , 但 εy / y =

5
*
*
1
= 0. 5 % 比 εx / x =
=
1000
10

*

*

10 % 要小得多 , 这说明 y 近似 y 的程度 比 x 近 似 x 的程 度要 好
得多 . 所以 , 除考虑 误 差 的 大 小外 , 还 应 考虑 准 确 值 x 本 身 的 大
*

小 . 我们把近似值的误差 e 与准确值 x 的比值
e*
x* - x
=
x
x
*

*

称为近似值 x 的相对误差 , 记作 er .
在实际计算中 , 由于真值 x 总是不知道的 , 通常取
e*
x* - x
= * =
x
x*

*
r

e

e*
作为 x 的相对误差 , 条件是 e = * 较小 , 此时
x
*

*
r

*

*

*

*

*

*

2

*

2

e - e = e ( x - x) =
(e )
= ( e / *x ) *
*
*
*
*
*
x
x
x x
x (x - e )
1 - (e / x )
是 er* 的平方项级 , 故可忽略不计 .
相对误差也可正可负 , 它的绝对值上界叫做相对误差限 , 记作
ε*
ε ,即ε =
.
| x* |
*
r

*
r

*

*

εx
εy
根据定义 , 上例中 * = 10 % 与 * = 0. 5 % 分别为 x 与 y
|x |
|y |
*

*

的相对误差限 , 可见 y 近似 y 的程度比 x 近似 x 的程度好 .
当准确值 x 有多位数时 , 常常按四舍 五入的 原则 得到 x 的 前
*

几位近似值 x , 例如
x = π = 3. 14159265 …
*

*

取3位

x3 = 3. 14 , ε3 ≤ 0. 002 ,

取5位

x5 = 3. 1416 , ε5 ≤ 0. 000008 ,

*

*

它们的误差都不超过末位数字的半个单位 , 即

· 6·

第 1章

| π - 3. 14 | ≤
定义 2

绪

1
- 2
× 10 ,
2

论

| π - 3. 1416 | ≤

1
-4
× 10 .
2

*

若近似值 x 的误差限是某 一位的半 个单位 , 该位 到

*

*

x 的第一位非零数字共有 n 位 , 就说 x 有 n 位有效数字 . 它可表
示为
x

*

m

=± 10 × ( a1 + a2 × 10

- 1

+ … + an × 10

- ( n- 1)

) , ( 2 .1)

其中 ai ( i = 1 , … , n) 是 0 到 9 中的一个数字 , a1 ≠0 , m 为整数 , 且
| x - x * | ≤ 1 × 10 m - n+ 1 .
2

( 2 .2)

如取 x * = 3. 14 作 π 的 近 似 值 , x * 就 有 3 位 有 效 数 字 , 取 x * =
*

3. 1416 ≈π, x 就有 5 位有效数字 .
例1

按四舍五入原则写出下列各 数具有 5 位有效 数字的 近

似数 : 187. 9325 , 0. 03785551 , 8. 000033 , 2. 7182818 .
按定义 , 上述各数具有 5 位有效数字的近似数分别是
187. 93 , 0. 037856 , 8. 0000 , 2. 7183 .
注意 x = 8. 000033 的 5 位 有效 数字近 似数 是 8. 0000 而不 是
8 , 因为 8 只有 1 位有效数字 .
例2

2

2

重 力常数 g , 如果以 m/ s 为单 位 , g≈ 9. 80m/ s ; 若 以

2

2

km/ s 为单位 , g ≈ 0. 00980km/ s , 它们 都 具 有 3 位 有 效数 字 , 因
为按第一种写法
| g - 9. 80 | ≤

1
- 2
× 10 ,
2

据 (2 .1 ) , 这里 m = 0 , n = 3; 按第二种写法
| g - 0. 00980 | ≤

1
-5
× 10 ,
2

这里 m = - 3 , n = 3 . 它们虽然写法不同 , 但都具 有 3 位有 效数字 .
至于绝对误差限 , 由于单位不同结果也不同 , ε1* =
*

ε2 =

1
- 5
2
×10 km/ s , 而相对误差都是
2

1
×10 - 2 m/ s2 ,
2

1 .2

数值计算的误差

·7·

εr* = 0. 005/ 9. 80 = 0. 000005/ 0. 00980 .
注意相对误差与相对 误差 限是无 量纲 的 , 而绝对 误差 与误 差
限是有量纲的 .
例 2 说明有效 位数与小数点后有多 少位数无关 . 然 而, 从
*

(2 .2 ) 可得到具有 n 位有效数字的近似数 x , 其绝对误差限为
ε* = 1 × 10 m - n + 1 ,
2
在 m 相同的情况下 , n 越大则 10

m - n+ 1

越小 , 故有效位数越多 , 绝对

误差限越小 .
至于有效数字与相对误差限的关系 , 有
*

定理 1
x

*

设近似数 x 表示为
m

=± 10 × ( a1 + a2 × 10

-1

+ … + al × 10

- (l-1)

),
( 2 .1)′

其中 ai ( i = 1 , 2 , … , l) 是 0 到 9 中的 一个 数字 , a1 ≠ 0 , m 为 整数 .
*

若 x 具有 n 位有效数字 , 则其相对误差限为
εr* ≤ 1 × 10 - ( n - 1 ) ;
2 a1
反之 , 若 x * 的相对误差限 εr* ≤

1
× 10 2 ( a1 + 1 )

( n - 1)

, 则 x * 至少 具

有 n 位有效数字 .
证明

由 (2 .1 )′可得
m

a1 × 10 ≤ | x

*

m

| < ( a1 + 1 ) × 10 ,

*

当 x 有 n 位有效数字时
*

m - n+ 1

ε = | x - * x | ≤ 0. 5 × 10 m
| x |
a1 × 10
*
r

= 1 × 10 - n+ 1 ;
2 a1

反之 , 由
| x - x
=| x

*

*

|
*

m

| εr < ( a1 + 1) × 10 ×

1
- n+ 1
× 10
2 ( a1 + 1)

· 8·

第 1章

绪

论

= 0. 5 × 10 m - n+ 1 ,
*

故 x 至少有 n 位有效数字 . 定理证完 .
定理说明 , 有效位数越多 , 相对误差限越小 .
例3

要使

20的近似值的相对误差限小于 0. 1 % , 要取几 位

有效数字 ?
设取 n 位有效数字 , 由定理 1 ,εr* ≤

1
×10 2 a1

n+ 1

. 由于

20 =

4. 4… , 知 a1 = 4 , 故只要取 n = 4 , 就有
*

εr ≤ 0. 125 × 10
即只要对

- 3

< 10

- 3

= 0. 1 % ,

20 的 近 似 值 取 4 位 有 效 数 字 , 其 相 对 误 差 限 就 小 于
20 ≈4. 472 .

0. 1 % .此时由开方表得
1 .2 .3

数值运算的误差估计
*

*

*

*

两个近似数 x1 与 x2 , 其误差限分别为ε( x1 ) 及ε( x2 ) , 它们
进行加、减、乘、除运算得到的误差限分别为
ε( x1* ± x2* ) = ε( x1* ) +ε( x2* ) ;
*

*

*

*

*

*

ε( x1 x2 ) ≈ | x1 | ε( x2 ) + | x2 | ε( x1 ) ;
| x1* | ε( x2* ) + | x2* | ε( x1* )
ε( x / x ) ≈
| x2* | 2
*
1

*
2

*

( x2 ≠ 0) .

更一般的情况是 , 当自变量有误差时计算函数值也产生误差 ,
其误差限可利用函数的 泰勒 展 开式 进行 估计 . 设 f ( x ) 是 一元 函
数 , x 的 近 似 值 为 x * , 以 f ( x* ) 近 似 f ( x ) , 其 误 差 界 记 作
*

ε( f ( x ) ) , 可用泰勒展开
*

*

*

f ( x ) - f ( x ) = f′( x ) ( x - x ) +

f″(ξ)
*
2
(x - x ) ,
2
*

ξ介于 x , x 之间 ,
取绝对值得
*

*

*

| f ( x ) - f ( x ) | ≤ | f′( x ) | ε( x ) +

| f″(ξ) | 2
*
ε( x ) .
2

数值计算的误差

1 .2

·9·

假定 f′( x * ) 与 f″( x * ) 的 比值 不太 大 , 可 忽略 ε( x * ) 的高 阶
项 , 于是可得计算函数的误差限
*

*

*

ε( f ( x ) ) ≈ | f′( x ) | ε( x ) .
当 f 为多元函数时 , 例如计算 A = f ( x1 , … , x n ) . 如果 x1 , … ,
*

*

xn 的近似值为 x1 , … , xn , 则 A 的近似值为 A

*

*

*

= f ( x1 , … , xn ) ,

于是由泰勒展开得函数值 A * 的误差 e( A * ) 为
e( A * ) = A * - A = f ( x1* , … , xn* ) - f ( x1 , … , xn )
n

≈

f ( x1* , … , xn* )
*
( x k - xk )
xk

∑
k=1
n

=

*

f
xk

∑
k=1

ek* ,

于是误差限
n

ε( A ) ≈

*

f
xk

∑

*

k= 1

ε( xk* ) ;

( 2 .3)

*

而 A 的相对误差限为
ε( A * )
ε = εr ( A ) =
≈
| A* |
*
r

*

例4

n

∑
k= 1

已测 得某场 地长 l 的 值为 l

*

f
xk
*

*

ε( xk )
. ( 2 .4)
| A* |

= 110m , 宽 d 的 值为 d

*

= 80 m , 已知 | l - l* | ≤ 0. 2m , | d - d * | ≤ 0. 1m . 试求 面 积 s = l d
的绝对误差限与相对误差限 .
解

因 s = l d,

s
= d,
l

*

ε( s ) ≈

s
l

s
= l, 由 (2 .3 ) 知
d

*

s
d

*

ε( l ) +

*

其中
s
l
而

*
*

= d = 80m ,
ε( l* ) = 0. 2m ,

于是绝对误差限

s
d

*
*

= l = 110m ,

ε( d * ) = 0. 1m ,

*

ε( d ) ,

· 10 ·

第 1章

绪

论

ε( s* ) ≈ 80× (0. 2 ) + 110× (0. 1 ) = 27( m2 ) ;
相对误差限
*

*

ε( s ) ε( s )
27
εr ( s ) =
= * * ≈
= 0. 31 % .
*
8800
|s |
l d
*

1 .3

误差定性分析与避免误差危害

数值运算中的误差分析 是个很 重要 而复杂 的问 题 , 上 节讨 论
了不精确数据运算结果的误差限 , 它只适用于简单情形 , 然而一个
工程或科学计算问题往往要运算千万次 , 由于每步运算都有误差 ,
如果每步都做误差分析是不可能的 , 也不科学 , 因为误差积累有正
有负 , 绝对值有大有小 , 都按最坏情况估计误差限得到的结果比实
际误差大得多 , 这种 保守 的误 差估 计 不反 映实 际误 差积 累 . 考 虑
到误差分布的随机性 , 有人用概率统计方法 , 将数据和运算中的舍
入误差视为适合某种分布 的随 机变量 , 然 后确 定计算 结果 的误 差
分布 , 这 样 得 到 的 误 差 估 计 更 接 近 实 际 , 这 种 方 法 称 为 概 率 分
析法 .
20 世纪 60 年代以 后对 舍入 误差 分 析 提出 了 一些 新 方法 , 较
重要的有以下两种 :
1 . 向后误差分析法是把新算出的量由某个 公式表达 , 它仅 含
基本算术 运算 , 如 假定 a1 , … , an 是 前面已 算出 的量或 原始 数据 ,
新算出量
x = g( a1 , … , an ) .
若 ai 的摄动为εi , 使得由浮点运算得出结果为
x f l = g( a1 +ε1 , … , an +εn ) .
则可根据εi 的界由摄 动理论 估计最后 舍入误 差 | x - x f l | 的 界 , 威
克逊 ( Wilkinson) 将这种方 法应 用 于数 值代 数 ( 矩 阵运 算 ) 的误 差
分析 , 取得较好效果 .

1 .3

误差定性分析与避免误差危害

· 11 ·

2 . 区间分析法 是 把 参 加 运 算 的 数 x, y , z , … 都 看 成 区 间 量
X , Y , Z, … , 根据区间运算规则 求得 最后结 果的 近似 值及误 差限 .
例如 , x, y 的近似数为 α,β, 由于 | x - α| ≤δ
α, | y - β| ≤δβ, 则 x∈
[α- δα,α+δα] = X , y∈[β- δ
β,β+ δ
β] = Y , 若计算 z = x * y ( * 为
运算符号 ) , 由 Z = X * Y = [ z 珔
z ] = [ z - δz , z + δz] , 则 z 为 所求 近
似值 , 而 δz 则为误差限 .
上面简略介绍了误差分析的几种方法 , 但都不是十分有效的 ,
目前尚无有效的方法对误差做出定量估计 . 为了确保 数值计算 结
果的正确性 , 首先需对数值计算问题做定性分析 , 为此本节讨论以
下三个问题 .
1 .3 .1

病态问题与条件数

对一个数值问题本身如 果输 入数据 有微 小扰动 ( 即误 差 ) , 引
起输出数据 ( 即问题 解 ) 相 对误 差很 大 , 这 就是 病态 问题 . 例如 计
*

Δx
,函
x

算函数值 f ( x) 时 , 若 x 有扰动 Δx = x - x , 其相对 误差为
f ( x ) - f ( x* )
数值 f ( x ) 的相对误差为
. 相对误差比值
f ( x)
*

f ( x) - f ( x * )
f ( x)

Δx
≈
x

x f′( x)
= Cp ,
f ( x)

( 3 .1)

Cp 称为计算函数值 问题 的条 件 数 . 自 变量 相 对 误差 一 般不 会 太
大 , 如果 条件 数 Cp 很 大 , 将 引起 函数 值 相对 误差 很大 , 出现 这 种
情况的问题就是病态问题 .
n

例如 , f ( x) = x , 则有 Cp = n, 它表示相对误差可能放大 n 倍 .
如 n = 10 , 有 f (1 ) = 1 , f ( 1. 02 ) ≈1. 24 , 若取 x = 1 , x * = 1. 02 自变
量相对误差为 2 % , 函数值相对误差为 24 % , 这时问题可以认为是
病态的 . 一般情况条 件数 Cp ≥ 10 就认 为是 病 态 , Cp 越 大病 态 越
严重 .

· 12 ·

第 1章

绪

论

其他计算问题也要 分 析是 否病 态 . 例如 解线 性 方程 组 , 如 果
输入数据有微小误差引起解的巨大误差 , 就认为是病态方程组 , 我
们将在第 5 章用矩阵的条件数来分析这种现象 .
算法的数值稳定性

1 .3 .2

用一个算法进行计算 , 由于初 始数 据误 差在计 算 中传 播使 计
算结果误差增长很快就是数值不稳定的 , 先看下例 .
1

例5

∫ x e d x( n = 0 , 1 , … ) 并估计误差 .

计算 I n = e - 1

n

x

0

由分部积分可得计算 In 的递推公式
( n = 1, 2, …) ,

In = 1 - nI n - 1

( 3 .2)

1

I0 = e

∫e d x = 1 -1

x

e- 1 .

0

若计算出 I0 , 代入 ( 3 .2) , 可逐次求出 I1 , I2 , …的值 . 要算 出 I0 就
要先计算 e - 1 , 若用泰勒多项式展开部分和
e

-1

≈ 1 + ( - 1) +

( - 1) 2
( - 1) k
+…+
,
2!
k!

并取 k = 7 , 用 4 位 小 数计 算 , 则得 e - 1 ≈ 0. 3679 , 截 断 误差 R7 =
|e

- 1

- 0. 3679 | ≤

1
1
- 4
< ×10 .计算过程中小数点后第 5 位的 数
8! 4

字按四舍五入原则舍 入 , 由此 产生 的 舍入 误差 这里 先不 讨 论 . 当
初值取为 I0 ≈0. 6321 =珘
I0 时 , 用 ( 3 .2) 递推的计算公式为
( A)

珘
I0 = 0. 6321;
珘
In = 1 - n珘
I n- 1

( n = 1, 2,… ) .

计算结果见表 1 -1 的珘
In 列 . 用珘
I0 近似 I0 产生的误差 E0 = I0 - 珘
I0
就是初值误差 , 它对后面计算结果是有影响的 .

误差定性分析与避免误差危害

1 .3
表

1-1
珘
I n (用 ( A) 算 )

n

· 13 ·

I * (用 ( B) 算 )

n

I * ( 用( B)算 )

珘
In ( 用( A) 算 )

0

0. 6321

0. 6321

5

0. 1480

0. 1455

1

0. 3679

0. 3679

6

0. 1120

0. 1268

2

0. 2642

0. 2643

7

0. 2160

0. 1121

3

0. 2074

0. 2073

8

- 0. 7280

0. 1035

4

0. 1704

0. 1708

9

7. 552

0. 0684

从表中看到珘
I8 出现负值 , 这与一切 In > 0 相矛盾 . 实际上 , 由
积分估值得
-1

e
-1
x
= e ( 0 ≤min
e
)
x≤ 1
n+1

1

∫ x dx <

=

n

0

1

-1

∫x d x

x

In < e ( 0max
e )
≤ x≤1

1
.
n+1

n

0

( 3 .3)

因此 , 当 n 较大时 , 用珘
I n 近 似 I n 显 然是不 正确 的 . 这里计 算公 式
与每步计算都是正确的 , 那么 是什 么原 因使计 算结 果错 误呢 ? 主
要就是初值珘
I0 有误差 E0 = I0 - 珘
I0 , 由此引起以后各步计算的误 差
En = In - 珘
I n 满足关系
En = - nE n - 1

( n = 1, 2,… ) .

容易推得
En = ( - 1) n n !E0 ,
这说明珘
I0 有误差 E0 , 则珘
I n 就是 E0 的 n ! 倍误差 . 例如 , n = 8 , 若
| E0 | =

1
- 4
×10 , 则 | E8 | = 8 ! × | E0 | > 2 . 这就说明 珘
I8 完全不 能
2

近似 I8 了 . 它表明计算公式 ( A ) 是数值不稳定的 .
我们现在换一种计算方案 . 由 ( 3 .3) 取 n = 9 , 取
-1

e < I9 < 1 ,
10
10
1 1 e-1
+
我们粗略取 I9 ≈
2 10 10

= 0. 0684 = I9 , 然后 将公式 ( 3 .2 ) 倒

· 14 ·

第 1章

绪

论

过来算 , 即由 I9* 算出 I8* , I7* , … , I9* , 公式为
*

I9
(B)

= 0. 0684 ,

1
*
(1 - In )
( n = 9 , 8 , … , 1) ;
n
计算结果 见 表 1 -1 的 I n* 列 . 我 们 发 现 I0* 与 I0 的 误 差 不 超 过
*

In - 1 =

10 - 4 . 记 En* = In - In* , 则 | E0* | =

1
| En* | , E0* 比 En* 缩 小 了 n !
n!

*

*

倍 , 因此 , 尽管 E9 较大 , 但由于误差逐步缩小 , 故可用 In 近似 I n .
反之 , 当用方案 ( A ) 计算时 , 尽管 初值 珘
I0 相 当准 确 , 由于误 差传 播
是逐步扩大的 , 因而计算结果不可靠 . 此例说明 , 数值 不稳定的 算
法是不能使用的 .
定义 3

一个算法 如 果输 入数 据有 误 差 , 而 在计 算 过程 中 舍

入误差不增长 , 则称 此 算 法是 数 值稳 定 的 , 否 则 称 此算 法 为 不 稳
定的 .
在例 5 中算法 ( B) 是数值稳定 的 , 而 算法 ( A ) 是 不稳定 的 . 数
值不稳定现象属于误差危 害现 象 , 如 何防 止误 差危害 下面 将进 一
步讨论 .
1 .3 .3

避免误差危害的若干原则

数值计算中首先要分清 问题是 否病 态和算 法是 否 数值 稳定 ,
计算时还应尽量避免误差危害 , 防止有效数字的损失 , 下面给出若
干原则 .
1 . 要避免除数绝对值远远小于被除数绝对值的除法
用绝对值小的 数 作 除数 舍 入 误 差 会 增 大 , 如 计 算

x
,若0 <
y

| y | n | x | , 则可能对计算结果带来严重影响 , 应尽量避免 .
例6

线性方程组
0. 00001 x1 + x2 = 1 ,
2 x1 + x2 = 2 .

1 .3

误差定性分析与避免误差危害

· 15 ·

的准确解为
x1 =

200000
= 0. 50000125 ,
399999

199998
= 0. 999995 .
199999

x2 =

现在四位浮 点十进 制数 ( 仿机 器实际计 算 ) 下用消 去法求 解 , 上 述
方程写成
- 4

1

1

10 ·0. 1000 x1 + 10 ·0. 1000 x2 = 10 ·0. 1000 ,
101 ·0. 2000 x1 + 101 ·0. 1000 x2 = 101 ·0. 2000 .
若用

1
(10 - 4 ·0. 1000) 除 第一方 程减 第二 方程 , 则出 现用 小
2

的数除大的数 , 得到
10 - 4 ·0. 1000 x1 + 101 ·0. 1000 x2 = 101 ·0. 1000 ,
6

6

10 · 0. 2000 x2 = 10 ·0. 2000 .
由此解出
x1 = 0 ,

x2 = 101 · 0. 1000 = 1 ,

显然严重失真 .
若反过来用第二个方程消去第一个方程中含 x1 的项 , 则避 免
了大数被小数除 , 得到
6

6

10 · 0. 1000 x2 = 10 ·0. 1000 ,
101 · 0. 2000 x1 + 101 ·0. 1000 x2 = 101 · 0. 2000 .
由此求得相当好的近似解
x1 = 0. 5000 ,

1

x2 = 10 ·0. 1000 .

2 . 要避免两相近数相减
在数值计算中两相近数相减有效数字会严重损失 . 例如 , x =
532. 65 , y = 532. 52 都具有五位 有效 数字 , 但 x - y = 0. 13 只有 两
位有效数字 . 这说明必须尽量避免 出现这 类运 算 . 最好是 改变 计
算方法 , 防止这种现象产生 . 现举例说明 .
例7
解

2

求 x - 16 x + 1 = 0 的小正根 .
x1 = 8 +

63 , x2 = 8 -

*

63 ≈8 - 7. 94 = 0. 06 = x2 ,

· 16 ·

第 1章

绪

论

x2* 只有一位有效数字 . 若改用
x2 = 8 -

63 =

1

≈

8+

63

1
≈ 0. 0627
15. 94

具有 3 位有效数字 .
例8

计算 A = 107 ( 1 - cos2°) ( 用四位数学用表 ) .

由于 cos2°= 0. 9994 , 直接计算
7

7

3

A = 10 (1 - cos2°) = 10 ( 1 - 0. 9994) = 6 × 10 .
2

只有一位有效数字 . 若利用 1 - cos x = 2si n

x
,则
2

A = 107 (1 - cos2°) = 2 × ( sin1°) 2 × 107 = 6. 13 × 103
具有三位有效数字 ( 这里 sin1°= 0. 0175) .
此例说明 , 可通过改变计算公式避免或减少有效数字的损失 .
类似地 , 如果 x1 和 x2 很接近时 , 则
lg x1 - lg x2 = lg

x1
.
x2

用右边算式有效数字就不损失 . 当 x 很大时 ,
x+1 -

1
x+1 +

x =

,
x

都用右端算式代替左 端 . 一 般情 况 , 当 f ( x ) ≈ f ( x * ) 时 , 可 用 泰
勒展开
*

f″( x )
*
2
f ( x ) - f ( x ) = f′( x ) ( x - x ) +
(x - x ) +…
2
*

*

*

取右端的有限项近似 左端 . 如 果无 法 改变 算式 , 则 采 用增 加有 效
位数进行运算 ; 在计算机上则采用双倍字长运算 , 但这要增加机器
计算时间和多占内存单元 .
3 . 要防止大数“吃掉”小数
在数值运算中参加运算 的数有 时数 量级相 差很 大 , 而 计算 机
位数有限 , 如不注意运算次序就可能出现大数“ 吃掉”小数的现象 ,
影响计算结果的可靠性 .

误差定性分析与避免误差危害

1 .3

例9

· 17 ·

在五位十进制计算机上 , 计算
100 0

A = 52492 +

∑δ ,
i

i= 1

其中 0. 1≤δi ≤0. 9 .
把运算的数写成规格化形式
10 00
5

A = 0. 52492 × 10 +

∑δ .
i

i=1

由于在计 算 机 内 计 算 时 要 对 阶 , 若 取 δi = 0. 9 , 对 阶 时 δi =
5

0. 000009 ×10 , 在五位的计算机中表示为机器 0 , 因此
5

5

5

A = 0. 52492 × 10 + 0. 000009 × 10 + … + 0. 000009 × 10
5

C 0. 52492 × 10 ( 符号 C 表示机器中相等 ) ,
结果显然不可靠 , 这是 由于 运 算中 出现 了大 数 52492“ 吃掉”小 数
δi 造成的 . 如果计算时先把 数量级 相同 的一千 个 δi 相 加 , 最后 再
加 52492 , 就不会出现大数“吃”小数现象 , 这时
100 0
3

0. 1 × 10 ≤

∑δ ≤ 0. 9 × 10

3

i

,

i= 1

于是
0. 001 × 105 + 0. 52492 × 105 ≤ A ≤ 0. 009 × 105 + 0. 52492 × 105 ,
52592 ≤ A ≤ 53392 .
4 . 注意简化计算步骤 , 减少运算次数
同样一个计算问题 , 如果能减少运算次数 , 不但可节省计算机
的计算时间 , 还能减少舍入误差 . 这是数值计算 必须遵从 的原则 ,
也是“数值分析”要研究的重要内容 .
例 10

计算多项式
Pn ( x) = an x n + an - 1 xn - 1 + … + a1 x + a0

的值 , 若直接计算 ak x k 再逐项相加 , 一共需做
n+ ( n - 1) + … + 2 + 1 =

n( n + 1)
2

· 18 ·

第 1章

绪

论

次乘法和 n 次加法 . 若采用秦九韶算法
S n = an ,
S k = xS k+ 1 + ak ( k = n - 1 , … , 2 , 1 , 0) ,

( 3 .4)

Pn ( x ) = S0 .
只要 n 次乘法和 n 次加法就可算出 P n ( x) 的值 .
在“ 数值 分析”中 , 这 种节 省计 算次数 的算 法还有 不少 . 本 书
第 3 章介绍的 FF T 算法 , 就是一个最成功的范例 .

评

注

本章第 1 节简要地介绍 了数值 分析 的研究 对象 , 它是 计算 数
学的主要部分 , 关于 计 算数 学 介 绍可 参 考《中 国 大百 科 全 书 · 数
学》中的有关条目 . 第 2 和第 3 节中 介绍 了误 差的 基 本概 念与 误
差分析的若干原则 , 数值 计算 中的舍 入误 差是 一个困 难而 复杂 的
问题 , 目前尚无真正有效的定量估计方法 , 第 3 节中提到的向后误
差分析法 ( 见 文 献 [ 8 ] ) 及 区 间分 析 法[ 9 ] , 实际 计 算 时仍 有 不 少 困
难 , 对大型科学计算 的误 差估 计仍 难 于使 用 . 因此 在 本书 中更 着
重对误差的定性分析 , 即对每个具体算法只要是数值稳定的 , 就不
必再做舍入误差估计 , 至 于方 法的截 断误 差将 结合不 同问 题的 具
体算法进行讨论 .

习

题

1 . 设 x > 0 , x 的相对误差为δ, 求 ln x 的误差 .
2 . 设 x 的相对误差为 2 % , 求 xn 的相对误差 .
3 . 下列各数都是经过四舍 五入得 到的近 似数 , 即误 差限不 超过 最后 一
位的半个单位 , 试指出它们是几位有效数字 :

习

题

· 19 ·

x1* = 1. 1021 ,

x2* = 0. 031 ,

x4* = 56. 430 ,

x5* = 7 × 1. 0 .

x3* = 385. 6 ,

4 . 利用公式 ( 2 .3 )求下列各近似值的误差限 :
( i) x1* + x2* + x4* ,

( ii) x1* x2* x3* ,

( iii) x2* / x4* .

其中 x1* , x2* , x3* , x4* 均为第 3 题所给的数 .
5 . 计算球体积要使相对误 差限为 1 % , 问度 量半 径 R 时允 许的 相对 误
差限是多少 ?
6 . 设 Y0 = 28 , 按递推公式
Y n = Y n- 1 计算到 Y100 . 若取

1
100

( n = 1 ,2, … )

783

783 ≈ 27. 982 ( 5 位 有 效数 字 ) , 试 问计 算 Y 100 将有 多 大

误差 ?
7 . 求方程 x2 - 56 x + 1 = 0 的 两 个 根 , 使 它 至 少 具 有 4 位 有 效 数 字
(

783≈27. 982 ) .
N+ 1

∫

8 . 当 N 充分大时 , 怎样求

N

1
dx ?
1 + x2

9 . 正方形的边长大约为 100cm , 应怎 样测 量才 能使 其面积 误差 不超 过
1cm2 ?
10 . 设 S =

1 2
g t , 假定 g 是准确的 , 而对 t 的测量 有±0. 1 秒的误差 , 证
2

明当 t 增加时 S 的绝对误差增加 , 而相对误差却减少 .
11 . 序列 { yn } 满足递推关系
yn = 10 y n- 1 - 1

( n = 1 ,2 ,… ) ,

若 y0 = 2 ≈1. 41( 三位有效数字 ) , 计算 到 y10 时误 差有多大 ? 这个计算过程
稳定吗 ?
12 . 计算 f = ( 2 - 1) 6 , 取 2 ≈1 .4 , 利用下列等式计算 , 哪一个得到的结
果最好 ?
1
,
( 2 + 1) 6
1
,
(3 + 2 2 )3

(3 - 2 2 ) 3 ,
99 - 70 2 .

· 20 ·

第 1章

13 . f ( x) = ln( x -

绪

论

x2 - 1 ) , 求 f ( 30 )的值 . 若开平方用 6 位函数表 , 问

求对数时误差有多大 ? 若改用另一等价公式
l n( x -

x2 - 1 ) = - ln( x +

计算 , 求对数时误差有多大 ?

x2 - 1 )

第2章

插

2 .1

引

值

法

言

许多实际问题都用函数 y = f ( x ) 来表示某种内在规律的数量
关系 , 其中相当一部分函数是通过实验或观 测得到的 . 虽 然 f ( x)
在某个区间 [ a, b] 上 是 存 在 的 , 有 的 还 是 连 续 的 , 但 却 只 能 给 出
[ a, b] 上一系列点 xi 的函数 值 y i = f ( xi ) ( i = 0 , 1 , … , n) , 这只 是
一张函数表 . 有的函数虽有解析表达式 , 但由于 计算复杂 , 使用 不
方便 , 通常也造一个函数表 , 如大家熟悉的三角函数表、对数表、平
方根和立方根表等等 . 为 了研 究函 数 的变 化规 律 , 往 往需 要求 出
不在表上的函数值 . 因此 , 我 们 希望 根据 给定 的函 数 表做 一个 既
能反映函数 f ( x) 的特性 , 又便于 计算的 简单 函数 P( x ) , 用 P( x)
近似 f ( x ) . 通常选一类较简单的函数 ( 如代 数多项式 或分段代 数
多项式 ) 作为 P( x) , 并使 P( xi ) = f ( xi ) 对 i = 0 , 1 , … , n 成 立 . 这
样确定的 P( x ) 就是我们希望得到的插值函数 . 例如 , 在现代机 械
工业中用计算机程序控制 加工 机械零 件 , 根据 设计可 给出 零件 外
形曲线的某些型值点 ( xi , yi ) ( i = 0 , 1 , … , n) , 加 工时 为 控制 每 步
走刀方向及步数 , 就要算出零件外形曲线其他点的函数值 , 才能加
工出外表光滑的零件 , 这 就是 求插 值 函数 的问 题 . 下 面我 们给 出
有关插值法的定义 .
设函数 y = f ( x ) 在区间 [ a, b]上有 定义 , 且已知在点 a≤ x0 <
x1 < … < xn ≤ b 上的值 y0 , y1 , … , yn , 若存在一简单函数 P( x ) , 使
P( xi ) = y i

( i = 0 , 1 , … , n)

( 1 .1)

成立 , 就称 P( x) 为 f ( x ) 的插值函数 , 点 x0 , x1 , … , xn 称为插值 节

· 22 ·

第 2章

插值法

点 , 包含插值节点的区间[ a, b]称为插值区间 , 求插值函数 P( x ) 的
方法称为插值法 . 若 P( x) 是次数不超过 n 的代数多项式 , 即
P( x ) = a0 + a1 x + … + an x n ,

( 1 .2)

其中 ai 为实数 , 就称 P( x) 为插值多项式 , 相应的插值 法称为多 项
式插值 . 若 P( x) 为分段 的多 项式 , 就称 为分 段 插值 . 若 P ( x ) 为
三角多项式 , 就称为三角插值 . 本章只讨论多项式插值与分段插值 .
从几何上看 , 插值法 就 是求 曲 线 y = P( x ) , 使其 通 过给 定 的
n + 1个点 ( xi , yi ) , i = 0 , 1 , … , n, 并 用 它近 似 已 知曲 线 y = f ( x ) ,
见图 2 -1 .

图

2-1

插值法是一种古老 的 数学 方法 , 它 来自 生产 实 践 . 早在 一 千
多年前 , 我国科学家在研究历法上就应用了线性插值与二次插值 ,
但它的基本理论和结果却 是在 微积分 产生 以后才 逐步 完善 的 , 其
应用也日益增多 , 特别 是在电 子计 算机广 泛使 用以 后 , 由于 航空、
造船、精密机械加工等实际问题的需要 , 使插值法在实践上或理论
上显得更为重要 , 并得到进一步发展 , 尤其是近几十年发展起来的
样条 ( sp line ) 插值 , 更获得了广泛的应用 .
本章主要研究如何求出插值多项式 , 分段插值函数 , 样条插值
函数 ; 讨 论 插 值 多 项 式 P ( x ) 的 存 在 唯 一 性、收 敛 性 及 误 差 估
计等 .

2 .2

2 .2
2 .2 .1

拉格朗日插值

· 23 ·

拉格朗日插值

线性插值与抛物插值

对给定的插值点为求得形 如 ( 1 .2 ) 的插值 多项 式可以 有各 种
不同方法 , 下面先讨论 n = 1 的简单情形 , 假定给定 区间 [ xk , xk + 1 ]
及端点函数 值 yk = f ( xk ) , yk + 1 = f ( xk + 1 ) , 要求 线 性插 值多 项 式
L1 ( x) , 使它满足
L1 ( xk ) = yk , L1 ( x k+ 1 ) = yk+ 1 .

图

2-2

y = L1 ( x ) 的 几 何 意 义 就是 通 过 两 点 ( xk , yk ) 与 ( xk + 1 , yk + 1 ) 的 直
线 , 如图 2 -2 所示 , L1 ( x) 的表达式可由几何意义直接给出
L1 ( x ) = yk +

yk+ 1 - yk
( x - xk )
x k+ 1 - xk

( 点斜式 ) ,

xk+ 1 - x
x - xk
L1 ( x ) =
yk +
y k+ 1 ( 两点式 ) .
x k+ 1 - xk
x k+ 1 - xk

( 2 .1)

由两点式看出 , L1 ( x ) 是由两个线性函数
l k ( x) =

x - xk+ 1
,
xk - xk+ 1

lk+ 1 ( x) =

的线性组合得到 , 其系数分别为 yk 及 y k + 1 , 即

x - xk
x k+ 1 - xk

( 2 .2)

· 24 ·

第 2章

插值法

L1 ( x) = yk l k ( x ) + yk+ 1 l k+ 1 ( x ) .

( 2 .3)

显然 , lk ( x ) 及 lk + 1 ( x ) 也是 线 性插 值多 项式 , 在节 点 xk 及 x k + 1 上
满足条件
lk ( xk ) = 1 ,

lk ( xk+ 1 ) = 0;

lk+ 1 ( xk ) = 0 ,

lk+ 1 ( xk+ 1 ) = 1 .

我们称函数 l k ( x ) 及 lk + 1 ( x ) 为 线 性 插 值 基 函 数 , 它 们 的 图 形 见
图 2 -3 .

图

2-3

下面讨论 n = 2 的情况 . 假定插 值节点 为 xk - 1 , xk , xk + 1 , 要 求
二次插值多项式 L2 ( x ) , 使它满足
L2 ( x j ) = yj

( j = k - 1 , k, k + 1 ) .

我们知道 y = L2 ( x) 在几何上就是通过三点 ( xk - 1 , yk - 1 ) , ( xk , yk ) ,
( xk + 1 , yk + 1 ) 的抛物线 . 为 了求 出 L2 ( x ) 的 表达 式 , 可 采用 基函 数
方法 , 此时基函数 lk - 1 ( x ) , lk ( x ) 及 lk + 1 ( x ) 是 二次函 数 , 且 在节 点
上满足条件
lk - 1 ( xk - 1 ) = 1 ,

lk - 1 ( xj ) = 0

( j = k, k + 1 ) ;

lk ( xk ) = 1 ,

lk ( x j ) = 0

( j = k - 1 , k + 1) ;

lk+ 1 ( xk+ 1 ) = 1 ,

lk+ 1 ( xj ) = 0

( j = k - 1 , k) .

( 2 .4)

满足条件 (2 .4 ) 的插值基函数是很容易求出的 , 例如求 lk - 1 ( x ) , 因
它有两个零点 xk 及 x k + 1 , 故可表示为

2 .2

拉格朗日插值

· 25 ·

lk - 1 ( x) = A( x - xk ) ( x - xk+ 1 ) ,
其中 A 为待定系数 , 可由条件 l k - 1 ( xk - 1 ) = 1 定出
A =
于是

lk - 1 ( x ) =

同理可得

lk ( x) =

( xk - 1

1
,
- xk ) ( x k - 1 - xk+ 1 )

( x - xk ) ( x - xk + 1 )
.
( xk - 1 - xk ) ( xk - 1 - xk+ 1 )
( x - xk - 1 ) ( x - xk+ 1 )
,
( xk - xk - 1 ) ( xk - xk+ 1 )

lk+ 1 ( x) =

( x - x k - 1 ) ( x - xk )
.
( xk + 1 - x k - 1 ) ( xk+ 1 - xk )

二次插值基函数 l k - 1 ( x ) , lk ( x ) , lk + 1 ( x ) 在区 间 [ xk - 1 , xk + 1 ] 上 的
图形见图 2 -4 .

图

2-4

利用二次插值基函数 l k - 1 ( x ) , l k ( x ) , l k + 1 ( x ) , 立 即得 到二 次
插值多项式
L2 ( x ) = yk - 1 lk - 1 ( x ) + yk l k ( x) + yk+ 1 lk+ 1 ( x) ,

( 2 .5)

显然 , 它满足条件 L2 ( x j ) = y j ( j = k - 1 , k, k + 1) . 将上面 求得 的
lk - 1 ( x) , lk ( x ) , lk + 1 ( x ) 代入 ( 2 .5) , 得
L2 ( x) = yk - 1

( x - xk ) ( x - xk+ 1 )
( xk - 1 - xk ) ( xk - 1 - xk+ 1 )

· 26 ·

第 2章

+ yk

插值法

( x - xk - 1 ) ( x - xk+ 1 )
( xk - xk - 1 ) ( xk - xk+ 1 )

+ yk+ 1

( x - xk - 1 ) ( x - xk )
.
( xk+ 1 - xk - 1 ) ( xk+ 1 - xk )

拉格朗日插值多项式

2 .2 .2

上面我们对 n = 1 及 n = 2 的 情况 , 得到 了一次与 二次插值 多
项式 L1 ( x) 及 L2 ( x) , 它们分别由 ( 2 .3) 与 (2 .5 ) 表示 . 这种用插值
基函数表示的方法容易推广到一般情形 . 下 面讨论如 何构造通 过
n + 1 个节点 x0 < x1 < … < xn 的 n 次插值多项式 L n ( x ) , 假定它满
足条件
( j = 0 , 1 , … , n) .

Ln ( xj ) = y j

( 2 .6)

为了构造 Ln ( x ) , 我们先定义 n 次插值基函数 .
定义 1

若 n 次多项式 l j ( x ) ( j = 0 , 1 , … , n) 在 n + 1 个节 点

x0 < x1 < … < xn 上满足条件
lj ( x k ) =

1,

k = j;

0,

k≠ j .

( j, k = 0 , 1 , … , n)

( 2 .7)

就称这 n + 1 个 n 次 多 项 式 l0 ( x ) , l1 ( x ) , … , ln ( x ) 为 节 点 x0 ,
x1 , … , xn 上的 n 次插值基函数 .
当 n = 1 及 n = 2 时的 情 况前 面 已 经讨 论 . 用 类 似的 推 导 方
法 , 可得到 n 次插值基函数为
lk ( x) =

( x - x0 ) … ( x - xk - 1 ) ( x - xk+ 1 ) … ( x - xn )
( xk - x0 ) … ( xk - xk - 1 ) ( xk - xk+ 1 ) … ( xk - xn )
( k = 0 , 1 , … , n) . ( 2 .8)

显然 它 满 足 条 件 ( 2 .7 ) . 于 是 , 满 足 条 件 ( 2 .6 ) 的 插 值 多 项 式
Ln ( x) 可表示为
n

Ln ( x ) =

∑y l
k

k=0

由 l k ( x) 的定义 , 知

k

( x) .

( 2 .9)

2 .2

拉格朗日插值

· 27 ·

n

Ln ( x j ) =

∑y

k

lk ( x j ) = y j

( j = 0 , 1 , … , n) .

k= 0

形如 (2 .9 ) 的插值多项 式 Ln ( x ) 称为 拉 格朗 日 ( Lagrange ) 插值 多
项式 , 而 ( 2 .3) 与 (2 .5 ) 是 n = 1 和 n = 2 的特殊情形 .
若引入记号
ωn+ 1 ( x) = ( x - x0 ) ( x - x1 ) … ( x - xn ) ,

(2 .1 0)

容易求得
ωn+
′1 ( xk ) = ( xk - x0 ) … ( xk - xk - 1 ) ( xk - xk+ 1 ) … ( xk - xn ) .
于是公式 (2 .9 ) 可改写成
n

Ln ( x) =

∑
k=0

yk

ωn+ 1 ( x)
.
( x - xk )ωn+
′1 ( xk )

(2 .1 1)

注意 , n 次插值多项式 L n ( x ) 通常是次 数为 n 的 多项式 , 特 殊
情 况 下 次 数 可 能 小 于 n . 例 如 , 通 过 三 点 ( x0 , y0 ) , ( x1 , y1 ) ,
( x2 , y2 ) 的二次插值多项式 L2 ( x ) , 如果三点共线 , 则 y = L2 ( x ) 就
是一直线 , 而不是抛物线 , 这时 L2 ( x ) 是一次多项式 .
关于插值多项式存在唯一性有以下定理 .
定理 1

在次数 不超过 n 的多项 式集 合 Hn 中, 满足条 件

(2 .6 ) 的插值多项式 Ln ( x) ∈ Hn 是存在唯一的 .
证明

公式 (2 .1 1) 所表示的 Ln ( x ) 已证明了插值 多项式的 存

在性 , 下面用反证法证明 唯一 性 . 假 定还 有 P( x ) ∈ Hn 使 P ( x i )
= f ( xi ) , i = 0 , 1 , … , n 成立 . 于 是有 Ln ( xi ) - P( xi ) = 0 对 i = 0 ,
1 , … , n 成立 , 它表明多 项 式 Ln ( x ) - P( x ) ∈ H n 有 n + 1 个 零 点
x0 , x1 , … , xn 这 与 n 次 多 项 式 只 有 n 个 零 点 的 代 数 基 本 定 理 矛
盾 , 故只能 P( x) ≡ Ln ( x) . 证毕 .
m

根据存在唯一性定理 , 若令 f ( x ) = x , m = 0 , 1 , … , n 可得
n

∑x
k=0

若取 m = 0 , 则

m
k

l k ( x ) = xm ,

m = 0, 1, …, n .

(2 .1 2)

· 28 ·

第 2章

插值法

n

∑ l ( x)
k

= 1 .

(2 .1 3)

k=0

它可用来检验函数组{ lk ( x ) , k = 0 , 1 , … , n}的正确性 .
插值余项与误差估计

2 .2 .3

若在[ a, b] 上用 Ln ( x ) 近 似 f ( x ) , 则其 截断 误差 为 Rn ( x ) =
f ( x) - Ln ( x ) , 也称为插值 多 项式 的 余 项 . 关 于 插 值余 项 估 计 有
以下定理 .
定理 2

设 f

( n)

( x) 在[ a, b] 上连续 , f

( n+ 1)

( x) 在 ( a, b) 内存在 ,

节点 a≤ x0 < x1 < … < xn ≤ b, Ln ( x) 是满足条 件 ( 2 .6 ) 的插值多 项
式 , 则对任何 x∈[ a, b] , 插值余项
f ( n+ 1 ) (ξ)
Rn ( x) = f ( x ) - Ln ( x) =
ωn+ 1 ( x) ,
( n + 1) !

(2 .1 4)

这里 ξ∈ ( a, b) 且依赖于 x,ωn + 1 ( x ) 是 ( 2 .10 ) 所定义的 .
证明

由给定 条 件知 Rn ( x ) 在 节 点 xk ( k = 0 , 1 , … , n) 上 为

零 , 即 Rn ( xk ) = 0 ( k = 0 , 1 , … , n) , 于是
Rn ( x ) = K( x ) ( x - x0 ) ( x - x1 ) … ( x - xn ) = K( x )ωn+ 1 ( x ) ,
(2 .1 5)
其中 K( x) 是与 x 有关的待定函数 .
现把 x 看成[ a, b]上的一个固定点 , 作函数
φ( t) = f ( t) - Ln ( t) - K( x) ( t - x0 ) ( t - x1 ) … ( t - xn ) ,
根据插值条件及余项定义 , 可知 φ( t) 在 点 x0 , x1 , … , xn 及 x 处 均
为零 , 故 φ( t) 在 [ a, b] 上 有 n + 2 个 零 点 , 根 据 罗 尔 ( Rolle ) 定 理 ,
φ′( t) 在 φ( t) 的两个零点间至少有一个零点 , 故 φ′( t) 在[ a, b]内 至
少有 n + 1 个零点 . 对 φ′( t) 再应 用罗 尔定 理 , 可 知 φ″( t) 在 [ a, b]
内至少有 n 个零点 . 依此类推 ,φ( n + 1 ) ( t) 在 ( a, b) 内 至少有 一个 零
点 , 记为 ξ∈ ( a, b) , 使
( n+1)

φ

(ξ) = f

( n+ 1 )

(ξ) - ( n + 1 ) !K( x) = 0 ,

拉格朗日插值

2 .2

· 29 ·

于是
( n+1)

f
(ξ)
K( x) =
,ξ∈ ( a, b) , 且依赖于 x .
( n + 1) !
将它代入 (2 .1 5) , 就得到余项表达式 ( 2 .14 ) . 证毕 .
应当指出 , 余项表达式只有在 f ( x ) 的高阶导数存在时才能 应
用 .ξ在 ( a, b) 内的具体 位置 通常不 可能 给出 , 如果 我 们可 以求 出
max | f

( n+ 1)

a < x< b

( x ) | = Mn + 1 , 那么插值多项式 Ln ( x ) 逼近 f ( x) 的截 断

误差限是
| Rn ( x ) | ≤

Mn+ 1
| ωn+ 1 ( x ) | .
( n + 1) !

(2 .1 6)

当 n = 1 时 , 线性插值余项为
R1 ( x ) =

1
1
f″(ξ)ω2 ( x ) =
f″(ξ) ( x - x0 ) ( x - x1 ) ,
2
2
ξ∈ [ x0 , x1 ] ;

(2 .1 7)

当 n = 2 时 , 抛物插值的余项为
R2 ( x) =

1
f (ξ) ( x - x0 ) ( x - x1 ) ( x - x2 ) ,
6
ξ∈ [ x0 , x2 ] .

例1

(2 .1 8)

已 给 sin0. 32 = 0. 314567 , sin0. 34 = 0. 333487 , sin0. 36

= 0. 352274 , 用线性 插值 及 抛 物插 值 计算 si n0. 3367 的 值 并 估 计
截断误差 .
解

由 题 意 取 x0 = 0. 32 , y0 = 0. 314567 , x1 = 0. 34 , y1 =

0. 333487 , x2 = 0. 36 , y2 = 0. 352274 .
用线性插值计算 , 取 x0 = 0. 32 及 x1 = 0. 34 , 由公式 (2 .1 ) 得
sin0. 3367≈ L1 (0. 3367) = y0 +
= 0. 314567 +
其截断误差由 (2 .1 7) 得

y1 - y0
( 0. 3367 - x0 )
x1 - x0

0. 01892
× 0. 0167 = 0. 330365 .
0. 02

· 30 ·

第 2章

| R1 ( x ) | ≤

插值法

M2
| ( x - x0 ) ( x - x1 ) | ,
2

其中 M2 = x max
| f″( x ) | , 因 f ( x ) = sin x, f″( x ) = - sin x . 可 取
≤ x≤ x
0

1

M2 = x m
ax | sin x | = sin x1 ≤ 0. 3335 , 于是
≤ x≤ x
0

1

| R1 ( 0. 3367 ) | = | sin0. 3367 - L1 (0. 3367) |
≤

1
- 5
× 0. 3335 × 0. 0167 × 0. 0033 ≤ 0. 92 × 10 .
2

用抛物插值计算 sin0. 3367 时 , 由公式 ( 2 .5) 得
sin0. 3367≈ y0

( x - x1 ) ( x - x2 )
( x - x0 ) ( x - x2 )
+ y1
( x0 - x1 ) ( x0 - x2 )
( x1 - x0 ) ( x1 - x2 )

+ y2

( x - x0 ) ( x - x1 )
( x2 - x0 ) ( x2 - x1 )

= L2 ( 0. 3367 )
= 0. 314567 ×
× 3. 89 × 10
0. 0004

0. 7689 × 10 - 4
+ 0. 333487
0. 0008
- 4

+ 0. 352274 × - 0. 5511 × 10
0. 0008

-4

= 0. 330374 .
这个结果与 6 位有效数字 的正 弦函数 表完 全一样 , 这 说明 查表 时
用二次插值精度已相当高了 . 其截断误差限由 ( 2 .18 ) 得
| R2 ( x ) | ≤

M3
| ( x - x0 ) ( x - x1 ) ( x - x2 ) | ,
6

其中
M3 =

max | f″
′( x ) | = cos x0 < 0. 828 ,

x ≤ x≤ x
0
2

于是
| R2 ( 0. 3367 ) | = | sin0. 3367 - L2 (0. 3367) |
≤

1
× 0. 828 × 0. 0167 × 0. 033 × 0. 0233
6

< 0. 178 × 10

-6

.

2 .3

2 .3
2 .3 .1

均差与牛顿插值公式

· 31 ·

均差与牛顿插值公式

均差及其性质

利用插值基函数很容 易得 到拉格 朗日 插值多 项式 , 公 式结 构
紧凑 , 在理论分析中甚为方便 , 但当插值节点增减时全部插值基函
数 l k ( x) ( k = 0 , 1 , … , n) 均 要 随之 变 化 , 整 个公 式 也将 发 生 变化 ,
这在实际计算中是很不方便的 , 为了克服这一缺点 , 可把插值多项
式表示为如下便于计算的形式
Pn ( x ) = a0 + a1 ( x - x0 ) + a2 ( x - x0 ) ( x - x1 ) + …
+ an ( x - x0 ) … ( x - xn - 1 ) ,

( 3 .1)

其中 a0 , a1 , … , an 为待定系数 , 可由插值条件
Pn ( xj ) = f j

( j = 0 , 1 , … , n)

确定 .
当 x = x0 时 , Pn ( x0 ) = a0 = f 0 .
当 x = x1 时 , Pn ( x1 ) = a0 + a1 ( x - x0 ) = f1 , 推得
a1 =

f1 - f0
.
x1 - x0

当 x = x2 时 , Pn ( x2 ) = a0 + a1 ( x2 - x0 ) + a2 ( x2 - x0 ) ( x2 x1 ) = f2 , 推得
f2 - f0
f1 - f 0
x2 - x0
x1 - x0
a2 =
.
x2 - x1
依此递推可得到 a3 , … , an . 为写出系数 ak 的一般 表达式 , 先引 进
如下均差定义 .
定义 2

称 f [ x0 , xk ] =

f ( xk ) - f ( x0 )
为函数 f ( x) 关于点
xk - x0

· 32 ·

第 2章

插值法

x0 , xk 的 一 阶 均 差 . f [ x0 , x1 , xk ] =

f [ x0 , xk ] - f [ x0 , x1 ]
称为
x k - x1

f ( x) 的二阶均差 . 一般地 , 称
f[ x0 , x1 , … , xk ] =

f[ x0 , … , xk - 2 , xk ] - f[ x0 , x1 , … , xk - 1 ]
xk - xk - 1
( 3 .2)

为 f ( x) 的 k 阶均差 ( 均差也称为差商 ) .
均差有如下的基本性质 :
1°k 阶均差可表为函数值 f ( x0 ) , … , f ( xk ) 的线性组合 , 即
f [ x0 , … , xk ] =
k

∑
j =0

f ( xj )
.
( x j - x0 ) … ( x j - xj - 1 ) ( x j - x j+ 1 ) … ( x j - xk )
( 3 .3)

这个性质可用归纳法证明 . 这性质也表明均 差与节点 的排列次 序
无关 , 称为均差的对称性 . 即
f[ x0 , … , xk ] = f[ x1 , x0 , x2 , … , xk ] = … = f[ x1 , … , xk , x0 ] .
2°由性质 1°及 (3 .2 ) 可得
f[ x0 , … , xk ] =

f [ x1 , … , xk ] - f[ x0 , … , xk - 1 ]
.
xk - x0

( 3 .4)

3°若 f ( x ) 在 [ a, b] 上 存 在 n 阶 导 数 , 且 节 点 x0 , … , xn ∈
[ a, b] , 则 n 阶均差与导数关系如下 :
f [ x0 , … , xn ] = f

( n)

(ξ) ,
n!

ξ∈ [ a, b] .

( 3 .5)

这公式可直接用罗尔定理证明 .
均差的 其 他 性 质 还 可 见 习 题 . 均 差 计 算 可 列 均 差 表 如 下
( 表 2 -1 ) .

2 .3
表

均差与牛顿插值公式

· 33 ·

2-1
一阶均差

二阶均差

三阶均差

四阶均差

xk

f ( xk )

x0

f ( x0 )

x1

f ( x1 )

f[ x0 , x1 ]

x2

f ( x2 )

f[ x1 , x2 ] f[ x0 , x1 , x2 ]

x3

f ( x3 )

f[ x2 , x3 ] f[ x1 , x2 , x3 ] f [ x0 , x1 , x2 , x3 ]

x4

f ( x4 )

f[ x3 , x4 ] f[ x2 , x3 , x4 ] f [ x1 , x2 , x3 , x4 ] f[ x0 , x1 , x2 , x3 , x4 ]

⁝

⁝

⁝

2 .3 .2

⁝

⁝

⁝

牛顿插值公式

根据均差定义 , 把 x 看成[ a, b] 上一点 , 可得
f ( x ) = f ( x0 ) + f [ x , x0 ] ( x - x0 ) ,
f [ x , x0 ] = f[ x0 , x1 ] + f[ x, x0 , x1 ] ( x - x1 ) ,
…
f [ x , x0 , … , xn - 1 ] = f [ x0 , x1 , … , xn ]
+ f [ x , x0 , … , xn ] ( x - xn ) .
只要把后一式代入前一式 , 就得到
f ( x ) = f ( x0 ) + f [ x0 , x1 ] ( x - x0 )
+ f [ x0 , x1 , x2 ] ( x - x0 ) ( x - x1 ) + …
+ f [ x0 , x1 , … , xn ] ( x - x0 ) … ( x - xn - 1 )
+ f [ x, x0 , … , xn ]ωn+ 1 ( x ) = N n ( x ) + Rn ( x) ,
其中
N n ( x ) = f ( x0 ) + f [ x0 , x1 ] ( x - x0 )
+ f [ x0 , x1 , x2 ] ( x - x0 ) ( x - x1 ) + …
+ f [ x0 , … , xn ] ( x - x0 ) … ( x - xn - 1 ) ,

( 3 .6)

Rn ( x ) = f ( x) - N n ( x ) = f [ x, x0 , … , xn ]ωn+ 1 ( x) , ( 3 .7)
ωn + 1 ( x ) 是由 ( 2 .10 ) 定义的 .
由 (3 .6 ) 确定 的多 项 式 N n ( x ) 显 然 满 足插 值 条件 , 且次 数 不

· 34 ·

第 2章

插值法

超过 n, 它就是形如 ( 3 .1) 的多项式 , 其系数为
ak = f[ x0 , … , xk ] ( k = 0 , 1 , … , n) .
我们称 N n ( x ) 为牛顿 ( Newt on) 均差插 值多项 式 . 系数 ak 就是 均
差表 2 -1 中加横线的各阶均差 , 它比拉格朗日插值计算量省 , 且便
于程序设计 .
(3 .7 ) 为插值余项 , 由 插值多 项式 唯一性 知 , 它与 ( 2 .14) 是 等
价的 , 事 实 上 , 利 用 均 差 与 导 数 关 系 式 ( 3 .5 ) 可 由 ( 3 .7 ) 推 出
(2 .1 4) . 但 ( 3 .7) 更有一般性 , 它对 f 是由离 散点给出 的情形 或 f
导数不存在时均适用 .
例 2 给出 f ( x) 的函 数表 ( 见表 2 -2 ) , 求 4 次 牛 顿插 值多 项
式 , 并由此计算 f ( 0. 596) 的近似值 .
首先根据给定函数表造出均差表 .
表

2-2

0. 40

0. 41075

0. 55

0. 57815

1. 11600

0. 65

0. 69675

1. 18600

0. 28000

0. 80

0. 88811

1. 27573

0. 35893

0. 19733

0. 90

1. 02652

1. 38410

0. 43348

0. 21300

0. 03134

1. 05

1. 25382

1. 51533

0. 52493

0. 22863

0. 03126

- 0. 00012

从均 差表看 到 4 阶 均差近 似常数 . 故取 4 次插 值多项 式
N4 ( x) 做近似即可 .
N4 ( x) = 0. 41075 + 1. 116( x - 0. 4) + 0. 28( x - 0. 4) ( x - 0. 55)
+ 0. 19733 ( x - 0. 4) ( x - 0. 55 ) ( x - 0. 65)
+ 0. 03134 ( x - 0. 4) ( x - 0. 55 ) ( x - 0. 65) ( x - 0. 8 ) ,
于是
f ( 0. 596) ≈ N4 (0. 596 ) = 0. 63192 ,
截断误差
- 9
| R4 ( x) | ≈ | f[ x0 , … , x5 ]ω5 (0. 596 ) | ≤ 3. 63 × 10 .
这说明截断误差很小 , 可忽略不计 .

2 .4

差分与等距节点插值

· 35 ·

此例的截断误差 估计 中 , 5 阶均 差 f [ x, x0 , … , x4 ] 用 f [ x0 ,
x1 , … , x5 ] = - 0. 00012 近 似 . 另 一 种 方 法 是 取 x = 0. 596 , 由
f ( 0. 596) ≈ 0. 63192 , 可求得 f [ x, x0 , … , x4 ] 的 近似 值 , 从 而可 求
得 | R4 ( x) | 的近似 .

差分与等距节点插值

2 .4

上面讨论了节点任意分 布的插 值公 式 , 但实际 应 用时 经常 遇
到等距节点的情形 , 这时插值公式可以进一步简化 , 计算也简单得
多 . 为了得到等距节点的插值公式 , 我们先介绍差分的概念 .
2 .4 .1

差分及其性质

设函数 y = f ( x ) 在等距节点 xk = x0 + kh( k = 0 , 1 , … , n) 上 的
值 f k = f ( xk ) 为已知 , 这里 h 为常数 , 称为步长 .
定义 3

记号
Δ f k = f k+ 1 - f k ,

δf k

( 4 .1)

Δ fk = fk - fk- 1 ,
= f ( xk + h/ 2 ) - f ( xk - h/ 2 ) = f k+ 12 - f k -

1
2

( 4 .2)
( 4 .3)

分别称为 f ( x ) 在 xk 处 以 h 为步 长的向 前差分 , 向后 差分 及中 心
差分 . 符号 Δ,Δ ,δ分别称为向前差分算子 , 向后差分 算子及中 心
差分算子 .
利用一阶差分可定义二阶差分为
2
Δ f k = Δ f k+ 1 - Δ f k = f k+ 2 - 2 f k+ 1 + f k .
一般地可定义 m阶差分为
m

m- 1

Δ fk = Δ
m

m-1

m- 1

f k+ 1 - Δ

fk ;

m-1

Δ fk = Δ
fk - Δ
fk- 1 .
因中心差心 δf k 用到 f k + 12 及 f k - 12 这两个值 , 实际上不是函数
表上的值 , 如果用函数表上的值 , 一阶中心差分应写成
δf k+ 12 = f k+ 1 - f k , δf k - 12 = f k - f k - 1 ,

· 36 ·

第 2章

插值法

二阶中心差分为
δ2 f k = δf k+ 12 - δf k - 12 ,
等等 .
除了已引入的差分算子 外 , 常 用算 子符 号还 有不 变算 子 I 及
移位算子 E , 定义如下 :
I f k = f k , E f k = f k+ 1 ,
于是 , 由 Δ f k = f k + 1 - f k = E f k - I f k = ( E - I) f k , 可得
Δ = E - I,
同理可得
1

1

Δ = I - E- 1 ,
δ= E 2 - E - 2 .
由差分定义并应用算子符号运算可得下列基本性质 .
性质 1 各阶差分均可用函数值表示 . 例如
n
n n- j
n
n
j
Δ f k = ( E - I) f k = ∑ ( - 1)
E fk
j
j =0
n

=

∑( -

1)

n
f n+ k - j ,
j

j

j =0
n

n

-1

∑ ( - 1)

n

Δ f k = ( I - E ) fk =

n- j

j= 0
n

∑ ( - 1)

=

n- j

j= 0

( 4 .4)

n j- n
E fk
j
n
f k+ j - n ,
j

( 4 .5)

n
n( n - 1 ) … ( n - j + 1 )
=
为二项式展开系数 .
j
j!
性质 2 可用各阶差分表示函数值 . 例如 , 可用向前差分表示
f n + k , 因为

其中

n
n

n

f n+ k = E f k = ( I + Δ) f k =

∑
j= 0

n j
Δ
j

fk ,

于是
n

n j
Δ fk .
( 4 .6)
∑
j
j =0
均差与差分有密切关系 , 例如 , 对向前差分 , 由定义
f n+ k =

性质 3

差分与等距节点插值

2 .4

f k+ 1 - f k
Δ fk
=
,
x k+ 1 - xk
h

f [ xk , xk+ 1 ] =

f[ xk+ 1 , xk+ 2 ] - f [ xk , xk+ 1 ]
xk+ 2 - xk

f [ xk , xk+ 1 , xk+ 2 ] =
=

· 37 ·

1 2
Δ fk ,
2 h2

一般地有
f [ xk , … , xk+ m ] = 1 1m Δm f k
m! h
同理 , 对向后差分有
f [ xk , xk - 1 , … , xk - m ] =

( m = 1 , 2 , … , n) . ( 4 .7)

1 1
m
fk .
m Δ
m!h

( 4 .8)

(ξ) ,

( 4 .9)

利用 (4 .7 ) 及 ( 3 .5) 又可得到
n

n

Δ fk = h f

( n)

其中 ξ∈ ( xk , xk + n ) , 这就是 差分 与导 数的关 系 . 差分 的其 他性 质
可参看本章习题 .
计算差分可列差分表 ( 见表 2 -3 ) , 表中 Δ 为 向前差 分 ,Δ 为 向
后差分 .
表
fk

2-3
Δ(Δ )

Δ2 (Δ 2 )

Δ3 (Δ 3 )

Δ4 (Δ 4 )

…

f0
Δ f 0 (Δ f 1 )
Δ2 f 0 (Δ 2 f 2 )

f1

Δ3 f 0 (Δ 3 f 3 )

Δ f 1 (Δ f 2 )
Δ2 f 1 (Δ 2 f 3 )

f2

Δ3 f 1 (Δ 3 f 4 )

Δ f 2 (Δ f 3 )
Δ f 2 (Δ f 4 )
2

f3

⁝
⁝

f4
⁝

⁝
⁝

2

Δ f 3 (Δ f 4 )

⁝

Δ4 f 0 (Δ 4 f 4 )

· 38 ·

第 2章

2 .4 .2

插值法

等距节点插值公式

将牛顿均差插值多项式 (3 .6 ) 中各阶均差用相应差分代替 , 就
可得到各种形式的等距节点插值公式 . 这里 只推导常 用的前插 与
后插公式 .
如果节点 xk = x0 + kh( k = 0 , 1 , … , n) , 要计算 x0 附 近点 x 的
函数 f ( x) 的值 , 可令 x = x0 + t h, 0≤ t≤ 1 , 于是
k

ωk+ 1 ( x ) =

∏( x

k+ 1

- xj ) = t( t - 1) … ( t - k) h

.

j =0

将此式及 (4 .7 ) 代入 ( 3 .6) , 则得
N n ( x0 + th) = f0 + tΔ f0 + t( t - 1 )Δ2 f0 + …
2!
+ t( t - 1 ) … ( t - n + 1 )Δn f 0 ,
n!

(4 .1 0)

称为牛顿前插公式 , 其余项由 ( 2 .14 ) 得
Rn ( x) =

t( t - 1) … ( t - n) n+ 1 ( n + 1 )
h f
(ξ) , ξ∈ ( x0 , xn ) .
( n + 1) !
(4 .1 1)

如果要求函数表示 xn 附近 的函 数值 f ( x ) , 此 时 应用 牛顿 插
值公式 (3 .6 ) , 插值点应按 xn , xn - 1 , … , x0 的次序排列 , 有
N n ( x ) = f ( xn ) + f [ xn , xn - 1 ] ( x - xn )
+ f[ xn , xn - 1 , xn - 2 ] ( x - xn ) ( x - xn - 1 ) + …
+ f[ xn , xn - 1 , … , x0 ] ( x - xn ) … ( x - x1 ) .
作变换 x = xn + th( - 1≤ t≤0 ) , 并利用公式 (4 .8 ) , 代入上式得
N n ( xn + th) = f n + tΔ f n +
+

t( t + 1) 2
Δ fn + …
2!

t( t + 1) … ( t + n - 1) n
Δ f n , (4 .1 2)
n!

2 .4

差分与等距节点插值

· 39 ·

称其为牛顿后插公式 , 其余项
Rn ( x ) = f ( x) - N n ( xn + th)
n+ 1

t( t + 1) … ( t + n) h
=
( n+ 1) !

f

( n+ 1 )

(ξ)

,

(4 .1 3)

其中 ξ∈ ( x0 , xn ) .
通常求开头部分插值点 附近函 数值 时使用 牛顿 前 插公 式 , 求
插值节点末尾附近函数值时使用牛顿后插公式 . 如果 用相同节 点
进行插值 , 则向前向后两种公式只是形式上差别 , 其计算结果是相
同的 .
例3

给出 f ( x) = cos x 在 x k = kh, k = 0 , 1 , … , 6 , h = 0. 1 处

的函数值 , 试用 4 次等距节点插值公式计算 f ( 0. 048) 及 f ( 0. 566)
的近似值并估计误差 .
解

先 构 造 差 分 表 . 用 牛 顿 向 前 插 值 公 式 ( 4 . 10 ) 计 算

f ( 0. 048) 的近 似 值 , 取 x = 0. 048 , h = 0. 1 , t =

x-0
= 0. 48 , 用
h

表 2 -4上半部差分 , 得
表

2-4

f ( xk )

Δ f (Δ f )

Δ2 f (Δ 2 f )

Δ3 f (Δ3 f )

Δ4 f (Δ 4 f ) Δ5 f (Δ 5 f )

1. 00000
- 0. 00500
0. 99500

- 0. 00993
- 0. 01493

0. 98007

0. 00013
- 0. 00980

- 0. 02473
0. 95534

0. 00025
- 0. 00955

- 0. 03428
0. 92106

0. 00012
- 0. 00002
0. 00010
0. 00035

- 0. 00920

- 0. 00001
0. 00009

· 40 ·

第 2章

插值法
续表

f ( xk )

Δ f (Δ f )

Δ2 f (Δ 2 f )

- 0. 04348
0. 87758

Δ3 f (Δ3 f )

Δ4 f (Δ 4 f ) Δ5 f (Δ 5 f )

0. 00044
- 0. 00876

- 0. 05224
0. 82534

N4 (0.048) = 1.00000 + 0. 48 × ( - 0.00500)
+ ( 0. 48 ) ( 0. 48 - 1) ( - 0. 00993)
2
+

1
(0. 48) (0. 48 - 1 ) ( 0. 48 - 2 ) ( 0. 00013)
3 !

+

1
(0.48) (0.48 - 1) (0. 48 - 2)(0.48 - 3) (0. 00012)
4!

= 0. 99885 ≈ cos0. 048 ,
误差估计由 (4 .1 1) 可得
| R4 ( 0. 048) | ≤

M5
| t( t - 1) ( t - 2) ( t - 3 ) ( t - 4 ) | h5
5!

≤ 1. 5845 × 10 - 7 ,
其中 M5 = | sin0. 6 | ≤0. 565 .
计算 f (0. 566 ) . 可用牛 顿 向后 插 值公 式 ( 4 .12 ) , x = 0. 566 ,
x6 = 0. 6 , t =

x - x6
= - 0. 34 , 用差分表 2 -4 中下半部差分 , 得
h

N4 ( 0. 566) = 0. 82534 - 0. 34 - 0. 05224 + (0. 66)
+ (1. 66)

0. 00044 + 2. 66 × 0. 00009
6
24

= 0. 84405 .
于是 cos0. 566≈ 0. 84405 , 误差估计由 (4 .13) 得

- 0. 00876
2

埃尔米特插值

2 .5

| R4 ( 0. 566) | ≤

· 41 ·

M5
5
| t( t + 1) ( t + 2) ( t + 3 ) ( t + 4 ) | h
5!

≤ 1. 7064 × 10

-7

,

其中 M5 = 0. 565 .

2 .5

埃尔米特插值

不少实际的插值问题不 但要求 在节 点上函 数值 相 等 , 而且 还
要求对应的导数值也相等 , 甚至要求高阶导数也相等 , 满足这种要
求的插值多项式就是埃 尔米 特 ( H ermite ) 插值 多项 式 . 下 面只 讨
论函数值与导数值个数相等的情况 . 设在 节点 a≤ x0 < x1 < … <
xn ≤ b 上 , yj = f ( x j ) , mj = f′( x j ) ( j = 0 , 1 , … , n) , 要 求 插值 多 项
式 H ( x ) , 满足条件
H ( x j ) = y j , H′( x j ) = mj

( j = 0 , 1 , … , n) .

( 5 .1)

这里给出了 2 n + 2 个条件 , 可唯一 确定 一个 次数不 超过 2 n + 1 的
多项式 H2 n + 1 ( x ) = H ( x ) , 其形式为
H2 n+ 1 ( x ) = a0 + a1 x + … + a2 n+ 1 x2 n+ 1 ,
如根据条件 (5 .1 ) 来确定 2 n + 2 个 系数 a0 , a1 , … , a2 n + 1 , 显 然非 常
复杂 , 因此 , 我们仍采用求拉格朗日插值多项式 的基函数 方法 . 先
求插值基函数 αj ( x) 及 βj ( x ) ( j = 0 , 1 , … , n) , 共有 2 n + 2 个 , 每一
个基函数都是 2 n + 1 次多项式 , 且满足条件
αj ( xk ) = δjk =

0,

j ≠ k,

1,

j = k,

α′(
j
xk ) = 0;

( 5 .2)

βj ( xk ) = 0 , β′(
j
xk ) = δjk ( j, k = 0 , 1 , … , n) .
于是满足条件 (5 .1 ) 的 插值多 项 式 H ( x ) = H2 n + 1 ( x ) 可写 成用 插
值基函数表示的形式
n

H2 n + 1 ( x ) =

∑ [ yα ( x ) +
j

j =0

j

mβ
j j ( x)] .

( 5 .3)

· 42 ·

第 2章

插值法

由条件 (5 .2 ) , 显然有 H2 n + 1 ( xk ) = yk , H′
2 n + 1 ( xk ) = mk , ( k = 0 ,
1 , … , n) . 下面 的 问 题 就 是 求 满 足条 件 ( 5 .2 ) 的 基 函 数 αj ( x ) 及
βj ( x ) .为此 , 可利用拉格朗日插值基函数 lj ( x ) . 令
αj ( x) = ( ax + b) l2j ( x ) ,
其中 lj ( x ) 是 ( 2 .8) 所表示的基函数 . 由条件 ( 5 .2) 有
2

αj ( xj ) = ( ax j + b) lj ( xj ) = 1 ,
α′(
j
xj ) = lj ( x j ) [ al j ( x j ) + 2 ( ax j + b) l′(
j
xj ) ] = 0 ,
ax j + b = 1 ;

整理得

a + 2 l′(
j
xj ) = 0 .

解出
a = - 2 l′(
j
x j ) , b = 1 + 2 xj l′(
j
xj ) .
由于
lj ( x ) =

( x - x0 ) … ( x - x j - 1 ) ( x - x j+ 1 ) … ( x - xn )
,
( x j - x0 ) … ( x j - x j - 1 ) ( xj - x j+ 1 ) … ( x j - xn )

利用两端取对数再求导 , 得
n

l′(
j
xj ) =

∑
k=0
k≠ j

1
,
xj - xk

于是
n

αj ( x) =

1
l2j ( x ) .
x j - xk

1 - 2( x - xj ) ∑
k= 0
k≠ j

( 5 .4)

同理 , 可得
2

βj ( x) = ( x - x j ) lj ( x ) .

( 5 .5)

还可证明满足条件 (5 .1 ) 的插值多项 式是唯一 的 . 用 反证法 ,
假设 H2 n + 1 ( x ) 及 珨
H2 n + 1 ( x) 均满足条件 (5 .1 ) , 于是
φ( x) = H2 n+ 1 ( x) - 珨
H2 n+ 1 ( x )
在每个节点 xk 上均有二重根 , 即 φ( x ) 有 2 n + 2 重根 . 但 φ( x ) 是
不高于 2 n + 1 次的多项式 , 故 φ( x) ≡ 0 . 唯一性得证 .

2 .5

埃尔米特插值

· 43 ·

仿照拉格朗日插值余项的证明方法 , 若 f ( x) 在 ( a, b) 内的 2 n
+ 2 阶导数存在 , 则其插值余项
( 2 n+ 2 )

f
(ξ) 2
R( x) = f ( x ) - H2 n + 1 ( x ) =
ωn+ 1 ( x ) ,
( 2 n + 2) !

( 5 .6)

其中 ξ∈ ( a, b) 且与 x 有关 . 具体证明请读者自行完成 .
作为带导数插值多项式 (5 .3 ) 的重要特例 是 n = 1 的 情形 . 这
时可取节点为 xk 及 x k + 1 , 插值多项式为 H3 ( x ) , 满足条件
H3 ( xk ) = yk ,
H3′( xk ) = mk ,

H3 ( xk+ 1 ) = yk+ 1 ;

( 5 .7)

H3′( xk+ 1 ) = mk+ 1 .

相应的插值基 函数 为 αk ( x ) ,αk + 1 ( x ) ,βk ( x ) ,βk + 1 ( x ) , 它 们 满 足
条件
αk ( xk ) = 1 , αk ( xk+ 1 ) = 0 ,
α′
k ( xk ) = α
′
k ( x k+ 1 ) = 0 ,
αk+ 1 ( xk ) = 0 , αk+ 1 ( xk+ 1 ) = 1 ,
k+ 1 ( x k ) = α
k+ 1 ( x k+ 1 ) = 0 ;
α′
′

βk ( xk ) = βk ( xk+ 1 ) = 0 ,
β′
k ( x k ) = 1 ,β
k′
( xk+ 1 ) = 0 ,
βk+ 1 ( xk ) = βk+ 1 ( xk+ 1 ) = 0 ,
β′
k+ 1 ( x k ) = 0 , β
′
k+ 1 ( x k+ 1 ) = 1 .
根据 (5 .4 ) 及 ( 5 .5) 的一般表达式 , 可得到
αk ( x) =
αk+ 1 ( x ) =

x - xk
1+2
x k+1 - x k
x - xk+ 1
1+2
xk - x k+ 1

x - xk+ 1
xk - xk+ 1

,

x - xk
x k+ 1 - xk

x - xk+ 1
βk ( x ) = ( x - x k )
xk - xk+ 1

( 5 .8)

2

.

2

,

x - xk
βk+ 1 ( x ) = ( x - xk+ 1 )
x k+ 1 - xk
于是满足条件 (5 .7 ) 的插值多项式是

2

( 5 .9)

2

.

· 44 ·

第 2章

插值法

H3 ( x) = ykαk ( x ) + yk+ 1 αk+ 1 ( x) + mkβk ( x)
+ mk+ 1 βk+ 1 ( x ) ,

(5 .1 0)

其余项 R3 ( x ) = f ( x) - H3 ( x) , 由 ( 5 .6) 得
R3 ( x ) = 1 f ( 4 ) (ξ) ( x - xk ) 2 ( x - xk+ 1 ) 2 ,ξ∈ ( xk , xk+ 1 ) .
4!
例4

求满足 P( xj ) = f ( x j ) ( j = 0 , 1 , 2 ) 及 P′( x1 ) = f′( x1 )

的插值多项式及其余项表达式 .
由给定条 件 , 可确 定次 数不超 过 3 的插 值多 项式 . 由 于此 多
项式通过点 ( x0 , f ( x0 ) ) , ( x1 , f ( x1 ) ) 及 ( x2 , f ( x2 ) ) , 故其形式为
P( x ) = f ( x0 ) + f [ x0 , x1 ] ( x - x0 )
+ f [ x0 , x1 , x2 ] ( x - x0 ) ( x - x1 )
+ A( x - x0 ) ( x - x1 ) ( x - x2 ) ,
其中 A 为待定常数 , 可由 条件 P′( x1 ) = f′( x1 ) 确 定 , 通过 计算 可
得
A =

f′( x1 ) - f [ x0 , x1 ] - ( x1 - x0 ) f[ x0 , x1 , x2 ]
.
( x1 - x0 ) ( x1 - x2 )

为了求出余项 R( x ) = f ( x) - P( x) 的表达式 , 可设
R( x) = f ( x ) - P( x) = k( x) ( x - x0 ) ( x - x1 ) 2 ( x - x2 ) ,
其中 k( x ) 为待定函数 . 构造
φ( t) = f ( t) - P( t) - k( x ) ( t - x0 ) ( t - x1 ) 2 ( t - x2 ) .
显然 φ( x j ) = 0 ( j = 0 , 1 , 2 ) . 且 φ′( x1 ) = 0 ,φ( x ) = 0 , 故 φ( t) 在
(4)

( a, b) 内有 5 个零点 ( 二重根算两个 ) . 反复应用罗尔定理 , 得 φ ( t)
在 ( a, b) 内至少有一个零点 ξ, 故
(4 )

φ (ξ) = f

(4 )

(ξ) - 4 !k( x ) = 0 ,

于是
k( x ) =
余项表达式为

1 ( 4)
f (ξ) ,
4 !

分段低次插值

2 .6

R( x ) =

1 (4)
2
f (ξ) ( x - x0 ) ( x - x1 ) ( x - x2 ) ,
4!

· 45 ·

(5 .1 1)

式中 ξ位于 x 0 , x1 , x2 和 x 所界定的范围内 .

2 .6
2 .6 .1

分段低次插值

高次插值的病态性质

上面我们根据区间[ a, b]上 给出 的节 点做 插 值多 项式 Ln ( x)
近似 f ( x) , 一般总认为 Ln ( x ) 的 次数 n 越高 逼近 f ( x ) 的 精度 越
好 , 但实际上并非如此 . 这是因为对任意的插值节点 , 当 n→∞时 ,
Ln ( x) 不一定收敛到 f ( x ) . 20 世纪初龙格 ( Runge ) 就 给出了一 个
等距节点插值多项式 Ln ( x ) 不收敛到 f ( x ) 的例子 . 他给出的函数
2

为 f ( x) = 1/ (1 + x ) , 它在 [ - 5 , 5 ] 上 各阶 导 数均 存在 . 在 [ - 5 ,
5] 上取 n + 1 个等距节点 xk = - 5 + 10

k
( k = 0 , 1 , … , n) 所构造的
n

拉格朗日插值多项式为
n

Ln ( x) =

j= 0

令 xn - 1/

2

=

1

∑1+

ωn+ 1 ( x )
.
x ( x - xj )ω′
n+ 1 ( xj )
2
j

1
5
( xn - 1 + xn ) , 则 xn - 1/ 2 = 5 , 表 2 -5 列 出 了 n = 2 ,
2
n

4 , … , 20 的 Ln ( xn - 1/ 2 ) 的计算结果及在 xn - 1/ 2 上的误差 R ( xn - 1/ 2 ) .
可以看出 , 随 n 的增 加 , R ( x n - 1/ 2 ) 的 绝 对 值几 乎 成倍 地 增加 . 这
说明当 n→∞时 Ln 在[ - 5 , 5] 上不收敛 . Runge 证明了 , 存在一个
常数 c≈ 3. 63 , 使得当 | x | ≤ c 时 , n→
lim
Ln ( x ) = f ( x ) , 而当 | x | > c 时
∞
{ Ln ( x ) }发散 .
2

下面取 n = 10 , 根据计算画 出 y = L10 ( x ) 及 y = 1/ ( 1 + x ) 在
[ - 5 , 5 ]上的图形 , 见图 2 -5 .

· 46 ·
表

第 2章

插值法

2-5

n

f ( x n - 1/ 2 )

Ln ( xn - 1/ 2 )

R( x n - 1/ 2 )

2

0.137931

0. 759615

- 0. 621684

4

0.066390

- 0. 356826

0. 423216

6

0.054463

0. 607879

- 0. 553416

8

0.049651

- 0. 831017

0. 880668

10

0.047059

1. 578721

- 1. 531662

12

0.045440

- 2. 755000

2. 800440

14

0.044334

5. 332743

- 5. 288409

16

0.043530

- 10. 173867

10. 217397

18

0.042920

20. 123671

- 20. 080751

20

0.042440

- 39. 952449

39. 994889

从图上看到 , 在 x = ±5 附近 L10 ( x ) 与 f ( x) = 1/ (1 + x2 ) 偏离
很远 , 例如 L10 (4.8 ) = 1. 80438 , f (4. 8) = 0.04160 . 这说明用高次插
值多项式 Ln ( x) 近似 f ( x ) 效果并不好, 因而通常不用 高次插值 , 而
用分段低次插值 . 从本例看到 , 如果我们把 y = 1/ (1 + x2 ) 在节点 x
= 0, ± 1 , ± 2 , ± 3 , ± 4 , ± 5 处用 折 线 连 起 来显 然 比 L10 ( x ) 逼 近
f ( x) 好得多 . 这正是我们下面要讨论的分段低次插值的出发点 .

图

2-5

2 .6

分段低次插值

· 47 ·

分段线性插值

2 .6 .2

所谓分段线性 插值 就 是通 过 插 值点 用 折 线 段 连接 起 来 逼 近
f ( x) .设已知节点 a = x0 < x1 < … < xn = b 上的函数 值 f 0 , f1 , … ,
f n , 记 hk = xk + 1 - xk , h = max
h k , 求一折线函数 Ih ( x ) 满足 :
k
1°记 Ih ( x ) ∈ C[ a, b] ,
2°Ih ( xk ) = f k

( k = 0 , 1 , … , n) ,

3°Ih ( x ) 在每个小区间[ xk , xk + 1 ]上是线性函数。
则称 Ih ( x) 为分段线性插值函数 .
由定义可知 Ih ( x) 在每个小区间 [ xk , xk + 1 ]上可表示为
Ih ( x ) =

x - xk+ 1
x - xk
fk +
f k+ 1
xk - xk+ 1
x k+ 1 - xk

( xk ≤ x ≤ xk+ 1 ) .
( 6 .1)

若用插值基函数表示 , 则在整个区间[ a, b]上 Ih ( x ) 为
n

I h ( x) =

∑f

j

l j ( x) ,

( 6 .2)

j =0

其中基函数 lj ( x ) 满足条件 lj ( xk ) =δjk ( j, k = 0 , 1 , … , n) , 其形 式
是

lj ( x ) =

x - xj - 1
,
xj - x j - 1

x j - 1 ≤ x ≤ xj ( j = 0 略去 ) ;

x - xj+ 1
,
xj - x j+ 1

x j ≤ x ≤ x j+ 1 ( j = n 略去 ) ;

0,

x ∈ [ a, b] , x | [ xj - 1 , x j+ 1 ] .

( 6 .3)

分段线性插值的误差估计可利用插值余项 (2 .1 7) 得到
x

k

m ax
≤ x≤ x

k+ 1

| f ( x ) - I h ( x) | ≤

M2
2

m ax

x ≤ x≤ x
k
k+ 1

| ( x - xk ) ( x - xk+ 1 ) |

或
m ax | f ( x) - Ih ( x) | ≤
a≤ x≤ b

M2 2
h ,
8

( 6 .4)

· 48 ·

第 2章

插值法

其中 M2 = a≤
max
| f″( x ) | .
x≤ b
分段线性插值基函数 lj ( x ) 只在 x j 附近不 为零 , 在其 他地 方
均为零 , 这种性质称为局部非零性质 . 当 x∈ [ x k , xk + 1 ]时
n

1 =

∑ l ( x)
j

= lk ( x ) + l k+ 1 ( x ) ,

j= 0

故
f ( x) = [ l k ( x) + lk+ 1 ( x ) ] f ( x ) .
另一方面 , 这时
I h ( x) = f k l k ( x) + f k+ 1 lk+ 1 ( x) .
现在证明lim
Ih ( x ) = f ( x ) . 考虑
h→ 0
| f ( x ) - I h ( x ) | ≤ lk ( x) | f ( x) - f k |
+ lk+ 1 ( x) | f ( x) - f k+ 1 |
≤ [ lk ( x ) + lk+ 1 ( x ) ]ω( hk ) = ω( hk ) ≤ ω( h) .
这里 ω( h) 是 函 数 f ( x) 在区 间 [ a, b] 上的 连 续 模 , 即对 任 意 两 点
x′, x″∈[ a, b] , 只要 | x′- x″| ≤ h, 就有
| f ( x′) - f ( x″) | ≤ ω( h)
称 ω( h) 为 f ( x ) 在 [ a, b] 上 的 连续 模 , 当 f ( x ) ∈ C[ a, b] 时 , 就 有
lim
ω( h) = 0 .
h→ 0
由前式可知 , 当 x∈[ a, b]时有
max | f ( x ) - Ih ( x ) | ≤ ω( h) .
a≤ x≤ b
因此 , 只要 f ( x ) ∈ C[ a, b] , 就有
lim
I h ( x) = f ( x )
h→ 0
在[ a, b] 上一致成立 , 故 Ih ( x ) 在[ a, b]上一致收敛到 f ( x) .
2 .6 .3

分段三次埃尔米特插值

分段线性插值函数 I h ( x ) 的导 数是 间断 的 , 若在 节点 xk ( k =
0 , 1 , … , n) 上 除 已 知 函 数值 f k 外 还 给出 导 数 值 f ′
k = mk ( k = 0 ,
1 , … , n) , 这样就可构造一 个 导数 连续 的分 段 插 值函 数 Ih ( x ) , 它

2 .6

满

分段低次插值

· 49 ·

条件 :
1

1

1 . I h ( x) ∈ C [ a, b] ( C [ a, b]代表区 间[ a, b]上一 阶导数连 续
的函数集合 ) ,
2 . I h ( xk ) = f k , I ′
h ( xk ) = f ′
k ( k = 0 , 1 , … , n) ,
3 . I h ( x) 在每个小区间[ xk , xk + 1 ]上是三次多项式 .
根据两点三 次 插 值多 项 式 ( 5 .10 ) . 可知 , I h ( x ) 在 区 间 [ xk ,
xk + 1 ] 上的表达式为
2

x - xk+ 1
xk - x k+ 1

Ih ( x) =

x - xk
1+2
x k+ 1 - xk

x - xk+ 1
· 1 +2
xk - xk+ 1
+

x - xk
x k+ 1 - xk

f k+ 1 +

fk +

x - xk+ 1
xk - xk+ 1

x - xk
x k+ 1 - xk

2

2

( x - xk ) f ′
k

2

( x - xk+ 1 ) f ′
k+ 1
.

( 6 .5)

若在整个区间 [ a, b] 上定 义一 组分 段三 次 插 值基 函 数 αj ( x)
及 βj ( x ) ( j = 0 , 1 , … , n) , 则 Ih ( x ) 可表示为
n

Ih ( x ) =

∑ [ f α ( x) +
j

j

f′
j βj ( x) ] ,

( 6 .6)

j =0

其中 αj ( x) ,βj ( x ) 分别表示为

αj ( x) =

x - xj - 1
xj - xj- 1

2

x - x j+ 1
x j - x j+ 1

2

1 +2

xj - 1 ≤ x ≤ xj
x - xj
,
x j - 1 - x j ( j = 0 略去 ) ,

1 +2

x j ≤ x ≤ x j+ 1
x - xj
,
x j+ 1 - x j ( j = n 略去 ) ,
其他 ;

0,

βj ( x ) =
0,

( 6 .7)

x - xj - 1
xj - x j - 1

2

x - xj+ 1
xj - x j+ 1

2

( x - xj ) ,

xj - 1 ≤ x ≤ x j ( j = 0 略去 ) ,

( x - xj ) ,

xj ≤ x ≤ xj+ 1 ( j = n 略去 ) ,
其他 .
( 6 .8)

· 50 ·

第 2章

插值法

由于 αj ( x) ,βj ( x ) 的局 部非零性 质 , 当 x∈ [ xk , xk + 1 ]时 , 只 有
αk ( x) ,αk + 1 ( x) ,βk ( x) ,βk + 1 ( x) 不为零, 于是 (6 .6 ) 的 Ih ( x) 可表示为
I h ( x) = f kαk ( x ) + f k+ 1 αk+ 1 ( x) + f ′
k β
k ( x ) + f′
k+ 1 β
k+ 1 ( x)
( xk ≤ x ≤ xk+ 1 ) .

( 6 .9)

为了研究 Ih ( x) 的收敛性 , 由 ( 6 .7) 及 (6 .8 ) 直接得估计式
0 ≤ αj ( x ) ≤ 1 ,
| βk ( x) | ≤

4
4
hk , | βk+ 1 ( x) | ≤
hk .
27
27

(6 .1 0)
(6 .1 1)

此外 , 当 f ( x ) 是 分 段 三 次 多 项 式 时 , f ( x ) 的 插 值 多 项 式
I h ( x) 就是它本身 .例如 , 当 f ( x) = 1 时就有
n

∑α ( x )
j

= 1 .

j= 0

当 x∈ [ x k , xk + 1 ]时 , 就得
αk ( x ) + αk+ 1 ( x ) = 1 .

(6 .1 2)

由 (6 .9 ) ~ ( 6 .12 ) , 当 x∈ [ x k , xk + 1 ]时还可得
| f ( x) - Ih ( x) | ≤αk ( x) | f ( x) - f k | + αk+ 1 ( x) | f ( x) - f k+ 1 |
+ (4/ 27) hk [ | f ′
k
| + | f′
k+ 1 | ]
≤ αk ( x ) | f′(ξ) | hk + αk+ 1 ( x) | f′(η) | hk+ 1
+

4
[ | f′
k
| + | f′
k+ 1 | ] hk ,
27

这里 ξ,η∈ ( xk , xk + 1 ) 且依赖于 x . 因此对 " x∈[ a, b]成立
max | f ( x ) - I h ( x) | ≤

a≤ x ≤ b

35
h max | f′( x ) | .
27 a ≤ x ≤ b

(6 .1 3)

这表明用 Ih ( x) 逼近 f ( x ) 时 , 它 的界 只依赖 h, 而与 x 无关 .
因此 , 当 x∈[ a, b]时
lim
I h ( x) = f ( x )
h→ 0
一致成立 . 从而得到 :
定理 3

1

设 f ∈ C [ a, b] , 则当 h→0 时 , I h ( x) 在 [ a, b] 上一 致

2 .7

三次样条插值

· 51 ·

收敛于 f ( x) .

2 .7

三次样条插值

上面讨论的分段低次插 值函数 都有 一致收 敛性 , 但光 滑性 较
差 , 对于像高速飞机的机翼形线 , 船体放样等型值线往往要求有二
阶光滑度 , 即有二阶连续导数 . 早期工程师制图 时 , 把 富有弹性 的
细长木条 ( 所 谓样条 ) 用 压铁固定 在样点 上 , 在其他地 方让它自 由
弯曲 , 然后画下长条的曲线 , 称为样条曲线 . 样条曲线 实际上是 由
分段三次曲线并接而成 , 在连接点即样点上要求二阶导数连续 , 从
数学上加以概括就得到数学样条这一概念 . 下面我们 讨论最常 用
的三次样条函数 .
2 .7 .1

三次样条函数

定义 4

若函数 S ( x ) ∈ C2 [ a, b] , 且在每 个小 区间 [ x j , x j + 1 ]

上是三次多项式 , 其中 a = x0 < x1 < … < xn = b 是给 定 节点 , 则 称
S( x ) 是节点 x0 , x1 , … , xn 上 的三 次样 条函 数 . 若在 节 点 x j 上 给
定函数值 y j = f ( x j ) ( j = 0 , 1 , … , n) , 并成立
S( x j ) = yj

( j = 0 , 1 , … , n) ,

( 7 .1)

则称 S( x) 为三次样条插值函数 .
从定义知要求 出 S( x ) , 在 每 个 小 区 间 [ x j , xj + 1 ] 上 要 确 定 4
个待定系数 , 共有 n 个小区间 , 故应确定 4 n 个参数 . 根 据 S( x ) 在
[ a, b] 上二阶导数连续 , 在 节 点 xj ( j = 1 , 2 , … , n - 1 ) 处 应满 足 连
续性条件
S( xj - 0 ) = S( xj + 0) , S′( xj - 0) = S′( x j + 0) ,
S″( xj - 0 ) = S″( xj + 0) .

( 7 .2)

共有 3 n - 3 个条件 , 再加上 S( x) 满足插值 条件 (7 .1 ) , 共有 4 n - 2
个条件 , 因此还需要 2 个条件才能确定 S( x) . 通常可在区间[ a, b]

· 52 ·

第 2章

插值法

端点 a = x0 , b = xn 上各加 一个 条件 ( 称 为边 界条 件 ) , 可根 据实 际
问题的要求给定 . 常见的有以下 3 种 :
1°已知两端的一阶导数值 , 即
S′( x0 ) = f 0′, S′( xn ) = f ′
n
.

( 7 .3)

2°两端的二阶导数已知 , 即
S″( x0 ) = f 0″, S″( xn ) = f ″
n ,

( 7 .4)

S″( x0 ) = S″( xn ) = 0 .

( 7 .4)′

其特殊情况为
(7 .4 )′称为自然边界条件 .
3°当 f ( x) 是以 xn - x0 为周期的周期函数时 , 则要求 S( x) 也
是周期函数 . 这时边界条件应满足
S( x0 + 0 ) = S( xn - 0 ) , S′( x0 + 0) = S′( xn - 0 ) ,
S″( x0 + 0 ) = S″( xn - 0) ,

( 7 .5)

而此时 (7 .1 ) 中 y0 = yn . 这样确定的样条函数 S( x ) 称为周期样 条
函数 .
2 .7 .2

样条插值函数的建立

构造满足插值条件 ( 7 .1 ) 及相应 边界 条件 的三次 样条 插值 函
数 S( x) 的表达式可以有多种方法 . 例如 , 可 以直接利 用分段三 次
埃尔米特插 值 (6 .6 ) , 只要 假定 S′( xj ) = mj ( j = 0 , 1 , … , n) , 再 由
(7 .1 ) 可得
n

S( x) =

∑ [ y α ( x) +
j

j

mjβj ( x ) ] ,

( 7 .6)

j= 0

其中 αj ( x ) ,βj ( x ) 是由 ( 6 .7 ) , ( 6 .8 ) 表示的 插值 基函数 , 利 用条 件
(7 .2 ) 及相 应 边 界 条 件 ( 7 .3 ) ~ ( 7 .5 ) 则 可 得 到 关 于 mj ( j = 0 ,
1 , … , n) 的三对角方 程 组 , 求 出 mj 则 得 到 所 求 的 三 次 样 条 函 数
S ( x) .
下面我们利用 S( x) 的 二阶 导 数值 S″( x j ) = Mj ( j = 0 , 1 , … ,

2 .7

三次样条插值

· 53 ·

n) 表达 S ( x ) , 由 于 S ( x ) 在 区 间 [ x j , xj + 1 ] 上 是 三 次多 项 式 , 故
S″( x ) 在[ x j , x j + 1 ]上是线性函数 , 可表示为
S″( x) = Mj

x j+ 1 - x
x - xj
+ M j+ 1
.
hj
hj

( 7 .7)

对 S″( x) 积分两次并利用 S( x j ) = y j 及 S ( x j + 1 ) = y j + 1 , 可 定出 积
分常数 , 于是得三次样条表达式
3

( x j+ 1 - x )
( x - xj )
S( x ) = Mj
+ Mj+ 1
6 hj
6 hj
2

+

Mj h j
yj 6

x j+ 1 - x
+
hj

3

2

y j+ 1

M j+ 1 hj
6

x - xj
hj

( j = 0 , 1 , … , n - 1) .

( 7 .8)

这里 Mj , j = 0 , 1 , … , n, 是未知的 . 为了确 定 Mj , j = 0 , 1 , … , n, 对
S( x ) 求导得
2

( x j+ 1 - x)
( x - xj )
S′( x) = - Mj
+ Mj+ 1
2 hj
2 hj
+

2

y j+ 1 - y j
Mj+ 1 - M j
hj ;
hj
6

( 7 .9)

由此可求得
S′( x j + 0 ) = -

hj
hj
y j+ 1 - y j
Mj Mj+ 1 +
.
3
6
hj

类似地可求出 S( x) 在区间[ xj - 1 , x j ]上的表达式 , 从而得
S′( xj - 0 ) =

hj - 1
hj - 1
yj - y j - 1
Mj - 1 +
Mj +
,
6
3
hj - 1

利用 S′( x j + 0 ) = S′( x j - 0 ) 可得
μj M j - 1 + 2 Mj + λj M j+ 1 = dj

( j = 1 , 2 , … , n - 1) ,
(7 .1 0)

其中
μj =

hj - 1
hj
, λj =
, j = 0 , 1 , … , n,
h j - 1 + hj
h j - 1 + hj

· 54 ·

第 2章

dj = 6

插值法

f[ x j , x j+ 1 ] - f[ x j - 1 , x j ]
= 6 f[ x j - 1 , x j , x j+ 1 ] .
hj - 1 + hj
(7 .1 1)

对第一种边界条件 (7 .3 ) , 可导出两个方程
6
2 M0 + M1 =
( f [ x0 , x1 ] - f0′) ,
h0

(7 .1 2)
6
Mn - 1 + 2 Mn =
( f′
n
- f [ xn - 1 , xn ] ) .
hn - 1
6
6
n
如果令 λ0 = 1 , d0 =
( f [ x0 , x1 ] - f0′) , μn = 1 , dn =
( f′
h0
hn - 1
f [ xn - 1 , xn ] ) , 那么 (7 .1 0) 及 (7 .1 2) 可写成矩阵形式
2
λ0
M0
d0
μ1
2
λ1
M1
d1
w

w
μn - 1

w
2

⁝
λn - 1

μn

2

=

Mn - 1

⁝

. (7 .1 3)

dn - 1

Mn
dn
对第二种边界条件 (7 .4 ) , 直接得端点方程
M0 = f 0″,
Mn = f ″
n
.
(7 .1 4)
如果令 λ0 = μn = 0 , d0 = 2 f0″, dn = 2 f ″
n , 则 ( 7 .10 ) 和 ( 7 .14 ) 也可 以
写成 (7 .1 3) 的形式 .
对于第三种边界条件 (7 .5 ) , 可得
M0 = Mn ,
λn M1 + μn M n - 1 + 2 Mn = dn , (7 .1 5)
h0
hn - 1
其 中 λn =
, μn = 1 - λn =
, dn =
hn - 1 + h0
hn - 1 + h0
f [ x0 , x1 ] - f [ xn - 1 , xn ]
6
, (7 .1 0) 和 (7 .1 5) 可以写成矩阵形式
h0 + hn - 1
2
λ1
μ1
M1
d1
μ2
2
λ2
M2
d2
w
λn

w

w

μn - 1

2

λn - 1

⁝
Mn - 1

μn

2

Mn

=

⁝
dn - 1
dn

. (7 .1 6)

三次样条插值

2 .7

· 55 ·

(7 .1 3) 和 (7 .16 ) 是关于 Mj ( j = 0 , 1 , … , n) 的 三对角方 程组 ,
Mj 在力学上解释为细梁在 x j 截面 处的 弯 矩 , 称为 S ( x ) 的 矩 , 方
程组 (7 .1 3) 和 (7 .1 6) 称为三弯矩方程 . ( 7 .13 ) 和 ( 7 .16) 的系数 矩
阵中元素 λj ,μj 已完全确 定 . 并 且 满 足 λj ≥ 0 , μj ≥ 0 ,λj + μj = 1 .
因此系数矩阵为严格对角占优阵 , 从而 ( 7 .13 ) 和 ( 7 .16 ) 有唯一解 .
求解方法可见第 5 章第 4 节追赶法 , 将解得结果代入 ( 7 .8) 的表达
式即可 .
例 5 设 f ( x ) 为定义在[ 27. 7 , 30]上的函数 , 在节点 xi ( i = 0 ,
1 , 2 , 3) 上的值如下 :
f ( x0 ) = f (27. 7) = 4. 1 , f ( x1 ) = f (28) = 4. 3 ,
f ( x2 ) = f (29) = 4. 1 , f ( x3 ) = f (30) = 3 .0 .
试求三次样 条 函 数 S ( x ) , 使 它 满 足 边 界 条 件 S′( 27. 7 ) = 3 .0 ,
S′( 30 ) = - 4. 0 .
解

先由 ( 7 .11 ) 及 ( 7 .12 ) 计 算 h0 = 0. 30 , h1 = h2 = 1 , μ1 =

3
1
10
1
6
,μ2 = ,μ3 = 1 ,λ0 = 1 ,λ1 =
,λ2 =
, d0 = ( f[ x0 , x1 ] - f0′)
13
2
13
2
h0
= - 46. 666 , d1 = 6 f [ x0 , x1 , x2 ] = - 4. 00002 , d2 = 6 f [ x1 , x2 , x3 ]
6
( f3′- f [ x2 , x3 ] ) = - 17. 4 .
h2

= - 2. 70000 , d3 =

由此得矩阵形式的方程组 (7 .1 3) 为
2
3
13

1
2
1
2

M0

10
13
2
1

M1
1
2

M2
M3

- 46. 6666
=

- 4. 00002
- 2. 7000

.

- 17. 4000

2

求解此方程组得到
M0 = - 23. 531 , M1 = 0. 395 , M2 = 0. 830 , M3 = - 9. 115 .
将 M0 , M1 , M2 , M3 代入表达式 (7 .8 ) 得到 ( 曲线见图 2-6)

· 56 ·

第 2章

插值法

13. 07278( x - 28 ) 3 - 14. 84322 ( x - 28 ) + 0. 21944
·( x - 27.7)3 + 14.31358( x - 27.7) ,
S( x ) =

x ∈ [27.7, 28] ,

0. 06583 (29 - x) 3 + 4. 23417 (29 - x ) + 0. 13833
· ( x - 28 ) 3 + 3. 96167( x - 28) ,

x ∈ [28 , 29 ] ,

3

0. 13833 (30 - x) + 3. 96167 (30 - x ) - 1. 51917
3

· ( x - 29 ) + 4. 51917( x - 29) ,

x ∈ [29 , 30 ] .

通常求三次样条函数可根据上述例题的计算步骤直接编程上
机计算 , 或直接使用数学库中软件 , 根据具体要求算出结果即可 .

图

例6

给定函数 f ( x) =

2-6

1
2 , - 5 ≤ x≤5 , 节 点 x k = - 5 + k
1+ x

( k = 0 , 1 , … , 10) , 用三次样条插值求 S10 ( x) .
取 S1 0 ( xk ) = f ( xk )

( k = 0 , 1 , … , 10 ) , S′(
10
- 5 ) = f′( - 5 ) ,

S′
10 (5 ) = f′
( 5) . 直接 上机 计算 可求 出 S1 0 ( x ) 在 表 2 -6 所 列各 点
的值 .从表中看到 , 在所列各点 S10 ( x ) 与 f ( x ) 误差较小 , 它可作为
f ( x) 在区间[ - 5 , 5 ]上 的近 似 , 而 用拉 格朗 日插值 多项 式 L10 ( x)
计算相应点上 的值 L1 0 ( x ) ( 也 见 表 2-6 ) , 显 然 它与 f ( x ) 相 差 很
大 , 在图 2 -5 中已经看到它不能作为 f ( x ) 的近似 .

2 .7
表

· 57 ·

2-6
1
1 + x2

x

三次样条插值

S10 ( x)

L10 ( x)

x

1
1 + x2

S10 ( x)

L10 ( x)

- 5. 0 0. 03846 0. 03846

0. 03846

- 2. 3 0. 15898 0. 16115 0. 24145

- 4. 8 0. 04160 0. 03758

1. 80438

- 2. 0 0. 20000 0. 20000 0. 20000

- 4. 5 0. 04706 0. 04248

1. 57872

- 1. 8 0. 23585 0. 23154 0. 18878

- 4. 3 0. 05131 0. 04842

0. 88808

- 1. 5 0. 30769 0. 29744 0. 23535

- 4. 0 0. 05882 0. 05882

0. 05882

- 1. 3 0. 37175 0. 36133 0. 31650

- 3. 8 0. 06477 0. 06556 - 0. 20130

- 1. 0 0. 50000 0. 50000 0. 50000

- 3. 5 0. 07547 0. 07606 - 0. 22620

- 0. 8 0. 60976 0. 62420 0. 64316

- 3. 3 0. 08410 0. 08426 - 0. 10832

- 0. 5 0. 80000 0. 82051 0. 84340

- 3. 0 0. 10000 0. 10000

0. 10000

- 0. 3 0. 91743 0. 92754 0. 94090

- 2. 8 0. 11312 0. 11366

0. 19837

- 2. 5 0. 13793 0. 13971

0. 25376

2 .7 .3

0

1. 00000 1. 00000 1. 00000

误差界与收敛性

三次样条函数的收敛性 与误差 估计 比较复 杂 , 这 里不 加证 明
地给出一个主要结果 .
定理 4

4

设 f ( x) ∈ C [ a, b] , S( x ) 为满 足第一 种 或第 二种 边

界条件 (7 .3 ) 或 ( 7 .4) 的三次样条函数 , 令 h = 0 ≤max
hi , hi = xi + 1 i≤ n - 1
x i ( i = 0 , 1 , … , n - 1 ) , 则有估计式
max | f ( k) ( x) - S( k) ( x) | ≤ Ck a≤
max
| f ( 4 ) ( x) | h4 - k , k = 0 , 1 , 2,
x≤ b

a≤ x≤ b

(7 .1 7)
其中 C0 =

5
1
3
, C1 =
, C2 =
.
384
24
8

这个定理不但给出了三次样条插值函数 S( x) 的误差 估计 , 且
当 h→0 时 , S( x) 及其一阶导数 S′( x ) 和二阶导 数 S″( x) 均分别 一

· 58 ·

第 2章

插值法

致收敛于 f ( x) , f′( x ) 及 f″( x) .

评

注

插值法是一个古老 而 实用 的课 题 . 它是 函数 逼 近 , 数值 微 积
分和微分方程数值解的基础 . 本章讨论了拉 格朗日插 值公式及 牛
顿插值公式 , 前者在理论上较为重要 , 后者在计算插值多次式及求
函数近似值较为方便且节省计算量 . 等距节 点插值是 应用中最 常
见的 , 利用差分及牛顿前插与后插公式即可 , 还有利用中心差分得
到的其他类型插值公式 , 因使用较少本章没有介绍 , 如有需要可参
看文献[3 ] .
对充分光滑的被插函数可采用微分形式的误差估计给出误差
限 , 其他情形可利用 均差 形式 给出 误 差估 计的 近似 值 . 但 由于 高
次插值存在病态性质 , 一般实际计算很少使用高次插值 , 更多使用
分段低次插值 , 特别是三次样条插值 , 由于它具有良好的收敛性和
稳定性 , 又有二阶光滑 度 , 因 此在 理论 上和应 用中 均有 重要 意义 ,
本章只对最常用的三弯矩 方程 做简单 介绍 , 一 般的样 条函 数理 论
和 B-样条等更详细内容读者如有需要可参看文献 [4 , 5 , 10]等 .

习

题

1 . 当 x = 1 , - 1 , 2 时 , f ( x ) = 0 , - 3 , 4 , 求 f ( x) 的二次插值多项式 .
2 . 给出 f ( x) = ln x 的数值表
x

0. 4

0.5

0. 6

ln x

- 0. 916291

- 0. 693147

- 0. 510826

x

0. 7

0. 8

ln x

- 0. 356675

- 0. 223144

习

题

· 59 ·

用线性插值及二次插值计算 ln0. 54 的近似值 .
3 . 给出 cos x , 0°≤ x≤90°
的函数表 , 步长 h = 1′= (1/ 60)°, 若函数表具有
5 位有效数字 , 研究用线性插值求 cos x 近似值时的总误差界 .
4 . 设 x j 为互异节点 ( j = 0 , 1 , … , n) , 求证 :
n

i)

∑x l

k
j j

( x) ≡ xk

( k = 0 , 1 , … , n) ;

j=0
n

ii)

∑( x

j

- x ) k lj ( x) ≡ 0

( k = 1 , 2 , … , n) .

j =0

5 . 设 f ( x) ∈ C2 [ a, b]且 f ( a) = f ( b) = 0 , 求证 :
ma x | f ( x ) | ≤

a≤ x≤ b

1
( b - a) 2 max | f″( x) | .
a≤ x≤ b
8

6 . 在 - 4≤ x≤4 上给出 f ( x) = e x 的等距节点 函数表 , 若用二次插 值求
ex 的近似值 , 要使截断误差不超过 10 - 6 , 问使用函数表的步长 h 应取多少 ?
7 . 若 y n = 2n , 求 Δ4 yn 及δ4 y n .
8 . 如果 f ( x )是 m 次多项式 , 记 Δ f ( x ) = f ( x + h) - f ( x ) , 证明 f ( x ) 的
k 阶差分 Δk f ( x) (0≤ k≤ m) 是 m - k 次 多项式 , 并且 Δm + l f ( x ) = 0 ( l 为正整
数) .
9 . 证明 Δ( f k g k ) = f k Δgk + g k+ 1 Δ f k .
n- 1

n- 1

10 . ∑ f k Δg k = f n g n - f 0 g0 k= 0

∑g

k+1

Δf k .

k= 0

n- 1

11 . 证明

∑Δ

2

y j = Δy n - Δy0 .

j =0

12 . 若 f ( x ) = a0 + a1 x + … + an - 1 x n - 1 + an x n 有 n 个 不 同 实 根 x 1 ,
x2 , … , x n , 证明 :
n

∑
j=1

xkj
=
f′( x j )

0,0 ≤ k ≤ n - 2 ;
an- 1 , k = n - 1 .

13 . 证明 n 阶均差有下列性质 :
i ) 若 F( x) = c f ( x) , 则 F[ x0 , x1 , … , x n ] = c f [ x0 , x1 , … , x n ] ;
ii) 若 F ( x) = f ( x) + g( x) , 则
F[ x0 , x1 , … , xn ] = f [ x0 , x1 , … , x n ] + g[ x0 , x1 , … , xn ] .
14 . f ( x) = x7 + x4 + 3 x + 1 , 求
f[ 20 , 21 , … , 27 ] 及 f [20 , 21 , … , 28 ] .

· 60 ·

第 2章

插值法

15 . 证明两点三次埃尔米特插值余项是
R3 ( x) = f ( 4) (ξ) ( x - x k ) 2 ( x - xk+1 )2 / 4 !, ξ∈ ( xk , xk+ 1 ) ,
并由此求出分段三次埃尔米特插值的误差限 .
16 . 求一个次数不高于 4 次的多 项式 P ( x) , 使它满 足 P( 0 ) = P′( 0 ) =
0 , P( 1) = P′(1 ) = 1 , P (2) = 1 .
17 . 设 f ( x) = 1/ ( 1 + x2 ) , 在 - 5≤ x≤5 上 取 n = 10 , 按 等距节点求 分段
线性插值函数 Ih ( x ) , 计算 各 节 点间 中 点 处的 Ih ( x ) 与 f ( x ) 的 值 , 并 估 计
误差 .
18 . 求 f ( x) = x2 在 [ a, b]上的分段线性插值函数 Ih ( x ) , 并估计误差 .
19 . 求 f ( x) = x4 在 [ a, b]上的分段埃尔米特插值 , 并估计误差 .
20 . 给定数据表如下:
xj

0. 25

0. 30

0. 39

0. 45

0. 53

yj

0. 5000

0. 5477

0.6245

0. 6708

0. 7280

试求三次样条插值 S( x ) , 并满足条件 :
i ) S′( 0. 25) = 1. 0000 , S′(0. 53 ) = 0. 6868 ;
ii) S″(0. 25 ) = S″( 0. 53) = 0 .
21 . 若 f ( x) ∈ C2 [ a , b] , S( x )是三次样条函数 , 证明 :
b

b

∫

i)

a

∫[ S″( x) ]

[ f″( x) ]2 d x -

2

a

dx

b

∫[ f″( x)

=

a

- S″( x) ]2 d x

b

∫S″( x) [ f″( x )

+2

- S″( x) ] d x ;

a

ii) 若 f ( x i ) = S( x i ) ( i = 0 , 1 , … , n) , 式 中 x i 为 插值节 点 , 且 a = x0 < x1
< … < x n = b, 则
b

∫S″( x ) [ f″( x)
a

- S″( x ) ] d x

= S″( b) [ f′( b) - S′( b) ] - S″( a) [ f′( a) - S′( a) ] .

第3章
3 .1
3 .1 .1

函数逼近与曲线拟合
函数逼近的基本概念

函数逼近与函数空间

在数值计算中经常要 计算 函数值 , 如 计算 机中计 算基 本初 等
函数及其他特殊函数 ; 当函数只在有限点集上给定函数值 , 要在包
含该点集的区间上用公式 给出 函数的 简单 表达式 , 这 些都 涉及 到
在区间[ a, b] 上用简单函数逼近已知复杂函数的问题 , 这就是函 数
逼近问题 . 上章讨论的插值法就是 函数逼 近问 题的 一种 . 本章 讨
论的函数逼近 , 是指“ 对函数类 A 中给定 的函数 f ( x ) , 记 作 f ( x)
∈ A , 要求在另一类简单的便于计算的函数类 B 中求函 数 p ( x ) ∈
B, 使 p( x ) 与 f ( x ) 的 误差 在某种 度量 意义 下最小”. 函 数类 A 通
常是区间[ a, b] 上的连续 函数 , 记 作 C[ a, b] , 称 为连 续 函数 空间 ,
而函数类 B 通常为 n 次 多项 式 , 有 理函 数 或分 段 低次 多 项 式等 .
函数逼近是数值分析的基础 , 为了在数学上描述更精确 , 先要介绍
代数和分析中一些基本概念及预备知识 .
数学上常把在各种集合中引入某些不同的确定关系称为赋予
集合以某种空间结构 , 并将这样的集合称为空间 . 例如将所有实 n
维向量组成的集合 , 按向 量加 法及向 量与 数的 乘法构 成实 数域 上
n

的线性空间 , 记作 R , 称为 n 维向量 空间 . 类似 地 , 对次数 不超 过
n( n 为正整数 ) 的实系数多项式全体 , 按通常 多项式与 多项式加 法
及数与多项式乘法也构成数域 R 上一个线性空间 , 用 Hn 表示 , 称
为多项式空间 . 所有定义在[ a, b]上的连 续函数集 合 , 按函数加 法

· 62 ·

第3章

函数逼近与曲线拟合

和数与函数乘法构成数域 R 上的线性空间 , 记作 C[ a, b] . 类似 地
p

记 C [ a, b] 为具有 p 阶连续导数的函数空间 .
定义 1

设集合 S 是数域 P 上 的线 性空间 , 元 素 x1 , … , xn ∈

S , 如果存在不全为零的数 α1 , … ,αn ∈P , 使得
α1 x1 + … + αn x n = 0 ,

( 1 .1)

则称 x1 , … , xn 线性相关 . 否则 , 若等式 ( 1 .1) 只对 α1 = α2 = … = αn
= 0 成立 , 则称 x1 , … , xn 线性无关 .
若线性空间 S 是由 n 个线性无关元素 x 1 , … , xn 生成的 , 即对
" x∈ S 都有
x = α1 x1 + … + αn x n ,
则 x1 , … , xn 称 为空 间 S 的 一组 基 , 记为 S = span { x1 , … , xn } , 并
称空间 S 为 n 维空间 , 系 数 α1 , … ,αn 称 为 x 在基 x1 , … , xn 下 的
坐标 , 记作 (α1 , … ,αn ) , 如 果 S 中有 无 限个 线性 无 关元 素 x 1 , … ,
xn , … , 则称 S 为无限维线性空间 .
下面考察次数不 超过 n 次的 多项式集 合 H n , 其 元素 p( x ) ∈
Hn 表示为
p( x ) = a0 + a1 x + … + an x n ,

( 1 .2)
n

它由 n + 1 个系数 ( a0 , a1 , … , an ) 唯一确定 . 1 , x, … , x 线 性无关 ,
它是 H n 的 一组 基 , 故 Hn = span { 1 , x, … , xn } , 且 ( a0 , a1 , … , an )
是 p( x ) 的坐标向量 , H n 是 n + 1 维的 .
对连续函数 f ( x) ∈ C[ a, b] , 它不能用有限个线性无关的函数
表示 , 故 C[ a, b] 是无限维的 , 但它的任一元素 f ( x) ∈ C[ a, b]均 可
用有限维的 p( x) ∈ H n 逼近 , 使 误差 a≤
max
| f ( x ) - p( x ) | < ε(ε为
x≤ b
任给的小正数 ) , 这就是著名的魏尔斯特拉斯 ( Weierst rass ) 定理 .
定理 1

设 f ( x) ∈ C[ a, b] , 则 对任何 ε> 0 , 总 存在一 个代 数

多项式 p( x) , 使
‖ f ( x ) - p( x ) ‖ ∞ < ε
在[ a, b] 上一致成立 .

函数逼近的基本概念

3 .1

· 63 ·

这定理已在“数学分析”中证明过 . 这里 需要说明 的是在许 多
证明方法中 , 伯恩 斯坦 (Берншт
ейн) 1912 年给 出的 证 明是 一种 构
造性证明 . 他根据函数整体逼近的特性构造出伯恩斯坦多项式
n

Bn ( f , x) =

k
Pk ( x ) ;
n

∑f
k=0

( 1 .3)

其中
n k
n- k
x ( 1 - x) ,
k

Pk ( x ) =

n
n( n - 1) … ( n - k + 1 )
=
为 二 项 式 展 开 系 数, 并 证 明 了
k!
k
li m Bn ( f , x ) = f ( x) 在[0 , 1 ]上一致成立 ; 若 f ( x ) 在[ 0 , 1 ] 上 m 阶

n→ ∞

导数连续 , 则
( m)

lim Bn ( f , x) = f
n→ ∞

( m)

( x) .

这不 但证 明了 定理 1 , 而且 由 ( 1 .3 ) 给 出了 f ( x ) 的一 个逼 近
多项式 . 它与拉格朗日插值多项式
n

Ln ( x ) =

n

∑ f( x

k

k=0

) lk ( x ) , ∑ lk ( x ) = 1
k= 0

很相似 , 对 Bn ( f , x) , 当 f ( x ) = 1 时也有关系式
n

n

∑P

k

( x) =

k=0

∑
k= 0

n k
nx (1 - x)
k

k

= 1 .

( 1 .4)

这只要在恒等式
n
n

( x + y) =

n k nx y
k

∑
k=0

k

中令 y = 1 - x 就可得到 . 但这 里当 x∈ [ 0 , 1 ] 时还 有 Pk ( x ) ≥ 0 ,
于是
n

∑
k= 0

n

| Pk ( x ) | =

∑P

k

( x) = 1

k=0

是有界的 , 因而只要 | f ( x) | ≤δ对任意 x∈[ 0 , 1] 成立 , 则

· 64 ·

第3章

函数逼近与曲线拟合
n

| Bn ( f , x) | ≤ 0m
ax | f ( x ) |
≤ x≤ 1

∑

| Pk ( x ) | ≤ δ

k=0

有界 , 故 Bn ( f , x ) 是稳定 的 . 至 于拉格朗日插值 多项式 Ln ( x ) , 由
n

于

∑

| lk ( x) | 无界 , 因而不能保证高阶插值的稳定性与收敛性 .

k= 0

相比之下 , 多项式 Bn ( f , x ) 有良好 的逼 近性 质 , 但它收 敛太 慢 , 比
三次样条逼近效果差得多 , 实际中很少被使用 .
更一般 地 , 可 用 一 组 在 C [ a, b] 上 线 性 无 关 的 函 数 集 合
n

{φi ( x) } i = 0 来逼近 f ( x) ∈ C[ a, b] , 元 素 φ( x ) ∈Φ= span {φ0 ( x ) ,
φ1 ( x ) , … ,φn ( x) }

C[ a, b] , 表示为

φ( x) = a0 φ0 ( x ) + a1 φ1 ( x) + … + anφn ( x) .

( 1 .5)

函数逼近问题就是对任何 f ∈ C[ a, b] , 在子 空间 Φ中 找一 个
元素φ* ( x ) ∈Φ, 使 f ( x ) - φ* ( x) 在某种意义下最小 .
3 .1 .2

范数与赋范线性空间

为了对线性空间中元素大小进行衡量 , 需要引进范数定义 , 它
是 Rn 空间中向量长度概念的直接推广 .
定义 2

设 S 为线性空间 , x∈ S, 若存在 唯一 实数 ‖· ‖ , 满

足条件 :
(1 ) ‖ x‖ ≥ 0 , 当且仅当 x = 0 时 , ‖ x‖ = 0 ;

( 正定性 )

(2 ) ‖αx ‖ = | α| ‖ x‖ ,

( 齐次性 )

α∈R;

( 3) ‖ x + y‖ ≤ ‖ x‖ + ‖ y‖ ,

x , y∈ S . ( 三角不等式 )

则称‖·‖为线 性空间 S 上的范数 , S 与‖ ·‖一 起称为 赋范 线
性空间 , 记为 X .
n

T

n

例如 , 在 R 上 的 向 量 x = ( x1 , … , xn ) ∈ R , 三 种 常 用 范
数为
‖ x‖∞ = 1max
| xi | ,
≤ i≤ n

称为∞ -范数或最大范数 ,

函数逼近的基本概念

3 .1

· 65 ·

n

‖ x‖1 =

∑

称为 1 -范数 ,

| xi | ,

i= 1

n

‖ x‖2 =

∑

1
2

x2i

称为 2 -范数 .

,

i=1

类似地对连续函数空间 C[ a, b] , 若 f∈ C[ a, b]可 定义三种 常
用范数如下 :
‖ f ‖ ∞ = a≤
m x≤
axb | f ( x ) | ,

称为∞ -范数 ,

b

∫|

‖ f ‖1 =

f ( x) | d x ,

a

b

‖ f ‖2 =

∫f

2

( x) d x

1
2

,

称为 1 -范数 ,
称为 2 -范数 .

a

可以验证这样定义的范数均满足定义 2 中的三个条件 .
内积与内积空间

3 .1 .3

n

在线性 代 数 中 , R 中 两 个 向 量 x = ( x1 , … , xn )

T

及 y=

T

( y1 , … , yn ) 的内积定义为
( x , y) = x1 y1 + … + xn y n .
若将它推广到一般的线性空间 X, 则有下面的定义 .
定义 3

设 X 是数域 K( R 或 C) 上的线性空间 , 对 " u, v∈ X ,

有 K 中一个数与之对应 , 记为 ( u, v) , 它满足以下条件 :
(1 ) ( u, v) = ( v, u) ,
(2 ) (αu, v) = α( u, v) ,

" u, v∈ X;
α∈K , u, v∈ X;

(3 ) ( u + v, w) = ( u, w) + ( v, w) ,

" u, v, w∈ X;

(4 ) ( u, u) ≥0 , 当且仅当 u = 0 时 , ( u, u) = 0 .
则称 ( u, v) 为 X 上 u 与 v 的内积 . 定义 了内积的 线性空间 称为 内
积空间 . 定义中 ( 1 ) 的右 端 ( u, v) 称 为 ( u, v ) 的 共 轭 , 当 K 为 实 数
域 R 时 ( u, v) = ( v, u) .
如果 ( u, v) = 0 , 则称 u 与 v 正交 , 这是向量相互垂直概念的推

· 66 ·

第3章

函数逼近与曲线拟合

广 . 关于内积空间性质有以下重要定理 .
定理 2

设 X 为一个内积空间 , 对 " u, v∈ X , 有
| ( u, v) | 2 ≤ ( u, u) ( v, v) .

( 1 .6)

称为柯西 -施瓦茨 ( Cauchy-Sch war z) 不等式 .
证明

当 v = 0 时 ( 1 .6) 式显然成立 . 现设 v≠0 , 则 ( v, v) > 0 ,

且对任何数 λ有
2

0 ≤ ( u + λv , u + λv ) = ( u, u) + 2λ( u, v) + λ ( v, v) .
取 λ= - ( u, v)/ ( v, v) , 代入上式右端 , 得
2

2

| ( u, v) |
| ( u, v) |
( u, u) - 2
+
≥ 0,
( v, v)
( v, v)
即得 v≠0 时
2

| ( u, v) | ≤ ( u, u) ( v, v) .
证毕 .
设 X 为一个内积空间 , u1 , u2 , … , un ∈ X, 矩阵
( u1 , u1 ) ( u2 , u1 ) … ( un , u1 )

定理 3

G=

( u1 , u2 )

( u2 , u2 )

⁝

⁝

( u1 , un )

( u2 , un )

…

( un , u2 )
⁝

…

( 1 .7)

( un , un )

称为格拉 姆 ( Gr am ) 矩 阵 , 则 G 非 奇 异 的 充 分 必 要 条 件 是 u1 ,
u2 , … , un 线性无关 .
证明 G 非奇异等价于 det G≠0 , 其充要条件是齐次方程组
n

n

∑αu
j

j

, uk =

j =1

∑ ( u , u )α =
j

k

j

0,

k = 1 , 2 , …, n ( 1 .8)

j= 1

只有零解 ; 而
n

∑αu
j

j

= α1 u1 + α2 u2 + … + αn u n = 0

j= 1

n

n

∑αu , ∑αu
j

j

j= 1

j

j

= 0

j= 1

n

∑αu
j

j= 1

j

, uk = 0 ,

k = 1, 2,…, n .

( 1 .9)

函数逼近的基本概念

3 .1

· 67 ·

从以上 等 价关 系 可知 , det G≠ 0 等 价于 从 ( 1 .8 ) 推 出 α1 = α2
= … =αn = 0 , 而后 者等 价于 从 ( 1 .9 ) 推 出 α1 = α2 = … = αn = 0 , 即
u1 , u2 , … , un 线性无关 .

证毕 .

在内积空间 X 上可以由内积导出一种范数 , 即对于 u∈ X, 记
‖ u‖ =

( u, u) ,

(1 .1 0)

容易验证它满足范数定义的三条性质 , 其中三角不等式
‖ u + v‖ ≤ ‖ u‖ + ‖ v‖

(1 .1 1)

可由定理 2 直接得出 , 即
2

2

( ‖ u‖ + ‖ v‖ ) = ‖ u‖ + 2‖ u‖‖ v‖ + ‖ v‖

2

≥ ( u, u) + 2 ( u, v) + ( v, v)
= ( u + v, u + v) = ‖ u + v‖2 ,
两端开方即得 (1 .1 1) .
例 1 Rn 与 Cn 的内 积 . 设 x, y∈ Rn , x = ( x1 , … , xn ) T , y =
T

( y1 , … , yn ) , 则其内积定义为
n

∑x y

( x, y) =

i

.

i

(1 .1 2)

i=1

由此导出的向量 2 -范数为
n

‖ x‖2 = ( x , x)

1
2

∑x

=

2
i

1
2

.

i= 1

若给定实数 ωi > 0( i = 1 , … , n) , 称 {ωi } 为权 系数 , 则 在 Rn 上可 定
义加权内积为
n

( x, y ) =

∑ω x
i

i

yi ,

(1 .1 3)

i= 1

相应的范数为
n

‖ x‖2 =

2
∑ωi x i

1
2

.

i=1

不难验证 ( 1 .13 ) 给出的 ( x, y) 满足内积定义的 4 条性质 . 当 ωi = 1
( i = 1 , … , n) 时 , (1 .1 3) 就是 (1 .1 2) .

· 68 ·

第3章

函数逼近与曲线拟合

如果 x, y∈Cn , 带权内积定义为
n

( x, y ) =

∑ω x 珔y ,
i

i

(1 .1 4)

i

i= 1

这里{ωi } 仍为正实数序列 ,珔
y i 为 y i 的共轭 .
在 C[ a, b]上也可以类似定义带权内积 , 为此先给 出权函数 的
定义 .
定义 4

设[ a, b] 是 有限 或无 限 区间 , 在 [ a, b] 上 的 非负 函 数

ρ( x ) 满足条件 :
b

∫ x ρ( x ) d x

(1 )

k

a

存在且为有限值 ( k = 0 , 1 , … ) ,
b

∫ g ( x )ρ( x ) d x =

(2 ) 对[ a, b]上的非负连续函数 g( x) , 如 果

a

0 , 则 g( x ) ≡0 .
则称 ρ( x ) 为[ a, b] 上的一个权函数 .
例2

C[ a, b] 上的 内 积 . 设 f ( x ) , g ( x ) ∈ C[ a, b] ,ρ( x ) 是

[ a, b] 上给定的权函数 , 则可定义内积
b

∫ρ( x ) f ( x ) g( x) d x .

( f ( x ) , g( x) ) =

(1 .1 5)

a

容易验证它满足内积定义的 4 条性质 , 由此内积导出的范数为
‖ f ( x) ‖2 = ( f ( x) , f ( x ) )

b

1
2

=

∫ρ( x ) f

2

( x) d x

1
2

a

(1 .1 6)
称 (1 .1 5) 和 (1 .1 6) 为带权 ρ( x) 的内积和范数 , 特别常用的是 ρ( x)
≡1 的情形 , 即
b

∫ f ( x ) g( x) d x,

( f ( x ) , g( x) ) =

a

b

‖ f ( x ) ‖2 =

∫f
a

2

( x) d x

1
2

.

若 φ0 , φ1 , … , φn 是 C [ a, b] 中 的 线 性 无 关 函 数 族 , 记 φ=
span{φ0 ,φ1 , … ,φn } , 它的格拉姆矩阵为

正交多项式

3 .2

G = G(φ0 ,φ1 , … ,φn ) =

· 69 ·

(φ0 ,φ0 )

(φ0 ,φ1 )

…

(φ0 ,φn )

(φ1 ,φ0 )

(φ1 ,φ1 )

…

(φ1 ,φn )

⁝

⁝

(φn ,φ0 )

(φn ,φ1 )

⁝
…

.

(φn ,φn )
(1 .1 7)

根据定理 3 可知 φ0 ,φ1 , … ,φn 线 性 无关 的 充 要 条 件是 det G(φ0 ,
φ1 , … ,φn ) ≠ 0 .

正交多项式

3 .2

正交多项式是函数逼近 的重要 工具 , 在 数值积 分 中也 有重 要
应用 .
3 .2 .1

正交函数族与正交多项式

定义 5

若 f ( x) , g( x ) ∈ C[ a, b] ,ρ( x ) 为[ a, b]上的权函数 且

满足
b

∫ρ( x ) f ( x ) g( x) d x = 0 ,

( f ( x ) , g( x) ) =

( 2 .1)

a

则称 f ( x) 与 g( x) 在 [ a, b] 上 带权 ρ( x) 正交 . 若 函 数族 φ0 ( x ) ,
φ1 ( x ) , … ,φn ( x) , …满足关系
b

∫

(φj ,φk ) =

ρ( x)φj ( x)φk ( x) d x =

a

0,

j ≠ k,

Ak > 0, j = k .

( 2 .2)

则称{φk ( x ) }是 [ a, b]上 带权 ρ( x ) 的正 交函数 族 ; 若 Ak ≡ 1 , 则 称
之为标准正交函数族 .
例如 , 三角函数族
1 , cos x, sin x , cos2 x, sin2 x, …
就是在区间[ - π,π] 上的正交函数族 . 因为对 k = 1 , 2 , …有

· 70 ·

第3章

( 1 , 1) = 2π,

函数逼近与曲线拟合

( sin kx , sin kx ) = ( cos kx , cos kx ) = π,

而对 k, j = 1 , 2 , … , 当 k≠ j 时有 ( cos k x, sin k x ) = ( 1 , cos k x ) = ( 1 ,
sin k x ) = 0 ;
( cos kx , cos j x ) = ( sin kx , sin jx ) = ( cos kx , sin jx ) = 0 .
定义 6

设 φn ( x ) 是 [ a, b]上首 项系数 an ≠0 的 n 次多 项式 ,
∞

ρ( x ) 为[ a, b] 上 权 函 数 , 如 果 多 项 式 序 列 {φn ( x ) } 0 满 足 关 系 式
(2 .2 ) , 则称多项式序列{φn ( x ) } 0∞ 为在 [ a, b]上 带权 ρ( x ) 正 交 , 称
φn ( x) 为[ a, b] 上带权 ρ( x) 的 n 次正交多项式 .
只要给定区间 [ a, b] 及 权函 数 ρ( x ) , 均 可 由一 族线 性无 关 的
幂函数{1 , x, … , xn , … } , 利用 逐个 正交 化手续 构造 出正交 多项 式
序列{φn ( x ) } 0∞ :
n- 1

φ0 ( x ) = 1 ,

n

φn ( x) = x -

∑
j= 0

n

( x ,φj ( x) )
φj ( x )
(φj ( x ) ,φj ( x ) )

( n = 1 ,2 , …) .

( 2 .3)

这样得到的正交多项式序列有以下性质 :
(1 ) φn ( x ) 是具有最高次项系数为 1 的 n 次多项式 .
(2 ) 任 何 n 次 多 项 式 P n ( x ) ∈ Hn 均 可 表 示 为 φ0 ( x ) ,
φ1 ( x ) , … ,φn ( x) 的线性组合 .
(3 ) 当 k≠ j 时 , (φj ( x) ,φk ( x ) ) = 0 , 且 φk ( x) 与任一次数小于
k 的多项式正交 .
(4 ) 成立递推关系
φn+ 1 ( x) = ( x - αn )φn ( x ) - βnφn - 1 ( x )

( n = 0, 1, …) ,
( 2 .4)

其中
φ0 ( x ) = 1 ,

φ- 1 ( x) = 0 ,

αn = ( xφn ( x ) ,φn ( x) )/ (φn ( x ) ,φn ( x) ) ,
βn = (φn ( x ) ,φn ( x ) )/ (φn - 1 ( x) ,φn - 1 ( x) )

( n = 1, 2, …) ,

3 .2

正交多项式

· 71 ·

b

∫ xφ ( x)ρ( x ) d x .
2
n

这里 ( xφn ( x ) ,φn ( x ) ) =

a

∞

(5 ) 设{φn ( x) } 0 是在[ a, b] 上带 权 ρ( x ) 的 正交 多项式 序列 ,
则 φn ( x) ( n≥1) 的 n 个根都是在区间 ( a, b) 内的单重实根 .
以上性质证明可见[2 ] , 下面给出几种常见的正交多项式 .
勒让德多项式

3 .2 .2

n

当区间为[ - 1 , 1 ] , 权函数 ρ( x ) ≡1 时 , 由{ 1 , x, … , x , …} 正
交化得到的多项式就称为勒让德 ( Legendre ) 多 项式 , 并用 P0 ( x ) ,
P1 ( x ) , … , P n ( x) , …表示 . 这是勒让德于 1785 年引进的 . 1814 年
罗德利克 ( Rodrigul ) 给出了简单的表达式
P0 ( x) = 1 ,

P n ( x) =

1 dn
2
n
- 1) }
n
n {( x
2 n !dx
( n = 1 ,2 , …) ,

( 2 .5)

由于 ( x2 - 1 ) n 是 2 n 次多项式 , 求 n 阶导数后得
Pn ( x ) =

1 (2 n) (2 n - 1 ) … ( n + 1 ) xn + an - 1 xn - 1 + … + a0 ,
2 n!
n

于是得首项 xn 的系数 an =

(2 n) !
. 显然最高项系数 为 1 的勒 让
2 n ( n !) 2

德多项式为
n ! dn
2
n
珟
P n ( x) =
- 1) ] .
n [( x
(2 n) ! d x

( 2 .6)

勒让德多项式有下述几个重要性质 :
性质 1

正交性
1

∫

Pn ( x) P m ( x) d x =

-1

证明

0,

m ≠ n;

2
,
2n+ 1

m = n.

令 φ( x) = ( x2 - 1 ) n , 则
( k)

φ (± 1 ) = 0

( k = 0 , 1 , … , n - 1) .

( 2 .7)

· 72 ·

第3章

函数逼近与曲线拟合

设 Q( x ) 是在区间[ - 1 , 1]上 有 n 阶 连续可 微的 函数 , 由分 部积 分
知
1

∫

-1

1
n
2 n!

1

∫

Pn ( x ) Q( x) d x =

= -

( n)

Q( x )φ ( x) d x

-1
1

1
n
2 n!

∫

( n - 1)

Q′( x )φ
- 1

( x) d x

= …
n

1

= ( -n 1 )
2 n!

∫

Q( n) ( x )φ( x ) d x .

-1

下面分两种情况讨论 .
( n)

(1 ) 若 Q( x) 是次数小于 n 的多项式 , 则 Q

( x ) ≡0 , 故得

1

∫

当 n≠ m .

P m ( x ) Pn ( x ) d x = 0 ,

-1

(2 ) 若 Q( x) = Pn ( x) =

1 ( n)
( 2 n) ! n
φ ( x) = n
2 x + …,
2 n!
2 ( n !)
n

Q( n ) ( x) = P(n n ) ( x) = ( 2n n) !,
2 n!
于是
1

∫

( - 1) n (2 n) !
P ( x) d x =
22 n ( n !) 2

- 1

1

∫ (x

2
n

( 2 n) !
= 2n
2 ( n !) 2

2

- 1) d x

2

n

-1

n

1

∫

(1 - x ) d x .

td t =

2·4 ·…· (2 n)
,
1·3 ·…· (2 n + 1 )

-1

由于
1

∫
0

2

π
2

∫

n

(1 - x ) d x =

0

2 n+ 1

cos

故
1

∫

-1

于是 (2 .7 ) 得证 .
性质 2

奇偶性

2

Pn ( x) d x =

2
,
2n+ 1

3 .2

正交多项式

· 73 ·

P n ( - x) = ( - 1) n Pn ( x) .

( 2 .8)

由于 φ( x) = ( x2 - 1 ) n 是偶次多项式 , 经过偶次求导仍为偶次
多项式 , 经过奇次求导则为奇次多项式 , 故 n 为偶数时 Pn ( x ) 为 偶
函数 , n 为奇数时 Pn ( x) 为奇函数 , 于是 ( 2 .8) 成立 .
性质 3 递推关系
考虑 n + 1 次多项式 xPn ( x ) , 它可表示为
xPn ( x ) = a0 P0 ( x) + a1 P1 ( x ) + … + an+ 1 P n+ 1 ( x) .
两边乘 P k ( x ) , 并从 - 1 到 1 积分 , 得
1

∫

1

∫

xPn ( x ) P k ( x ) d x = ak

-1

P2k ( x) d x .

-1

当 k≤ n - 2 时 , xP k ( x ) 次数 小于等 于 n - 1 , 上式左 端积分 为
0 , 故得 ak = 0 . 当 k = n 时 , xP2n ( x ) 为奇 函数 , 左 端积 分仍 为 0 , 故
an = 0 . 于是
xPn ( x) = an - 1 Pn - 1 ( x) + an+ 1 P n+ 1 ( x) ,
其中
an - 1

an+ 1

2n - 1
=
2

1

∫

-1

xPn ( x ) Pn - 1 ( x) d x

n ,
= 2 n - 1 · 22 n
=
2
2n+ 1
4n - 1
2n + 3 1
=
xPn ( x) Pn+ 1 ( x ) d x
-1
2

∫

2n + 3
2( n + 1 )
n+ 1
·
=
,
2
( 2 n + 1 ) ( 2 n + 3)
2n + 1
从而得到以下的递推公式
=

( n + 1 ) P n+ 1 ( x) = ( 2 n + 1) xPn ( x) - nP n - 1 ( x)
( n = 1 ,2 , …) ,
由 P0 ( x) = 1 , P1 ( x) = x, 利用 ( 2 .9) 就可推出
P2 ( x ) = (3 x2 - 1 )/ 2 ,
P3 ( x ) = (5 x3 - 3 x )/ 2 ,
P4 ( x ) = (35 x4 - 30 x2 + 3 )/ 8 ,

( 2 .9)

· 74 ·

第3章

函数逼近与曲线拟合

P5 ( x) = ( 63 x5 - 70 x3 + 15 x )/ 8 ,
P6 ( x) = ( 231 x6 - 315 x4 + 105 x2 - 5 )/ 16 ,
…
图 3 -1 给出了 P0 ( x) , P1 ( x ) , P2 ( x) , P3 ( x ) 的图形 .

图

3-1

性质 4

P n ( x ) 在区间[ - 1 , 1]内有 n 个不同的实零点 .

3 .2 .3

切比雪夫多项式

当权 函 数 ρ( x ) =

1
, 区 间为 [ - 1, 1 ] 时 , 由 序列 {1,
1 - x2

n

x,…, x , … } 正 交 化 得 到 的 正 交 多 项 式 就 是 切 比 雪 夫
( Chebyshev ) 多项式 , 它可表示为
| x |≤ 1 .

Tn ( x ) = cos ( na rccos x ) ,

(2 .1 0)

若令 x = cosθ, 则 Tn ( x) = cos nθ, 0≤θ≤π .
切比雪夫多项式有很多重要性质 :
性质 5

递推关系

Tn+ 1 ( x ) = 2 xT n ( x ) - Tn - 1 ( x )
T0 ( x ) = 1 ,

T1 ( x) = x .

( n = 1, 2, …) ,
(2 .1 1)

3 .2

正交多项式

· 75 ·

这只要由三角恒等式
cos( n + 1 )θ= 2cosθcos nθ - cos ( n - 1)θ ( n ≥ 1)
令 x = cosθ即得 . 由 ( 2 .11 ) 就可推出
T2 ( x) = 2 x2 - 1 ,
T3 ( x) = 4 x3 - 3 x,
T4 ( x) = 8 x4 - 8 x2 + 1 ,
T5 ( x) = 16 x5 - 20 x3 + 5 x ,
T6 ( x) = 32 x6 - 48 x4 + 18 x2 - 1 ,
…
T0 ( x) , T1 ( x ) , T2 ( x ) , T3 ( x) 的函数图形见图 3-2 .
由递推关系 ( 2 .11) 还可 得 到 Tn ( x ) 的 最 高次 项 系 数 是 2 n - 1
( n≥1 ) .

图

性质 6
ρ( x ) = 1/

3-2

切 比 雪 夫 多 项 式 { Tk ( x ) } 在 区 间 [ - 1 , 1 ] 上 带 权
2

1 - x 正交 , 且
1

∫

-1

Tn ( x) T m ( x) d x
2

1 - x

=

0,

n ≠ m;

π
,
2

n = m ≠ 0;

π,

n= m= 0 .

(2 .1 2)

· 76 ·

第3章

函数逼近与曲线拟合

事实上 , 令 x = cosθ, 则 d x = - si nθdθ, 于是
1

∫

Tn ( x) T m ( x)
2

-1

π

∫

dx =

1 - x
性质 7

cos nθcos mθdθ=
0

0,

n ≠ m;

π
,
2

n = m ≠ 0;

π,

n= m= 0 .

T2 k ( x ) 只含 x 的偶次幂 , T2 k + 1 ( x) 只含 x 的奇次幂 .

这性质由递推关系直接得到 .
性质 8

Tn ( x) 在区间[ - 1 , 1 ]上有 n 个零点
xk = cos 2 k - 1π,
2n

k = 1,…, n .

n

此外 , 实际计算中时常要求 x 用 T0 ( x ) , T1 ( x) , … , Tn ( x ) 的
线性组合表示 , 其公式为
n
2
n

1- n

x = 2

∑
k=0

n
k

Tn- 2 k ( x ) .

(2 .1 3)

这里规定 T0 ( x) = 1 . n = 1 , 2 , … , 6 时的结果如下 :
1 = T0 ( x ) ,
x = T1 ( x) ,
x2 =

1
( T0 ( x ) + T2 ( x) ) ,
2

x3 = 1 (3 T1 ( x) + T3 ( x ) ) ,
4
x4 = 1 (3 T0 ( x) + 4 T2 ( x) + T4 ( x ) ) ,
8
5

x =
6

x =

1
(10 T1 ( x ) + 5 T3 ( x ) + T5 ( x) ) ,
16
1
(10 T0 ( x ) + 15 T2 ( x) + 6 T4 ( x) + T6 ( x ) ) .
32

3 .2

正交多项式

· 77 ·

其他常用的正交多项式

3 .2 .4

一般说 , 如果区间[ a, b]及权函 数 ρ( x) 不同 , 则得到 的正交 多
项式也不同 . 除上述 两种 最重 要的 正 交多 项式 外 , 下 面再 给出 三
种较常用的正交多项式 .
1 . 第二类切比雪夫多项式
在区间[ - 1 , 1 ] 上带 权 ρ( x ) =

1 - x2 的 正交 多 项 式称 为 第

二类切比雪夫多项式 , 其表达式为
x] .
Un ( x ) = si n[ ( n + 1 ) a rccos
2
1 - x

(2 .1 4)

令 x = cosθ, 可得
π

1

∫

∫ si n( n + 1)θsin ( m + 1 )θdθ

2

Un ( x ) U m ( x )
-1

1 - x d x=

0

0 , m ≠ n;
=
即{ Un ( x ) }是 [ - 1 , 1] 上带 权

π
, m = n,
2
2

1 - x 的正 交多项 式族 . 还可得 到

递推关系式
U0 ( x) = 1 ,

U1 ( x ) = 2 x,

Un + 1 ( x ) = 2 xU n ( x ) - Un - 1 ( x )

( n = 1, 2, …) .

2 . 拉盖尔多项式
在区 间 [ 0 , + ∞ ) 上 带 权 e - x 的 正 交 多 项 式 称 为 拉 盖 尔
( Laguerre ) 多项式 , 其表达式为
dn
n - x
L n ( x) = e
) .
n ( x e
dx
x

(2 .1 5)

它也具有正交性质
∞

∫
0

e - x L n ( x) L m ( x ) d x =

m ≠ n;

0,
2

( n !) ,

m = n,

· 78 ·

第3章

函数逼近与曲线拟合

和递推关系
L0 ( x ) = 1 ,

L1 ( x ) = 1 - x ,

L n+ 1 ( x) = ( 1 + 2 n - x ) L n ( x) - n2 L n - 1 ( x) ( n = 1 , 2 , … ) .
3 . 埃尔米特多项式
在区间 ( - ∞ , + ∞ ) 上 带权 e -

x

2

的正 交多项 式称为埃 尔米 特

多项式 , 其表达式为
n

Hn ( x ) = ( - 1 ) e

dn
n (e
dx

x2

x2

),

(2 .1 6)

它满足正交关系
+∞

∫

-∞

e

- x

2

H m ( x ) H n ( x) d x =

0,

m ≠ n;

2 n n ! π,

m = n,

并有递推关系
H0 ( x ) = 1 ,

H1 ( x) = 2 x,

H n+ 1 ( x) = 2 x H n ( x ) - 2 nH n - 1 ( x)

3 .3
3 .3 .1

( n = 1 ,2 , …) .

最佳一致逼近多项式

基本概念及其理论
n

本节讨论 f ∈ C[ a, b] , 在 H n = span { 1 , x, … , x } 中求 多项 式
*

Pn ( x) , 使其误差
*

*

‖ f - Pn ‖ ∞ = a≤
m x≤
axb | f ( x) - Pn ( x) | = Pmin
‖ f - Pn ‖ .
∈ H
n

n

这就是通常所谓最佳一致逼近或切比雪夫逼近 问题 . 为了说明 这
一概念 , 先给出以下定义 .
定义 7

设 Pn ( x) ∈ Hn , f ( x ) ∈ C[ a, b] , 称

Δ( f , Pn ) = ‖ f - Pn ‖∞ = a≤
max
| f ( x ) - Pn ( x ) | ( 3 .1)
x≤ b
为 f ( x) 与 Pn ( x) 在[ a, b] 上的偏差 .
显然 Δ( f , Pn ) ≥ 0 , Δ( f , Pn ) 的 全 体 组 成 一 个 集 合 , 记 为

最佳一致逼近多项式

3 .3

· 79 ·

{Δ( f , Pn ) } , 它有下界 0 . 若记集合的下确界为
En =

inf {Δ( f , Pn ) } =

P ∈ H
n
n

inf max | f ( x ) - Pn ( x) | ,

P ∈ H a≤ x ≤ b
n
n

( 3 .2)
则称之为 f ( x) 在 [ a, b]上的最小偏差 .
定义 8

*

假定 f ( x) ∈ C[ a, b] , 若存在 Pn ( x) ∈ Hn 使得
Δ( f , Pn* ) = En ,

( 3 .3)

则称 Pn* ( x) 是 f ( x) 在 [ a, b]上 的最 佳一 致逼近 多项 式或 最小 偏
差逼近多项式 , 简称最佳逼近多项式 .
注意 , 定义并未说明最佳逼近多项式是否存在 , 但可证明下面
的存在定理 .
定理 4

*

若 f ( x) ∈ C[ a, b] , 则总存在 Pn ( x) ∈ Hn , 使
‖ f ( x ) - Pn* ( x) ‖ ∞ = En .

证明略 , 可参考[ 2] .
为了研究最佳逼近多项式的特性 , 先引进偏差点的定义 .
定义 9

设 f ( x) ∈ C[ a, b] , P( x) ∈ Hn , 若在 x = x0 上有

| P( x0 ) - f ( x0 ) | = a≤
m x≤
axb | P( x) - f ( x ) | = μ,
就称 x0 是 P( x) 的偏差点 .
若 P( x0 ) - f ( x0 ) = μ, 称 x0 为“正”偏差点 .
若 P( x0 ) - f ( x0 ) = - μ, 称 x0 为“负”偏差点 .
由于函数 P( x ) - f ( x) 在 [ a, b] 上 连续 , 因 此 , 至少存 在一 个
点 x0 ∈ [ a, b] , 使
| P( x0 ) - f ( x0 ) | = μ,
也就是说 P( x ) 的偏差 点总 是存 在的 . 下 面给 出反 映 最佳 逼近 多
项式特征的切比雪夫定理 .
定理 5

P( x ) ∈ Hn 是 f ( x ) ∈ C[ a, b] 的 最佳逼 近多 项式 的

充分必要条件是 P( x ) 在[ a, b]上至少有 n + 2 个轮流为“ 正”、
“ 负”
的偏差点 , 即有 n + 2 个点 a≤ x1 < x2 < … < xn + 2 ≤ b, 使

· 80 ·

第3章

函数逼近与曲线拟合

P( xk ) - f ( xk ) = ( - 1) kσ‖ P( x ) - f ( x ) ‖ ∞ , σ=± 1 ,
( 3 .4)
这样的点组称为切比雪夫交错点组 .
证明

只证充分性 . 假定在 [ a, b] 上 有 n + 2 个 点使 ( 3 .4 ) 成

立 , 要证明 P( x ) 是 f ( x ) 在 [ a, b] 上 的 最佳 逼 近 多 项 式 . 用 反 证
法 , 若存在 Q( x) ∈ H n , Q( x ) á P( x) , 使
‖ f ( x ) - Q( x) ‖ ∞ < ‖ f ( x ) - P( x) ‖ ∞ .
由于
P( x) - Q( x ) = [ P( x) - f ( x ) ] - [ Q( x) - f ( x ) ]
在点 x1 , x2 , … , x n + 2 上的符号与 P( xk ) - f ( xk ) ( k = 1 , … , n + 2) 一
致 , 故 P( x) - Q( x ) 也在 n + 2 个 点上 轮流 取“ + ”、
“ - ”号 . 由 连
续函数性质 , 它在[ a, b] 内有 n + 1 个零 点 , 但因 P( x ) - Q( x ) á 0
是不超过 n 次的多 项 式 , 它 的零 点 不超 过 n . 这 矛盾 说 明假 设 不
对 , 故 P( x) 就是所求最佳逼近多项 式 . 充 分性得证 . 必要 性证 明
略 , 可参看[ 5] .
定理 5 说明用 P( x ) 逼近 f ( x ) 的误 差曲线 y = P( x ) - f ( x)
是均匀分布的 . 由这定理还可得以下重要推论 .
推论 1

若 f ( x) ∈ C[ a, b] , 则在 H n 中存 在唯 一的最 佳逼 近

多项式 .
证明略 .
利用定理 5 可直接得到切比雪夫多项式 Tn ( x ) 的一个重要 性
质,即
定理 6

在区 间[ - 1 , 1 ] 上所 有最 高次项 系数 为 1 的 n 次 多

项式中 ,ωn ( x) =
证明

1
2

n - 1

Tn ( x) 与零的偏差最小 , 其偏差为

由于
ωn ( x) =

2

1 Tn ( x) = xn - Pn*- 1 ( x ) ,

n- 1

1
2

n- 1

.

3 .3

max | ωn ( x ) | =
- 1≤ x≤1
且点 xk = cos

最佳一致逼近多项式

1
2

n- 1

· - 1max
| Tn ( x ) | =
≤ x≤ 1

· 81 ·

1
2

n- 1

,

k
π( k = 0 , 1 , … , n) 是 Tn ( x ) 的切 比雪 夫 交错 点组 ,
n

由定理 5 可知 , 区 间 [ - 1 , 1 ] 上 xn 在 H n - 1 中 最 佳 逼近 多 项 式 为
*

Pn - 1 ( x ) , 即 ωn ( x ) 是与零的偏差最小的多项式 . 定理得证 .
3

例3

2

求 f ( x) = 2 x + x + 2 x - 1 在[ - 1 , 1 ]上的最佳 2 次逼

近多项式 .
解

*

由题意 , 所求最佳逼近多项式 P2 ( x ) 应满足
*

m ax | f ( x) - P2 ( x ) | = min .

- 1 ≤ x≤ 1

由定理 6 可知 , 当
1
3
T3 ( x) = 2 x3 x
2
2

f ( x) - P2* ( x ) =
*

时 , 多项式 f ( x ) - P2 ( x ) 与零偏差最小 , 故
*

P2 ( x ) = f ( x) 2

= x +

1
T3 ( x)
2

7
x - 1
2

就是 f ( x) 在 [ - 1 , 1 ]上的最佳 2 次逼近多项式 .
3 .3 .2

最佳一次逼近多项式

定理 5 给出了最佳逼近多项式 P( x ) 的特 性 , 但要求 出 P( x)
却相当困难 . 下 面 讨 论 n = 1 的 情 形 . 假 定 f ( x ) ∈ C2 [ a, b] , 且
f″( x) 在 ( a, b) 内不变号 , 我们要求 最佳 一次 逼近 多项 式 P1 ( x ) =
a0 + a1 x . 根据定理 5 可知至少有 3 个点 a≤ x1 < x2 < x3 ≤ b, 使
P1 ( xk ) - f ( xk ) = ( - 1) kσa≤
max
| P1 ( x) - f ( x) |
x≤ b
(σ=± 1 , k = 1 , 2 , 3 ) .
由于 f″( x ) 在 [ a, b] 上 不 变 号 , 故 f′( x ) 单 调 , f′( x ) - a1 在

· 82 ·

第3章

函数逼近与曲线拟合

( a, b) 内只有一个零点 , 记为 x2 , 于是
P1′( x2 ) - f′( x2 ) = a1 - f′( x2 ) = 0 , 即 f′( x2 ) = a1 .
另外两个偏差点必是区间端点 , 即 x1 = a, x2 = b, 且满足
P1 ( a) - f ( a) = P1 ( b) - f ( b) = - [ P1 ( x2 ) - f ( x2 ) ] .
由此得到
a0 + a1 a - f ( a) = a0 + a1 b - f ( b) ;
a0 + a1 a - f ( a) = f ( x2 ) - ( a0 + a1 x2 ) .

( 3 .5)

解出
f ( b) - f ( a)
= f′( x2 ) ,
b- a

( 3 .6)

f ( a) + f ( x2 )
f ( b) - f ( a) a + x2
.
2
b- a
2

( 3 .7)

a1 =
代入 (3 .5 ) 得
a0 =

这就得到最佳一次逼近多项式 P1 ( x ) , 其几何意义如图 3-3 所示 .
直线 y = P1 ( x) 与弦 M N 平行 , 且通过 M Q 的中点 D , 其方程为
y = 1 [ f ( a) + f ( x2 ) ] + a1
2

图

例4
解

求 f ( x) =

x -

a + x2
2

.

3-3

2

1 + x 在 [0 , 1 ]上的最佳一次逼近多项式 .

由 (3 .6 ) 可算出
a1 =

2 - 1 ≈ 0. 414 ,

最佳平方逼近

3 .4

又 f′( x) =

x2 =

x2

x
,故
2
1+ x

2

· 83 ·

= 2 - 1 , 解得

1 + x2

2 - 1 ≈ 0. 4551 , f ( x2 ) =
2

1 + x22 ≈ 1. 0986 .

由 (3 .7 ) , 得
a0 =

1 + x22
x2
- a1
≈ 0. 955 ,
2
2

1 +

2

于是得

1 + x 的最佳一次逼近多项式为
P1 ( x ) = 0. 955 + 0. 414 x,

即

1 + x2 ≈ 0. 955 + 0. 414 x, 0 ≤ x ≤ 1 ;

( 3 .8)

误差限为
max |

0 ≤ x≤ 1

在 (3 .8 ) 中若令 x =

1 + x2 - P1 ( x) | ≤ 0. 045 .

b
≤1 , 则可得一个求根式的公式
a
a2 + b2 ≈ 0. 955 a + 0. 414 b .

3 .4
3 .4 .1

最佳平方逼近

最佳平方逼近及其计算

现在我们研究在区 间 [ a, b] 上 一 般的 最佳 平方 逼近 问 题 . 对
f ( x ) ∈ C [ a, b] 及 C [ a, b] 中 的 一 个 子 集 φ = span {φ0 ( x ) ,
*

φ1 ( x ) , … ,φn ( x) } , 若存在 S ( x ) ∈φ, 使
2
‖ f ( x) - S * ( x) ‖22 = S min
‖
f
(
x)
S(
x)
‖
2
( x) ∈φ
b

∫

2

= S min
ρ( x) [ f ( x) - S( x) ] d x . ( 4 .1)
( x) ∈φ a
*

则称 S ( x ) 是 f ( x ) 在子 集 φ
*

C[ a, b] 中 的最 佳 平方 逼 近 函数 .

为了求 S ( x ) , 由 (4 .1 ) 可知该问题等价于求多元函数

· 84 ·

第3章

函数逼近与曲线拟合
n

b

∫

I( a0 , a1 , …, an ) =

ρ( x)
a

∑ ajφj ( x) - f( x)

2

dx

( 4 .2)

j=0

的最小值 . 由于 I( a0 , a1 , … , an ) 是关于 a0 , a1 , … , an 的二次函数 ,
利用多元函数求极值的必要条件
I = 0
ak

( k = 0 , 1 , … , n) ,

即
b
I
= 2 aρ( x)
ak

∫

n

∑ aφ ( x)
j

j

- f ( x) φk ( x ) d x = 0

j =0

( k = 0 , 1 , … , n) ,
于是有
n

∑ (φ ( x ) ,φ ( x) ) a
k

j

j

= ( f ( x ) ,φk ( x ) )

( k = 0 , 1 , … , n) .

j= 0

( 4 .3)
这是关于 a0 , a1 , … , an 的 线性 方 程组 , 称为 法 方 程 , 由于 φ0 ( x ) ,
φ1 ( x ) , … ,φn ( x) 线 性无 关 , 故 系数 det G(φ0 ,φ1 , … ,φn ) ≠ 0 , 于 是
方程组 (4 .3 ) 有唯一解 ak = ak* ( k = 0 , 1 , … , n) , 从而得到
S * ( x ) = a0* φ0 ( x) + … + an* φn ( x ) .
下面证明 S * ( x ) 满足 ( 4 .1) , 即对任何 S( x) ∈φ, 有
b

b

∫

∫ρ( x ) [ f ( x)

ρ( x ) [ f ( x) - S * ( x) ] 2 d x ≤

a

- S( x ) ] 2 d x .

a

( 4 .4)
为此只要考虑
b

b

∫

D=

∫ρ( x) [ f ( x )

ρ( x ) [ f ( x) - S( x ) ] 2 d x -

a

b

∫ρ( x ) [ S( x)

=

- S * ( x ) ]2 d x

a

*

2

- S ( x) ] d x

a

b

∫

*

*

+ 2 aρ( x) [ S ( x ) - S( x ) ] [ f ( x ) - S ( x ) ] d x .

最佳平方逼近

3 .4

· 85 ·

由于 S * ( x ) 的系数 ak* 是方程 (4 .3 ) 的解 , 故
b

∫ρ( x ) [ f ( x)

- S * ( x) ]φk ( x) d x = 0

( k = 0 , 1 , … , n) ,

a

从而上式第二个积分为 0 , 于是
b

∫ρ( x) [ S( x )

D=

*

2

- S ( x)] d x ≥ 0,

a

故 (4 .4 ) 成立 . 这就证明了 S * ( x ) 是 f ( x) 在 φ中的最佳平方逼 近
函数 .
*

若令 δ( x ) = f ( x ) - S ( x) , 则平方误差为
*

2

*

‖δ( x ) ‖2 = ( f ( x) - S ( x) , f ( x ) - S ( x ) )
*

= ( f ( x) , f ( x ) ) - ( S ( x ) , f ( x ) )
n
2
2

= ‖ f( x)‖ -

∑a

*
k

(φk ( x) , f ( x ) ) .

( 4 .5)

k= 0

k

若取 φk ( x ) = x ,ρ( x) ≡1 , f ( x) ∈ C[ 0 , 1 ] , 则要 在 Hn 中 求 n
次最佳平方逼近多项式
*

*

*

*

n

S ( x ) = a0 + a1 x + … + an x ,
此时
1

∫

(φj ( x ) ,φk ( x) ) =

0

x

k+ j

dx =

1
,
k+ j + 1

1

∫

( f ( x ) ,φk ( x ) ) =

f ( x) xk d x ≡ dk .

0

若用 H 表示 Gn = G( 1 , x, … , xn ) 对应的矩阵 , 即

H =

1

1/ 2

…

1/ ( n + 1 )

1/ 2

1/ 3

…

1/ ( n + 2 )

⁝

⁝

1/ ( n + 1)

1/ ( n + 2)

⁝
…

( 4 .6)

1/ (2 n + 1 )
T

称为希尔 伯 特 ( H ilber t ) 矩 阵 , 记 a = ( a0 , a1 , … , an ) , d = ( d0 ,
d1 , … , dn ) T , 则
Ha = d

( 4 .7)

· 86 ·

第3章

函数逼近与曲线拟合

的解 ak = ak* ( k = 0 , 1 , … , n) 即为所求 .
例5

2

设 f ( x) =

1 + x , 求[ 0 , 1 ] 上的一 次最 佳平方 逼近 多

项式 .
解

利用 (4 .7 ) , 得
1

∫

d0 =

0

2

1 + x dx =

1

1
2 3/ 2
1 + x dx =
(1 + x )
3

∫x

d1 =

1
2
ln( 1 + 2 ) +
≈ 1. 147 ,
2
2
1

2

0

0

=

2 2 - 1
3

≈ 0. 609 ,
得方程组
1

1
2

1
2

1
3

a0

1. 147
=

,

a1

0. 609

解出
a0 = 0. 934 ,

a1 = 0. 426 ,

故
*

S1 ( x ) = 0. 934 + 0. 426 x .
平方误差
*

2

‖δ( x ) ‖2 = ( f ( x ) , f ( x) ) - ( S1 ( x) , f ( x ) )
1

∫( 1 + x

=

2

0

) d x - 0. 426 d1 - 0. 934 d0 = 0. 0026 .

最大误差
‖δ( x) ‖ ∞ = 0max
|
≤ x≤1

2

*

1 + x - S1 ( x) | ≈ 0. 066 .

用{1 , x, … , xn } 做 基 , 求 最 佳平 方 逼近 多 项 式 , 当 n 较 大时 ,
系数矩阵 (4 .6 ) 是高度病态的 ( 见第 5 章 ) , 因此直接求解法方程是
相当困难的 , 通常是采用正交多项式做基 .

最佳平方逼近

3 .4

3 .4 .2

· 87 ·

用正交函数族作最佳平方逼近

设 f ( x) ∈ C [ a, b] , φ= span {φ0 ( x ) , φ1 ( x ) , … , φn ( x ) } , 若
φ0 ( x) ,φ1 ( x) , …,φn ( x) 是满足条件 ( 2 .2 ) 的正交函数族 , 则 (φi ( x ) ,
φj ( x ) ) = 0 , i≠ j 而 (φj ( x) ,φj ( x ) ) > 0 , 故法方程 (4 .3 ) 的系数矩 阵
Gn = G(φ0 ( x ) ,φ1 ( x) , … ,φn ( x) ) 为非奇异对角 阵 , 且 方程 ( 4 .3 ) 的
解为
*

ak = ( f ( x) ,φk ( x ) )/ (φk ( x ) ,φk ( x) )

( k = 0 , 1 , … , n) .
( 4 .8)

于是 f ( x) ∈ C[ a, b]在 φ中的最佳平方逼近函数为
n
*

S ( x) =

( f ( x ) ,φk ( x ) )
φk ( x ) .
‖φk ( x ) ‖22

∑
k= 0

( 4 .9)

由 (4. 5 ) 可得均方误差为
*

‖δn ( x) ‖2 = ‖ f ( x ) - Sn ( x ) ‖2
n
2
2

‖ f ( x) ‖ -

=

( f ( x) ,φk ( x) )
‖φk ( x) ‖2

∑
k= 0

2

1
2

.

(4 .1 0)

由此可得贝塞尔 ( Bes sel) 不等式
n

∑( a

*
k

2

2

‖φk ( x) ‖2 ) ≤ ‖ f ( x) ‖2 .

(4 .1 1)

k= 1

*

若 f ( x) ∈ C[ a, b] , 按正交函数 族 {φk ( x ) } 展 开 , 系数 ak ( k =
0 , 1 , … ) 按 ( 4 .8) 计算 , 得级数
∞
*
k

∑a

φk ( x )

(4. 12)

k= 0

称为 f ( x) 的广义傅里叶 ( F oureir ) 级数 , 系数 ak* 称为 广义傅里 叶
系数 . 它是傅里叶级数的直接推广 .
下面讨论特殊情况 , 设{φ0 ( x) ,φ1 ( x ) , … ,φn ( x ) } 是正 交多 项
式 ,φ= span {φ0 ( x ) ,φ1 ( x) , … ,φn ( x) } ,φk ( x ) ( k = 0 , 1 , … , n) 可 由
n

1 , x , … , x 正交化得到 , 则有下面的收敛定理 .

· 88 ·

第3章

定理 7

函数逼近与曲线拟合

设 f ( x) ∈ C[ a, b] , S * ( x ) 是由 ( 4 .9 ) 给 出的 f ( x ) 的

最佳平方逼近多项式 , 其中 {φk ( x ) , k = 0 , 1 , … , n} 是 正 交多 项 式
族 , 则有
*

li m ‖ f ( x ) - Sn ( x ) ‖2 = 0 .
n→ ∞
证明略 , 可见[ 6] .
下面考 虑 函数 f ( x ) ∈ C[ - 1 , 1] , 按 勒 让德 多 项式 { P0 ( x ) ,
P1 ( x ) , … , P n ( x) }展开 , 由 (4. 8 ) , (4. 9 ) 可得
*

*

*

*

Sn ( x ) = a0 P0 ( x) + a1 P1 ( x) + … + an Pn ( x ) ,
(4 .1 3)
其中
ak* =

( f ( x ) , P k ( x) )
= 2k + 1
( Pk ( x ) , Pk ( x ) )
2

1

∫

f ( x ) P k ( x) d x . (4 .1 4)

- 1

根据 (4. 10) , 平方误差为
n

1

2
2

∫

‖δk ( x ) ‖ =

-1

2

f ( x) d x -

∑
k= 0

2
2
*
ak .
2k + 1

(4 .1 5)

由定理 7 可得
*

li m ‖ f ( x ) - Sn ( x ) ‖2 = 0 .
n→ ∞
*

如果 f ( x) 满足光滑性条件还可得到 Sn ( x) 一致收敛于 f ( x )
的结论 .
定理 8

2

*

设 f ( x) ∈ C [ - 1 , 1] , Sn ( x ) 由 ( 4. 13 ) 给出 , 则对 任

意 x∈ [ - 1 , 1 ]和 " ε> 0 , 当 n 充分大时有
| f ( x) - Sn* ( x) | ≤ ε .
n
证明可见[6 ] .
对于首项系数为 1 的勒让德多项 式 珟
P n ( 由公式 (2. 6 ) 给 出 ) 有
以下性质 .
定理 9

在所 有最 高次项 系数 为 1 的 n 次 多项 式中 , 勒让 德

多项式 珟
Pn ( x) 在 [ - 1 , 1 ]上与零的平方误差最小 .

3 .4

证明

最佳平方逼近

· 89 ·

设 Qn ( x ) 是 任 意一 个 最 高 次项 系 数 为 1 的 n 次 多 项

式 , 它可表示为
n- 1

P ( x) ,
∑a珟

Qn ( x) = 珟
Pn ( x) +

k

k

k= 0

于是
1

∫

2

‖ Qn ( x ) ‖2 = ( Qn ( x) , Qn ( x ) ) =

2

Qn ( x) d x
- 1

n- 1

= (珟
P n ( x ) ,珟
Pn ( x) ) +

P ( x ) ,珟
P ( x) )
∑ a (珟
2
k

k

k

k= 0

≥ (珟
P n ( x ) ,珟
Pn ( x) )
2

= ‖珟
P n ( x) ‖2 .
当且仅当 a0 = a1 = … = an - 1 = 0 时 等 号 才 成 立 , 即 当 Qn ( x ) ≡
珟
P n ( x) 时平方误差最小 .
例6

x

求 f ( x ) = e 在 [ - 1 , 1 ] 上的 三 次 最 佳 平方 逼 近 多 项

式 .
解

先计算 ( f ( x ) ,珟
P k ( x) )
1

∫ e dx = e x

( f ( x ) , P0 ( x) ) =

-1

( k = 0, 1, 2, 3) .
1 ≈ 2. 3504 ;
e

1

∫

( f ( x ) , P1 ( x) ) =

-1

1

∫

( f ( x ) , P2 ( x) ) =

-1

1

∫

( f ( x) , P3 ( x) ) =

-1

x

xe d x = 2e

-1

≈ 0. 7358 ;

3 x2 - 1 x
7
e dx = e ≈ 0. 1431;
2
2
e
5 3
3
x x ex d x = 37 1 - 5e ≈ 0. 02013 .
2
2
e

由 (4. 14) 得
a0* = ( f ( x ) , P0 ( x ) )/ 2 = 1. 1752 ,
*

a1

= 3( f ( x) , P1 ( x) )/ 2 = 1. 1036 ,

a2* = 5( f ( x) , P2 ( x) )/ 2 = 0. 3578 ,
*

a3

= 7( f ( x) , P3 ( x) )/ 2 = 0. 07046 .

· 90 ·

第3章

函数逼近与曲线拟合

代入 (4. 13) 得
S3* ( x ) = 0. 9963 + 0. 9979 x + 0. 5367 x2 + 0. 1761 x3 .
均方误差
x

3

1

*
3

‖δn ( x) ‖2 = ‖e - S ( x ) ‖2 =

∫

2x

e dx -1

∑
k= 0

2
* 2
ak
2k + 1

≤ 0. 0084 .
最大误差
‖δn ( x) ‖ ∞ = ‖ ex - S3 ( x ) ‖ ∞ ≤ 0. 0112 .
如果 f ( x) ∈ C[ a, b] , 求 [ a, b] 上 的 最 佳平 方 逼近 多 项式 , 做
变换
x = b - at + b + a
( - 1 ≤ t ≤ 1) ,
2
2
b- a
b+ a
于是 F( t) = f
t+
在[ - 1 , 1 ]上可用勒让德多项式做 最
2
2
佳平方逼近多项式 Sn* ( t) , 从而得到区间 [ a, b] 上的最 佳平方逼 近
1
*
(2 x - a - b) .
多项式 Sn
b- a
由于勒让德多项式 { P k ( x) } 是在 区间 [ - 1 , 1 ] 上由 {1 , x, … ,
k
x , …}正交化得到的 , 因此 利用 函数的 勒让 德展 开部 分和 得到 最
佳平方逼近多项式与由
*
n
S ( x ) = a0 + a1 x + … + an x
直接通 过解 法方程 得到 H n 中 的最 佳平方 逼近 多项 式是一 致的 ,
只是当 n 较大时 法方程出 现病态 , 计算 误差较 大 , 不 能使用 , 而 用
勒让德展开不用解线性方程组 , 不存在病态问题 , 计算公式比较方
便 , 因此通常都用这种方法求最佳平方逼近多项式 .

3 .5
3 .5 .1

曲线拟合的最小二乘法

最小二乘法及其计算

在函数的最佳平方逼近中 f ( x ) ∈ C[ a, b] , 如 果 f ( x ) 只

一

3 .5

曲线拟合的最小二乘法

· 91 ·

组离散点集{ x i , i = 0 , 1 , … , m}上 给定 , 这就是 科学实验 中经常 见
到的实验数 据 { ( x i , y i ) , i = 0 , 1 , … , m} 的 曲 线 拟 合 , 这 里 yi =
f ( xi ) , i = 0 , 1 , … , m, 要求 一个 函数 y = S * ( x ) 与 所给 数 据 { ( xi ,
yi ) , i = 0 , 1 , … , m} 拟 合 , 若 记 误 差 δi = S * ( x i ) - yi , i = 0 , 1 , … ,
m,δ= (δ0 ,δ1 , … ,δm ) T , 设 φ0 ( x ) ,φ1 ( x ) , … ,φn ( x ) 是 C[ a, b]上 线
性无关函数族 , 在 φ= span {φ0 ( x) ,φ1 ( x ) , … ,φn ( x ) } 中找 一函 数
S * ( x ) , 使误差平方和
m

‖δ‖ =
2
2

m

∑δ
2
i

=

i=0

∑[ S

*

( xi ) - yi ] 2

i= 0

m

= S(min
[ S( xi ) - yi ] ,
x) ∈φ∑
2

( 5 .1)

i=0

这里
S( x ) = a0 φ0 ( x) + a1 φ1 ( x ) + … + anφn ( x )

( n < m) .
( 5 .2)

这就是一般的最小二乘逼近 , 用几何语言说 , 就称为曲线拟合
的最小二乘法 .
用最小二乘法求拟合曲线时 , 首先要确定 S( x) 的形 式 . 这 不
单纯是数学 问 题 , 还 与 所研 究 问 题 的 运 动 规 律 及 所 得 观 测 数 据
( xi , yi ) 有 关 ; 通 常 要 从 问 题 的 运 动 规 律 及 给 定 数 据 描 图 , 确 定
S( xi ) 的形式 , 并通过实际计算选出较好的结果———这点将从下 面
的例题得到说明 . S( x ) 的一 般 表 达式 为 ( 5 .2 ) 表 示的 线 性 形式 .
若φk ( x) 是 k 次多项式 , S( x ) 就是 n 次多项式 . 为了使问题的提法
2

更有一般性 , 通常在最小二乘法中‖δ‖2 都考虑为加权平方和
m

‖δ‖ =
2
2

∑ω( x ) [ S( x )
i

i

- f ( x i ) ]2 .

( 5 .3)

i= 0

这里 ω( x ) ≥0 是[ a, b]上的权函数 , 它表示不同点 ( xi , f ( xi ) ) 处 的
数据比重不同 , 例如 ,ω( xi ) 可表 示在 点 ( x i , f ( x i ) ) 处 重复 观测 的
次数 . 用 最 小 二 乘 法 求 拟 合 曲 线 的 问 题 , 就 是 在 形 如 ( 5 .2 ) 的

· 92 ·

第3章

函数逼近与曲线拟合

S( x ) 中求一函数 y = S * ( x) , 使 ( 5 .3) 取得 最小 . 它 转化为 求多 元
函数
I( a0 , a1 , … , an )
m

n

∑ω( x ) [ ∑ a φ ( x )

=

i

j

i= 0

j

- f ( xi ) ] 2

i

( 5 .4)

j =0

的极小点 ( a0* , a1* , … , an* ) 问 题 . 这 与 第 4 节 讨 论 的问 题 完 全 类
似 . 由求多元函数极值的必要条件 , 有
m

n

I
= 2∑ ω( x i ) [ ∑ a jφj ( xi ) - f ( xi ) ]φk ( x i ) = 0
ak
i= 0
j= 0
( k = 0 , 1 , … , n) .
m

若记

∑ω( x )φ ( x )φ ( x ) ,

(φj ,φk ) =

i

j

i

k

( 5 .5)

i

i=0

m

∑ω( x ) f ( x )φ ( x ) ≡

( f ,φk ) =

i

i

k

i

dk

i=0

( k = 0 , 1 , … , n) .
上式可改写为
n

∑ (φ ,φ ) a
k

j

j

( k = 0 , 1 , … , n) .

= dk

( 5 .6)

j= 0

这方程称为法方程 , 可写成矩阵形式
Ga = d .
其中 a= ( a0 , a1 , … , an ) T , d= ( d0 , d1 , … , dn ) T ,

G=

(φ0 ,φ0 )

(φ0 ,φ1 )

…

(φ0 ,φn )

(φ1 ,φ0 )

(φ1 ,φ1 )

…

(φ1 ,φn )

⁝

⁝

(φn ,φ0 )

(φn ,φ1 )

⁝
…

.

( 5 .7)

(φn ,φn )

要使法方程 (5. 6 ) 有唯一解 a0 , a1 , … , an , 就 要求 矩阵 G 非 奇
异 , 必须指出 ,φ0 ( x ) ,φ1 ( x) , … ,φn ( x ) 在[ a, b] 上线 性无关 不能 推
出矩阵 G 非 奇 异 . 例 如 , 令 φ0 ( x ) = sin x, φ1 ( x ) = sin2 x, x ∈

3 .5

曲线拟合的最小二乘法

· 93 ·

[0 , 2π] , 显然{φ0 ( x) ,φ1 ( x ) } 在[0 , 2π]上线性无关 , 但若 取点 x k =
kπ, k = 0 , 1 , 2( n = 1 , m = 2) , 那么有 φ0 ( xk ) = φ1 ( xk ) = 0 , k = 0 , 1 ,
2 , 由此得出
G=

(φ0 ,φ0 )

(φ0 ,φ1 )

(φ1 ,φ0 )

(φ1 ,φ1 )

= 0 .

为保证 (5 .6 ) 的系数矩阵 G 非奇异 , 必须加上另外的条件 .
定义 10

设 φ0 ( x) ,φ1 ( x ) , … ,φn ( x) ∈ C[ a, b]的任 意线性 组

合在点集{ xi , i = 0 , 1 , … , m} ( m≥ n) 上至多 只有 n 个不同 的零点 ,
则称 φ0 ( x) ,φ1 ( x ) , … ,φn ( x ) 在 点集 { xi , i = 0 , 1 , … , m} 上 满足 哈
尔 ( Haa r) 条件 .
n

显然 1 , x, … , x 在任意 m ( m≥ n) 个点上满足哈尔条件 .
可以证明 , 如果 φ0 ( x ) ,φ1 ( x ) , … ,φn ( x ) ∈ C[ a, b]在 { x i } 0m 上
满足 H aa r 条件 , 则法方程 ( 5. 6) 的系数 矩阵 ( 5. 7) 非 奇异 , 于是 方
程 ( 5. 6) 存在唯一的解 ak = ak* , k = 0 , 1 , … , n . 从而得到函数 f ( x)
的最小二乘解为
S * ( x) = a0* φ0 ( x) + a1* φ1 ( x ) + … + an* φn ( x) .
可以证明这样得到的 S * ( x ) , 对任何形如 (5. 2 ) 的 S( x) , 都有
m

m

∑ω( x ) [ S
i

i=0

*

( x i ) - f ( x i ) ] ≤ ∑ ω( xi ) [ S( x i ) - f ( x i ) ] 2 ,
2

i= 0

*

故 S ( x) 确是所求最小二乘解 . 它的证明与 ( 4 .4) 式相似 , 读者 可
自己完成 .
给定 f ( x) 的离散数据 { ( xi , yi ) , i = 0 , 1 , … , m} , 要确 定 φ是
n

困难的 , 一般可取 φ= span { 1 , x , … , x } , 但这 样做 当 n≥ 3 时 , 求
解法方程 (5. 6 ) 与 连续 情形 一样 , 将出 现 系数 矩 阵 G 为 病态 的 问
*

题 , 通常对 n = 1 的简单情形都可通过求法方程 ( 5. 6 ) 得 到 S ( x ) .
有时根据给定数据图形 , 其拟合函数 y = S( x) 表面上不是 (5 .2 ) 的
bx

形式 , 但通过变换仍 可化 为线 性 模 型 . 例 如 , S( x ) = ae , 若 两 边
取对数得

· 94 ·

第3章

函数逼近与曲线拟合

ln S( x ) = ln a + bx ,
它就是形如 (5. 2 ) 的线性模型 , 具体做法见例 8 .
例7

已知一组实验数据如下 , 求它的拟合曲线 .

xi

1

2

3

4

5

fi

4

4 .5

6

8

8 .5

φi

2

1

3

1

1

图

解

3-4

根据所给数 据 , 在坐 标 纸上 标出 , 见 图 3 -4 . 从图 中看 到

各点在一条直线附近 , 故可选择线性函数作拟合 曲线 , 即令 S1 ( x)
= a0 + a1 x, 这里 m = 4 , n = 1 ,φ0 ( x) = 1 ,φ1 ( x ) = x , 故
4

(φ0 ,φ0 ) =

4

∑ω =

8 , (φ0 ,φ1 ) = (φ1 ,φ0 ) =

i

i=0

i

i

= 22 ,

i= 0

4

(φ1 ,φ1 ) =

∑ω x

4

∑ω x
i

2
i

= 74 , (φ0 , f ) =

i=0

∑ω f
i

i= 0

4

(φ1 , f ) =

∑ω x
i

i

f i = 145. 5 .

i= 0

由 (5. 6 ) 得方程组
8 a0 + 22 a1 = 47 ,
22 a0 + 74 a1 = 145. 5 .
解得 a0 = 2. 77 , a1 = 1. 13 . 于是所求拟合曲线为
*

S1 ( x) = 2. 77 + 1. 13 x .

i

= 47 ,

曲线拟合的最小二乘法

3 .5

例8

· 95 ·

设数据 ( xi , yi ) ( i = 0 , 1 , 2 , 3 , 4) 由表 3 -1 给出 , 表中第 4
bx

行为 ln y i =珔
yi , 可以看出数学模型为 y = ae , 用最小二乘法确定 a
及b.
解

根据给定数据 ( x i , yi ) ( i = 0 , 1 , 2 , 3 , 4 ) 描图 可 确定 拟 合

曲线方程为 y = aebx , 它不 是线性形式 . 两边取对数 得 ln y = l n a +
bx, 若令 珔
y = ln y, A = ln a, 则得 珔
y = A + bx,φ= { 1 , x} . 为确 定 A,
b, 先将 ( xi , y i ) 转化为 ( x i ,珔
yi ) , 数据表见表 3 -1 .
表

3-1

i

0

1

2

3

4

xi

1. 00

1. 25

1. 50

1. 75

2. 00

yi

5. 10

5. 79

6. 53

7. 45

8. 46

珔
yi

1. 629

1. 756

1. 876

2. 008

2. 135

根据最小二乘法 , 取 φ0 ( x ) = 1 ,φ1 ( x ) = x,ω( x ) ≡1 , 得
(φ0 ,φ0 ) = 5 ,
4

(φ0 ,φ1 ) =

∑x

= 7. 5 ,

i

i= 0
4

(φ1 ,φ1 ) =

∑x

2
i

= 11. 875 ,

i= 0

4

(φ0 ,珔
y) =

∑珔y
i

= 9. 404 ,

i=0
4

(φ1 ,珔
y) =

∑ x 珔y
i

i

= 14. 422 .

i=0

故有法方程
5 A + 7. 50 b = 9. 404 ,
7. 50 A + 11. 875 b = 14. 422 .
A

解得 A = 1. 122 , b = 0. 505 , a = e = 3. 071 . 于 是 得最 小 二乘 拟 合
曲线为

· 96 ·

第3章

函数逼近与曲线拟合

y = 3. 071e0. 50 5 x .
现在很多计算机配有 自动 选择数 学模 型的程 序 , 其方 法与 本
例同 . 程序中因变量 与自 变量 变换 的 函数 类型 较多 , 通过 计算 比
较误差找到拟合得较好的曲线 , 最后输出曲线图形及数学表达式 .
3 .5 .2

用正交多项式做最小二乘拟合

用最小二乘法得到 的 法方 程 组 ( 5. 6 ) , 其 系 数矩 阵 G 是 病 态
的 , 但如果 φ0 ( x ) ,φ1 ( x ) , … ,φn ( x ) 是关 于点 集 { xi } ( i = 0 , 1 , … ,
m) 带权 ω( x i ) ( i = 0 , 1 , … , m) 正交的函数族 , 即
m

∑ω( xi )φj ( x i )φk ( xi ) =

(φj ,φk ) =

j ≠ k,

0,

Ak > 0 , j = k,

i=0

( 5 .8)

则方程 (5. 6 ) 的解为
m

*
k

a

( f ,φk )
=
=
(φk ,φk )

∑ω( x ) f ( x )φ ( x )
i

i

k

i

i =0

m

∑ω( x )φ ( x )
i

2
k

i

i= 0

( k = 0 , 1 , … , n) ,

( 5. 9)

且平方误差为
n
2
2

2
2

‖δ‖ = ‖ f‖ -

∑A

*

k

2

( ak ) .

k= 0

现在我们根据 给定节点 x0 , x1 , … , xm 及权 函数 ω( x ) > 0 , 造
出带权 ω( x ) 正交的多项式{ Pn ( x ) } . 注意 n≤ m, 用递推公式表 示
Pk ( x ) , 即
P0 ( x ) = 1 ,
P1 ( x ) = ( x - α1 ) P0 ( x) ,

(5. 10)

Pk+ 1 ( x) = ( x - αk+ 1 ) Pk ( x ) - βk P k - 1 ( x )
( k = 1 , 2 , … , n - 1) .
这里 Pk ( x ) 是 首 项 系 数 为 1 的 k 次 多 项 式 , 根 据 Pk ( x ) 的 正 交

曲线拟合的最小二乘法

3 .5

· 97 ·

性,得
m

∑ω( x ) x P
i

2
k

i

( xi )

i= 0
m

αk+ 1 =

=

( xP k ( x ) , Pk ( x ) )
( Pk ( x ) , Pk ( x) )

∑ω( x ) P

( xi )

( x P k , Pk )
( Pk , Pk )

( k = 0 , 1 , … , n - 1) ,

2
k

i

i=0

=

(5 .1 1)

m

∑ω( x ) P

2
k

i

βk =

( xi )

i= 0
m

=

∑ω( x ) P
i

2
k- 1

( xi )

( Pk , Pk )
( Pk - 1 , Pk - 1 )

i= 0

( k = 1, …, n - 1) .
下面用归纳法证明这 样给 出的 { Pk ( x ) }是 正交 的 . 由 ( 5. 10)
第二式及 (5. 11) 中 α1 的表达式 , 有
( P0 , P1 ) = ( P0 , xP 0 ) - α1 ( P0 , P0 )
= ( P0 , xP 0 ) -

( xP 0 , P0 )
( P0 , P0 ) = 0 .
( P0 , P0 )

现假定 ( Pl , Ps ) = 0 ( l≠ s) 对 s = 0 , 1 , … , l - 1 及 l = 0 , 1 , … , k;
k < n 均 成 立 , 要 证 ( Pk + 1 , Ps ) = 0 对 s = 0 , 1 , … , k 均 成 立 . 由
(5. 10) 有
( Pk+ 1 , Ps ) = ( ( x - αk+ 1 ) Pk , Ps ) - βk ( Pk - 1 , Ps )
= ( xPk , Ps ) - αk+ 1 ( Pk , Ps ) - βk ( Pk- 1 , Ps ) . (5. 12)
由归纳法假定 , 当 0≤ s≤ k - 2 时
( Pk , Ps ) = 0 ,

( Pk - 1 , Ps ) = 0 .

另外 , x Ps ( x ) 是 首 项 系 数 为 1 的 s + 1 次 多 项 式 , 它 可 由 P0 ,
P1 , …, Ps+ 1 的线性组合表示 , 而 s+ 1≤ k - 1 , 故由归纳法假定又有
( xP k , Ps ) ≡ ( Pk , x P s ) = 0 ,
于是由 (5 .1 2) , 当 s≤ k - 2 时 , ( Pk + 1 , Ps ) = 0 .
再看

· 98 ·

第3章

函数逼近与曲线拟合

( Pk+ 1 , Pk - 1 ) = ( x P k , Pk - 1 ) - αk+ 1 ( Pk , Pk - 1 )
- βk ( Pk - 1 , Pk - 1 ) ,
由假定有

(5 .1 3)

( Pk , Pk - 1 ) = 0 ,
k- 1

( x P k , Pk - 1 ) = ( Pk , xP k - 1 ) =

Pk , Pk +

∑c P
j

j

= ( Pk , Pk ) .

j=0

利用 (5 .1 1) 中 βk 表达式及以上结果 , 得
( Pk+ 1 , Pk - 1 ) = ( x P k , Pk - 1 ) - βk ( Pk - 1 , Pk - 1 )
= ( Pk , Pk ) - ( Pk , Pk ) = 0 .
最后 , 由 ( 5 .11 ) 有
( Pk+ 1 , Pk ) = ( xP k , Pk ) - αk+ 1 ( Pk , Pk ) - βk ( Pk , Pk - 1 )
( xP k , Pk )
( Pk , Pk ) = 0 .
( Pk , Pk )

= ( xP k , Pk ) -

至此已证明了由 ( 5 .10 ) 及 ( 5 .11 ) 确 定 的 多 项 式 { Pk ( x ) } ( k = 0 ,
1 , … , n, n≤ m) 组成一个关于点集 { x i } 的正交系 .
用正交多项式{ Pk ( x ) } 的线 性组 合 作 最小 二 乘曲 线 拟合 , 只
要根据公式 ( 5. 10 ) 及 ( 5. 11 ) 逐步 求 Pk ( x ) 的 同 时 , 相 应 计 算 出
系数
m

( f , Pk )
ak =
=
( Pk , Pk )

∑ω( x ) f ( x ) P
i

i

k

( xi )

i=0

m

∑ω( x ) P
i

2
k

( k = 0 , 1 , … , n) ,

( xi )

i= 0

并逐步把 ak* P k ( x) 累加到 S( x) 中 去 , 最 后就 可得 到 所求 的拟 合
曲线
y = S( x ) = a0* P0 ( x) + a1* P1 ( x ) + … + an* P n ( x ) .
这里 n 可事先给定或在计算过程中根据误差确 定 . 用 这种方法 编
程序不用解方程组 , 只 用递推 公式 , 并 且当逼 近次 数增 加一 次时 ,
只要把程序中循环数加 1 , 其余不用改变 . 这是目前用多项式做曲
线拟合最好的计算方法 , 有通用的语言程序供用户使用 .

最佳平方三角逼近与快速傅里叶变换

3 .6

· 99 ·

最佳平方三角逼近与快速傅里叶变换

3 .6

当 f ( x) 是周期函数 时 , 显然用 三角 多项 式逼 近 f ( x ) 比用 代
数多项式更合适 , 本节主 要讨 论用三 角多 项式 做最小 平方 逼近 及
快速傅里叶变换 ( Fast Fourie r Tr ansform ) 简称 FF T 算法 .
3 .6 .1

最佳平方三角逼近与三角插值

设 f ( x) 是以 2π为周期的平方可积函数 , 用三角多项式
S n ( x) =

1
a0 + a1 cos x + b1 sin x + … + an cos nx + bn sin nx
2
( 6 .1)

做最佳平方逼近函数 . 由于三角函数族
1 , cos x , sin x, … , cos kx , sin kx , …
在[0 , 2π]上是正交函数族 , 于是 f ( x ) 在[ 0 , 2π] 上的最小平方三角
逼近多项式 Sn ( x) 的系数是
1
ak =
π

2π

bk = 1
π

2π

∫
0

∫

f ( x) cos kxd x

( k = 0 , 1 , … , n) ,

f ( x) sin kxd x

( k = 1 , … , n) ,

( 6 .2)

0

ak , bk 称为傅里叶系数 , 函