本书介绍科学计算需要的各类数值分析方法,不但在严谨的数学科学背景下进行讨论,而且给出了数值分析方法的严格证明。内容宽泛而深入,讲解细致而生动,包含大量定理、各种习题,曾被美国多所大学采纳为教材。
本书特点
●涵盖了科学计算中数值分析的广泛主题,除数值分析的基础知识外,还涉及线性代数和非线性代数方程组的求解、数值微分与数值积分、常微分方程和偏微分方程的数值解、函数逼近等方面的内容。
●增加了优化方面的内容和查询相关信息的网络资源。
●着重讲解与算术相关的理论基础。
●算法以伪代码的形式给出,以便学生可以立即用标准语言和交互数据包来编写实现算法的计算机程序。
无
本书由得克萨斯大学奥斯汀分校数学和计算机科学系高年级本科生和研究生课程使用多年的讲义演变而来. 这些课程讲授科学计算中通常需要的算法和方法. 我们在强调算法的同时也很看重这些方法的数学基础. 学生主要是来自数学、工程技术、自然科学和计算机科学等专业的本科生,以及不同学科的研究生. 数值分析中某些特殊论题的研究生课程也采用本书某些内容作为预备知识,这些课程包括微分方程数值解、数值线性代数和逼近论. 我们始终从数学的观点出发来讨论本书论题,并给出众多的定理、证明及有意义的思想,从而引出许多计算方法和计算机科学中令人感兴趣的问题. 当然,我们的出发点源自科学计算的实用领域,并由此来决定如何选择和讨论每个论题. 例如,对某些论题,讨论其理论基础而不是详细地分析算法更有启发性. 对另一些论题,则正好相反,尽管我们建议采用已经在实际应用问题上严格测试过的软件,例如程序库,但是学生仍然可从简单的算法编程和用程序作试验中得到许多知识。
本书与我们另一本较初等的教材 《Numerical Mathematics and Computing,Fourth Edition》(Brooks/Cole出版)有某些重叠部分. 那本书适用于具备较少数学基础知识(有时对学科的理论不太感兴趣)的学生. 它包括一组不同的论题,而且所有论题都没有进行深入的讨论. 而这本书试图成为一本提供更多学术讨论的教程,对许多论题都进行了深入的讨论. 有时我们提出一些在同等程度的标准课本中找不到的论题. 这一类论题包括多重网格方法、 多变量插值过程、同伦(或延拓)方法、 延迟微分方程及最优化。
本书中的算法由伪代码来表达. 这些伪代码包含数学公式以外的细节,读者很容易根据这些伪代码用任何一种标准计算机语言编写计算机程序. 我们相信,通过了解算法是如何从数学理论发展而来的,然后再编写和测试实现这些算法的计算机程序,学生会更好地学习和理解数值方法. 当然,学生编写的计算机程序不包含在科学程序库的稳健子程序中可以见到的复杂程序和周密检查. 在有关数学软件一览的附录A中可以找到通用的数学程序库的例子. 对于大多数应用来说,这些程序库比自行编写的程序更为可取。
本书的一个重要特点(从教学法的目的来说是重要的)是为学生提供了丰富的习题. 这些习题分为两类: 分析性习题和计算机习题. 计算机习题又分为两类: 一类是学生自己编写代码,另一类是学生采用现成的软件. 我们认为这两类编程实践都是必要的. 使用别人的软件并不总是一件容易的事,即使软件的文档说明与大型程序库或软件包一样清楚. 另一方面,比起只是采用软件包来说,学生自己编写和测试程序通常可以获得对算法更深入的理解. 大部分计算机习题要求使用至少32位字长的计算机。
软件、 勘误和教学辅助材料可以在因特网上找到,这在附录A中有介绍。
第3版包括一些新习题,重新编排了某些习题,并纠正了前一版中发现的错误. 对于因特网上资料信息的更新在附录A中给出,参考文献也进行了更新. 同时,大部分定理都给予名称和标题,便于读者记忆. 对整书内容进行了许多改进. 例如,在这个新版本中,我们增加了一章关于最优化的内容,包括下降法、二次拟合算法、NelderMead算法、模拟退火法、遗传算法、帕雷托最优化以及凸规划等内容. 一个学期的标准课程可以选用第1~4章及第6~8章中的若干章节. 两个学期的课程则可选用第1~9章以及其他感兴趣的论题. 第4、5章可以作为一个数值线性代数的短课程单独讲授. 因为我们试图包括更多的内容,所以某些节要求读者具有较多的预备知识. 它们通常被安排在一章的后面,这样读者不至于在每章开始就感到困难,并且读者可自行决定是否跳过这些节。
致谢
我们感谢在本书的编写过程中帮助我们的许多人。
第1版
感谢得克萨斯大学奥斯汀分校的 Sheri Brice、Margaret Combs、Jan Duffy、Katherine Mueller和Jenny Tsao提供的行政支持. 首先感谢数学系的Margaret Combs,她绘制了本书的多个 TEX 版本,在接连的几年里耐心地准备了用于课堂笔记的不同版本. 没有排版的技术问题太不容易了,她掌握了精心组织TEX文件的神奇技术,满足了不同的需要.在这一点上我们还要感谢Donald Knuth对TEX排版系统的贡献.我们感谢下列对初稿提出建议的敏锐的审阅者:Thomas A.Atchison、Frederick J.Carter、Philip Crooke、Jim DArchangelo、R.S.Falk、J.R.Hubbard、Patrick Lang、Giles Wilson Maloof、A.K.Rigler、F.Schumann、A.J.Worsey、Charles Votaw.此外,感谢下列人员对初稿提供的技术帮助:Victoria Hunter、Carole Kincaid、Tad Liszka、Rio Hirowati Shariffudin、Laurette Tuckerman.David Young慷慨地提出了许多建议和忠告.许多优秀的学生也给予了很多帮助;我们特别要感谢 David Bruce、Naiching Chen、Ashok Hattangady、Ru Huang、Wayne Joubert、Irina Mukherjee、Bill Nanry、Tom Oppe、Marcos Raydan、Malathi Ramdas、John Respess、Phien Tran、Linda Tweedy、Baba Vemuri.Brooks/Cole出版公司的编辑和技术人员对这个项目提供了很多合作与支持.特别是,感谢Jeremy Hayhurst和Marlene Thom对我们的帮助.Sawyer and Williams的Stacey Sawyer对手稿进行了仔细的修改,美国数学学会的Ralph Youngen提供了技术帮助,并监督将TEX文件付印成书。
第2版
我们感谢以下审阅者的工作:Dan Boley,明尼苏达大学;Min Chen,宾夕法尼亚州立大学;John Harper,罗切斯特大学;Ramon Moore,俄亥俄州立大学;Yves Nievergelt,东华盛顿大学;Elinor Velasquez,加州大学伯克利分校.特别感谢Ron Boisvert澄清了我们对数学软件分类的理解以及提供了附录中的例子.此外,我们感谢那些不怕麻烦对第1版提出建议与勘误的人,其中包括:Victor M.Afram、Roger Alexander、A.Awwal、Carl de Boor、T.P.Brown、James Caveny、George J.Davis、Hakan Ekblom、Mariano Gasca、Bill Gearhart、Patrick Goetz、Gary L.Gray、Bob Gregorac、Katherine Hua Guo、Cecilia Jea、Liz Jessup、Grant Keady、Baker Kearfott、Junjiang Lei、Teck C.Lim、Julio Lopez、C.Lu、Taketomo Mitsui、Irina Mukherjee、Teresa Perez、Robert Piche、Sherman Riemenschneider、Maria Teresa Rodriquez、Ulf Roennow、Larry Schumaker、WeiChang Shann、Christopher J.van Wyk、Kang Zhao、Mark Zhou.
第3版
我们感谢那些对第2版提出建议与勘误的人,他们是:Eyal Arian、Carl de Boor、YungMing Chang、Antonella Cupillari Paul Eenigenburg、Leopoldo P.Franca、Henry Greenside、R.J.Gregorac、Scott A.King、Robert Piche、N.Shamsundar、Topi Urponen、Yuan Xu.此外,感谢那些对第3版有帮助的人,他们是:Patrick Goetz、Shashank Khandelwal、Durene Ngo.
我们感谢数值分析中心、得克萨斯计算和应用数学学会、得克萨斯大学奥斯汀分校计算机科学系和数学系提供的技术支持和极佳的计算工具。
最后,Brooks/Cole—Thomson Learning出版公司的编辑和技术人员在本书的修订过程中为我们提供了许多帮助和支持,特别是Bob Pirtle、Janet Hill、Molly Nance.我们还要感谢Integre技术出版公司的Don DeLand、Leslie Galen、Joe Albrecht等人的出色工作.
本书的软件支持可以从附录中列出的网站上在线获得。
希望广大读者不吝指教,欢迎任何评论、建议、问题、批评、指正。
David Kincaid
Ward Cheney
什么是数值分析
数值分析涉及研究、开发和分析用于获取各种数学问题的数值解的算法. 数值分析常常被称为科学计算的数学。
我们所研究的算法最终都是用于高速计算机,因此在获得一个问题的解之前牵涉另一个关键步骤: 必须写出一个计算机程序或代码以便让计算机了解算法. 这当然不是不值一提的事,但是对计算机和计算机语言有那么多的选择,所以这个论题最好在数值分析学科之外讨论.
除了数学问题的数值解之外,计算机无疑还有许多其他用途: 提供基本通信、保存大型数据库、玩游戏、“网上冲浪”、写小说、理财等等. 在计算机上用数值方法求解数学问题是科学计算. 开发有关的算法(程序)和研究它们的特性是科学计算的数学。
通常,一个算法的开发是由一个数学的构造性证明而引出的. 在经典分析中,常常用到非构造性方法,但是它们一般不会引出算法. 例如,存在性和唯一性定理的证明可以假设它们不成立,然后依照一系列的逻辑推导直至导出矛盾. 然而并不是每一个构造性的证明都会导出一个成功的算法,一个可能出现的困难是从一个问题的解析解到一个数值解中间可能还有好几步. 此外,或者由于缓慢的收敛速度,或者需要冗长的计算使得某个解析解完全不实用。
作为关于一个问题的存在性定理与一个数值解之间差距的例子,我们考虑普遍存在的矩阵方程Ax=b. 我们知道当A非奇异时,它有唯一解. 但是当我们面对一个含有实验数据的大型线性方程组并且想计算一个近似的数值解时,关于唯一解的结论是意义不大的。
在本书中,每个论题都是从一个经常在实际应用中出现的基本数学问题出发. 然后为了得到一个求解这个问题的算法,我们给出一些分析. 算法通常以伪代码形式出现. 最后,给出对算法的进一步分析从而帮助理解算法的性态,例如它的收敛性或它对于舍入误差恶化的抵抗力. 这种分析采用向前误差分析形式或者向后误差分析形式。
在每一个所考虑的基本数学问题背后总是存在物理应用. 我们用一个热流问题对此加以说明. 一块具有多种边界条件的纯金属的温度由一些在任何点和任何时间都必须满足的数学方程所控制. 这里,主方程可以是热传导方程2u[]x2=u[]t这是一个抛物型的二阶线性偏微分方程. 在对这个实际物理问题作某些假设后,这个方程模拟杆内的热流. 变量x是空间坐标,t是时间. u=u(x,t)是温度. 要在计算机上解这个模型问题,可用一个格点网格离散空间时间区域,并且在每个格点上寻找数值解. 热传导方程中的偏导数可用有限差分来逼近,如v(x,t)[]t〖〗≈1[]k[v(x,t+k)-v(x,t)]
2v(x,t)[]x2〖〗≈1〖〗h2[v(x+h,t)-2v(x,t)+v(x-h,t)]其中,k和h分别是t方向和x方向上的格点间距. 另外,把变量换成v以强调我们所解的是这个模型问题的近似问题而不是模型问题本身. 把偏导数用这些近似式代替并作简化,在每一个格点(xi,tj),我们得到一个线性方程. 用vij作为v(xi,tj)的缩写,我们得到vi,j+1=svi-1,j+(1-2s)vij+svi+1,j其中s=k/h2. 数值解可以利用前一个方程逐步地在t方向向前推进. 这个过程称为显式方法,因为每一个新值vi,j+1都是由前面的值vi-1,j,vi,j,vi+1,j显式确定的. 所有这一切都很雅致,人们不会预感到有什么问题. 但是分析和数值实验表明显式方法存在着严重的缺陷! 因而我们转向隐式方法. 在隐式方法中,通过求解一个特殊形式的线性方程组Vj+1=AVj同时得到所有的新值. 其中A是某个三对角矩阵且Vj=[v1j,v2j,…,vnj]T. 每种方法都需要通过稳定性分析去找出网格步长h和k的值的允许范围以及相关的收敛性态. 在这方面,隐式方法比显式方法优越. 相关的细节可以在第9章中找到。
第1章数学预备知识1
10概述1
11基本概念和泰勒定理1
111极限、连续性和导数1
112泰勒定理4
113泰勒公式的其他形式7
习题118
12收敛阶及相关基本概念10
121收敛序列10
122收敛阶12
123大和小记号12
124积分中值定理14
125嵌套乘法14
126上界和下界15
127显函数与隐函数15
习题1217
计算机习题1220
13差分方程20
131基本概念21
132单根23
133重根24
134稳定的差分方程25
习题1326
计算机习题1327
第2章计算机算术运算29
20概述29
21浮点数和舍入误差29
211舍入30
212规格化的科学记数法30
213假想计算机Marc3231
214零,无穷大,非数字33
215机器舍入33
216Fortran 90的内部过程33
217IEEE标准浮点算术运算34
218接近的机器数34
219浮点误差分析37
2110相对误差分析38
习题21 40
计算机习题21 42
22绝对误差和相对误差: 有效位丢失43
221有效位丢失43
222几乎相等量的减法44
223精度丢失44
224函数求值46
225区间算术运算46
习题22 46
计算机习题22 48
23稳定计算和不稳定计算: 调节50
231数值的不稳定性50
232调节52
习题2354
计算机习题2355
第3章非线性方程的解57
30概述57
31对分(区间减半)法58
311对分算法59
312误差分析61
习题3162
计算机习题3163
32牛顿法63
321牛顿算法63
322图形解释64
323误差分析65
324隐函数67
325非线性方程组68
习题3270
计算机习题3272
33割线法73
331割线算法74
332误差分析75
习题3377
计算机习题3378
34不动点和函数迭代78
习题3483
35求多项式的根85
351霍纳算法88
352贝尔斯托法92
353拉盖尔迭代95
354复牛顿法99
习题35101
计算机习题35101
36同伦法和延拓法102
361基本概念102
362跟踪路径104
363与牛顿法的关系106
364线性规划106
习题36108
第4章解线性方程组109
40概述109
41矩阵代数109
411矩阵性质111
412分块矩阵114
习题41115
计算机习题41116
42LU分解和楚列斯基分解117
421容易求解的方程组117
422LU分解119
423楚列斯基分解123
习题42125
计算机习题42128
43选主元和构造算法128
431基本的高斯消元法129
432选主元132
433行尺度主元高斯消元法134
434全主元高斯消元法136
435分解PA=LU136
436运算量138
437对角占优矩阵139
438三对角方程组141
习题43142
计算机习题43146
44范数和误差分析147
441向量范数147
442矩阵范数148
443条件数150
习题44151
计算机习题44155
45诺伊曼级数和迭代细化155
451迭代细化158
452均衡化160
习题45161
计算机习题45163
46用迭代法解方程组163
461基本概念164
462理查森方法166
463雅可比方法167
464分析168
465高斯-赛德尔方法170
466SOR方法172
467迭代矩阵173
468外推174
469切比雪夫加速176
习题46180
计算机习题46182
47最速下降法和共轭梯度法182
471最速下降法184
472共轭方向185
473共轭梯度法186
474预处理的共轭梯度法189
习题47192
计算机习题47193
48高斯算法中的舍入误差分析193
习题48199
第5章数值线性代数精选201
50基本概念回顾201
51矩阵特征值问题: 幂法203
511幂法203
512算法204
513艾特肯加速205
514逆幂法206
515小结207
习题51207
计算机习题51209
52舒尔定理和Gershgorin定理209
521舒尔分解210
522特征值的定位212
习题52214
53正交分解和最小二乘问题216
531基本概念216
532格拉姆施密特过程217
533修正的格拉姆施密特算法218
534最小二乘问题220
535豪斯霍尔德QR分解221
习题53224
计算机习题53227
54奇异值分解和广义逆227
541广义逆229
542不相容方程组和欠定方程组230
543Penrose性质231
习题54234
计算机习题54236
55特征值问题的弗朗西斯QR算法236
551QR分解236
552约化到上海森伯格形237
553位移QR分解239
554初等行运算和列运算241
习题55242
计算机习题55243
第6章函数逼近245
60概述245
61多项式插值245
611牛顿型插值多项式245
612拉格朗日型插值多项式247
613多项式插值的误差250
614切比雪夫多项式250
615选取结点252
616插值多项式的收敛性253
习题61256
62均差260
621高阶均差261
622均差的算法263
623均差性质264
624HermiteGenocchi公式265
习题62266
计算机习题62268
63埃尔米特插值268
631基本概念268
632牛顿均差方法270
633拉格朗日型272
634带重复结点的均差273
习题63275
64样条插值276
641三次样条277
642张力样条282
643高次自然样条的理论284
习题64286
计算机习题64289
65B样条: 基本理论290
6510次B样条290
652一次B样条292
653B样条的性质292
654数值计算过程293
655B样条的导数和积分294
656附加性质296
习题65297
计算机习题65299
66B样条: 应用299
661空间kn的基299
662插值矩阵300
663存在性303
664非插值逼近方法304
665函数到样条空间的距离306
习题66306
计算机习题66307
67泰勒级数307
习题67309
计算机习题67311
68最佳逼近: 最小二乘理论311
681存在性312
682内积空间312
683正规方程314
684标准正交系315
685广义毕达哥拉斯法则和贝塞尔不等式316
686格拉姆施密特过程316
687算法318
688格拉姆矩阵319
习题68320
69最佳逼近: 切比雪夫理论321
691刻画最佳逼近的特征322
692凸性324
693线性方程组的切比雪夫解326
694再论特征定理326
695哈尔子空间327
696最佳逼近的唯一性328
697切比雪夫交替定理329
698算法330
习题69332
610高维插值333
6101插值问题333
6102笛卡儿积和网格333
6103布尔和334
6104张量积336
6105几何图形337
6106牛顿格式339
6107Shepard插值340
6108三角剖分342
6109移动最小二乘法344
61010多重二次插值345
习题610346
计算机习题610347
611连分式347
6111递归公式348
6112级数到连分式的转换350
习题611351
计算机习题611353
612三角插值353
6121傅里叶级数353
6122复傅里叶级数354
6123内积,伪内积,伪范数355
6124指数多项式356
习题612357
613快速傅里叶变换357
6131分析359
6132算法361
6133混淆现象和奈奎斯特频率362
6134计算指数多项式的值363
习题613364
计算机习题613364
614自适应逼近365
6141一次样条365
6142算法365
6143一般情况368
习题614369
计算机习题614369
第7章数值微分和数值积分371
71数值微分和理查森外推371
711数值微分371
712通过多项式插值的微分374
713理查森外推376
习题71380
计算机习题71381
72基于插值的数值积分382
721通过多项式插值的积分383
722梯形法则383
723待定系数法385
724辛普森法则385
725一般积分公式386
726区间变换387
727误差分析388
习题72389
计算机习题72392
73高斯求积392
731高斯求积公式393
732收敛性和误差分析396
习题73397
计算机习题73400
74龙贝格积分400
741递推梯形法则400
742龙贝格算法402
743分析402
习题74404
计算机习题74405
75自适应求积405
习题75408
计算机习题75409
76逼近泛函的Sard定理410
习题76414
77伯努利多项式和欧拉麦克劳林公式414
习题77417
第8章常微分方程数值解419
80概述419
81解的存在性和唯一性419
811存在性419
812唯一性420
习题81421
计算机习题81422
82泰勒级数方法422
821实例423
822权衡利弊425
823误差425
824欧拉方法426
825延迟微分方程426
习题82427
计算机习题82428
83龙格库塔方法430
831二阶龙格库塔方法430
832四阶龙格库塔方法432
833误差433
834自适应龙格库塔费尔贝格方法434
习题83436
计算机习题83437
84多步法439
841亚当斯巴什福思公式439
842亚当斯莫尔顿公式440
843线性多步法的分析441
习题84443
计算机习题84444
85局部误差和整体误差:稳定性445
851隐式/显式以及收敛方法445
852稳定性和相容性446
853米尔恩方法447
854局部截断误差447
855整体截断误差448
习题85450
86方程组和高阶常微分方程451
861向量记号451
862方程组的泰勒级数方法453
863方程组的其他方法454
习题86455
计算机习题86456
87边值问题457
871存在性458
872变量替换458
习题87462
88边值问题:打靶法464
881割线法465
882线性函数465
883牛顿方法467
884多重打靶467
885二阶线性方程468
习题88469
计算机习题88470
89边值问题:有限差分法471
891二阶微分方程471
892线性情况471
893收敛性472
习题89473
计算机习题89473
810边值问题:配置法474
8101施图姆刘维尔边值问题474
8102三次B样条475
计算机习题810476
811线性微分方程477
8111特征值和特征向量477
8112矩阵指数479
8113对角阵和可对角化阵480
8114若尔当块480
8115完全一般性解482
8116非齐次问题483
习题811485
812刚性方程486
8121欧拉方法486
8122修正的欧拉方法487
8123微分方程组487
8124一般的线性多步法488
8125A稳定性488
8126绝对稳定性区域489
8127非线性方程490
习题812490
计算机习题812490
第9章偏微分方程数值解491
90概述491
91抛物型方程:显式方法491
911热传导方程491
912有限差分法492
913算法493
914稳定性分析494
915稳定性分析:傅里叶方法496
习题91496
计算机习题91497
92抛物型方程:隐式方法497
921算法498
922克兰克尼科尔森方法499
923分析500
924小结501
习题92501
计算机习题92502
93定常问题:有限差分法502
931狄利克雷问题502
932有限差分502
933算法504
习题93505
计算机习题93506
94定常问题:伽辽金法506
941伽辽金法506
942狄利克雷问题507
943泊松方程509
944瑞利里茨方法509
945有限元素法511
习题94511
计算机习题94512
95一阶偏微分方程:特征线法512
951一阶方程组512
952特征曲线513
953特征曲线的一般理论514
习题95517
96拟线性二阶方程:特征线法518
961特征曲线518
962分类519
963算法520
964另一种特征线法524
习题96525
计算机习题96525
97双曲型问题的其他方法525
971拉克斯温德罗夫方法526
972方程组527
973温德罗夫隐式方法527
974伽辽金法529
习题97530
计算机习题97531
98多重网格方法531
981作为说明的例子531
982误差的阻尼533
983分析534
984限制和网格校正535
985V循环算法536
986运算量537
习题98538
计算机习题98538
99泊松方程的快速方法538
991模型问题538
992快速傅里叶正弦变换539
993附加的细节540
计算机习题99541
第10章线性规划及其相关论题543
101凸性和线性不等式543
1011基本概念543
1012凸集和凸包544
1013极值点546
习题101547
102线性不等式548
1021齐次方程组549
1022线性不等式549
1023相容系统和不相容系统550
1024矩阵向量形式551
习题102552
103线性规划553
1031转换问题的方法553
1032对偶问题554
习题103556
104单纯形法557
1041基本概念557
1042抽象形式558
1043表格法561
1044表格法则562
1045进一步说明562
1046小结563
1047工作量估计563
1048其他算法564
习题104564
第11章最优化565
110概述565
111单变量情况566
习题111568
112下降法568
习题112570
113二次目标函数的分析571
114二次拟合算法572
习题114573
115NelderMead算法573
116模拟退火法574
117遗传算法575
118凸规划576
119约束极小化577
1110帕雷托最优化577
习题1110578
附录A数学软件一览579
参考文献590
索引615
美国得克萨斯大学的David Kincaid 高级讲师和Ward Cheney 教授合著的这本书是一本内容丰富、颇有特色的教材,适合数学、工程和计算机科学等相关专业大学生和研究生使用. 它不仅介绍了科学计算中常用的算法和方法,而且十分注意讲授这些方法的数学基础. 本教材中有大量的习题可供教师和学生选用,除了有注重分析的习题外,还有计算机习题.作者不仅鼓励学生自行编写程序,而且还建议学生使用现成的软件,使学生得到更全面的训练。
该书的翻译工作是由王国荣、俞耀明和徐兆亮合作进行的,其中第4~5章、第8~11章由王国荣翻译,第1~3章由俞耀明翻译,第6~7章由徐兆亮翻译,最后由王国荣负责统校. 本书译成后,正值加拿大McMaster大学乔三正教授访问我校,我们曾与他就本书部分内容的翻译工作进行了有益的讨论,在此表示感谢。
本书是应机械工业出版社之邀翻译的,并约定在一年之内完成. 由于该书内容丰富,所以深感时间紧迫. 虽然也发现原著中少量印刷错误,但是还来不及进行教学实践,所以译文难免有不妥之处,欢迎广大读者批评指正。
王国荣
2005年1月于上海师范大学