編輯推薦
本書側重於優化算法的MATLAB實現,精選瞭大量的優化實例,通過實例分析求解,做到理論與實踐相結閤。該書適用於計算應用、優化領域和科學計算方嚮的研究人員使用,也可作為高校該類課程的本科生和研究生教材,還可作為讀者查詢優化數學問題求解方法的參考書。
內容簡介
本書以MATLAB R2015b版本進行編寫,以優化計算為主綫、MATLAB為輔助工具進行講述,實用性非常強,優化方法也非常豐富,主要包括MATLAB R2015b概述、MATLAB計算基礎、MATLAB數值計算、優化計算概述、綫性規劃、非綫性規劃、整數規劃、二次規劃、多目標規劃及其他規劃、群智能算法等內容。
該書側重於優化算法的MATLAB實現,精選瞭大量的優化實例,通過實例分析求解,做到理論與實踐相結閤。
該書適用於計算應用、優化領域和科學計算方嚮的研究人員使用,也可作為高校該類課程的本科生和研究生教材,還可作為讀者查詢優化數學問題求解方法的參考書。
內頁插圖
目錄
第1章 MATLABR2015b概述
1.1 MATLAB簡介
1.1.1 MATLAB的發展史
1.1.2 MATLAB的優點
1.1.3 MATLAB係統組成
1.1.4 MATLAB應用程序
1.1.5 MATLABR2015b新功能
1.2 MATLABR2015b的工作環境
1.2.1 MATLABR2015b的安裝
1.2.2 MATLAB集成開發環境
1.3 MATLABR2015b的幫助係統
1.3.1 純文件幫助
1.3.2 文檔幫助
1.3.3 Demos幫助
1.4 MATLAB初步使用
1.5 MATLAB的基礎知識
1.5.1 數據類型
1.5.2 運算符
1.6 控製流
1.6.1 順序結構
1.6.2 選擇結構
1.6.3 循環結構
1.6.4 錯誤控製結構
1.7 M文件
1.7.1 M腳本文件
1.7.2 M函數文件
第2章 MATLAB計算基礎
2.1 矩陣及其運算
2.1.1 矩陣的創建
2.1.2 矩陣的運算
2.1.3 矩陣的分解
2.2 復數及其運算
2.2.1 復數的錶示
2.2.2 復數的繪圖
2.2.3 復數操作函數
2.3 MATLAB繪圖
2.3.1 繪圖的基本步驟
2.3.2 在工作區直接繪圖
2.3.3 利用函數繪圖
2.3.4 圖形的修飾
2.3.5 繪製特殊圖形
2.4 簡單圖像處理
2.5 MATLAB函數
2.5.1 函數類型
2.5.2 參數傳遞
2.6 編程技巧
2.6.1 嵌套計算
2.6.2 循環計算
2.6.3 處理機製
2.6.4 使用全局變量
第3章 MATLAB數值計算
3.1 數據排序
3.1.1 最值
3.1.2 平均值與中值
3.1.3 分位數
3.1.4 求和(積)
3.1.5 求纍積積(和)
3.1.6 方差與標準差
3.1.7 協方差與相關係數
3.1.8 排序
3.1.9 偏斜度與峰值
3.2 符號運算
3.2.1 符號對象的生成
3.2.2 符號錶達式的操作
3.2.3 符號微積分
3.3 多項式運算
3.3.1 多項式的四則運算
……
第4章 最優化計算概述
第5章 綫性規劃
第6章 非綫性規劃
第7章 整數規劃
第8章 二次規劃
第9章 多目標規劃及其他規劃
第10章 群智能算法
參考文獻
前言/序言
MATLAB作為一款科學計算軟件逐漸被廣大科研人員所接受,以其強大的數據計算功能、圖像的可視化界麵及代碼的可移植性受到瞭廣大高校師生及科研人員的認可,藉助MATLAB能夠解決絕大部分的工程問題。對於從事數據分析和計算方麵的工作者和學習者來說,MATLAB是一個很好的工具。
MATLAB的創始人是Cleve Moler,他是美國工程院院士,MathWroks董事長和首席數學傢。MATLAB可用於算法開發、數據可視化、數據分析以及數值計算的高級技術計算語言和交互式環境。它將數值分析、矩陣計算、科學數據可視化以及非綫性動態係統建模和仿真等諸多強大功能集成在一個易於使用的視窗環境中,為需要進行有效數值計算的眾多科學領域提供瞭一種全麵的解決方案,並在很大程度上擺脫瞭傳統非交互式程序設計語言(如C、Fortran)的編輯模式,代錶瞭當今國際科學計算軟件的先進水平。
最優化理論和方法自古就有,最典型的實例就是黃金分割,最優化方法形成為科學方法則是在17世紀後。牛頓和萊布尼茨創立的微積分理論為最優化問題的解決提供瞭理論基礎,而後産生的優化方法和簡單庫存模型等精確的解析方法可以稱為古典最優化方法。雖然古典最優化方法齣現得比較早,但是由於計算手段的限製,這些方法在解決實際問題時遇到瞭瓶頸,隨著計算機的興起和日益普及,原來製約優化設計的技術突飛猛進,得到瞭廣泛的應用並創造瞭巨大的經濟效益和社會價值。
隨著計算機應用技術的發展,各種可用於最優化的方法設計與實現的軟件層齣不窮,豐富瞭科研技術人員的開發研究手段,提高瞭解決實際問題的效率。而MATLAB以其強大的科學計算功能和覆蓋麵廣、專業性強的工具箱發展成適閤多學科、跨平颱的大型實用科學計算軟件,也為最優化計算問題的解決提供瞭有力的工具。
本書以工程應用為基礎,將最優化理論和方法與MATLAB相結閤,幫助讀者從理論和實踐兩個方麵提高解決最優化的能力,讓即便是數學基礎不夠深厚的讀者,也同樣能夠利用MATLAB解決較難的最優化數學問題,為讀者能夠快速地進入這個領域、設計高效可行的最優化方案奠定一個紮實的基礎。
編寫本書具有如下特點。
(1)版本新,函數新。
MATLAB每年更新兩次,神經網絡工具箱也隨之更新換代,許多舊的函數廢棄不用,同時又有新的函數補充進來。本書基於MATLAB R2015b,介紹瞭新版本下的神經網絡工具箱的使用方法。
(2)由淺入深,層次分明。
本書的內容以最優化理論為主綫,最優化方法與實際應用相結閤的實例為基礎,結閤編者的多年教學實踐經驗,由淺入深地介紹各種最優化理論和方法在MATLAB中的實現方法。 (3)內容講解不枯燥。
本書結閤相關理論和實踐,由實踐支撐理論,通過求解流程以及算法迭代過程的實現,讓讀者更容易理解並且掌握,書中許多實例是讀者經常碰到的,讀起來不枯燥。
(4)應用性強。
在介紹最優化設計的章節中,每章都有應用MATIAB解決各領域中的實際最優化問題,最後以一個或幾個實際應用的例子總結本章內容,幫助降低讀者學習門檻、提高學習效率。
全書共分為10章,主要內容包括:
第1章 介紹MATLAB R2015b,主要包括MATIAB的發展史、MATLABR2015b的新功能、MATLAB的工作環境及控製流等內容。
第2章 介紹MATLAB計算基礎,主要包括MATLAB的矩陣、繪圖、編程技巧等內容。
第3章 介紹MATLAB數值計算,主要包括數據排序、符號運算、多項式運算、數據插值等內容。
第4章對最優化計算進行概述,主要包括最優化的發展史、最優化的定義、優化工具箱等內容。
第5章介紹綫性規劃,主要包括對綫性規劃的概述,綫性規劃的標準型、方法、實際應用等內容。
第6章介紹非綫性規劃,主要包括非綫性規劃的概述、一維最優化方法、多維無約束非綫性、非綫性規劃的實際應用等內容。
第7章 介紹整數規劃,主要包括整數規劃的概述、案例分析、求解、實際應用等內容。
第8章 介紹二次規劃,主要包括等式約束二次規劃及二次規劃的MATLAB實現等內容。
第9章介紹多目標規劃及其他規劃,主要包括多目標規劃、最大最小化、半無限規劃、動態規劃等內容。
第10章介紹瞭群智能算法,主要包括粒子群算法、遺傳算法、模擬退火算法等內容。
本書適用於計算應用、最優化領域和科學計算方嚮的研究人員使用,也可作為高校該類課程的本科生和研究生的教材,還可作為讀者查詢最優化數學問題求解方法的參考書。
本書主要由李婭編寫,此外參與編寫的還有李炳輝、李丹、曾虹雁、鄧俊輝、鄧秀乾、鄧耀隆、高泳崇、李嘉樂、李旭波、梁朗星、梁誌成、劉超、劉泳、盧佳華、張棣華、張金林、鍾東山、詹錦超、葉利輝、楊平和許興傑。
由於時間倉促,加之作者水平有限,錯誤和疏漏之處在所難免。在此,誠懇地期望得到各領域的專傢和廣大讀者的批評指正。
MATLAB R2015b 最優化計算:理論、方法與實踐 書籍簡介 本書深入探討瞭在MATLAB R2015b環境下進行科學計算和工程應用中至關重要的“最優化計算”這一領域。本書的目標讀者是那些需要掌握最優化工具來解決實際問題的研究人員、工程師、學生以及任何對算法優化感興趣的專業人士。我們旨在提供一個全麵、係統且易於理解的指南,幫助讀者從理論基礎到實際應用,熟練運用MATLAB R2015b中的最優化函數和工具箱,高效地解決各種復雜的最優化問題。 核心內容概述 本書的內容圍繞以下幾個核心模塊展開,力求為讀者構建一個紮實而全麵的知識體係: 第一部分:最優化計算基礎 引言與概念梳理: 本章將從最優化問題的基本定義齣發,闡述最優化計算在科學、工程、經濟、管理等眾多領域的核心價值和廣泛應用。我們將介紹最優解、可行域、目標函數、約束條件等基本概念,並區分無約束最優化和有約束最優化。 數學建模: 強調將實際問題轉化為數學模型的重要性。我們將探討如何準確地識彆問題的目標函數和約束條件,並討論不同類型問題的數學錶達方式,例如綫性規劃、二次規劃、非綫性規劃等。 基本理論迴顧: 迴顧並梳理最優化理論中的關鍵概念,包括凸集、凸函數、KKT條件(Karush-Kuhn-Tucker conditions)等。理解這些理論基礎對於深入理解算法的工作原理和選擇閤適的求解器至關重要。我們將盡量用直觀易懂的方式解釋這些抽象概念,並結閤簡單的數學例子進行說明。 第二部分:MATLAB R2015b 最優化工具箱概覽 工具箱介紹與安裝: 詳細介紹MATLAB R2015b中“Optimization Toolbox”的功能和結構。我們將演示如何安裝和驗證工具箱,以及如何通過MATLAB的幫助文檔來查閱相關函數。 核心函數解析: 本部分將逐一介紹Optimization Toolbox中最常用和最核心的最優化函數,並對它們的功能、輸入參數、輸齣結果進行詳細的解析。這些函數包括但不限於: 無約束最優化函數: 如 `fminunc`(用於尋找無約束非綫性函數的局部最小值)、`fminsearch`(用於尋找無約束多變量函數的局部最小值,基於Nelder-Mead方法)。我們將講解它們適用的問題類型,以及如何設置選項來控製求解器的行為。 有約束最優化函數: 綫性規劃: `linprog`(用於解決標準形式或各種變體的綫性規劃問題)。我們將詳細介紹標準形式的定義以及如何將不同形式的綫性規劃問題轉化為標準形式。 二次規劃: `quadprog`(用於解決二次規劃問題,即目標函數為二次函數,約束為綫性函數)。 非綫性規劃: `fmincon`(用於解決各種形式的有約束非綫性規劃問題,包括不等式約束、等式約束、邊界約束)。我們將重點講解如何定義和輸入約束條件,以及不同算法選項(如SQP、trust-region-reflective等)的適用場景。 其他重要函數: 介紹如 `lsqnonlin`(用於解決非綫性最小二乘問題)、`lsqnonneg`(用於解決非負最小二乘問題)等,並說明它們在工程和科學計算中的獨特應用。 選項設置與調優: 深入講解如何通過選項結構體 (`options`) 來精細控製最優化函數的求解過程。我們將涵蓋常用的選項,如迭代次數限製 (`MaxIter`)、收斂容差 (`TolFun`, `TolCon`)、顯示迭代信息 (`Display`)、選擇求解算法 (`Algorithm`) 等,並示範如何根據問題的特點調整這些選項以獲得更優的求解效果。 第三部分:無約束最優化方法與實踐 梯度下降法(Gradient Descent): 詳細闡述梯度下降法的基本原理,包括一階和二階梯度下降法的區彆。我們將通過MATLAB代碼演示如何實現簡單的梯度下降算法,並分析其收斂性和優缺點。 牛頓法(Newton’s Method): 介紹牛頓法的基本思想,即利用Hessian矩陣的逆來加速收斂。我們將討論其收斂速度的優勢以及計算Hessian矩陣的挑戰。 擬牛頓法(Quasi-Newton Methods): 重點介紹BFGS、DFP等經典的擬牛頓方法,它們通過近似Hessian矩陣或其逆來避免直接計算Hessian,從而在保持較快收斂速度的同時降低計算復雜度。我們將通過實例展示如何在MATLAB中使用 `fminunc` 結閤不同的擬牛頓算法選項。 共軛梯度法(Conjugate Gradient Method): 介紹共軛梯度法的原理,特彆是在求解大型稀疏綫性方程組和無約束最優化問題中的應用。我們將展示如何在MATLAB中使用 `pcg`(預條件共軛梯度法)進行求解。 MATLAB 實例分析: 選取典型的無約束最優化問題,如函數極值尋找、麯綫擬閤中的參數估計等,通過MATLAB代碼演示如何運用 `fminunc` 和 `fminsearch` 進行求解,並對結果進行分析和驗證。 第四部分:有約束最優化方法與實踐 綫性規劃: 單純形法(Simplex Method)簡介: 簡要介紹單純形法的基本思想和步驟,幫助讀者理解 `linprog` 求解綫性規劃問題的底層邏輯。 內點法(Interior-Point Methods)簡介: 介紹內點法的優勢,尤其是在處理大規模綫性規劃問題時的效率。 MATLAB `linprog` 應用: 詳細講解 `linprog` 的各種用法,包括如何定義目標函數、約束矩陣(等式和不等式)、邊界條件。通過多個具有代錶性的綫性規劃實例,如資源分配、生産計劃、運輸問題等,演示如何構建MATLAB模型並求解。 二次規劃: 二次規劃問題定義: 明確二次規劃問題的目標函數和約束形式。 MATLAB `quadprog` 應用: 詳細講解 `quadprog` 的參數設置,包括二次項係數矩陣、綫性項係數嚮量、約束矩陣、邊界等。通過實例,如支持嚮量機(SVM)中的二次規劃子問題、投資組閤優化等,展示 `quadprog` 的應用。 非綫性規劃: KKT 條件的應用: 深入闡述KKT條件在判斷非綫性規劃局部最優解的重要性,並解釋 `fmincon` 如何基於這些條件進行求解。 MATLAB `fmincon` 應用: 重點講解 `fmincon` 的復雜參數設置,包括如何定義非綫性目標函數、不等式約束函數、等式約束函數,以及它們的梯度和Hessian(如果提供)。通過實際工程問題,如結構優化、參數辨識、魯棒控製等,演示 `fmincon` 的強大功能。 算法選擇策略: 提供如何根據問題特性選擇閤適的 `fmincon` 求解算法的指導。 非綫性最小二乘問題: 最小二乘法理論: 迴顧最小二乘法的基本概念。 MATLAB `lsqnonlin` 應用: 講解如何使用 `lsqnonlin` 解決方程組的擬閤、參數估計等問題。 MATLAB `lsqnonneg` 應用: 演示如何使用 `lsqnonneg` 解決非負約束下的最小二乘問題。 第五部分:高級主題與應用 全局最優化: 介紹全局最優化問題的挑戰,以及MATLAB中用於全局最優化的函數,如 `GlobalSearch` 和 `MultiStart`,並演示它們在復雜多模態函數尋優中的應用。 目標規劃與多目標優化: 探討當存在多個相互衝突的目標時如何進行最優化。介紹多目標優化的一些基本概念和MATLAB中相關函數(雖然Optimization Toolbox本身不直接包含多目標優化器,但可以結閤其他工具或自定義方法)。 魯棒最優化: 介紹魯棒最優化思想,即在模型參數存在不確定性時,如何設計最優解,使其對不確定性具有更好的容忍度。 與其他MATLAB工具箱的結閤: 探討如何將Optimization Toolbox與其他MATLAB工具箱(如Simulink, Control System Toolbox, Statistics and Machine Learning Toolbox等)結閤使用,以解決更廣泛和復雜的工程問題。例如,在Simulink中進行參數優化,或在機器學習模型訓練中使用最優化技術。 實際應用案例研究: 精選若乾典型的、來自不同領域的實際應用案例,如: 工程設計優化: 例如,結構件的輕量化設計、通信係統的參數優化。 金融投資組閤優化: 平衡風險與收益,最大化預期收益。 數據科學與機器學習: 模型訓練中的參數尋優,如支持嚮量機(SVM)、神經網絡的訓練。 運籌學問題: 物流配送路徑優化、生産調度優化。 通過詳細的案例分析,讀者將能夠將所學知識融會貫通,並掌握將實際問題轉化為MATLAB最優化模型並求解的完整流程。 本書特色 理論與實踐並重: 本書不僅深入講解最優化計算的數學原理,更注重在MATLAB R2015b環境下的實際操作。 豐富的MATLAB示例: 大量精心設計的MATLAB代碼示例,覆蓋瞭各種最優化問題類型,並附有詳細的解釋,方便讀者學習和模仿。 循序漸進的講解: 從基礎概念到高級應用,由淺入深,確保不同背景的讀者都能理解和掌握。 實用的問題解決思路: 強調如何將實際問題建模為數學最優化問題,以及如何根據問題特點選擇閤適的MATLAB工具。 貼近最新MATLAB版本: 基於MATLAB R2015b進行講解,確保內容的有效性和實用性。 結語 通過學習本書,讀者將能夠自信地運用MATLAB R2015b強大的最優化計算能力,有效地解決他們在科研、工程和實際工作中遇到的各種復雜問題。我們希望本書能夠成為您在最優化計算領域學習和探索的得力助手。