MATLAB数值计算(Numerical Computing with MATLAB 中译本,最新修订)
定 价:52 元
丛书名:MATLAB之父Cleve B. Moler经典著作
- 作者:Cleve Moler
- 出版时间:2015/1/1
- ISBN:9787512415461
- 出 版 社:北京航空航天大学出版社
- 中图法分类:O241
- 页码:427
- 纸张:胶版纸
- 版次:1
- 开本:16K
本书《MATLAB数值计算(2013修订版)》经MATLAB、数值分析和科学计算之父CleveMoler本人正式授权,是NumericalComputationwithMATLAB2008/2013修订版的中译本。该书不以深奥的数值分析理论为内容,而以易于理解的数学思维和便于掌握的数学计算编程技术为
教学素材。该书摒弃以往数值分析教材中常见的程式性定理、定理证明、收敛性理论和冗长公式推演。该书数值算法原理的表述,言简意骇、层次丰富、见解独到、权威精辟;数学计算软件的教学内容易学易懂,构思巧妙而循循善诱。
全书正文共11章,包括:MATLAB入门、线性方程组、插值、零点和根、最小二乘、定积分、常微分方程、随机数、傅立叶分析、特征值和奇异值、偏微分方程。每章后都配置了大量习题。与本书正文及习题匹配的70多个M文件都由CleveMoler本人编写,并被其本人赞为最引以自傲的软件作品。为读者学习、查阅需要,本书还编有4个附录:MATLAB功用释要、MATLAB命令及示教文件名索引、中文关键词索引和CleveMoler获2012年度计算机先驱奖的简短资料。该书所有代码都适配于MATLABR2014a。
该书是CleveMoler专为高校研究生、本科生编写的数值计算、MATLAB教材。该书也是所有MATLAB用户理解MATLAB算法原理的最好指南,也是广大科技人员自学、精读或随时查阅的最可信赖的参考书。
本书英文版购买链接: Numerical Computing with MATLAB revised in 2013(MATLAB数值计算 2013修订版、英文版)
原文序
本书是为讲授数值方法、MATLAB 及工程计算而编写的入门性教材,着重强调
数学软件的灵活应用。我们希望你通过本书能充分理解MATLAB 数学计算函数及
命令的内涵,充分辨析其局限性,正确使用它们,并能根据你自己的需要对它们
加以修改。本书包含以下章节:
MATLAB 入门
线性方程组
插值
零点和根 原文序
本书是为讲授数值方法、MATLAB 及工程计算而编写的入门性教材,着重强调
数学软件的灵活应用。我们希望你通过本书能充分理解MATLAB 数学计算函数及
命令的内涵,充分辨析其局限性,正确使用它们,并能根据你自己的需要对它们
加以修改。本书包含以下章节:
MATLAB 入门
线性方程组
插值
零点和根
最小二乘
定积分
常微分方程
随机数
傅里叶分析
特征值和奇异值
偏微分方程
20 世纪60 年代后期,George Forsythe 首先在美国斯坦福大学开创了基于软
件的数值方法课程。Forsythe、Malcolm 和Moler 三人合写的教材[20],及其后由
Kahaner、Moler 和Nash 合写的教材[34],都是由斯坦福大学的那门课程演化产生
的,且它们都建筑在Fortran 子程序库基础上。
本书以MATLAB 为基础。含70 多个M-文件的NCM 汇集是本书的重要组成部
分。本书200 多道习题中的许多习题都涉及对NCM 程序的修改及扩展。本书还
广泛使用计算机图示的功能,其中包括对各种数值算法的交互式图形展示。
选修本课程或阅读本书的前提条件是:
学过微积分;
对常微分方程有所了解;
对矩阵有所了解;
有些计算机编程经验。
假如你此前从未用过MATLAB,那么第1章将帮助你跨入大门。假如你已经
熟悉MATLAB,那么你可以快速浏览第1 章的大部分内容。但是,每位读者都不
应跳过第1 章关于浮点算法的那节内容。
对于一学季或一学期的课程而言,本书内容可能偏多。建议讲授前7章的全
部内容,而在后4 章中有选择地讲授学生感兴趣的部分内容。
在你阅读本书时,应确定你所在计算机网或个人电脑上已经安装了NCM 程
序汇集。NCM 汇集可从如下的本书英文原版网站[47] 上免费获得。
http://www.mathworks.cn/moler
NCM 汇集中的文件有三类:
gui 文件,交互式图形演示文件;
tx 文件,MATLAB 内建文件的示教性简略版;
其他:各种配用文件,主要与习题有关。
在自己机器上安装了NCM 汇集后,你在MATLAB 中运行命令
ncmgui
便产生一个如下页所示的综合性图形用户界面。该综合界面上的每个缩略小图,
实际上都是引出相应GUI 图形用户界面的按钮。
离开MathWorks 和SIAM 的同仁,本书不可能完成。这两个团队中的人员都
很专业、富具创造力和融洽合作。他们对本书给予了巨大的支持。在众多做出特
殊贡献的朋友和同仁中,我特别要提到其中五位。Kathryn Ann Moler 多次在斯
坦福大学的课程中使用本书的早期书稿,并成为给予我最中肯批评的智者。Tim
Davis 和Charlie Van Loan 给出了特别有益的审阅意见。Lisl Urban 为本书做了完
美无瑕的编辑工作。我妻子Patsy 始终陪伴身旁,包容、照料我的工作习惯和笔
记本电脑,她深爱着我的一切。我感谢所有的人!
本书2008 修订重印版的更改内容有:为改进无出链网页的处理,对Google
PageRank 那节所作的修订;在随机数那章新增一小节内容;删除了关于inline 和
feval 命令的内容;校正了几十处小的印刷疏误。
2013 年9 月对本书进行了60 多处重要的更新修订。其中大多数修订是中国
南京邮电大学的张志涌教授所提议的。那时,他正在为北京航空航天大学出版社
准备本书的中译本。本书第5.3 节美国人口普查算例纳入了2010 年的人口数据。
format long 格式下的计算结果显示16 位有效数字。涉及符号工具包的应用现已
反映MuPAD 引擎所引起的变化。非常感谢张教授。
Cleve Moler
2013 年9 月16 日
译文前言:
2012 年仲秋,我作为Moler 十年前访华晤面过的熟人,再次受MathWorks 中
国公司的邀请,出席Cleve Moler 的访华欢迎会。在欢迎午餐席间,Moler 表达了
希望在中国见到由他本人授权的著作中译本的强烈意愿。我欣然允诺翻译,随即
Moler 把Numerical Computing with MATLAB 的翻译工作委托于我,并将出版权授予
北京航空航天大学出版社。对此,我深感荣幸,因为从MathWorks 网站首次出现
此书电子版起的这些年里,我一直持有翻译此书的强烈冲动和期盼译著在中国出
版发行的迫切愿望。
我喜欢此书,因为Numerical Computing with MATLAB 一书,既能让读者初读
时感受易学易懂之愉悦,又能让读者细读时领受渗透于字里码间的睿智点化;既
能使读者从MATLAB 中获得前所未有的数值解算能力,又可使读者欣赏到浮点计
算之数学优雅。
我推崇此书,因为Numerical Computing with MATLAB 的作者是Cleve Moler,
一个始终怀揣那朴实的、“让学生学数学更轻松”理念的大学教授,一个始终怀揣
那“让他人最放心、最方便使用高质量数学计算软件”平常心的科学家1。正是这
济世理念驱使他成为了“高性能数值计算测试标准的LINPACK、EISPACK 软件”
的主要贡献者,驱使他发明了“对世界工程教学和科研领域产生不可估量深远影
响的MATLAB ”2,使他成为了世界公认的现代数值分析和科学计算的一位创始人、
给计算世界打下深深烙印的数学奇才3。他是美国工业和应用数学学会SIAM 前
主席、美国工程院院士、2012 年IEEE 计算机先驱奖获得者。然而,他喜欢自称
“最爱编程的地地道道骇客(hacker)”,趣喻自己是“围绕数学家和计算机科学家
双核作Lorenz 混沌运动”的人1。
我赞赏此书,因为Numerical Computing with MATLAB 一书是Cleve Moler 从其
前20 年教学生涯和后20 年专事MATLAB 经验中升华而成的原创珍品,是凝聚其
对数学应用本质性独特见解、展示未来教学方向的数值计算教材之圭臬。该书物
化地展现了,Cleve Moler 对数值分析和科学计算教学的如下卓识真见1:
在科学和技术计算中,存在一个既不被数学覆盖、也不被计算机学科和其它
应用学科覆盖的共同知识体系。它是涉及数值分析、科学编程、计算机图形
和数据库管理等内容的独立知识体系。
对于科技领域的非数学从业人员而言,他们所需要解决的具体问题,往往不
是单一的数学问题,而是更大更复杂的综合性问题。这些问题的解决需要多
种数学知识和数值计算方法。在此境况下,他们不可能、也不需要知道每种
数值方法的微妙细节和具体公式,而只需要知道如何调用各种计算软件去
解决面前不可回避的数学问题,以腾出更多的时间和精力, 专注于那综合性
的具体设计目标。就像在一个具体问题中遇到需要计算的正弦、余弦函数值
时,人们并不会对近似计算正弦、余弦函数值的具体公式和执行细节刻意刨
根问底,而只是径直调用它们的计算命令。
Numerical Computing with MATLAB 由美国工业和应用数学学会SIAM于2004
年出第一版,2008 年出修订版。此书在2013 年经Cleve Mole 再次修订,且在其
亲自授权后于不久前由北京航空航天大学出版社出版。该书的章节标题不仅涵盖
常见数值分析教材的所有章节标题,而且包含“随机数”和“偏微分方程”两章。
Numerical Computing with MATLAB 的特别之处在于:该书是由具有数值分析、
科学计算之父和MATLAB 之父双重身份的Cleve Moler 写成的。该书不以深奥的数
值分析理论为内容,而以向读者提供易于理解的数学思维、易于掌握的数学编程
技术为宗旨。因此,在该书中,没有某些数值分析教材中那定理和定理证明的重
峦叠嶂,没有那冗长公式和满纸推演的浓雾密云,也没有浮点误差理论的浓墨重
彩。在书中,能见到的是那信手拈来的博引旁证、高屋建瓴的评价结论,能见到
的是脉络清晰的引导、使人顿悟的简明示例,能见到的是由MATLAB 代码一步一
步指引的、读者完全可以自己在计算机上重现的各种算法演绎和实验,能见到的
是能准确掌控计算误差和提供性能改善选项的MATLAB 命令。
Numerical Computing with MATLAB 英文原版正文和习题中的MATLAB 代码、随
书NCM 汇集中的M 文件,都在MATLAB R2013a 版下由Moler 进行过适配性修改。
这些代码和文件设计之精心、运用之巧妙、可读性之强,都达到了Moler 自认的
前所未有的满意程度,并被Moler 引以自傲1。
《MATLAB 数值计算》(2013 修订版)是据2014 英文版Numerical Computing
with MATLAB 翻译的。本书正文及习题翻译忠于原著、原意。在翻译时,为保证读
者能重现英文原版所列之计算结果,也为帮助读者准确理解原文编码的奥妙,在
个别段落中补写了些许M 码,在个别M 码后增补了一点解释。此外,为适应我国
学术和教学环境,把英文原版中实施“对应元素间运算”的“Matrix、Vector”词
汇,翻译成“数组、行(或列)数组”。中译版《MATLAB 数值计算》中的MATLAB
代码、随书NCM 汇集中的M 文件,由译者在MATLAB R2014a 版下进行过适配性
修订。
《MATLAB 数值计算》(2013 修订版)除正文外,增添四个附录:“附录A.
MATLAB 功用释要”,是对正文提及的MATLAB 要素,从用法角度出发,给予简明系
统地要旨介绍或补充,减少读者阅读困难和查阅其他帮助材料的麻烦。“附录B.
MATLAB 命令和示教文件名索引”,供读者据命令名、文件名检索书中示例。“附录
C. 中文关键词索引”,供读者据中文术语对照英文词汇检索正文表述。“附录D.
2012 年度计算机先驱奖颁奖典礼视频整理稿”,供读者全面了解Moler 的杰出贡
献和人文精神,进而更好领悟Moler 原著所体现的科学计算思想。
《MATLAB 数值计算》(2013 修订版)的编译由张志涌、张子燕、杨祖樱三人
协同完成。全书经通译、M 码运作、附录编写、通校、文字修饰等几阶段后完稿,
前后历时18 个月。在通译和M 码运作及附录编写期间,我们就正文叙述、M 代
码、GUI 表现及附录内容等,多次向原作者请教、咨询及建议。对此,原作者都
及时地给予详尽回复和认真处理。这使我们亲身感受到Cleve Moler 对所有议题
了然于胸的从容和一丝不苟的严谨,领受到Cleve Moler 对MATLAB 命令设计原由
的透彻解读和出神入化的功力。在本译作完稿之际,我们全体译者向MathWorks
公司首席科学家Cleve Moler 表示最真诚的深深谢意。
在译稿出版之际,我们还要向北京航空航天大学出版社的陈守平、蔡喆、赵
延永等表达最真挚的感谢,感谢他们为我们编译所提供的各种宝贵资料和信息,
感谢他们为保证本书高质量出版所作出的一切努力。
《MATLAB 数值计算》(2013 修订版)译作虽经我们多人反复修正校对,但限
于我们知识的局限,误译、错译、片面理解及其他疏漏仍难以杜绝。在此,恳请
各方面专家和广大读者不吝指教。译者联系电子信箱:zyzh@njupt.edu.cn。
张志涌、张子燕、杨祖樱
2014 年10 月21 日
Cleve Moler是MathWorks公司的董事长和首席科学家。Moler先后在密歇根大学、斯坦福大学、新墨西哥大学担任数学和计算机科学教授达20余年。1989年全职加入MathWorks公司之前,他曾在Intel Hypercube和Ardent Computer这两个计算机硬件生产公司工作了五年。Cleve先后就读于加州理工和斯坦福大学并获斯坦福大学博士学位。
作为MATLAB的创始人,Cleve同时也是LINPACK和EISPACK科学子程序库的作者之一。他与别人合作出版了三本关于数值方法的书,同时也独立编写了Numerical Computing with MATLAB 和 Experiments with MATLAB。
Cleve长期服务于美国工业与应用数学学会,并于2007-2008任主席。Cleve于1997年当选美国国家工程院院士,并获多项荣誉,包括瑞典林学平大学荣誉学位,加拿大滑铁卢大学荣誉数学博士学位,丹麦科技大学荣誉博士等。Cleve还获得IEEE计算机学会的2012年计算机先驱奖。
第1 章MATLAB 入门
1.1 黄金分割比
1.2 斐波那契数
1.3 分形蕨
1.4 魔方矩阵
1.5 密码技术
1.6 数论问题3n+1 序列
1.7 浮点运算
1.8 更多阅读
习题
第2 章线性方程
2.1 解线性方程组
2.2 MATLAB 反斜杠矩阵左除算符
2.3 3 3 方程组算例
2.4 排列矩阵和三角矩阵 第1 章MATLAB 入门
1.1 黄金分割比
1.2 斐波那契数
1.3 分形蕨
1.4 魔方矩阵
1.5 密码技术
1.6 数论问题3n+1 序列
1.7 浮点运算
1.8 更多阅读
习题
第2 章线性方程
2.1 解线性方程组
2.2 MATLAB 反斜杠矩阵左除算符
2.3 3 3 方程组算例
2.4 排列矩阵和三角矩阵
2.5 LU 分解
2.6 选主元的必要性
2.7 示教M 文件lutx、bslashtx、lugui
2.8 舍入误差的影响
2.9 范数和条件数
2.10 稀疏矩阵和带状矩阵
2.11 PageRank 和马尔可夫链
2.12 更多阅读
习题
第3 章插值
3.1 插值多项式
3.2 分段线性插值
3.3 分段三次埃尔米特插值
3.4 保形分段三次插值
3.5 三次样条
ii 目录
3.6 示教M 文件pchiptx, splinetx
3.7 插值计算交互界面interpgui
习题
第4 章零点和根
4.1 二分法
4.2 牛顿法
4.3 牛顿法失常算例
4.4 弦截法
4.5 逆二次插值
4.6 Zeroin 算法
4.7 示教M 文件fzerotx
4.8 fzerogui
4.9 值的解算和反插值
4.10 最优化和示教M 文件fmintx
习题
第5 章最小二乘
5.1 模型和曲线拟合
5.2 范数
5.3 人口模型交互界面censusgui
5.4 豪斯霍尔德反射
5.5 QR 分解
5.6 伪逆
5.7 秩亏
5.8 可分离最小二乘
5.9 更多阅读
习题
第6 章定积分
6.1 自适应定积分算法
6.2 定积分的基本法则
6.3 示教M 文件quadtx 和quadgui
6.4 被积函数的表述
6.5 性能
6.6 积分离散数据
6.7 更多阅读
习题
第7 章常微分方程
7.1 微分方程的积分
7.2 微分方程组
7.3 线性化的微分方程
7.4 单步法
7.5 BS23 算法
7.6 示教M 文件ode23tx
7.7 两个简单示例
7.8 洛伦茨吸引子
7.9 刚性
7.10 事件
7.11 多步法
7.12 MATLAB 的ODE 解算命令
7.13 误差
7.14 性能
7.15 更多阅读
习题
第8 章傅里叶分析
8.1 按键拨号
8.2 有限傅里叶变换
8.3 交互界面fftgui
8.4 太阳黑子
8.5 周期时间序列
8.6 快速有限傅里叶变换
8.7 示教M 文件ffttx
8.8 fftmatrix 绘制傅里叶矩阵的图
8.9 其他傅里叶变换与级数
8.10 更多阅读
习题
第9 章随机数
9.1 伪随机数
9.2 均匀分布
9.3 正态分布
9.4 示教M 文件randtx 和randntx
9.5 Twister 算法
2012年仲秋,我作为Moler十年前访华晤面过的熟人,再次受MathWorks中国公司的邀请,出席CleveMoler的访华欢迎会。在欢迎午餐席间,Moler表达了希望在中国见到由他本人授权的著作中译本的强烈意愿。我欣然允诺翻译,随即Moler把NumericalComputingwithMATLAB的翻译工作委托于我,并将出版权授予北京航空航天大学出版社。对此,我深感荣幸,因为从MathWorks网站首次出现此书电子版起的这些年里,我一直持有翻译此书的强烈冲动和期盼译著在中国出版发行的迫切愿望。
我喜欢此书,因为NumericalComputingwithMATLAB一书,既能让读者初读时感受易学易懂之愉悦,又能让读者细读时领受渗透于字里码间的睿智点化;既能使读者从MATLAB中获得前所未有的数值解算能力,又可使读者欣赏到浮点计算之数学优雅。
我推崇此书,因为NumericalComputingwithMATLAB的作者是CleveMoler,一个始终怀揣那朴实的、“让学生学数学更轻松”理念的大学教授,一个始终怀揣那“让他人最放心、最方便使用高质量数学计算软件”平常心的科学家1。正是这济世理念驱使他成为了“高性能数值计算测试标准的LINPACK、EISPACK软件”的主要贡献者,驱使他发明了“对世界工程教学和科研领域产生不可估量深远影响的MATLAB”2,使他成为了世界公认的现代数值分析和科学计算的一位创始人、给计算世界打下深深烙印的数学奇才3。他是美国工业和应用数学学会SIAM前主席、美国工程院院士、2012年IEEE计算机先驱奖获得者。然而,他喜欢自称“最爱编程的地地道道骇客(hacker)”,趣喻自己是“围绕数学家和计算机科学家双核作Lorenz混沌运动”的人1。
我赞赏此书,因为NumericalComputingwithMATLAB一书是CleveMoler从其前20年教学生涯和后20年专事MATLAB经验中升华而成的原创珍品,是凝聚其对数学应用本质性独特见解、展示未来教学方向的数值计算教材之圭臬。该书物化地展现了,CleveMoler对数值分析和科学计算教学的如下卓识真见1:?在科学和技术计算中,存在一个既不被数学覆盖、也不被计算机学科和其它应用学科覆盖的共同知识体系。它是涉及数值分析、科学编程、计算机图形和数据库管理等内容的独立知识体系。
对于科技领域的非数学从业人员而言,他们所需要解决的具体问题,往往不是单一的数学问题,而是更大更复杂的综合性问题。这些问题的解决需要多种数学知识和数值计算方法。在此境况下,他们不可能、也不需要知道每种数值方法的微妙细节和具体公式,而只需要知道如何调用各种计算软件去解决面前不可回避的数学问题,以腾出更多的时间和精力,专注于那综合性的具体设计目标。就像在一个具体问题中遇到需要计算的正弦、余弦函数值时,人们并不会对近似计算正弦、余弦函数值的具体公式和执行细节刻意刨根问底,而只是径直调用它们的计算命令。
NumericalComputingwithMATLAB由美国工业和应用数学学会SIAM于2004年出第一版,2008年出修订版。此书在2013年经CleveMole再次修订,且在其亲自授权后于不久前由北京航空航天大学出版社出版。该书的章节标题不仅涵盖常见数值分析教材的所有章节标题,而且包含“随机数”和“偏微分方程”两章。NumericalComputingwithMATLAB的特别之处在于:该书是由具有数值分析、科学计算之父和MATLAB之父双重身份的CleveMoler写成的。该书不以深奥的数值分析理论为内容,而以向读者提供易于理解的数学思维、易于掌握的数学编程技术为宗旨。因此,在该书中,没有某些数值分析教材中那定理和定理证明的重峦叠嶂,没有那冗长公式和满纸推演的浓雾密云,也没有浮点误差理论的浓墨重彩。在书中,能见到的是那信手拈来的博引旁证、高屋建瓴的评价结论,能见到的是脉络清晰的引导、使人顿悟的简明示例,能见到的是由MATLAB代码一步一步指引的、读者完全可以自己在计算机上重现的各种算法演绎和实验,能见到的是能准确掌控计算误差和提供性能改善选项的MATLAB命令。
NumericalComputingwithMATLAB英文原版正文和习题中的MATLAB代码、随书NCM汇集中的M文件,都在MATLABR2013a版下由Moler进行过适配性修改。这些代码和文件设计之精心、运用之巧妙、可读性之强,都达到了Moler自认的前所未有的满意程度,并被Moler引以自傲1。
《MATLAB数值计算》(2013修订版)是据2014英文版NumericalComputingwithMATLAB翻译的。本书正文及习题翻译忠于原著、原意。在翻译时,为保证读者能重现英文原版所列之计算结果,也为帮助读者准确理解原文编码的奥妙,在个别段落中补写了些许M码,在个别M码后增补了一点解释。此外,为适应我国学术和教学环境,把英文原版中实施“对应元素间运算”的“Matrix、Vector”词汇,翻译成“数组、行(或列)数组”。中译版《MATLAB数值计算》中的MATLAB代码、随书NCM汇集中的M文件,由译者在MATLABR2014a版下进行过适配性修订。
《MATLAB数值计算》(2013修订版)除正文外,增添四个附录:“附录A.MATLAB功用释要”,是对正文提及的MATLAB要素,从用法角度出发,给予简明系统地要旨介绍或补充,减少读者阅读困难和查阅其他帮助材料的麻烦。“附录B.MATLAB命令和示教文件名索引”,供读者据命令名、文件名检索书中示例。“附录C.中文关键词索引”,供读者据中文术语对照英文词汇检索正文表述。“附录D.2012年度计算机先驱奖颁奖典礼视频整理稿”,供读者全面了解Moler的杰出贡献和人文精神,进而更好领悟Moler原著所体现的科学计算思想。
《MATLAB数值计算》(2013修订版)的编译由张志涌、张子燕、杨祖樱三人协同完成。全书经通译、M码运作、附录编写、通校、文字修饰等几阶段后完稿,前后历时18个月。在通译和M码运作及附录编写期间,我们就正文叙述、M代码、GUI表现及附录内容等,多次向原作者请教、咨询及建议。对此,原作者都及时地给予详尽回复和认真处理。这使我们亲身感受到CleveMoler对所有议题了然于胸的从容和一丝不苟的严谨,领受到CleveMoler对MATLAB命令设计原由的透彻解读和出神入化的功力。在本译作完稿之际,我们全体译者向MathWorks公司首席科学家CleveMoler表示最真诚的深深谢意。
在译稿出版之际,我们还要向北京航空航天大学出版社的陈守平、蔡喆、赵延永等表达最真挚的感谢,感谢他们为我们编译所提供的各种宝贵资料和信息,感谢他们为保证本书高质量出版所作出的一切努力。
《MATLAB数值计算》(2013修订版)译作虽经我们多人反复修正校对,但限于我们知识的局限,误译、错译、片面理解及其他疏漏仍难以杜绝。在此,恳请各方面专家和广大读者不吝指教。
张志涌、张子燕、杨祖樱
2014年10月21日
……