序
前言
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 求矩陣的秩(rank)203
5.4.2 求矩陣的零空間向量(null)205
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 代數方程的求根函數(root)236
6.2.2 求函數零點的函數(fzero)238
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 函數(diff)263
7.2.2 函數(gradient)和函數(surfnorm)265
7.2.3 函數(jacoian)267
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