Experiments with MATLAB(中译本) MATLAB之父:编程实践(修订版
《MATLAB之父:编程实践》(修订版)是MATLAB的创始人Cleve Moler的英文著作《Experiments with MATLAB》一书的中译本,由国内MATLAB界赫赫有名的薛定宇教授译著。该作品凝聚了中、美两国MATLAB大神的心血和智慧,每一章都精彩,连附录都引人入胜。
本书涉及的内容覆盖面极广,从天文历法到音乐,从生命进化到天体运行,从古老的传说到绚丽多彩的分形图,除了一般的技术内容之外,更有很多的文化、历史、艺术方面的内容,翻译者薛定宇教授以清晰的逻辑,准确地反映了原作者的思想和表述,因此,打开这本书,读者能处处感受到数学之美、世界之神奇。
本书文风生动优雅,例子引人入胜,不仅适用于高中或者大学低年级的读者,对一些MATLAB的高级使用者仍有很好的借鉴意义。
Experiments with MATLAB(中译本) MATLAB之父:编程实践(修订版)
本书是MATLAB之父Cleve Moler的力作。作者通过20个有趣的主题介绍了MATLAB程序设计的思想与方法,主题内容包括:迭代、斐波那契数、日历与时钟、矩阵、线性方程组、蕨型叶分形、谷歌的网页排名值、指数函数、T 形积木、幻方问题、井字棋的魅力、生命游戏、曼德勃罗集、数独、常微分方程、捕食者与猎物模型、轨道、浅水方程、摩尔斯电码、音乐。通过这些主题本书也循序渐进地介绍了微积分、矩阵、线性代数方程、指数、复数、分形、微分方程甚至偏微分方程等数学内容,即使没有这些方面的基础或没有学过相关的课程,也可以通过本书的介绍很好地理解本书的基础知识,为以后进一步学习这些课程提供全新的视角和理解方法。本书作者的思路独特、视野宽广,语言严谨又不失风趣幽默,案例程序完整精练,易学易懂。
本书适合于大学低年级的学生,也可供各学科及有一定MATLAB基础的读者作参考用。
第1 章迭代(Iteration) 1
第2 章斐波那契数(Fibonacci Numbers) 15
第3 章日历与时钟(Calendars and Clocks) 29
第4 章矩阵(Matrices) 39
第5 章线性方程组(Linear Equations) 53
第6 章蕨型叶分形(Fractal Fern) 63
第7 章谷歌的网页排名值(Google PageRank) 71
第8 章指数函数(Exponential Function) 85
第9 章T 形积木(T Puzzle) 99
第10 章幻方问题(Magic Squares) 107
第11 章井字棋的魅力(TicTacToe Magic) 121
第12 章生命游戏(Game of Life) 129
第13 章曼德勃罗集(Mandelbrot Set) 139
第14 章数独(Sudoku) 157
第15 章常微分方程(Ordinary Differential Equations) 171
第16 章捕食者与猎物模型(Predator–Prey Model) 183
第17 章轨道(Orbits) 189
第18 章浅水方程(Shallow Water Equations) 205
第19 章摩尔斯电码(Morse Code) 209
第20 章音乐(Music) 225
附录A MATLAB 的起源(Origins of MATLAB) 239
附录B 克利夫实验室简介(Introducing Cleve’s Laboratory) 249
附录C π的计算(Computing π) 255
附录D “21 点”的MATLAB 仿真(Simulating Blackjack with MATLAB) 263
译者的话
克利夫·莫勒(Cleve Moler)是MATLAB 的初创者,也是享誉世界的迈斯沃克公司(MathWorks)的缔造者之一和S席科学家。他1997 年当选美国工程院院士,2007-2008 年担任美国工业与应用数学学会(Society of Industrial and Applied Mathematics,SIAM)的主席,2012 年获得IEEE 计算机学会的计算机先驱奖(Computer Pioneer Award 2012,IEEE Computer Society)。
三十多年前,克利夫在讲授线性代数课程时,觉得用当时顶好的计算机工具仍然不是很方便,就构思并实现了MATLAB。现在MATLAB 已经成为科学与工程界的通用计算机语言,并为很多领域的S选计算机语言,为现代科学与技术的发展做出了重要的贡献。今天的MATLAB 完全担当得起其广告词所说的“加速工程与科学的步伐”(Accelerating the Pace of Engineering and Science)的重任。
当年MATLAB 语言起源于“矩阵实验室”(matrix laboratory),本书克利夫也是沿用这样的思路,想通过实验的方法将MATLAB 语言介绍给更多的读者。原书的定位,是面向高中或大学低年级的读者,所以对读者在数学方面的要求并不是很高,本书也循序渐进地介绍了微积分、矩阵、线性代数方程、指数、复数、分形、微分方程甚至偏微分方程等数学内容,即使没有这些方面的基础或没有学过相关的课程,也可以通过克利夫的介绍很好地理解本书的基础知识,为以后进一步学习这些课程提供全新的视角和理解方法。所以本书对那些想尽早接触MATLAB 语言的读者是很有价值的。
虽然本书对面向的读者群的数学与科学基础要求不是很高,但本书的很多内容对一些MATLAB 的高级使用者仍有很好的借鉴意义。通过本书的翻译,我本人在编程技巧方面已经受益匪浅。
本书涉猎广博,取材和所选的例子生动有趣,引人入胜,行文流畅,文笔生动。通过独特的思路,克利夫介绍了很多科学运算与计算机编程的细节,如迭代过程、递归结构、图形用户界面设计、单元数组、二元树、回溯法等,读者可以阅读本书来学习这些内容,但更重要的是在原书提供的代码下进行实验。书中配备了大量的练习题,通过练习题可以更好地实践所学内容,提高MATLAB 语言的实际运用能力。通过实践获得最初编程经验,这是阅读任何书籍都不能取代的,只有通过实践,才能使得读者尽快熟悉与掌握这一科学与工程的利器,为其他课程的学习与科研工作打造一把新的“钥匙”,为取得更大的成就奠定必要的基础和准备。
由于原书是作者写于不同时期的讲稿,在很多方面是不尽统一的,所以译者逐幅重新处理了插图,规范化了图形的大小和表示形式,合并了若干程序行,改善了很多矩阵和公式的排版效果,使得译作排版风格更紧凑,并尽力做到美观。按照中国科技文献的出版规则,将矩阵和向量等统一用黑体符号表示出来。考虑到读者可能对英语方面的要求,本书每章的标题与必要的关键词也都同时给出了英文原词,在某些地方还以译者注的形式给出了必要的解释,便于读者参考。
本书全部MATLAB 代码和其他相关资源都可以从克利夫本人的网页直接下载,建议读者广为利用
http://www.mathworks.com/moler
受北京航空航天大学出版社陈守平老师的邀请,本人有机会得以为这样一位享誉世界的大师的作品作译,倍感荣幸但同时也感受到巨大的压力。原书涉及的内容从天文历法到音乐,从生命进化到天体运行,从古老的传说到绚丽多彩的分形图,覆盖面极广,除了一般的技术内容之外,更有很多的文化、历史、艺术方面的内容,译者只能尽力而为,力图准确地反映原作者的思想和表述。此外,这次翻译工作是本人的初次书面翻译,限于个人的水平、经验、学识和素养,疏漏之处在所难免,希望读者不吝指正。
由于本人的文风和风格可能过于严谨或古板,实在难以再现克利夫原作的生动文风,所以在译文基本完成后特别邀请读者可能的同龄人我的女儿薛杨为全书进行了文字润色,并完成了某些章节的初译,在此特别感谢。
修订版说明:由于克利夫原作没有更新,所以这次修订版做了以下更新:
(1)修正了原版的一些错误,包括文字与格式不妥之处,重新处理了排版格式;
(2)补齐了原版exm 工具箱缺失的函数,如suffer.m 等,并对新版MATLAB 可能出现的不兼容现象作了必要的提示与修正;
(3)翻译了克利夫的四篇博文作为附录,第一篇介绍MATLAB 的起源,并给出了译者配字幕的克利夫相关演讲视频,使读者有机会欣赏大师的风采;第二篇介绍新版的克利夫实验室,即本书扩展的配套工具;第三篇介绍_的任意精度计算;第四篇通过“21 点”游戏深入浅出地介绍并行计算的概念与实现。相信读者通过这些博文的阅读能更好地学习MATLAB 语言与编程技术。
薛定宇
东北大学,沈阳