出版時間:2008-7 出版社:清華大學(xué)出版社 作者:史密斯 頁數(shù):422
Tag標(biāo)簽:無
前言
這本書將具有很少或者根本沒有計算經(jīng)驗的工程專業(yè)初學(xué)者引入科學(xué)計算的領(lǐng)域,向他們展示計算的力量。它的前身是筆者在喬治亞工學(xué)院為工程師們介紹科學(xué)計算的課程講義。經(jīng)過不斷地完善和修改,這本書已經(jīng)能夠適應(yīng)更為廣泛的讀者群的要求,對于因其他原因想要了解程序設(shè)計的學(xué)生和教師來說,它也一樣很有幫助。在本書中,為了幫助讀者理解科學(xué)計算,介紹了一種新興的界面友好的語言—— MATLAB,它是當(dāng)前工程界最為流行的計算語言之一。教學(xué)風(fēng)格計算不是吸引許多觀眾的體育比賽,學(xué)生只能通過計算來學(xué)習(xí)計算。這本書不僅介紹了計算的概念及如何用MATLAB來實現(xiàn),還給學(xué)生提供了大量容易上手的練習(xí)。書中舉例說明了一些工程應(yīng)用的基本思想,給出了編程風(fēng)格,還介紹了一些學(xué)生可能會遇到的典型問題。除了介紹入門課程的基本內(nèi)容之外,每一章還會討論一些更加深入的課題。因此,教師可以選擇用于循序漸進(jìn)的教學(xué)模式,用兩個學(xué)期的課時講授這門課程,把內(nèi)容介紹得更加全面和完整。高年級學(xué)生也可通過自學(xué)本課程來豐富自己的計算知識。本書介紹程序設(shè)計的總體思路如下:1.從總體上介紹一個有關(guān)計算的概念2.討論該概念的MATLAB實現(xiàn)3.提供相關(guān)練習(xí),幫助讀者掌握概念為了方便學(xué)生更容易地理解概念及其具體實現(xiàn)過程,本書采用了兩種特殊的描述方法:通用模板和MATLAB代碼清單。通用模板從總體上向?qū)W生展示了概念的基本思想,它可適用于任何語言。MATLAB代碼清單告訴學(xué)生概念是如何在MATLAB中實現(xiàn)的,代碼清單后面還有代碼的詳細(xì)說明。
內(nèi)容概要
本書介紹了工程計算中的一些基本概念及其其MATLAB實現(xiàn)。它采用將計算機(jī)程序設(shè)計院的基本思想融入到MATLAB的內(nèi)容之中的介紹方法,首先從總體上介紹有關(guān)計算的概念,在每臺然后討論該概念的MATLAB實現(xiàn) ,并給出相關(guān)的MATLAB模板或代碼清單。且每一章都會討論一個有針對性的工程實例,以增強(qiáng)讀者解決實際問題的能力。同時,章后面提供了大量容易上手的練習(xí),讀者可依此檢驗對本章內(nèi)容的掌握程度。本書還一本具有很少或者根本沒有計算經(jīng)驗的工程專業(yè)初學(xué)者,不僅介紹了計算的基本概念、MATLAB實現(xiàn) ,更提供了大量的MATLAB模板、代碼清單及工程實例向我們展示了計算的強(qiáng)大力量。本書的前身是作者在喬治來工學(xué)院為工程師們介紹科學(xué)計算的課程式講義,它經(jīng)過 了不斷的修改和完善。 因此,本書非常適合作為工程式計算機(jī)專業(yè)學(xué)生系統(tǒng)學(xué)習(xí)的教材同時也可發(fā)作為廣大科技工作撐握MALAB計算工具的自學(xué)用書。
作者簡介
DavidM.Smith,自1997年從工業(yè)界退休以后,David SmItll一直在繪喬治亞工學(xué)院的工程師們講授計算機(jī)科學(xué)的入門課程。在此之前,他曾經(jīng)在Lockheed-Martin公司工作了31年,主要是作為系統(tǒng)和軟件專家在該公司喬治亞州瑪麗埃塔分部從事智能系統(tǒng)的研究工作。David Smith在設(shè)計和開
書籍目錄
第1章 計算機(jī)和編程概述 1.1 背景 1.2 計算機(jī)體系結(jié)構(gòu)的發(fā)展歷史 1.2.1 Babbage差分機(jī) 1.2.2 Colossus 1.2.3 von Neumann結(jié)構(gòu) 1.3 今天的計算機(jī)系統(tǒng) 1.3.1 計算機(jī)硬件 1.3.2 計算機(jī)存儲器 1.3.3 計算機(jī)配置 1.3.4 計算機(jī)軟件 1.3.5 計算機(jī)程序的執(zhí)行 1.4 MATLAB程序的執(zhí)行 1.5 問題求解 1.6 本章小結(jié) 1.7 自測題 第2章 MATLAB入門 2.1 程序設(shè)計語言背景 2.1.1 抽象 2.1.2 算法 2.1.3 程序設(shè)計范式 2.2 基本數(shù)據(jù)操作 2.2.1 啟動與關(guān)閉MATLAB 2.2.2 變量賦值 2.2.3 數(shù)據(jù)類型 2.2.4 類與對象 2.3 MATLAB用戶界面 2.3.1 Command窗口 2.3.2 Command History窗口 2.3.3 Workspace窗口 2.3.4 Current Directory窗口 2.3.5 Document窗口 2.3.6 Graphics窗口 2.3.7 Editor窗口 2.3.8 Start按鈕 2.4 腳本 2.4.1 文本文件 2.4.2 創(chuàng)建腳本 2.4.3 當(dāng)前目錄 2.4.4 運(yùn)行腳本 2.4.5 腳本中的標(biāo)點 2.4.6 腳本調(diào)試 2.5 工程實例——航天器發(fā)射 2.6 本章小結(jié) 2.7 特殊字符、保留字和函數(shù) 2.8 自測題 第3章 數(shù)組 3.1 概念:使用內(nèi)置函數(shù) 3.2 概念:數(shù)據(jù)集合 3.2.1 數(shù)據(jù)抽象 3.2.2 同類集合 3.3 MATLAB向量 3.3.1 創(chuàng)建向量 3.3.2 向量尺寸 3.3.3 向量索引 3.3.4 縮短向量 3.3.5 向量操作 3.4 工程實例——力與力矩 3.5 MATLAB數(shù)組 3.5.1 數(shù)組的性質(zhì) 3.5.2 創(chuàng)建數(shù)組 3.5.3 獲取數(shù)組中的元素 3.5.4 從數(shù)組中移除元素 3.5.5 數(shù)組操作 3.6 工程實例——計算土壤體積 3.7 本章小結(jié) 3.8 特殊字符、保留字和函數(shù) 3.9 自測題 第4章 流程控制 4.1 概念:代碼塊 4.2 常用的條件執(zhí)行模塊 4.3 if語句 4.3.1 通用模板 4.3.2 在MATLAB中的實現(xiàn) 4.3.3 重要思想 4.4 switch語句 4.4.1 通用模板 4.4.2 在MATLAB中的實現(xiàn) 4.5 循環(huán)概述 4.6 for循環(huán) 4.6.1 for循環(huán)的通用模板 4.6.2 在MATLAB中的實現(xiàn) 4.6.3 索引的實現(xiàn) 4.6.4 跳出for循環(huán) 4.7 while循環(huán) 4.7.1 while循環(huán)的通用模板 4.7.2 while循環(huán)在MATLAB中的實現(xiàn) 4.7.3 Loop-and-a-Half在MATLAB中的實現(xiàn) 4.7.4 跳出while循環(huán) 4.8 工程實例——液面的計算 4.9 本章小結(jié) 4.10 特殊字符、保留字和函數(shù) 4.11 自測題 第5章 函數(shù) 5.1 概念:抽象與封裝 5.2 函數(shù)的黑箱觀點 5.3 在MATLAB中的實現(xiàn) 5.3.1 通用模板 5.3.2 函數(shù)定義 5.3.3 保存并使用MATLAB函數(shù) 5.3.4 調(diào)用函數(shù) 5.3.5 返回多個結(jié)果 5.3.6 輔助(局部)函數(shù) 5.3.7 MATLAB函數(shù)中的封裝 5.3.8 全局變量 5.4 工程實例——測量固態(tài)物體 5.5 本章小結(jié) 5.6 特殊字符、保留字和函數(shù) 5.7 自測題 第6章 字符串 6.1 字符串的概念:映射和轉(zhuǎn)換 6.2 在MATLAB中的實現(xiàn) 6.2.1 串的切片和連接 6.2.2 算術(shù)運(yùn)算和邏輯運(yùn)算 6.2.3 一些有用的函數(shù) 6.3 格式轉(zhuǎn)換函數(shù) 6.3.1 把數(shù)字轉(zhuǎn)換成字符串 6.3.2 把字符串轉(zhuǎn)換成數(shù)值 6.4 字符串操作 6.4.1 簡單的數(shù)據(jù)輸出:disp()函數(shù) 6.4.2 復(fù)雜輸出 6.4.3 串比較 6.5 串?dāng)?shù)組 6.6 工程實例——加密 6.7 本章小結(jié) 6.8 特殊字符、保留字和函數(shù) 6.9 自測題 第7章 元胞數(shù)組和結(jié)構(gòu) 7.1 概念:異類集合 7.2 元胞數(shù)組 7.2.1 創(chuàng)建元胞數(shù)組 7.2.2 訪問元胞數(shù)組 7.2.3 使用元胞數(shù)組 7.2.4 元胞數(shù)組的操作 7.3 MATLAB中的結(jié)構(gòu) 7.3.1 單個結(jié)構(gòu)的創(chuàng)建和存取 7.3.2 構(gòu)造函數(shù) 7.4 結(jié)構(gòu)數(shù)組 7.4.1 創(chuàng)建結(jié)構(gòu)數(shù)組 7.4.2 訪問結(jié)構(gòu)元素 7.4.3 結(jié)構(gòu)的操作 7.5 工程實例——梁結(jié)構(gòu)的裝配 7.6 本章小結(jié) 7.7 特殊字符、保留字和函數(shù) 7.8 自測題 第8章 文件輸入輸出 8.1 概念:串行輸入輸出(I/O) 8.2 MATLAB工作空間I/O 8.3 高級I/O函數(shù) 8.3.1 考察數(shù)據(jù) 8.3.2 Excel電子數(shù)據(jù)表 8.3.3 含分隔符的文本文件——僅含數(shù)值數(shù)據(jù) 8.4 低級文件I/O 8.4.1 打開與關(guān)閉文件 8.4.2 讀取文本文件 8.4.3 讀取文本文件的例子 8.4.4 寫文本文件 8.5 工程實例——電子表格數(shù)據(jù) 8.6 本章小結(jié) 8.7 特殊字符、保留字和函數(shù) 8.8 自測題 第9章 遞歸 9.1 概念:激活棧 9.1.1 堆棧 9.1.2 激活棧 9.1.3 函數(shù)實例 9.2 遞歸定義 9.3 在MATLAB中實現(xiàn)遞歸函數(shù) 9.4 異常 9.4.1 過去的處理方法 9.4.2 異常的一般實現(xiàn) 9.4.3 在MATLAB中的實現(xiàn) 9.5 包裝函數(shù) 9.6 尾遞歸 9.7 互遞歸 9.8 生成遞歸 9.9 遞歸示例 9.9.1 回文檢測 9.9.2 斐波那契級數(shù) 9.9.3 函數(shù)的零點 9.10 工程實例——機(jī)械手運(yùn)動 9.11 本章小結(jié) 9.12 特殊字符、保留字和函數(shù) 9.13 自測題 第10章 解題原則 10.1 簡單問題的求解 10.2 解題步驟的結(jié)合 10.3 操作概述 10.3.1 基本算術(shù)操作 10.3.2 把元素插入數(shù)據(jù)集合 10.3.3 遍歷數(shù)據(jù)集合 10.3.4 創(chuàng)建數(shù)據(jù)集合 10.3.5 數(shù)據(jù)集合的映射 10.3.6 過濾數(shù)據(jù)集合 10.3.7 匯總數(shù)據(jù)集合 10.3.8 搜索數(shù)據(jù)集合 10.3.9 數(shù)據(jù)集合排序 10.4 大型問題的求解 10.5 工程實例——地理政治學(xué)數(shù)據(jù)處理 10.6 本章小結(jié) 10.7 自測題 第11章 繪圖 11.1 基本繪圖 11.1.1 圖——繪圖容器 11.1.2 增強(qiáng)繪圖效果的簡單函數(shù) 11.1.3 一個圖形中的多幅圖——子圖 11.1.4 手動編輯圖形 11.2 二維繪圖 11.2.1 簡單繪圖 11.2.2 繪圖選項 11.2.3 參數(shù)化繪圖 11.2.4 其他二維繪圖功能 11.3 三維繪圖 11.3.1 線性三維圖 11.3.2 線性參數(shù)化三維曲線圖 11.3.3 其他三維繪圖功能 11.4 曲面繪圖 11.4.1 基本功能 11.4.2 簡單練習(xí) 11.4.3 參數(shù)化三維曲面 11.4.4 旋轉(zhuǎn)體 11.4.5 其他三維曲面繪圖功能 11.4.6 復(fù)合曲面的組合 11.5 工程實例——地理數(shù)據(jù)可視化 11.5.1 分析數(shù)據(jù) 11.5.2 顯示數(shù)據(jù) 11.6 本章小結(jié) 11.7 特殊字符、保留字和函數(shù)——二維 11.8 特殊字符、保留字和函數(shù)——三維 11.9 自測題 第12章 矩陣 12.1 概念:行為抽象 12.2 矩陣操作 12.2.1 矩陣乘法 12.2.2 矩陣除法 12.2.3 矩陣指數(shù)運(yùn)算 12.3 在MATLAB中的實現(xiàn) 12.3.1 矩陣乘法 12.3.2 矩陣除法 12.4 坐標(biāo)旋轉(zhuǎn) 12.4.1 二維旋轉(zhuǎn) 12.4.2 三維旋轉(zhuǎn) 12.5 求解聯(lián)立線性方程組 12.5.1 相交線 12.5.2 曲線擬合 12.6 工程實例 12.6.1 陶瓷合成 12.6.2 電路分析 12.7 本章小結(jié) 12.8 特殊字符、保留字和函數(shù) 12.9 自測題 第13章 圖像 13.1 圖像的性質(zhì) 13.2 圖像類型 13.2.1 真彩圖像 13.2.2 灰度圖像 13.2.3 索引圖像 13.2.4 首選圖像格式 13.3 讀取、顯示與寫入圖像 13.4 圖像操作 13.4.1 縮放圖像 13.4.2 色彩遮蔽 13.4.3 拼圖制作 13.4.4 生成萬花筒圖像 13.4.5 曲面上的圖像 13.5 工程實例——邊緣檢測 13.6 本章小結(jié) 13.7 特殊字符、保留字和函數(shù) 13.8 自測題 第14章 聲音的處理 14.1 聲音的物理性質(zhì) 14.2 錄音和回放 14.3 在MATLAB中的實現(xiàn) 14.4 時域操作 14.4.1 聲音的剪輯和連接 14.4.2 音樂背景知識 14.4.3 改變聲音頻率的粗糙方法 14.4.4 改變聲音頻率的精細(xì)方法 14.5 快速傅立葉變換 14.5.1 背景知識 14.5.2 在MATLAB中的實現(xiàn) 14.5.3 簡單頻譜分析 14.6 頻域操作 14.6.1 分析樂器的聲音 14.6.2 將聲音插入頻譜 14.6.3 頻譜操作 14.7 工程實例——石油鉆塔結(jié)構(gòu)的整體性 14.8 本章小結(jié) 14.9 特殊字符、保留字和函數(shù) 14.10 自測題 第15章 數(shù)值方法 15.1 插值 15.1.1 線性插值 15.1.2 三次樣條插值 15.1.3 外推 15.2 曲線擬合 15.2.1 線性回歸 15.2.2 多項式回歸 15.2.3 實際應(yīng)用 15.3 數(shù)值積分 15.3.1 求解完全積分 15.3.2 連續(xù)積分問題 15.4 數(shù)值微分 15.4.1 差分表達(dá)式 15.4.2 在MATLAB中的實現(xiàn) 15.5 工程實例——分析火箭數(shù)據(jù) 15.6 本章小結(jié) 15.7 特殊字符、保留字和函數(shù) 15.8 自測題 第16章 排序 16.1 算法代價度量 16.1.1 Big O算法的具體例子 16.1.2 復(fù)雜算法分析 16.2 數(shù)據(jù)排序算法 16.2.1 插入排序 16.2.2 冒泡排序 16.2.3 快速排序 16.2.4 原地置換快速排序 16.2.5 歸并排序 16.2.6 桶排序 16.3 性能分析 16.4 排序算法應(yīng)用 16.4.1 使用MATLAB內(nèi)部排序算法 16.4.2 插入排序 16.4.3 冒泡排序 16.4.4 快速排序 16.4.5 歸并排序 16.4.6 桶排序 16.5 工程實例——選擇國家或地方 16.6 本章小結(jié) 16.7 特殊字符、保留字和函數(shù) 16.8 自測題 附錄A MATLAB特殊字符、保留字和函數(shù) 附錄B ASCII字符集 附錄C 數(shù)的內(nèi)部表示
章節(jié)摘錄
插圖:第2章 MATLAB入門2.1 程序設(shè)計語言背景在學(xué)習(xí)有關(guān)計算方而的概念之前,需要先了解一些程序設(shè)計語言的背景。這一節(jié)將對程序設(shè)計語言的以下幾個方面進(jìn)行討論:抽象、算法、程序設(shè)計范式以及程序設(shè)計中的三個基本概念——變量賦值、數(shù)據(jù)類型、類與對象之間的區(qū)別。2.1.1 抽象在本節(jié)中,我們定義“抽象”(abstraction)為“表示某種性質(zhì)而遠(yuǎn)離其特定的實現(xiàn)”。在每天的會話中,我們經(jīng)常不假思索地使用抽象的概念:“為了將攝氏度轉(zhuǎn)換為開爾文,需要將溫度值與273相加。”“他離開辦公室開車回家?!钡谝粋€是數(shù)據(jù)抽象(data abstraction)的例子?!皽囟取笨梢灾笒煸诖皯敉饷娑扔嬌系囊粋€讀數(shù),也可以指8月份溫度記錄表格中的數(shù)據(jù)。細(xì)節(jié)并不重要,這一抽象短語能夠抓住所有您需要知道的東兩。第二個例子實際上更加復(fù)雜一些——它是一個具有多個層次的過程抽象(proceduralabstraction)的例子。對于一個每晚按照同一路線回家的商人而言,對這一抽象的個部理解就是“驅(qū)車回家”。對于一個不熟悉路線而又稱職的司機(jī)而言,對抽象的更深層次的理解是必需的——出了停車場后向右拐,然后左拐上主街道等。對于引導(dǎo)自動通勤午輛的指令而言,會需要令人難以置信的精細(xì)抽象層次。這些抽象中任何想當(dāng)然的事情都必須對無人駕駛車輛給出非常精細(xì)清楚的說明——例如發(fā)動引擎,車輛加速,注意交通,保持在車道內(nèi)行駛,發(fā)現(xiàn)轉(zhuǎn)彎,駕駛車輛,控制車速,觀察并遵守交通標(biāo)志等。2.1.2 算法在第1章中,將求解問題定義為把問題分解為簡單且適合于求解的子問題并將這些子問題的解答匯集在一起的能力。每一個子問題的解決方案可以表示為一個算法(algorithm),它是解決某一問題的一系列指令。在更高的抽象層次上,也可以解決每一個子問題以及將把這些子問題的解決方案匯集在一起而形成整個問題解決方案的過程表示為一個算法。描述一個算法所需要的抽象層次會隨實際情況的不同而有較大變化。例如,描述烘焙小甜餅的算法(制法)可以采取以下形式:·對于在過去50年里一直烘焙小甜餅的祖母來說,僅僅是“烘焙一些甜餅”而已。
編輯推薦
《國外經(jīng)典教材·計算機(jī)科學(xué)與技術(shù)·Matlab工程計算》非常適合作為工程式計算機(jī)專業(yè)學(xué)生系統(tǒng)學(xué)習(xí)的教材同時也可發(fā)作為廣大科技工作撐握MALAB計算工具的自學(xué)用書。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載