Presentation is loading. Please wait.

Presentation is loading. Please wait.

5/8 上機課 用一個圖形將教過的圖形中的三種(一般曲 線圖、長條圖、極座標圖、階梯圖、針狀圖) 畫在一個圖中,並試著加上註解,讓圖形更 完整.

Similar presentations


Presentation on theme: "5/8 上機課 用一個圖形將教過的圖形中的三種(一般曲 線圖、長條圖、極座標圖、階梯圖、針狀圖) 畫在一個圖中,並試著加上註解,讓圖形更 完整."— Presentation transcript:

1 5/8 上機課 用一個圖形將教過的圖形中的三種(一般曲 線圖、長條圖、極座標圖、階梯圖、針狀圖) 畫在一個圖中,並試著加上註解,讓圖形更 完整

2 >>subplot(2,2,1); >>plot(x,sin(x)); >>subplot(2,2,2); >> fplot('sin(1/x)', [0.02 0.2]); >>subplot(2,2,3); >> theta=linspace(0, 2*pi); >> r=cos(4*theta); >> polar(theta, r); >>subplot(2,2,4); >> x=1:10; >> y=abs(sin(x)); >> bar(x,y);

3 數學軟體簡介 PART II Matlab 介紹

4 今天進度: 三維空間繪圖 矩陣實用

5 mesh 和 surf 是三度空間立體繪圖的基本命 令, mesh 可畫出立體網狀圖, surf 則可畫 出立體曲面圖,兩者產生的圖形都會依高 度而有不同顏色。 讓我們來看幾個例子,下列命令可畫出由 函數形成的立體網狀圖( mesh ) : 三維曲線

6 >>x=linspace(-2, 2, 25); % 在 x 軸上, -2 到 2 間取 25 點 >>y=linspace(-2, 2, 25); % 在 y 軸上, -2 到 2 間取 25 點 >>[xx,yy]=meshgrid(x, y); % xx 和 yy 都是 25x25 的矩陣 >>zz=xx.*exp(-xx.^2-yy.^2); % 計算函數值, zz 也是 >>mesh(xx, yy, zz); % 25x25 的矩陣。畫出立體網狀圖 如果想將圖形背景色改為 黑底,在 mesh 前打上 >>colordef black ( 改白色為 :colordef white)

7 注意: meshgrid 的作用是產生以 x 及 y 為基準 的格子點,其輸出為 xx 及 yy ,分別代表格子 點的 x 座標與 y 座標。 注意: xx 此時已經是一個 25x25 的矩陣了, Matlab 不知道 xx^2 為何,所以,若是要將個 別每個元素平方,必須如下使用: xx.^2 多一個『. 』在 xx 後

8 >>x=linspace(-2, 2, 25); % 在 x 軸上, -2 到 2 間取 25 點 >>y=linspace(-2, 2, 25); % 在 y 軸上, -2 到 2 間取 25 點 >>[xx,yy]=meshgrid(x, y); % xx 和 yy 都是 25x25 的矩陣 >>zz=xx.*exp(-xx.^2-yy.^2); % 計算函數值 zz >>colordef black; % 將背景色改為黑色 >>surf(xx, yy, zz); % 畫出立體曲面圖 surf 與 mesh 的用法類似

9 Matlab 提供了一個現成的 peaks 函數,可以產生 一個凹凸有致的曲面,包含了三個局部極大點及 三個局部極小點,其方程式為: 要畫出此函數的最快方法就是直接鍵入: >>peaks z = 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2)... - 10*(x/5 - x.^3 - y.^5).*exp(-x.^2-y.^2)... - 1/3*exp(-(x+1).^2 - y.^2)

10 這就是 peaks 的原貌,我們可以 對 peaks 函數取點,再以各種不 同方法進行繪圖。 meshz 可將曲 面加上裙擺: >>[x,y,z]=peaks; >>meshz(x,y,z); >>axis([-inf inf -inf inf -inf inf]); axis 是將各座標範圍訂定

11 另外這招叫: waterfall( 水流 ) , 可以在 x 方向或 y 方向產生水流 效果: >>[x,y,z]=peaks; >>waterfall(x,y,z); 若要產生在 y 方向的水流效果: >>[x,y,z]=peaks; >>waterfall(x',y',z');

12 meshc 同時畫出網狀圖與等高線: >>[x,y,z]=peaks; >>meshc(x,y,z); 網狀圖 等高線 如果將 meshc 改為 surfc 會同時畫出 曲面圖與等高線

13 contour3 畫出曲面在三 度空間中的等高線: >>contour3(peaks, 20); 20 是等高線的數目, 也就是區分的段數 >>contour3(peaks, 40);

14 contour 畫出曲面等高 線在 XY 平面的投影: >>contour(peaks, 20); 同樣地, 20 代表等高 線區分的數目,數目越 大會將等高線分得越密

15 plot3 可畫出三度空間中的曲線: >>t=linspace(0,20*pi, 501); >>plot3(t.*sin(t), t.*cos(t), t); x 座標為 t.*sin(t) y 座標為 t.*cos(t) z 座標為 t

16 plot3 亦可畫出兩條三度空間中的曲線: >>t=linspace(0,20*pi, 501); >>plot3(t.*sin(t), t.*cos(t), t, t.*sin(t), t.*cos(t), -t); 前三個座標為第一函數 次三個座標為第二函數

17 矩陣運算的注意事項 矩陣的運算雖與一般純量運算類似,唯一的要求 是:相加或相減的矩陣必須具有相同的維度。維 度不一致則會產生錯誤訊息,但矩陣與純量可以 直接進行加減。 >>A = [1 2 3 2 1] + 5 A = 6 7 8 7 6 >>B = 2*A B = 12 14 16 14 12

18 矩陣的相乘( A * B ) 必須確定 A 的行數( column dimension )必須等 於 B 的列數( row dimension )否則會產生錯誤。 矩陣的次方( A^2=A*A ) 必須使用在方陣上才有意義。 例如: >>A= [1 2 3 2 1]; >>B=A^2; 矩陣運算的注意事項

19 若想對矩陣內『元素對元素』的運算應當如何? 例如: A= [ 12 ; 45] , B= [ 2 ; 3 ] 如果想作運算 [ 12*2 ; 45*3 ] ,應當如何? 在運算符號『*』,『 ^ 』之前加上一個句號『. 』 即可,如上例: >>A.* B ans = 24 135 矩陣運算的注意事項 >>A.^2 ans = 144 2025

20 sum 功能 sum() 用在向量上, sum(A) 為每個元素加總的和 用在矩陣上, sum(A) 為每行元素加總而成的向量 例如: >>A=[1 2 3; 4 5 6; 7 8 9]; >>sum(A), sum(sum(A)) ans = 12 15 18 ans = 45

21 矩陣進階實用 一個正方矩陣 A 的反矩陣的定義是 A -1 ,所以此二矩 陣相乘不論是 AA -1 或 A -1 A ,結果皆為單位矩陣 I 。 矩陣如果是奇異 (singular) 或是條件不足 (ill- conditioned) ,其反矩陣並不存在。條件不足的矩 陣與一組聯立方程組其中的方程式並不獨立有關, 而一矩陣的秩 (rank) 即是代表矩陣中獨立方程式個 數。如果一矩陣的秩數和其矩陣的列數相等,則此 矩陣為非奇異且其反矩陣存在。

22 實例 1 :反矩陣 >>A=[ 2 1 ; 4 3 ]; >>inv(A) ans = 1.5000 -0.5000 -2.0000 1.0000 >>B=[ 2 1 ; 4 2 ]; >>inv(B) 矩陣進階實用 >> inv(A) Warning: Matrix is singular to working precision. ans = Inf Inf

23 實例 2 :反矩陣 >>A=[ 1 2; 3 4 ; 5 6 ]; >>inv(A) ??? Error using ==> inv Matrix must be square. 矩陣進階實用 這就是所謂的條件 不足 (ill-conditioned) 的情形, inv 無法用 在非方陣的情況。

24 另外兩種方便使用的功能: 求秩 (rank) 與行列式 (det) >>A=[1 3 0; -1 5 2; 1 2 1]; >> rank(A), det(A) ans = 3 10 矩陣進階實用 三次行列式大家都 會算,但是,超過 4 次的行列式會很難 計算,這裡可以用 Matlab 輕易計算。

25 假設 A 為一個 n 階矩陣,而 X 為一個有 n 列的欄向 量, λ 為一純量。考慮以下的數學式 AX = λ X 如果 X 由不為零的元素所組成,其中 λ 滿足上式稱 為矩陣 A 的特徵值 (eigenvalue) ,而 X 稱為矩陣 A 的特徵向量 (eigenvector) 。 特徵向量代表一個正規正交 (orthonormal) 的向 量組,所謂的正規正交向量,是指這向量與自身 做內積的值為一單位向量;在幾何關係上是指二 量相互垂直且此其內積值再做正規化 (normalization) 。 特徵值與特徵向量

26 超強的特徵值與向量功能 >>A=[0.5 0.25; 0.25 0.5]; >>[Q,d]=eig(A) Q = -0.7071 0.7071 0.7071 0.7071 d = 0.2500 0 0 0.7500 特徵值與特徵向量

27 [Q,d]=eig(A) 這個功能一舉數得: 1. d 的對角線的值為 A 的特徵值 ( 即使複數也可以算 出 ) 2. Q 的第一行 Q(:,1) 為 d 11 的特徵向量, Q 的第二行 Q(:,2) 為 d 22 的特徵向量 ( 依此類推 ) 3. Q 的每一行的特徵向量相互垂直,且為正規正交 向量(任兩相異行內積為 0 ,一行與自身做內積 的值為 1 ),即 QQ T =I 特徵值與特徵向量

28 檢驗一下: >>Q*Q’ % 『 ’ 』為矩陣的倒置 ans = 1.0000 0 0 1.0000 >>A*Q(:,1), d(1,1)*Q(:,1) ans = -0.1768 0.1768 ans = -0.1768 0.1768 特徵值與特徵向量


Download ppt "5/8 上機課 用一個圖形將教過的圖形中的三種(一般曲 線圖、長條圖、極座標圖、階梯圖、針狀圖) 畫在一個圖中,並試著加上註解,讓圖形更 完整."

Similar presentations


Ads by Google