産品特色
編輯推薦
(1) 資深作者編著,圖書質量更有保證:一綫資深工程師執筆,係統歸納和總結瞭智能算法的實戰經驗。
(2) 配套源碼及課件,便於讀者動手實踐:理論必須聯係實踐,本書提供源代碼及教學課件,方便教師及讀者學習使用。
(3) 內含豐富實例,利於讀者二次開發:書中提供瞭十幾個優化算法的典型實例,讀者可以據此二次開發。
配套學習資源下載地址為清華大學齣版社網站本書頁麵。係列暢銷圖書如下:
MATLAB 編程指南——計算、編程、仿真、算法及應用
MATLAB/Simulink係統仿真
MATLAB GUI程序設計
MATLAB智能算法
MATLAB數學建模
MATLAB優化算法
MATLAB信號處理
MATLAB圖像處理
MATLAB優化算法
內容簡介
MATLAB是適閤多學科、多工作平颱、開放性很強的大型科學應用軟件。本書以MATLAB R2016a軟件為基礎,全麵闡述MATLAB的功能及編程方法,幫助讀者盡快掌握MATLAB的應用技巧。
全書共分為22章,從MATLAB簡介開始,詳細介紹瞭數組、矩陣、符號運算、MATLAB繪圖、數據分析、微積分方程、MATLAB優化、函數、程序設計、圖形用戶界麵、Simulink仿真係統及其建模應用、工具箱等內容。此外,本書還詳細介紹瞭神經網絡、信號處理和圖形處理等工具箱的應用; 附錄中給齣瞭MATLAB基本命令和Simulink基本模塊的介紹,便於讀者使用和研究。為瞭使用戶能夠更好地操作MATLAB,本書中示例的命令已記錄在M文件及其他相關文件中,讀者可以將相關的目錄設置為工作目錄,直接使用M文件進行操作,以便快速掌握MATLAB的使用方法。
本書是一本全麵的MATLAB綜閤性參考圖書。本書深入淺齣,實例豐富,內容翔實,既可以作為高等院校理工科的本科生、研究生的教材,也可作為廣大科研工程技術人員的參考用書。
作者簡介
付文利 畢業於哈爾濱工業大學信息技術專業,研究生學曆。現就職於烽火通信集團,擔任係統工程師。精通MATLAB科學計算、Simulink係統仿真、Visual C++ 程序設計等,在國內外期刊發錶論文多篇。在工作實踐中長期使用MATLAB /Simulink,對其編程與應用有深刻的理解。
目錄
目錄
第一部分MATLAB基礎知識
第1章MATLAB概述
1.1MATLAB簡介
1.2MATLAB的特點及應用領域
1.3MATLAB R2016a的工作環境
1.3.1操作界麵
1.3.2命令行窗口
1.3.3命令曆史記錄窗口
1.3.4輸入變量
1.3.5當前文件夾窗口和路徑管理
1.3.6搜索路徑
1.3.7工作區窗口和數組編輯器
1.3.8變量的編輯命令
1.3.9存取數據文件
1.4MATLAB R2016a的幫助係統
1.4.1純文本幫助
1.4.2演示幫助
1.4.3幫助導航
1.4.4幫助文件窗口
1.4.5幫助文件索引窗
本章小結
第2章MATLAB基礎
2.1基本概念
2.1.1MATLAB數據類型概述
2.1.2整數類型
2.1.3浮點數類型
2.1.4復數
2.1.5無窮量(Inf)和非數值量(NaN)
2.1.6數值類型的顯示格式
2.1.7確定數值類型的函數
2.1.8常量與變量
2.1.9標量、嚮量、矩陣與數組
2.1.10字符串
2.1.11運算符
2.1.12命令、函數、錶達式和語句
2.2嚮量運算
2.2.1嚮量的生成
2.2.2嚮量的加減和數乘運算
2.2.3嚮量的點、叉積運算
2.3矩陣運算
2.3.1矩陣元素的存儲次序
2.3.2矩陣元素的錶示及相關操作
2.3.3矩陣的創建
2.3.4矩陣的代數運算
2.4字符串運算
2.4.1字符串變量與一維字符數組
2.4.2對字符串的多項操作
2.4.3二維字符數組
本章小結
第3章數組
3.1MATLAB中的數組
3.2數組的創建
3.2.1創建空數組
3.2.2創建一維數組
3.2.3創建二維數組
3.2.4創建三維數組
3.2.5創建低維標準數組
3.2.6創建高維標準數組
3.3數組的屬性
3.3.1數組結構
3.3.2數組大小
3.3.3數組維度
3.3.4數組數據類型
3.3.5數組內存的占用
3.4創建特殊數組
3.4.10��1數組
3.4.2對角數組
3.4.3隨機數組
3.4.4魔方數組
3.5數組操作
3.5.1數組的保存和裝載
3.5.2數組索引和尋址
3.5.3數組的擴展和裁剪
3.5.4數組形狀的改變
3.5.5數組運算
3.5.6數組的查找
3.5.7數組的排序
3.5.8高維數組的降維操作
3.6多維數組及其操作
3.6.1多維數組的屬性
3.6.2多維數組的操作
3.7關係運算和邏輯運算
3.7.1關係運算
3.7.2邏輯運算
3.7.3常用函數
本章小結
第4章矩陣
4.1矩陣的基本特徵參數
4.1.1矩陣的基本參數
4.1.2條件數、矩陣的穩定性
4.1.3特徵值和特徵嚮量的基本概念
4.2矩陣的生成
4.2.1實數值矩陣輸入
4.2.2復數矩陣輸入
4.2.3符號矩陣的生成
4.2.4大矩陣的生成
4.3矩陣運算
4.3.1矩陣分析
4.3.2矩陣特徵值和特徵嚮量的計算
4.4矩陣分解
4.4.1Cholesky分解
4.4.2使用Cholesky分解求解方程組
4.4.3不完全Cholesky分解
4.4.4LU分解
4.4.5不完全RU分解
4.4.6QR分解
4.4.7操作QR分解結果
4.4.8奇異值分解
4.5常用的數學函數
4.5.1三角函數
4.5.2指數和對數函數
4.5.3復數函數
4.6稀疏矩陣技術
4.6.1基本稀疏矩陣
4.6.2稀疏矩陣的函數
本章小結
第5章符號運算
5.1符號運算的基本概念
5.1.1符號對象
5.1.2創建符號對象與函數命令
5.1.3符號常量
5.1.4符號變量
5.1.5符號錶達式、符號函數與符號方程
5.1.6函數命令findsym()
5.1.7數組、矩陣與符號矩陣
5.2符號運算的基本內容
5.2.1符號變量代換及其函數subs()
5.2.2符號對象轉換為數值對象的函數
5.2.3符號錶達式的化簡
5.2.4符號運算的其他函數
5.2.5兩種特定的符號運算函數
5.3符號微積分運算及應用
5.3.1MATLAB符號極限運算
5.3.2符號函數微分運算
5.3.3符號函數積分運算
5.3.4符號捲積
5.3.5符號積分的變換
5.4符號矩陣及其運算
5.4.1符號矩陣的建立與訪問
5.4.2符號矩陣的基本運算
5.4.3符號矩陣的化簡
5.4.4符號矩陣的微分與積分
5.4.5符號矩陣的Laplace變化
5.5MATLAB符號方程求解
5.5.1符號代數方程求解
5.5.2符號微分方程求解
5.6符號函數圖形計算器
5.6.1符號函數圖形計算器的界麵
5.6.2符號函數圖形計算器的輸入框操作
5.6.3符號函數圖形計算器的按鈕操作
本章小結
第二部分MATLAB數據處理
第6章MATLAB二維繪圖
6.1數據圖像繪製簡介
6.1.1離散數據可視化
6.1.2連續函數可視化
6.2二維圖形的基本繪圖命令
6.2.1二維圖形繪製步驟
6.2.2二維圖形基本繪圖命令plot
6.2.3快速方程式畫圖(fplot,ezplot)
6.3二維圖形的修飾
6.3.1色彩、綫型和點型
6.3.2坐標軸的調整
6.3.3刻度和分格綫
6.3.4設置坐標框
6.3.5圖形標識
6.3.6圖案填充
6.4子圖繪製法
6.5特殊圖形的繪製
6.5.1特殊坐標圖形的繪製
6.5.2特殊二維圖形的繪製
6.6二維繪圖的實際應用
本章小結
第7章MATLAB三維繪圖
7.1三維繪圖基礎
7.1.1三維繪圖基本步驟
7.1.2三維繪圖基本命令
7.1.3三維坐標標記及圖形標記
7.2三維網格麯麵
7.2.1繪製三維麯麵
7.2.2柵格數據的生成
7.2.3網格麯麵的繪製命令
7.2.4隱藏綫的顯示和關閉
7.3三維陰影麯麵的繪製
7.3.1帶有等高綫的陰影麯麵繪製
7.3.2具有光照效果的陰影麯麵繪製
7.4三維圖形的控製
7.4.1設置視角位置
7.4.2設置坐標軸
7.5三維圖形特殊處理
7.5.1透視、裁剪和鏤空
7.5.2色彩控製
7.5.3照明和材質處理
7.5.4簡潔繪圖指令
7.6特殊三維圖形
7.6.1螺鏇綫
7.6.2拋物麵
7.6.3柱狀圖
7.6.4柱體
7.6.5餅狀圖
7.6.6雙麯麵
7.6.7三維等高綫
7.6.8三維離散序列圖
7.6.9其他圖形
7.7三維繪圖的實際應用
本章小結
第8章數據分析
8.1插值
8.1.1一維插值命令及實例
8.1.2二維插值命令及實例
8.1.3樣條插值
8.2麯綫擬閤
8.2.1多項式擬閤
8.2.2加權最小方差(WLS)擬閤原理及實例
8.3麯綫擬閤圖形界麵
8.3.1麯綫擬閤
8.3.2繪製擬閤殘差圖形
8.3.3進行數據預測
8.4傅裏葉分析
8.4.1離散傅裏葉變換
8.4.2FFT和DFT
8.5圖像數據分析處理
本章小結
第9章微積分方程
9.1微分方程的基礎及其應用
9.1.1微分方程的概念
9.1.2常微分方程的解
9.1.3微分方程的數值解法
9.1.4偏微分方程的數值解
9.2積分方程的基礎及其應用
9.2.1積分的有關理論
9.2.2數值積分的MATLAB應用
9.2.3高斯積分的MATLAB應用
9.2.4反常積分的MATLAB應用
9.2.5重積分的MATLAB應用
9.3多種求積算法的分析比較
9.3.1牛頓�部拼那蠡�公式及其MATLAB實現
9.3.2復化求積公式及其MATLAB實現
9.3.3龍貝格求積公式及其MATLAB實現
9.3.4高斯�怖杖玫慮蠡�公式及其MATLAB實現
9.3.5各種求積公式的分析比較
9.4MATLAB求方程極值解
9.4.1一元函數的極限
9.4.2多元函數的極值
本章小結
第10章MATLAB優化
10.1常見優化問題
10.1.1無約束非綫性優化
10.1.2有約束規劃
10.1.3目標規劃
10.1.4最大最小化問題
10.1.5綫性規劃
10.1.6二次規劃
10.1.7多目標規劃
10.1.8非綫性方程的優化解
10.2最小二乘最優問題
10.2.1約束綫性最小二乘
10.2.2非綫性數據(麯綫)擬閤
10.2.3非負綫性最小二乘
10.3代數方程的求解
本章小結
第11章概率和數理統計
11.1隨機數的産生
11.1.1二項分布隨機數
11.1.2泊鬆分布隨機數
11.1.3均勻分布隨機數
11.1.4正態分布隨機數
11.1.5其他常見分布隨機數
11.2概率密度函數
11.2.1常見分布的密度函數作圖
11.2.2通用函數計算概率密度函數值
11.2.3專用函數計算概率密度函數值
11.3隨機變量的數字特徵
11.3.1平均值、中值
11.3.2數學期望
11.3.3協方差及相關係數
11.3.4矩和協方差矩陣
11.3.5數據比較
11.3.6方差
11.3.7常見分布的期望和方差
11.4參數估計
11.4.1常見分布的參數估計
11.4.2點估計
11.4.3區間估計
11.5假設檢驗
11.5.1方差已知時的均值假設檢驗
11.5.2正態總體均值假設檢驗
11.5.3分布擬閤假設檢驗
11.6方差分析
11.6.1單因子方差分析
11.6.2雙因子方差分析
11.7統計圖錶的繪製
本章小結
第12章函數
12.1M文件
12.1.1M文件概述
12.1.2變量
12.1.3腳本文件
12.1.4函數文件
12.1.5函數調用
12.2函數類型
12.2.1匿名函數
12.2.2M文件主函數
12.2.3嵌套函數
12.2.4子函數
12.2.5私有函數
12.2.6重載函數
12.3參數傳遞
12.3.1MATLAB參數傳遞概述
12.3.2輸入和輸齣參數的數目
12.3.3可變數目的參數傳遞
12.3.4返迴被修改的輸入參數
12.3.5全局變量
精彩書摘
在MATLAB內部,任何數據類型都是按照數組的形式進行存儲和運算的。這裏說的數組是廣義的,它可以隻是一個元素,也可以是一行或一列元素,還可能就是最普通的二維數組,或者高維空間的多維數組; 其元素也可以是任意數據類型,如數值型、邏輯型、字符串型等。
MATLAB中把超過二維的數組稱為多維數組,多維數組實際上是一般的二維數組的擴展。本章主要介紹包括多維數組在內的一些數組概念、操作和運算。
學習目標:
■理解一維、二維及多維數組的基本概念及其各種運算和操作;
■掌握一維、二維及多維數組的各種運算和操作。
3.1MATLAB中的數組
MATLAB中的數組無處不在,任何變量在MATLAB中都是以數組形式存儲和運算的。按照數組元素個數和排列方式,MATLAB中的數組可以分為:
■沒有元素的空數組(empty array);
■隻有一個元素的標量(scalar),它實際上是一行一列的數組;
■隻有一行或者一列元素的嚮量(vector),分彆叫作行嚮量和列嚮量,也統稱為一維數組;
■普通的具有多行多列元素和二維數組;
■超過二維的多維數組(具有行、列、頁等多個維度)。
按照數組的存儲方式,MATLAB中的數組可以分為: 普通數組和稀疏數組(常稱為稀疏矩陣)。稀疏矩陣適用於那些大部分元素為0,隻有少部分非零元素的數組的存儲。主要是為瞭提高數據存儲和運算的效率。
3.2數組的創建
MATLAB中一般使用方括號([])、逗號(,)或空格、分號(;)來創建數組,方括號中給齣數組的所有元素,同一行中的元素間用逗號或空格分隔,不同行之間用分號分隔。
3.2.1創建空數組
空數組是MATLAB中的特殊數組,它不含有任何元素。空數組可以用數組聲明、數組清空,以及各種特殊的運算場閤(如特殊的邏輯運算)。
創建空數組很簡單,隻需要把變量賦值為空的方括號即可。
【例3��1】創建空數組A。
解: 在命令行窗口輸入:
前言/序言
前言
作為數值計算、符號運算和模型仿真等多種功能的實現工具,MATLAB這一強大的科學計算軟件越來越受到業界的廣泛認可,它已成為信號處理、通信原理、自動控製等專業基礎課程的首選實驗平颱。
目前,許多高校開設瞭MATLAB相關課程,廣大師生迫切需要一本有效學習MATLAB課程的優秀教材; 大量的MATLAB研究工作者也需要一本書籍作為各類MATLAB培訓和MATLAB相關應用開發的參考書。
本書基於MATLAB R2016a,詳細講解瞭MATLAB的基礎知識和核心內容。全書力求從實用的角度齣發,通過大量經典案例,對MATLAB 的功能、操作和相關應用做瞭詳細介紹,使讀者快速掌握MATLAB的各種應用。
1. 本書特點
(1) 由淺入深,循序漸進: 本書以初、中級讀者為對象,首先從MATLAB基本知識講起,再以各種MATLAB應用案例幫助讀者盡快掌握MATLAB的應用技能。
(2) 步驟詳盡、內容新穎: 本書結閤作者多年的MATLAB使用經驗與實際工程應用案例,將MATLAB的各種經典功能、使用技巧詳細地講解給讀者。本書在講解過程中步驟詳盡、內容新穎,講解過程輔以相應的圖片,使讀者在閱讀時一目瞭然,從而快速把握書中所講內容。
(3) 實例典型,輕鬆易學: 通過學習經典應用案例的具體操作是掌握MATLAB使用方法最好的方式。本書通過綜閤應用案例,透徹、詳盡地講解瞭MATLAB的各種應用。
2. 本書內容
本書麵嚮初、中級讀者,在介紹MATLAB 編程環境基礎上,詳細講解瞭MATLAB計算、仿真及應用的基礎知識和核心內容。書中各章均提供瞭大量的針對性案例,並輔以插圖和注釋,供讀者實戰練習,快速掌握數學建模的MATLAB應用。
全書共22章,可分為四部分。
第一部分為MATLAB基礎知識,主要介紹MATLAB特點、嚮量運算、矩陣和字符串運算、數組的操作、數值運算、MATLAB符號方程求解等內容。具體的章節安排如下:
第1章MATLAB概述;
第2章MATLAB基礎;
第3章數組;
第4章矩陣;
第5章符號運算。
第二部分為MATLAB數據處理,主要介紹二維繪圖、三維繪圖、麯綫擬閤、多種求積算法、最小二乘最優問題、隨機數、統計圖錶的繪製、M文件、參數傳遞等內容。具體的章節安排如下:
第6章MATLAB二維繪圖;
第7章MATLAB三維繪圖;
第8章數據分析;
第9章微積分方程;
第10章MATLAB優化;
第11章概率和數理統計;
第12章函數。
第三部分為MATLAB程序和GUI設計,主要介紹程序結構和控製語句、免疫算法、小波分析算法、GUI對象的創建、人工神經網絡的基本原理、三種常見的專業神經網絡GUI設計等內容。具體的章節安排如下:
第13章MATLAB程序設計;
第14章經典智能算法的MATLAB實現;
第15章圖形用戶界麵;
第16章神經網絡GUI設計。
第四部分為Simulink應用和MATLAB工具箱,主要介紹Simulink係統仿真、子係統操作方法、模型調試、神經網絡工具箱、隨機信號處理、圖像處理工具箱在圖像分割中的應用等內容。具體的章節安排如下:
第17章Simulink基礎;
第18章Simulink子係統;
第19章Simulink仿真與調試;
第20章神經網絡工具箱;
第21章信號處理工具箱;
第22章圖像處理工具箱。
3. 讀者對象
本書適閤於MATLAB初學者和期望提高MATLAB應用能力的讀者,具體的讀者對象如下:
★ MATLAB愛好者;
★ 初學MATLAB的技術人員;
★ 大中專院校的教師和在校生;
★ 相關培訓機構的教師和學員;
★ 參加工作實習的“菜鳥”;
★ 廣大科研工作人員。
4. 讀者服務
為瞭方便解決本書疑難問題,如果讀者在學習過程中遇到與本書有關的技術問題,可以發郵件到郵箱caxart@126.com,或者訪問博客http://blog.sina.com.cn/caxart,編者會盡快給予解答。
另外,本書所涉及的素材文件(程序代碼)已經上傳到清華大學齣版社網站本書頁麵,讀者可以從網上下載。
本書主要由付文利、劉剛編著。此外,王廣、張岩、溫正、林曉陽、任艷芳、唐傢鵬、孫國強、高飛等也參與瞭本書的編寫工作,在此一並錶示感謝。
雖然作者在本書的編寫過程中力求敘述準確、完善,但由於水平有限,書中欠妥之處在所難免,希望讀者能夠及時指齣,共同促進本書質量的提高。
最後再次希望本書能為讀者的學習和工作提供幫助!
編著者
2017年12月