30
數數數 數數 PART II Matlab 數數

數學軟體簡介 PART II Matlab 介紹. 今天進度: Matlab 基本環境操作 Matlab 小傳 外觀基本認識 使用變數與基本運算 向量與矩陣的處理 常用數學函數

  • View
    236

  • Download
    3

Embed Size (px)

Citation preview

Page 1: 數學軟體簡介 PART II Matlab 介紹. 今天進度: Matlab 基本環境操作 Matlab 小傳 外觀基本認識 使用變數與基本運算 向量與矩陣的處理 常用數學函數

數學軟體簡介 PART II

Matlab 介紹

Page 2: 數學軟體簡介 PART II Matlab 介紹. 今天進度: Matlab 基本環境操作 Matlab 小傳 外觀基本認識 使用變數與基本運算 向量與矩陣的處理 常用數學函數

今天進度: Matlab 基本環境操作

Matlab 小傳 外觀基本認識 使用變數與基本運算 向量與矩陣的處理 常用數學函數 查詢命令 常用的永久常數

Page 3: 數學軟體簡介 PART II Matlab 介紹. 今天進度: Matlab 基本環境操作 Matlab 小傳 外觀基本認識 使用變數與基本運算 向量與矩陣的處理 常用數學函數

1978 年,美國新墨西哥大學的 Cleve Moler 教授寫了此一套軟體來使他的學生更容易瞭解線性代數及各種數值方法與矩陣理論,當然,當時是免費的;因此, Matlab 的數值計算能力可是經過 20 餘年的檢驗與千錘百鍊。

但是,他並沒有想到要將 Matlab 商品化。

Matlab 小傳

Page 4: 數學軟體簡介 PART II Matlab 介紹. 今天進度: Matlab 基本環境操作 Matlab 小傳 外觀基本認識 使用變數與基本運算 向量與矩陣的處理 常用數學函數

Matlab 小傳

由 Jack Little 將他用 C 語言改寫,成立 Math Works 公司,並於 1984 年推出的數學軟體商用版,其名稱是由 MATrix LABoratory (矩陣實驗室)所合成的,雖然其最早的理念只是提供一套完善的矩陣運算軟體,但隨著數值運算需求, Matlab 已經成為各種系統模擬、數位訊號處理、科學計算的標準語言。

Page 5: 數學軟體簡介 PART II Matlab 介紹. 今天進度: Matlab 基本環境操作 Matlab 小傳 外觀基本認識 使用變數與基本運算 向量與矩陣的處理 常用數學函數

1. 工作空間瀏覽器 (Workspace)2. 命令歷史列

(Command History)

3. 命令視窗 (Command

Window)

13

2

外觀基本認識

Page 6: 數學軟體簡介 PART II Matlab 介紹. 今天進度: Matlab 基本環境操作 Matlab 小傳 外觀基本認識 使用變數與基本運算 向量與矩陣的處理 常用數學函數

使用變數與基本運算 一般常用到的加( + )、減( - )、乘( * )、除( / )、冪次( ^ )等數學運算,在 Matlab下進行,最快速簡單的方法就是在命令視窗內的提示符號( >> )之後輸入運算式並按 Enter 鍵

例如: >> (5*2+3.5)/5 ans = 2.7000

Page 7: 數學軟體簡介 PART II Matlab 介紹. 今天進度: Matlab 基本環境操作 Matlab 小傳 外觀基本認識 使用變數與基本運算 向量與矩陣的處理 常用數學函數

『 >> 』代表 Matlab 命令視窗內的提示符號,使用者可以在其後面輸入任何 Matlab 語法的運算式以進行運算。

若不想讓 Matlab 每次都顯示運算結果,只需要在運算式最後加上分號『 ; 』

例如: >> (5*2+3.5)/5 ; 此時按 Enter 鍵,運算結果會儲存,但不會顯示

使用變數與基本運算

Page 8: 數學軟體簡介 PART II Matlab 介紹. 今天進度: Matlab 基本環境操作 Matlab 小傳 外觀基本認識 使用變數與基本運算 向量與矩陣的處理 常用數學函數

在需要取用或顯示結果時,輸入『 ans 』即可 例如: >> ans ans = 2.7000 也可以將結果儲存至自己設定的變數中 例如: >> x = (5*2+3.5)/5 x = 2.7000

使用變數與基本運算

Page 9: 數學軟體簡介 PART II Matlab 介紹. 今天進度: Matlab 基本環境操作 Matlab 小傳 外觀基本認識 使用變數與基本運算 向量與矩陣的處理 常用數學函數

變數命名基本規則與使用:

第一個字母必須是英文字母 字母間不可留空白 最多 31個字母, Matlab 會忽略多餘的字母 使用變數前不需要預先宣告,所有變數均預設為double 資料形式儲存

使用變數與基本運算

Page 10: 數學軟體簡介 PART II Matlab 介紹. 今天進度: Matlab 基本環境操作 Matlab 小傳 外觀基本認識 使用變數與基本運算 向量與矩陣的處理 常用數學函數

如果想用 double 以外的資料形式呢? 使用 >>format 資料形式設定 例如: >> (7*3+5.5)/7 ans = 3.7857 例如: >> format long >> (7*3+5.5)/7 ans = 3.78571428571429

使用變數與基本運算

Page 11: 數學軟體簡介 PART II Matlab 介紹. 今天進度: Matlab 基本環境操作 Matlab 小傳 外觀基本認識 使用變數與基本運算 向量與矩陣的處理 常用數學函數

例如: >> format rat >> (7*3+5.5)/7 ans = 53/14 例如: >> format short >> (7*3+5.5)/7 ans = 3.7857

使用變數與基本運算

Page 12: 數學軟體簡介 PART II Matlab 介紹. 今天進度: Matlab 基本環境操作 Matlab 小傳 外觀基本認識 使用變數與基本運算 向量與矩陣的處理 常用數學函數

還記得 LaTEX裡的『 % 』記號是什麼意思嗎?在 Matlab這裡也是一樣的用法

例如: >> y = (5*2+3.5)/5 ; % 將運算結果儲存在 y 中 >> z = y^2 % 將運算結果儲存在 z 中並顯示 z = 7.2900『 % 』之後會被Matlab 忽略不計,增加可讀性用

使用變數與基本運算

Page 13: 數學軟體簡介 PART II Matlab 介紹. 今天進度: Matlab 基本環境操作 Matlab 小傳 外觀基本認識 使用變數與基本運算 向量與矩陣的處理 常用數學函數

Matlab 可以同時執行以逗號( , )或分號( ; ) 隔開的數個運算式 例如: >> x = sin(pi/3) ; y = x^2 ; z = y*10 z = 7.5000 若運算式太長,可以用三個句點『…』將其延伸到下一行,例如: >> z = 10*sin(pi/3)*…

>> sin(pi/3);

使用變數與基本運算

Page 14: 數學軟體簡介 PART II Matlab 介紹. 今天進度: Matlab 基本環境操作 Matlab 小傳 外觀基本認識 使用變數與基本運算 向量與矩陣的處理 常用數學函數

向量與矩陣的處理 前面的例子中, Matlab 的變數都是儲存純量形式( Scalars ),其實變數也可以用來儲存向量形式( Vectors )及矩陣形式( Matrix )

例如: >> s = [ 1 3 5 2 ] ; % 注意數字間有空白 >> t = 2*s+1 t = 3 7 11 5

Page 15: 數學軟體簡介 PART II Matlab 介紹. 今天進度: Matlab 基本環境操作 Matlab 小傳 外觀基本認識 使用變數與基本運算 向量與矩陣的處理 常用數學函數

向量與矩陣的處理 『 [ ] 』中括號建立一個列向量 [ 1 3 5 2 ] ,或可視為 1 x 4 大小的矩陣,將其儲存在變數 s 中

另外, >> s = [1 3 5 2] 與 >> s = [ 1,3,5,2] 一樣

也可以取出向量中的一部份來運算

例如: >> t(3) = 2 % 將向量 t 的第三個元素改為 2 t = 3 7 2 5

Page 16: 數學軟體簡介 PART II Matlab 介紹. 今天進度: Matlab 基本環境操作 Matlab 小傳 外觀基本認識 使用變數與基本運算 向量與矩陣的處理 常用數學函數

向量與矩陣的處理 例如: >> t(6) = 10 % 在向量 t 加入第六個元素 1

0 t = 3 7 2 5 0 10

例如: >> t(4) = [] % 刪除向量 t 第四個元素 t = 3 7 2 0 10

Page 17: 數學軟體簡介 PART II Matlab 介紹. 今天進度: Matlab 基本環境操作 Matlab 小傳 外觀基本認識 使用變數與基本運算 向量與矩陣的處理 常用數學函數

向量與矩陣的處理 例如: >> s(2)*3 + t(4) % 取出向量 s 與 t 的部分做運算

ans = 9

例如: >> t(2 : 4) - 1 % 取出向量 t 第 2~4元素來運算 ans = 6 1 -1

Page 18: 數學軟體簡介 PART II Matlab 介紹. 今天進度: Matlab 基本環境操作 Matlab 小傳 外觀基本認識 使用變數與基本運算 向量與矩陣的處理 常用數學函數

用類似上述建立向量的方法,使用者可以建立 mxn 大小的矩陣,但必須在每一列結尾加上分號『 ; 』,例如:

>>A=[ 1 2 3 4; 5 6 7 8; 9 10 11 12 ]; % 3x4 矩陣 A >>A % 顯示 A 的內容 A = 1 2 3 4 5 6 7 8 9 10 11 12

向量與矩陣的處理

Page 19: 數學軟體簡介 PART II Matlab 介紹. 今天進度: Matlab 基本環境操作 Matlab 小傳 外觀基本認識 使用變數與基本運算 向量與矩陣的處理 常用數學函數

同樣地,我們也可以對矩陣進行各樣的處理 例如: >> A(2,3) = 5 % A2,3 將改為 5 A = 1 2 3 4 5 6 5 8 9 10 11 12 例如: >>B = A(2, 1:3) % 取出 A2,1~A2,3 組成 B B = 5 6 5

向量與矩陣的處理

Page 20: 數學軟體簡介 PART II Matlab 介紹. 今天進度: Matlab 基本環境操作 Matlab 小傳 外觀基本認識 使用變數與基本運算 向量與矩陣的處理 常用數學函數

例如: >> A=[ A B’ ] % 將矩陣 A 與 BT 合併 A = 1 2 3 4 5 5 6 7 8 6 9 10 11 12 5 例如: >> A(2,:) = [ ] %刪除矩陣 A 的第 2 列 A = 1 2 3 4 5 9 10 11 12 5

向量與矩陣的處理

Page 21: 數學軟體簡介 PART II Matlab 介紹. 今天進度: Matlab 基本環境操作 Matlab 小傳 外觀基本認識 使用變數與基本運算 向量與矩陣的處理 常用數學函數

例如: >>A(:, [1 4]) = [ ] %刪除矩陣 A 的第 1, 4 行

A = 1 3 5 9 11 5

在 4x5 的矩陣 A 中的元素, A2,3可以用 A(2,3) 表示,也可以用 A(8) 來表示;即在 mxn 的矩陣 A 中, A(a,b)=A( (a-1)*n+b ) 。

向量與矩陣的處理

Page 22: 數學軟體簡介 PART II Matlab 介紹. 今天進度: Matlab 基本環境操作 Matlab 小傳 外觀基本認識 使用變數與基本運算 向量與矩陣的處理 常用數學函數

在 Matlab 中可以使用許多數學函數: 例如: >> x=-4; y= abs(x) %純量的絕對值或向量的長度

y = 4 例如: >> sqrt(y) %開平方 ans = 2

常用數學函數

Page 23: 數學軟體簡介 PART II Matlab 介紹. 今天進度: Matlab 基本環境操作 Matlab 小傳 外觀基本認識 使用變數與基本運算 向量與矩陣的處理 常用數學函數

sign(x) :符號函數 (Signum function) 。 當 x<0 時, sign(x)=-1 ; 當 x=0 時, sign(x)=0; 當 x>0 時, sign(x)=1 。 exp(x) :自然指數 pow2(x) : 2 的指數 log(x) :以 e 為底的對數,即自然對數 log10(x) :以 10 為底的對數

常用數學函數

Page 24: 數學軟體簡介 PART II Matlab 介紹. 今天進度: Matlab 基本環境操作 Matlab 小傳 外觀基本認識 使用變數與基本運算 向量與矩陣的處理 常用數學函數

rats(x) :將實數 x 化為分數表示 rem(x,y) :求 x 除以 y 的餘數 gcd(x,y) :整數 x和 y 的最大公因數 lcm(x,y) :整數 x和 y 的最小公倍數 sin(x) :正弦函數 cos(x) :餘弦函數 tan(x) :正切函數

常用數學函數

Page 25: 數學軟體簡介 PART II Matlab 介紹. 今天進度: Matlab 基本環境操作 Matlab 小傳 外觀基本認識 使用變數與基本運算 向量與矩陣的處理 常用數學函數

Matlab 也可以計算複數,通常以 i 或 j 代表√-1 例如: >> z = 5+4j; %複數 z=5+4 √-1 >> y = angle(z) %複數 z 的相角 y = 0.6747 real(z) :複數 z 的實部 imag(z) :複數 z 的虛部 conj(z) :複數 z 的共軛複數

常用數學函數

Page 26: 數學軟體簡介 PART II Matlab 介紹. 今天進度: Matlab 基本環境操作 Matlab 小傳 外觀基本認識 使用變數與基本運算 向量與矩陣的處理 常用數學函數

查詢命令 ( help )1) 例如:若已知 inv 是用來計算反矩陣,鍵入 help inv 即可得知有關 inv 命令的用法。

>>help inv

INV Matrix inverse. INV(X) is the inverse of the square matri

x X. A warning message is printed if X is badly scaled or nearly singular.

Page 27: 數學軟體簡介 PART II Matlab 介紹. 今天進度: Matlab 基本環境操作 Matlab 小傳 外觀基本認識 使用變數與基本運算 向量與矩陣的處理 常用數學函數

查詢命令 ( lookfor )2) 例如:要尋找計算反矩陣的命令,可鍵入 lookf

or inverse ,即會列出所有和關鍵字 inverse相關的指令。找到所需的命令後,即可用 help進一步找出其用法。

>>lookfor inverse INVHILB Inverse Hilbert matrix. IPERMUTE Inverse permute array dimensions. ACOS Inverse cosine, result in radians. ACOSD Inverse cosine, result in degrees.

………

Page 28: 數學軟體簡介 PART II Matlab 介紹. 今天進度: Matlab 基本環境操作 Matlab 小傳 外觀基本認識 使用變數與基本運算 向量與矩陣的處理 常用數學函數

常用的永久常數 i 或 j :基本虛數單位(即√ -1 ) eps :系統的浮點( Floating-point )精確度 inf :無限大, 例如 1/0 nan 或 NaN :非數值( Not a number ),例如 0/0

pi :圓周率 p ( = 3.1415926... ) realmax :系統所能表示的最大數值 realmin :系統所能表示的最小數值 nargin: 函數的輸入引數個數 nargin: 函數的輸出引數個數

Page 29: 數學軟體簡介 PART II Matlab 介紹. 今天進度: Matlab 基本環境操作 Matlab 小傳 外觀基本認識 使用變數與基本運算 向量與矩陣的處理 常用數學函數

5/1 上機課

熟悉Matlab 基本運算功能 實務操作(練習題目)

Page 30: 數學軟體簡介 PART II Matlab 介紹. 今天進度: Matlab 基本環境操作 Matlab 小傳 外觀基本認識 使用變數與基本運算 向量與矩陣的處理 常用數學函數

數值分析 請利用下列公式算出 f ’(8.1) 、 f ’(8.3) 的近似值

f ’(x0)=1/2h [-3f(x0)+4f(x0+h)-f(x0+2h)]

這裡的 f(x) 為 x lnx

Hint :先算出 f(x0) 、 f(x0+h) 、 f(x0+2h) h 可以先試試 0.1 、 0.01看看