《MATLAB之父:編程實踐》一書是MATLAB之父Cleve Moler的最新力作。作者通過20個有趣的主題介紹了MATLAB程序設計的思想與方法,主題內容包括:迭代、斐波那契數、日歷與時鐘、矩陣、線性方程組、蕨型葉分形、谷歌的網頁排名值、指數函數、T 形積木、幻方問題、井字棋的魅力、生命游戲、曼德勃羅集、數獨、常微分方程、捕食者與獵物模型、軌道、淺水方程、摩爾斯電碼、音樂。通過這些主題也循序漸進地介紹了微積分、矩陣、線性代數方程、指數、復數、分形、微分方程甚至偏微分方程等數學內容,即使沒有這些方面的基礎或沒有學過相關的課程,也可以通過本書的介紹很好地理解本書的基礎知識,為以后進一步學習這些課程提供全新的視角和理解方法。本書作者的思路獨特、視野寬廣,語言嚴謹又不失風趣幽默,案例程序完整精練,易學易懂。
《MATLAB之父:編程實踐》一書適合于大學低年級的學生,也可供各學科及有一定MATLAB基礎的讀者作參考用。
《MATLAB 之父:編程實踐》是克利夫(Cleve)繼《MATLAB 數值分析與科學計算―― 基于MATLAB(修訂版)》(Numerical Computing with MATLAB)之后所獨立編寫的第二本關于MATLAB 應用的書籍,主要是面向高中或大學低年 級的讀者,目的是想通過實驗的方法將MATLAB 語言介紹給廣大的初學者,為大家提供一系列在應用數學、科學計算和MATLAB 編程中有代表性的非常實用且有深刻數學意義的實驗案例,從而幫助學習人員加深產品認知并有效提高工程應用能力。此書電子首稿于2008 年完成并在過去的5 年里,進行了陸陸續續的精心修訂,這次是該書的首個中文版! 禡ATLAB 之父:編程實踐》一書的英文原版行文生動,案例新穎,處處體現數學之美,字里行間更無不反映出作者的奇思妙想,風趣易懂,每個實驗案例的解答都充斥著一種探求式的好奇精神。強烈的好奇心,是克利夫給人留下的最深印象,大到人文歷史風土人情,小到會議講座禮尚往來,他都保持著一種童真般的好奇。這種強烈的好奇心也可以從這本書涉獵廣泛的內容中得到體會―― 矩陣、歷法、谷歌網頁排名、音樂、天體運行、分形圖、生命進化、數獨等等包羅萬象! ∵@些精彩的內容連同生動文筆都在薛定宇老師的譯本中得到了很好的體現。薛老師自己的書在讀者中享有很高聲譽,我最早拜讀的就是他寫的自動控制領域經典的教材《控制系統計算機輔助設計―― MATLAB 語言與應用》,結構嚴謹,思維縝密,內容翔實。這種風格在此書中文版的翻譯中與原文達到了奇妙融合,使讀者在領略克利夫的獨特思路時邏輯清晰,而且興趣盎然,相信一定會是一次非常愉快的閱讀體驗! 禡ATLAB 之父:編程實踐》是北京航空航天大學出版社與邁斯沃克公司在圖書合作方面的一個杰作,是邁斯沃克公司近兩年中國圖書計劃中最重要的一個項目!禡ATLAB之父:編程實踐》一書也獲得國內最大的MATLAB/Simulink技術交流平臺——MATLAB中文論壇的鼎力推薦,MATLAB中文論壇的“MATLAB讀書頻道”為本書提供了專門版塊供讀者交流,以期共同進步。
Cleve Moler是MathWorks公司的董事長和首席科學家。Moler先后在密歇根大學、斯坦福大學、新墨西哥大學擔任數學和計算機科學教授達20余年。1989年全職加入MathWokrs公司之前,他曾在Intel Hypercube和Ardent Computer這兩個計算機硬件生產公司工作了五年。Cleve先后就讀于加州理工和斯坦福大學并獲斯坦福大學博士學位。
作為MATLAB的創始人,Cleve同時也是LINPACK和EISPACK科學子程序庫的作者之一。他與別人合作出版了三本關于數值方法的書,同時也獨立編寫了Numerical Computing with MATLAB 和 Experiments with MATLAB。
Cleve長期服務于美國工業與應用數學學會,并于2007-2008任主席。Cleve于1997年當選美國國家工程院院士,并獲多項榮譽,包括瑞典林學平大學榮譽學位,加拿大滑鐵盧大學榮譽數學博士學位,丹麥科技大學榮譽博士等。Cleve還獲得IEEE計算機學會的2012年計算機先驅獎。
Cleve Moler是MathWorks公司的董事長和首席科學家。Moler先后在密歇根大學、斯坦福大學、新墨西哥大學擔任數學和計算機科學教授達20余年。1989年全職加入MathWokrs公司之前,他曾在Intel Hypercube和Ardent Computer這兩個計算機硬件生產公司工作了五年。Cleve先后就讀于加州理工和斯坦福大學并獲斯坦福大學博士學位。
作為MATLAB的創始人,Cleve同時也是LINPACK和EISPACK科學子程序庫的作者之一。他與別人合作出版了三本關于數值方法的書,同時也獨立編寫了Numerical Computing with MATLAB 和 Experiments with MATLAB。
Cleve長期服務于美國工業與應用數學學會,并于2007-2008任主席。Cleve于1997年當選美國國家工程院院士,并獲多項榮譽,包括瑞典林學平大學榮譽學位,加拿大滑鐵盧大學榮譽數學博士學位,丹麥科技大學榮譽博士等。Cleve還獲得IEEE計算機學會的2012年計算機先驅獎。
寫在前面i
譯者的話iii
前言v
第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) 123
第12章生命游戲(Game of Life) 131 寫在前面i
譯者的話iii
前言v
第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) 123
第12章生命游戲(Game of Life) 131
第13章曼德勃羅集(Mandelbrot Set) 141
第14章數獨(Sudoku) 159
第15章常微分方程(Ordinary Differential Equations) 173
第16章捕食者與獵物模型(Predator–Prey Model) 185
第17章軌道(Orbits) 191
第18章淺水方程(Shallow Water Equations) 207
第19章摩爾斯電碼(Morse Code) 211
第20章音樂(Music) 227
譯者的話
克利夫莫勒(Cleve Moler)是MATLAB 的首創者,也是享譽世界的邁斯沃克公司
(MathWorks)的締造者之一和首席科學家。他1997 年當選美國工程院院士,2007-
2008 年擔任美國工業與應用數學學會(Society of Industrial and Applied
Mathematics,SIAM)的主席,2012 年獲得IEEE 計算機學會的計算機先驅獎
(Computer Pioneer Award 2012,IEEE Computer Society)。
三十多年前,克利夫在講授線性代數課程時,覺得用當時最好的計算機工具仍然不是很方便,就構思并實現了MATLAB。現在MATLAB 已經成為科學與工程界的通用計算機語言,并為很多領域的首選計算機語言,為現代科學與技術的發展做出了重要的貢獻。今天的MATLAB 完全擔當得起其廣告詞所說的“加速工程與科學的步伐”(Accelarating the Pace of Engineering and Science)的重任。
當年MATLAB 語言起源于“矩陣實驗室”(matrix labortory),《MATLAB之父:編程
實踐》一書也是克利夫沿用這樣的思路,想通過實驗的方法將MATLAB 語言介紹給更多的讀者。原書的定位,是面向高中或大學低年級的讀者,所以對讀者在數學方面的要求并不是很高,本書也循序漸進地介紹了微積分、矩陣、線性代數方程、指數、復數、分形、微分方程甚至偏微分方程等數學內容,即使沒有這些方面的基礎或沒有學過相關的課程,也可以通過克利夫的介紹很好地理解本書的基礎知識,為以后進一步學習這些課程提供全新的視角和理解方法。所以本書對那些想盡早接觸MATLAB 語言的讀者是很有價值的。
雖然《MATLAB之父:編程實踐》一書對面向的讀者群的數學與科學基礎要求不是很高,但本書的很多內容對一些MATLAB 的高級使用者仍有很好的借鑒意義。通過《MATLAB之父:編程實踐》一書的翻譯,我本人在編程技巧方面已經受益匪淺。
《MATLAB之父:編程實踐》一書涉獵廣博,取材和所選的例子生動有趣,引人入勝,行文流暢,文筆生動。通過獨特的思路,克利夫介紹了很多科學運算與計算機編程的細節,如迭代過程、遞歸結構、圖形用戶界面設計、單元數組、二元樹、回溯法等,讀者可以閱讀本書來學習這些內容,但更重要的是在原書提供的代碼下進行實驗。書中配備了大量的練習題,通過練習題可以更好地實踐所學內容,提高MATLAB 語言的實際運用能力。通過實踐獲得第一手編程經驗,這是閱讀任何書籍都不能取代的,只有通過實踐,才能使得讀者盡快熟悉與掌握這一科學與工程的利器,為其他課程的學習與科研工作打造一把新的“鑰匙”,為取得更大的成就奠定必要的基礎和準備。