MATLAB 數值分析

周品、何正風 著、溫坤禮 譯

立即出貨 (庫存 < 3)

買這商品的人也買了...

商品描述

<內容簡介>

  20世紀70年代中期,Cleve Moler博士和其同事在美國國家科學基金的資助下開發了調用EISPACKLINPACKFORTRAN副程式庫。EISPACK是特徵值求解的FORTRAN程式庫,LINPACK是解線性方程的程式庫。當時,這兩個程式庫代表矩陣運算的最高水準。

  20世紀70年代後期,身為美國新墨西哥大學(New Mexico)電腦系系主任的Cleve Moler,在給學生講授線性代數課程時,想教學生使用EISPACKLINPACK程式庫,但發現學生用FORTRAN編寫介面程式很費時間,於是他開始自己動手,利用業餘時間為學生編寫EISPACKLINPACK的介面程式。Cleve Moler給這個介面程式取名為MATLAB,該名為矩陣(Matrix)和實驗室(Labotatory)兩個英文單詞的前三個字母的組合。以後的數年, MATLAB在多所大學裏做為教學輔助軟體使用,並做為面向大眾的免費軟體廣為流傳。

  在當今30多個數學類科技應用軟體中,就軟體數學處理的原始內核而言,可分為兩大類。一類是數值計算型軟體,例如MATLABXmathGauss等,這類軟體的優勢是數值計算,處理大批資料效率高;另一類是數學分析型軟體,如MathematicaMaple等,這類軟體以符號計算見長,能給出解析解和任意精確解,缺點是處理大量資料時效率較低。MathWorks公司順應多功能需求之潮流,在其卓越的數值計算和圖示能力的基礎上,又率先從專業水準上開拓了符號計算,文字處理,視覺化建模和即時控制能力,開發出了適合多學科,多部門要求的新一代科技應用軟體MATLAB。經過多年的國際競爭,MATLAB已經佔據了數值軟體市場的主導地位。

  在MATLAB進入市場前,國際上的許多套裝軟體都是直接以FORTRANC語言等編程語言開發的。這些套裝軟體的缺點是使用面窄、介面簡陋、程式結構不開放以及沒有標準的基庫,很難適應各學科的最新發展,因而很難推廣。MATLAB的出現,為各國科學家開發學科軟體提供了新的基礎。在MATLAB問世不久的20世紀80年代中期,原先控制領域裏的一些套裝軟體紛紛被淘汰或在MATLAB上重建。

  時至今日,經過MathWorks公司的不斷完善,MATLAB已經發展成為適合多學科,多種工作平臺的功能強大的大型軟體。在國外,MATLAB已經經歷了多年的考驗。在歐美等高校,MATLAB已經成為“線性代數”、“自動控制理論”、“數理統計”、“數位信號處理”、“時間序列分析”及“動態系統模擬”等課程的基本教學工具;成為攻讀學位的大學生、碩士生及博士生必須掌握的基本技能。在設計研究單位和工業部門,MATLAB被廣泛用於科學研究和解決各種具體問題。在工程界,無論你從事工程方面的哪個學科,都能在MATLAB裏找到適合的功能。

<章節目錄>

前言
1
基礎知識導論1
MATLAB
概述1
1.1
 MATLAB的發展歷程和應用2
1.2
 MATLAB的特點7
1.3
 MATLAB的工具箱8
1.4
 MATLAB的工作環境9
1.4.1
 MATLAB的啟動與退出9
1.4.2
 MATLAB主功能表及功能10
1.4.3
 MATLAB命令窗口15
1.4.4
 MATLAB工作空間17
1.4.5
 MATLAB文件管理18
1.4.6
 MATLAB幫助使用19
2MATLAB
程式設計基礎21
2.1
 變數與常量22
2.2
 資料類型22
2.2.1
 數值型23
2.2.2
 字元與字串24
2.2.3
 元胞陣列28
2.2.4
 構架陣列28
2.3
 關係運算與邏輯運算28
2.4
 文件與程式結構29
2.4.1
 M文件29
2.4.2
 輸入與輸出31
2.5
 MATLAB程式基本語句33
2.5.1
 程式分支控制語句33
2.5.2
 程式迴圈控制語句37
2.5.3
 程式終止控制語句40
2.5.4
 程式異常處理語句41
2.6
 MATLAB函數42
2.6.1
 函數42
2.6.2
 子函數43
2.6.3
 私有函數45
2.6.4
 嵌套函數45
2.7
 MATLAB程式調試46
2.7.1
 調試方法47
2.7.2
 調試工具48
2.8
 基本繪圖方法50
2.8.1
 二維圖形函數與調用方法50
2.8.2
 二維圖形處理57
2.8.3
 三維圖形的基本函數67
2.8.4
 三維曲線圖67
2.8.5
 三維網格圖68
2.8.6
 立體曲面圖69
2.8.7
 專用圖形73
2.9
 數值矩陣84
2.9.1
 數值矩陣的創建84
2.9.2
 數值矩陣的矩陣演算法89
2.9.3
 數值矩陣的陣列演算法94
3
誤差99
3.1
 誤差的分類100
3.1.1
 輸入資料的誤差100
3.1.2
 捨入誤差100
3.1.3
 截斷誤差100
3.2
 絕對誤差、相對誤差和有效數字102
3.2.1
 絕對誤差102
3.2.2
 相對誤差102
3.2.3
 有效數字103
3.3
 電腦的浮點數和捨入誤差104
3.3.1
 電腦的浮點數表示104
3.3.2
 捨入誤差的精度損失105
3.4
 誤差估計106
3.5
 數值運算中的一些原則107
3.5.1
 要有數值穩定性107
3.5.2
 要防止大數吃掉小數108
3.5.3
 要避免兩相近數相加109
3.5.4
 要避免除數絕對值遠小於被除數絕對值109
3.5.5
 要減少運算次數110
3.6
 MATLAB中的數值計算精度111
4
插值法與曲線擬合113
4.1
 拉格朗日(Lagarrange)插值法115
4.1.1
 線性插值115
4.1.2
 拋物插值116
4.1.3
 拉格朗日插值多項式與插值餘項117
4.1.4
 拉格朗日插值的MATLAB118
4.2
 艾特金(Aitken)演算法120
4.2.1
 構造艾特金插值表120
4.2.2
 艾特金插值的MATLAB實現122
4.3
 牛頓插(Newton)值法125
4.3.1
 差商125
4.3.2
 牛頓插值126
4.3.3
 牛頓插值的MATLAB實現127
4.4
 差分與等間距節點插值法130
4.4.1
 差分130
4.4.2
 等間距節點插值公式132
4.5
 赫米特(Hermite)插值法137
4.5.1
 赫米特插值函數137
4.5.2
 赫特插值的MATLAB140
4.6
 有理分式插值法142
4.6.1
 有理函數插值的基本概念142
4.6.2
 有理函數插值的存在性143
4.6.3
 連分式插值144
4.6.4
 逐步有理插值148
4.7
 函數逼近150
4.7.1
 正交多項式151
4.7.2
 拉建傑多項式152
4.7.3
 柴比雪夫多項式154
4.8
 曲線擬合158
4.8.1
 最小二乘法158
4.8.2
 MATLAB中的最小二乘法160
4.8.3
 MATLAB中的曲線擬合162
4.9
 MATLAB中的插值函數164
4.9.1
 一元函數的插值命令164
4.9.2
 二元函數的插值命令166
5
線性方程組的數值解法169
5.1
 高斯消去法171
5.1.1
 順序消去法171
5.1.2
 列主元素高斯消去法175
5.1.3
 高斯-喬登消去法181
5.2
 分解法185
5.2.1
 LU分解法185
5.2.2
 對稱正定矩陣的喬萊斯基分解190
5.3
 疊代法193
5.3.1
 可比疊代法193
5.3.2
 高斯-賽德疊代法196
5.3.3
 逐次超鬆弛疊代法199
5.4
 MATLAB中線性方程組數值解的函數203
5.4.1
 求矩陣的秩(rank203
5.4.2
 求矩陣的零空間向量(null205
5.5
 MATLAB中矩陣三角分解的函數208
6
非線性方程求解215
6.1
 非線性方程求解方法217
6.1.1
 二分法217
6.1.2
 疊代法221
6.1.3
 牛頓法225
6.1.4
 拋物線法229
6.1.5
 割線法233
6.2
 求解非線性方程值解的MATLAB函數236
6.2.1
 代數方程的求根函數(root236
6.2.2
 求函數零點的函數(fzero238
6.2.3
 求方程組數值解的指令241
6.3
 求解非線性方程的MATLAB符號命令244
7
數值微分與數值積分249
7.1
 數值微分方法250
7.1.1
 平均變化率方法250
7.1.2
 三點公式254
7.1.3
 樣條求導數257
7.1.4
 理查森外推加速法260
7.2
 MATLAB常用數值微分函數舉例263
7.2.1
 函數(diff263
7.2.2
 函數(gradient)和函數(surfnorm265
7.2.3
 函數(jacoian267
7.3
 數值積分268
7.3.1
 插值型的求積公式270
7.3.2
 內插求積公式271
7.4
 梯形公式、拋物線公式與牛頓-柯特斯公式271
7.4.1
 梯形公式272
7.4.2
 辛普生公式275
7.4.3
 牛頓-柯特斯公式279
7.5
 複合式求積公式285
7.5.1
 複合式梯形求積公式286
7.5.2
 複合式拋物線形求積公式288
7.6
 高斯拉建傑求積公式290
7.6.1
 高斯-拉建傑求積公式基本原理290
7.6.2
 高斯-拉建傑求積公式的MATLAB291
7.7
 隆貝格求積公式295
7.7.1
 隆貝格求積公式簡介295
7.7.2
 隆貝格求積公式的MATLAB295
7.8
 複合式求積公式的函數298
7.8.1
 複合式矩陣形法求積計算函數sum()298
7.8.2
 複合式梯形法求積函數trapz()301
7.9
 MATLAB常用數值積分函數304
7.9.1
 quad()函數304
7.9.2
 quadl()函數307
7.9.3
 dblquad()函數309
7.9.4
 triplequad()函數313
7.9.5
 計算積分的MATLAB符號法315
8
矩陣特徵值的計算323
8.1
 特徵值與特徵向量的基礎知識324
8.1.1
 概念及性質324
8.1.2
 向量模326
8.1.3
 矩陣模327
8.1.4
 譜半徑329
8.1.5
 疊代法的收斂性329
8.1.6
 疊代法的誤差估計330
8.2
 特徵值求取330
8.2.1
 特徵多項式法330
8.2.2
 冪次法332
8.2.3
 反冪次法339
8.2.4
 QR方法基礎344
8.3
 函數eig()計算特徵值346
8.4
 舒爾分解法和奇異值分解349
8.5
 矩陣指數計算351
8.6
 計算模和矩陣譜半徑的函數353
9
常微分方程的數值解355
9.1
 常微分方程的基本概念356
9.2
 歐拉方法357
9.2.1
 歐拉方法357
9.2.2
 歐拉法的局部截斷誤差360
9.2.3
 隱式歐拉法361
9.2.4
 兩步歐拉方法362
9.2.5
 改進的歐拉法363
9.3
 蘭吉庫塔法364
9.3.1
 蘭吉庫塔法的基本概念364
9.3.2
 二階蘭吉-庫塔法365
9.3.3
 三階蘭吉-庫塔法367
9.3.4
 四階蘭吉-庫塔法368
9.4
 亞當斯方法370
9.4.1
 亞當斯方法370
9.4.2
 亞當斯預測-校正系統371
9.5
 在MATLAB中求解常微分方程的初值問題372
9.5.1
 歐拉法372
9.5.2
 隱式歐拉法374
9.5.3
 改進的歐拉法376
9.5.4
 二階蘭吉-庫塔法378
9.5.5
 三階蘭吉-庫塔法382
9.5.6
 四階蘭吉-庫塔法385
9.5.7
 亞當斯法391
9.5.8
 其他方法的應用397
9.5.9
 求常微分方程初值問題數值解的函數421