Matlab
Download
1 / 114

Matlab 簡 介 - PowerPoint PPT Presentation


  • 179 Views
  • Uploaded on

Matlab 簡 介. 王 偉 仲 國立臺灣大學數學系 版本 : 2009/02. Ask Questions, Find Answers, Enjoy the Journey!. For a Better Future of Human Beings. 明天的天氣如何 ? 癌症可以治癒嗎 ? 為什麼人會興奮會悲傷 ? 如何有效利用自然能源 ? 人類對事物的了解尚未完整, 人類對未知的探索從未停止。 好奇心驅使我們向前, 科學方法協助我們釐清真相。 追求美好未來的腳步不曾停歇, 此時此刻也不例外。. 第三種科學方法. 理論 實驗 計算. 計算科學.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Matlab 簡 介' - cerise


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Matlab

Matlab 簡 介

王 偉 仲

國立臺灣大學數學系

版本: 2009/02


Ask Questions,

Find Answers,

Enjoy the Journey!


For a better future of human beings
For a Better Future of Human Beings

明天的天氣如何?癌症可以治癒嗎?為什麼人會興奮會悲傷?如何有效利用自然能源?人類對事物的了解尚未完整,人類對未知的探索從未停止。好奇心驅使我們向前,科學方法協助我們釐清真相。追求美好未來的腳步不曾停歇,此時此刻也不例外。

W. Wang


第三種科學方法

  • 理論

  • 實驗

  • 計算

W. Wang


計算科學

  • 以科學和工程知識描述問題與釐清所需資料

  • 以數學和統計知識設計模型

  • 以數值分析知識設計與分析演算法、發展數學軟體、估計誤差

W. Wang


計算科學

  • 統合科學、數學、電腦知識實作數學軟體

  • 聰明的使用數學軟體分析數學模型

  • 跨領域 (interdisciplinary) 學科,需要合作

  • Computational Science, SIAM Review, vol. 43, no. 1, 2001

W. Wang


科學與工程

應用數學

資訊科學

計算科學架構



0 與 1 的世界 (續)

  • 二進位

  • 電腦怎麼樣‘寫字’ (ASCII, Unicode)

  • 電腦為什麼會唱歌 (聲源,取樣,頻率)

  • 電腦怎麼樣秀圖 (資料視覺化,影像處理)

W. Wang


為什麼會有誤差?

  • 電腦使用二進位 (0 or 1) 來表示數目

  • 截斷誤差 (Truncation error)

  • 捨入誤差 (Rounding error)

W. Wang


Binary
二進位 (binary)

  • 十進位數字: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

  • 二進位數字: 0 (off, 開), 1 (on,關)

  • 十進位位值

  • 二進位位值

  • 整數十進位與二進位互換

W. Wang


以二進位儲存整數

  • 二進位可以無誤差的表示所有整數

  • 但是,電腦只能用有限大小的記憶體來儲存整數

  • 因此,電腦只能表示某些範圍的整數

  • 例如:以 16 位元大小可表示從 -32768 到 32767 的 65536 個整數

W. Wang


以二進位儲存整數 (續)

  • 假設 b 是一個二進位的位元符號

  • b=0 或 1

W. Wang



以二進位儲存非整數

  • 基本想法

W. Wang


以二進位儲存非整數 (續)

  • (0.8125)10 = (?)2

W. Wang


以二進位儲存非整數 (續)

  • (0.1)10 = (?)2

W. Wang


以二進位儲存非整數 (續)

  • 雙精準浮點數

W. Wang


以二進位儲存非整數 (續)

  • 雙精準浮點數數線

W. Wang


程式中的 bugs

  • 一般軟體:每 1000 行程式約25個錯誤

  • 好的軟體:每 1000 行程式約 2個錯誤

  • 太空梭軟體:每 10000 行程式小於1個錯誤

  • 手機程式約20萬行程式,約有600個錯誤

  • Windows 95:約1千萬行程式, 小於20萬個錯誤

  • Intel: Pentium 晶片中小於 80-90個錯誤

W. Wang




5 ariane 5
亞利安5號(Ariane 5)無人火箭

  • 歐洲13國投入超過80億美元研發十年成果1996年6月4日,於法屬圭亞那首度發射

  • 載有價值5億美元的4顆科學衛星,準備探討地球磁場與太陽風的關係

W. Wang


亞利安5號 (續)

  • 發射後約40秒,3700公尺高處爆炸!http://www.youtube.com/watch?v=kYUrqdUyEpI

  • 發生什麼問題?

W. Wang


亞利安5號 (續)

  • 慣性參考系統軟體出錯

  • 紀錄側向速度的64位元浮點數,在慣性參考系統軟體中,被轉換成16位元的整數

  • 但卻超過其所能表示的最大數 (32,767)

  • 慣性參考系統因此被認定故障,向主電腦送出錯誤信號,並自動關機

W. Wang


亞利安5號 (續)

  • 控制火箭主電腦,錯把錯誤訊息當成火箭當時的火箭狀況參數,做出不必要的方向修正與旋轉

  • 推進器與火箭因而被空氣動力裂解

  • 終於導致安全系統啟動,自動引爆

W. Wang


失敗從未阻止人類向前

夢想要被實現



波音 777

  • 全世界第一款完全以電腦技術設計的民用飛機

  • CATIA(Computer-aided Three-dimensional Interactive Application)

  • 空氣動力、複合材料、控制系統、發動機…

  • 數值偏微分方程解、超大型矩陣計算、最佳化問題、實驗設計…

W. Wang


飛翔與奔馳

  • Air Dynamicshttp://www.youtube.com/watch?v=1mm8raOaOIU

  • The BMW Sauber F1 Team wind tunnelhttp://www.youtube.com/watch?v=I_7-W6X23-I&feature=related

W. Wang


風洞

  • Wind Tunnelshttp://www.youtube.com/watch?v=5RJwUMLu2Zg

  • Pagani Zonda F wind-tunnel testinghttp://www.youtube.com/watch?v=2CYUuBiW_lY&feature=related

  • how wings work? Smoke streamlines around an airfoilhttp://www.youtube.com/watch?v=6UlsArvbTeo&NR=1

  • Airfoil Stall CFDhttp://www.youtube.com/watch?v=SffugtkQbfA&feature=related

W. Wang


模擬

  • CFD simulation of vortex sheddinghttp://www.youtube.com/watch?v=P8VcZzgdfSc&feature=related

  • Wake Turbulence Testhttp://www.youtube.com/watch?v=JYEqB1RR9hw&feature=PlayList&p=71369B28D0ED19CB&index=6&playnext=4&playnext_from=PL

  • Flow Studyhttp://www.youtube.com/watch?v=ouF9Xkoi3uk&feature=PlayList&p=71369B28D0ED19CB&index=7&playnext=5&playnext_from=PL

W. Wang


科學與工程

應用數學

資訊科學

計算科學架構


大綱

  • Matlab 基本介紹

  • 陣列運算 (向量與矩陣)

  • 資料視覺化 (二維與三維繪圖)

  • 程式寫作 (正確, 效率, 穩定)

  • 數學演算法, 電腦硬體架構

W. Wang


1 unit

驅動問題

  • 以蒙地卡羅法求 值

    • 了解問題

    • 擬定策略

    • 編寫程式

    • 顯示圖形

    • 執行程式

    • 分析數據

W. Wang


自學資源

  • MATLAB程式設計【入門篇】作者 / 張智星清蔚科技 出版ISBN:986-80131-2-7 http://www.terasoft.com.tw/books/books_1.asp範例程式碼:http://neural.cs.nthu.edu.tw/jang/books/matlabProgramming4beginner/cdrom/matlabProgramming4beginner/example投影片: http://neural.cs.nthu.edu.tw/jang/books/matlabProgramming4beginner/cdrom/matlabProgramming4beginner/slide部分習題解答與補充題: http://neural.cs.nthu.edu.tw/jang/books/matlabProgramming4beginner-exercise

  • >> demo

  • Gerald Recktenwald 投影片http://www.prenhall.com/recktenwald

  • 其他線上教學資料。例如http://www.mines.utah.edu/gg_computer_seminar/matlab/matlab.html

W. Wang




Matlab2
什麼是 Matlab?

  • MATLAB = MATrix LABoratoryMathworks: http://www.mathworks.com

  • 主要設計理念:

    • 以矩陣為基礎的數值計算

    • 高階程式語言

    • 圖形與資料視覺化

    • 各種應用工具箱

W. Wang


Matlab3
什麼是 Matlab? (續)

  • 跨平台支援 (PC / Macintosh / UNIX)

  • 存在與其他程式語言或儀器介面

    • C, Fortran (MATLAB is callable)

    • 外部資料輸入輸出功能

  • 大小寫在 Matlab 中視為不同字元(例如:mtxA ~= MTXA)

W. Wang


計算機

W. Wang


計算機 (續)

  • a = 2;

  • b = 5;

  • a^b

  • ans =

  • 32

  • x = 5/2*pi;

  • y = sin(x)

  • y =

  • 1

  • z = asin(y)

  • z =

  • 1.5708

  • -5/(4.8+5.32)^2

    ans =

    -0.0488

  • (3+4i)*(3-4i)

    ans =

    25

  • cos(pi/2)

    ans =

    6.1230e-017

  • exp(acos(0.3))

    ans =

    3.5470

W. Wang


Matlab4
Matlab 的內建常數

W. Wang


Matlab5
Matlab 的內建函式

W. Wang




生存法則:尋找程式碼

  • To see the code (of function fzero):>> type fzero

  • To find out where the code is:>> which fzero

W. Wang



單行多敘述 (指令)

W. Wang



風流

W. Wang


震動中的波

  • In Matlab: demo > Graphics > Vibrating logo

W. Wang


混沌

  • In Matlab: demo > Graphics > Lorenz attractor animation

  • 混沌是非週期性之物理系統的演化模式。系統的演化對初始條件非常敏感。

  • 實例:勞倫茲吸引子 (Lorenz Attractor)

W. Wang


生物現象

  • 人眼可輕易偵測移動中的物體,但難以分辨同一物體的靜止狀態

  • 對動物來說,這是重要的生存本能(掠奪、捕食、逃避)

  • 範例: 隱藏的形狀In Matlab: demo > More Examples > Hiden objects in motion

W. Wang


快速傅立葉轉換

  • Fast Fourier Transformation (FFT)

  • Time domain to frequency domain

  • 訊號處理,影像處理

  • 範例:太陽黑子強度頻率In Matlab: demo > Numerics > Fast Fourier Transformation

W. Wang


幾何結構

  • Convex hull:凸包

  • Delaunay tessellation:四面體嵌格

  • Voronoi diagram:多面體分區

  • 在科學,工程,統計,數學上用來分析數據

  • 範例:九點立方體In Matlab: demo > Numerics > Tessellation and interpolation of scattered data

W. Wang



Columns (列)

(n)

1 2 3 4 5

A (2,4)

1

2

Rows (行)(m) 3

4

5

A =

1 6 11 16 21

2 7 12 17 22

3 8 13 18 23

4 9 14 19 24

5 10 15 20 25

4

10

1

6

2

8

1.2

9

4

25

A (17)

7.2

5

7

1

11

0

0.5

4

5

56

23

83

13

0

10

向量與矩陣

  • 純量: 1-by-1 陣列

  • 向量: m-by-1陣列1-by-n 陣列

  • 矩陣: m-by-n 陣列

  • 矩陣元素可以是數值或字元

  • 以行為主 Column-major

W. Wang


向量與矩陣 (續)

W. Wang


矩陣

W. Wang


Index

1 2 3 4 5

A =

1 6 11 16 21

2 7 12 17 22

3 8 13 18 23

4 9 14 19 24

5 10 15 20 25

4

10

1

6

2

1

2

3

4

5

8

1.2

9

4

25

A(1:5,5)

A(:,5)

A(21:25)

7.2

5

7

1

11

0

0.5

4

5

56

A(3,1)

A(3)

23

83

13

0

10

A(4:5,2:3)

A([9 14;10 15])

矩陣一維與二維索引 (index)

A(1:end,end)

A(:,end)

A(21:end)’

W. Wang


冒號

W. Wang


冒號 (續)

W. Wang


冒號 (續)

W. Wang


複數

W. Wang


複數 (續)

W. Wang


複數 (續)

W. Wang



[2x4]

[4x3]

[2x4]*[4x3] [2x3]

a(2nd row).b(3rd column)

操作向量與矩陣 (續)

W. Wang


-x1 + x2 + 2x3 = 2

3x1 - x2 + x3 = 6

-x1 + 3x2 + 4x3 = 4

操作向量與矩陣 (續)

W. Wang


向量化

W. Wang


向量化 (續)

  • tic; for I = 1:1000

    Density(I) = Mass(I)/(Length(I)*Width(I)*Height(I));

    end; toc

    elapsed_time =

    0.0500

使用 tic 與 toc 測量時間間隔

  • tic; Density = Mass./(Length.*Width.*Height); toc

  • elapsed_time =

  • 0

向量化程式比迴圈快上許多

W. Wang


向量化 (續)

W. Wang





Inline function
Inline Function

To construct a numerical function on command line

>> f1=inline(’x^3 + x -1’)

>> f2=inline(’x.^3 + x -1’)

>> a=2; A=[1 2 3];

>> f1(a)

>> f1(A)

>> f2(a)

>> f2(A)

W. Wang


符號運算Symbolic Computation


Creating symbolic expressions
Creating Symbolic Expressions

  • Declare symbolic variables

    >> syms x y z a b c

    >> A=[a b 1; 0 1 c; x 0 0]

    >> d=det(A)

W. Wang


Functions defined symbolically
Functions defined symbolically

>> f = a*x^2 + b*x + c + 2 * cos(x)

>> diff(f) % differentiate f

>> diff(f,a) % differentiate f w.r.t. a

>> diff(f,2) % the second derivative

>> int(f) % antiderivative

>> int(f,0,3) % definite int. over [0,3]

>> int(f,a) % integral w.r.t. a

W. Wang


Evaluating symbolic expressions
Evaluating Symbolic Expressions

  • To evaluate function defined earlier at x=2

    >> f = a*x^2 + b*x + c + 2 * cos(x)

    >> subs(f,x,2)

    >> g=subs(f, [a,b,c], [2,-3,5])

    >> subs(g,x,-2)

  • To convert to floating point number

    >> double(subs(g,x,-2))

    >> double(5+cos(1/2))

W. Wang


Solving equations symbolically
Solving Equations Symbolically

  • To solve the equation

    >> syms x a b c

    >> f = a*x^2 + b*x + c

    >> solve(f)

  • To solve for y in terms of t, r, k, C

    >> syms t y r k C

    >> f = log(y)-log(r-y) – k*t – C

    >> y = solve(f,y)

  • To find t such that y=5

    >> solve(y-5, t)

W. Wang



Boolean
布林 (Boolean) 運算元

1 = 真 TRUE

0 = 假 FALSE

W. Wang


程式流程控制

  • 邏輯控制: if/ switch

ifI == J

A(I,J) = 2;

elseifabs(I-J) == 1

A(I,J) = -1;

else

A(I,J) = 0;

end

switchalgorithm

case'ode23‘

str ='2nd/3rd order';

case{'ode15s', 'ode23s'}

str ='stiff system';

otherwise

str ='other algorithm';

end

W. Wang


程式流程控制 (續)

  • 迴圈控制: for / while

N = 10;

for I = 1:N

for J = 1:N

A(I,J) = 1/(I+J-1);

end

end

I = 1; N = 10;

while I <= N

J = 1;

while J <= N

A(I,J) = 1/(I+J-1);

J = J+1;

end

I = I+1;

end

W. Wang


Script
底稿 (script)

  • 標準 ASCII 文字檔包含一連串 MATLAB 的指令

  • 輸入 PlotSine指令後,Matalb 會將PlotSine.m 檔直譯 (Interpreter) 並執行 (execution)

  • % 後面是註解

  • 底稿中的變數是基本工作空間的全域變數

  • 容易進行變數檢視及除錯

W. Wang


Function
函式 (function)

  • 函式可將程式模組化,提供更多功能,並易於維護與改善

  • 通常包含輸入與輸出

  • 變數預設為局部的 (local)

  • 使用者可以將變數改為全域的 (global)

W. Wang


函式名稱 (須與檔案名稱相同 .m)

輸出引數

輸入引數

線上說明

MATLAB

程式主體

指令列文法

  • output_value = mean(input_value)

函式結構

function y = mean(x)

% MEAN Average or mean value.

% For vectors, MEAN(x) returns the mean value.

% For matrices, MEAN(x) is a row vector

% containing the mean value of each column.

[m,n] = size(x);

if m == 1

m = n;

end

y = sum(x)/m;

W. Wang


Workspace
工作空間 (Workspace)

  • MATLAB (基本) 工作空間:

    • 供指令列與底稿變數使用

  • 函式工作空間:

    • 每個函式有它自己的工作空間以儲存該函式的局部變數

    • 可透過輸入與輸出引數與函式空間傳遞變數值

    • 可增加程式結構化與避免變數名稱衝突

  • 全域工作空間:

    • 全域工作空間可供多重工作空間使用

    • 若要在各個工作空間使用需要有啟動的動作

W. Wang


不同工作空間中傳遞資料

MATLAB

工作空間

函式工作空間

函式輸入輸出引數

全域變數

全域工作空間

  • 在相關工作空間中設定全域變數

  • global variable_name

W. Wang



二維繪圖

  • 給定 x 座標值與 y 座標值

  • 指定顏色,連線型態,標誌符號

plot(xdata, ydata, 'color_linestyle_marker')

plot(x1, y1, 'clm1', x2, y2, 'clm2', ...)

W. Wang


二維繪圖 (續)

W. Wang


二維繪圖 (續)

W. Wang


TITLE

LEGEND

TEXT

or

GTEXT

YLABEL

CURVES

二維繪圖 (續)

XLABEL

W. Wang


二維繪圖 (續)

» x = 0:.1:2*pi;

» y = sin(x);

» plot(x,y)

W. Wang


二維繪圖 (續)

  • x = 0:.1:2*pi;

  • y = sin(x);

  • plot(x,y,'b')

  • grid on

  • hold on

  • plot(x,exp(-x),'r:*')

W. Wang


二維繪圖 (續)

  • title('2-D Plots')

  • xlabel('Time')

  • ylabel('Sin(t)')

  • text(pi/3,sin(pi/3),...

  • '<--Sin(\pi/3)')

  • legend('Sine Wave', ...

  • 'Decaying Exponential')

W. Wang


二維繪圖 (續)

» axis([0 2*pi 0 1])

W. Wang


二維繪圖 (續)

subplot(#rows, #cols, index)

  • subplot(2,2,1);

  • plot(1:10)

  • subplot(2,2,2)

  • x = 0:.1:2*pi;

  • plot(x,sin(x))

  • subplot(2,2,3)

  • x = 0:.1:2*pi;

  • plot(x,exp(-x),’r’)

  • subplot(2,2,4)

  • plot(peaks)

W. Wang


二維繪圖 (續)

LOGLOG

Both axes

logarithmic

SEMILOGY

log Y

linear X

SEMILOGX

log X

linear Y

PLOTYY

2 sets of

linear axes

W. Wang


三維繪圖

plot3(xdata, ydata, zdata, 'clm', ...)

» z = 0:0.1:40;

» x = cos(z);

» y = sin(z);

» plot3(x,y,z)

W. Wang


三維繪圖 (續)

W. Wang


  • x = [0 1 2 3];

  • y = [0 2 4 6 8];

  • [xx, yy] = meshgrid(x,y)

    xx =

    0 1 2 3

    0 1 2 3

    0 1 2 3

    0 1 2 3

    0 1 2 3

    yy =

    0 0 0 0

    2 2 2 2

    4 4 4 4

    6 6 6 6

    8 8 8 8

  • zz = xx + yy;

  • surf(xx,yy,zz)

三維繪圖 (續)

W. Wang


三維繪圖 (續)

W. Wang


三維繪圖 (續)

W. Wang


參考資料

  • 鈦思科技股份有限公司Matlab 簡介投影片

  • Slides by Gerald Recktenwaldhttp://www.prenhall.com/recktenwald.

  • A MATLAB Companion for Multivariable Calculus, by Jeffery Cooper

W. Wang


線上教學

  • MATLAB 程式設計與應用(網路版), 張智星

    - MATLAB基本運算, 基本平面繪圖, 基本立體繪圖

    http://www.cs.nthu.edu.tw/~jang/mlbook/

    - 習題精選

    http://neural.cs.nthu.edu.tw/jang/books/matlab/exercise/list.asp?sepField=Chapter

  • 計算機應用, 吳俊諆

    - MATLAB 使用方法與工程上的應用

    http://webclass.ncu.edu.tw/~junwu/

  • 國立台北科技大學,微積分電腦輔助學習網站

    - MATLAB 使用介紹 (包含MATLAB 指令簡介):

    http://math.ntut.edu.tw:8000/matlab/course.htm

    - MATLAB 應用實例:

    http://math.ntut.edu.tw:8000/matlab/ex.htm

W. Wang


線上教學 (續)

  • Matlab 線上教材, 單維彰

    http://libai.math.ncu.edu.tw/bcc16/B/matlab/

  • Matlab 簡介, 馮丁樹

    http://ecaaser5.ecaa.ntu.edu.tw/weifang/matlab/index-matlab.htm

  • Matlab 程式設計, 陳榮輝

    - 首頁

    http://che.cycu.edu.tw/jason/complang(Fall2002)/index.htm

    - 課程內容

    http://che.cycu.edu.tw/jason/complang(Fall2002)/class%20Handouts.htm

W. Wang


線上教學 (續)

  • MATLAB 工具箱功\能簡介

    http://wavenet.cycu.edu.tw/~cpse/matlab.html

  • 如何建立 stand-alone 的MATLAB 應用程式, 方煒、饒瑞佶

    http://ecaaser5.ecaa.ntu.edu.tw/weifang/BIO-ctrl/compiler/standalone.htm

W. Wang


線上教學 (續)

(1) MATLAB Online Reference Documentation (U. of Maryland)

http://www-unix.umbc.edu/matlab/ReferenceTOC.html

(2) Matlab Resources (George Mason U.)

http://bass.gmu.edu/matlab/matlab.html

(3) MatLab Tutorial (Utah)

http://www.math.utah.edu/~eyre/computing/matlab-intro/index.html

(4) Matlab Basics Tuturial (Carnegie Mellon)

http://www.engin.umich.edu/group/ctm/basic/basic.html

W. Wang


線上教學 (續)

(5) A Practical Introduction to MATLAB (Michigan Tech)

http://www.math.mtu.edu/~msgocken/intro/intro.html

(6) Matlab Lessons (US Naval Academy)

http://web.ew.usna.edu/~mecheng/DESIGN/CAD/MATLAB/usna.html

(7) Maine大學的MATLAB Educational Sites

http://www.eece.maine.edu/mm/matweb.html

(8) MATLAB教學 University of New Hampshire

http://www.math.unh.edu/~mathadm/tutorial/software/matlab/

W. Wang


線上教學 (續)

(9) MATLAB教學 University of British Columbia

http://www.cs.ubc.ca/spider/cavers/MatlabGuide/guide.html

(10) MATLAB教學 University of Florida

http://www.math.ufl.edu/help/matlab-tutorial/

(11) MATLAB教學 University of California at Los Angeles

http://www.biomath.medsch.ucla.edu/faculty/sblower/biomath209/tutorial/MatlabTutorial.htm

(12) 伊利諾大學Heath教授所收集的MATLAB Resources

http://www.cse.uiuc.edu/heath/scicomp/matlab.html

W. Wang


ad