matlab
Download
Skip this Video
Download Presentation
Matlab 簡 介

Loading in 2 Seconds...

play fullscreen
1 / 114

Matlab 簡 介 - PowerPoint PPT Presentation


  • 180 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

slide2
Ask Questions,

Find Answers,

Enjoy the Journey!

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

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

W. Wang

slide4
第三種科學方法
  • 理論
  • 實驗
  • 計算

W. Wang

slide5
計算科學
  • 以科學和工程知識描述問題與釐清所需資料
  • 以數學和統計知識設計模型
  • 以數值分析知識設計與分析演算法、發展數學軟體、估計誤差

W. Wang

slide6
計算科學
  • 統合科學、數學、電腦知識實作數學軟體
  • 聰明的使用數學軟體分析數學模型
  • 跨領域 (interdisciplinary) 學科,需要合作
  • Computational Science, SIAM Review, vol. 43, no. 1, 2001

W. Wang

slide7

科學與工程

應用數學

資訊科學

計算科學架構
slide9
0 與 1 的世界 (續)
  • 二進位
  • 電腦怎麼樣‘寫字’ (ASCII, Unicode)
  • 電腦為什麼會唱歌 (聲源,取樣,頻率)
  • 電腦怎麼樣秀圖 (資料視覺化,影像處理)

W. Wang

slide10
為什麼會有誤差?
  • 電腦使用二進位 (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

slide12
以二進位儲存整數
  • 二進位可以無誤差的表示所有整數
  • 但是,電腦只能用有限大小的記憶體來儲存整數
  • 因此,電腦只能表示某些範圍的整數
  • 例如:以 16 位元大小可表示從 -32768 到 32767 的 65536 個整數

W. Wang

slide13
以二進位儲存整數 (續)
  • 假設 b 是一個二進位的位元符號
  • b=0 或 1

W. Wang

slide15
以二進位儲存非整數
  • 基本想法

W. Wang

slide16
以二進位儲存非整數 (續)
  • (0.8125)10 = (?)2

W. Wang

slide18
以二進位儲存非整數 (續)
  • 雙精準浮點數

W. Wang

slide19
以二進位儲存非整數 (續)
  • 雙精準浮點數數線

W. Wang

slide20
程式中的 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

slide24
亞利安5號 (續)
  • 發射後約40秒,3700公尺高處爆炸!http://www.youtube.com/watch?v=kYUrqdUyEpI
  • 發生什麼問題?

W. Wang

slide25
亞利安5號 (續)
  • 慣性參考系統軟體出錯
  • 紀錄側向速度的64位元浮點數,在慣性參考系統軟體中,被轉換成16位元的整數
  • 但卻超過其所能表示的最大數 (32,767)
  • 慣性參考系統因此被認定故障,向主電腦送出錯誤信號,並自動關機

W. Wang

slide26
亞利安5號 (續)
  • 控制火箭主電腦,錯把錯誤訊息當成火箭當時的火箭狀況參數,做出不必要的方向修正與旋轉
  • 推進器與火箭因而被空氣動力裂解
  • 終於導致安全系統啟動,自動引爆

W. Wang

slide29
波音 777
  • 全世界第一款完全以電腦技術設計的民用飛機
  • CATIA(Computer-aided Three-dimensional Interactive Application)
  • 空氣動力、複合材料、控制系統、發動機…
  • 數值偏微分方程解、超大型矩陣計算、最佳化問題、實驗設計…

W. Wang

slide30
飛翔與奔馳
  • 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

slide31
風洞
  • 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

slide32
模擬
  • 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

slide33

科學與工程

應用數學

資訊科學

計算科學架構
slide34
大綱
  • Matlab 基本介紹
  • 陣列運算 (向量與矩陣)
  • 資料視覺化 (二維與三維繪圖)
  • 程式寫作 (正確, 效率, 穩定)
  • 數學演算法, 電腦硬體架構

W. Wang

slide35

1 unit

驅動問題
  • 以蒙地卡羅法求 值
    • 了解問題
    • 擬定策略
    • 編寫程式
    • 顯示圖形
    • 執行程式
    • 分析數據

W. Wang

slide36
自學資源
  • 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

slide41
計算機

W. Wang

slide42
計算機 (續)
  • 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

slide47
生存法則:尋找程式碼
  • To see the code (of function fzero):>> type fzero
  • To find out where the code is:>> which fzero

W. Wang

slide51
風流

W. Wang

slide52
震動中的波
  • In Matlab: demo > Graphics > Vibrating logo

W. Wang

slide53
混沌
  • In Matlab: demo > Graphics > Lorenz attractor animation
  • 混沌是非週期性之物理系統的演化模式。系統的演化對初始條件非常敏感。
  • 實例:勞倫茲吸引子 (Lorenz Attractor)

W. Wang

slide54
生物現象
  • 人眼可輕易偵測移動中的物體,但難以分辨同一物體的靜止狀態
  • 對動物來說,這是重要的生存本能(掠奪、捕食、逃避)
  • 範例: 隱藏的形狀In Matlab: demo > More Examples > Hiden objects in motion

W. Wang

slide55
快速傅立葉轉換
  • Fast Fourier Transformation (FFT)
  • Time domain to frequency domain
  • 訊號處理,影像處理
  • 範例:太陽黑子強度頻率In Matlab: demo > Numerics > Fast Fourier Transformation

W. Wang

slide56
幾何結構
  • Convex hull:凸包
  • Delaunay tessellation:四面體嵌格
  • Voronoi diagram:多面體分區
  • 在科學,工程,統計,數學上用來分析數據
  • 範例:九點立方體In Matlab: demo > Numerics > Tessellation and interpolation of scattered data

W. Wang

slide58

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

slide60
矩陣

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

slide62
冒號

W. Wang

slide65
複數

W. Wang

slide69

a = [1 2 3 4; 5 6 7 8];

  • b = ones(4,3);
  • c = a*b
  • c =
  • 10 10 10
  • 26 26 26

[2x4]

[4x3]

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

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

操作向量與矩陣 (續)

W. Wang

slide70

A = [-1 1 2; 3 -1 1;-1 3 4];

  • b = [2;6;4];
  • x = inv(A)*b
  • x =
  • 1.0000
  • -1.0000
  • 2.0000
  • x = A\b
  • x =
  • 1.0000 %x1
  • -1.0000 %x2
  • 2.0000 %x3

-x1 + x2 + 2x3 = 2

3x1 - x2 + x3 = 6

-x1 + 3x2 + 4x3 = 4

操作向量與矩陣 (續)

W. Wang

slide71
向量化

W. Wang

slide72
向量化 (續)
  • 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

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

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

slide85
程式流程控制
  • 邏輯控制: 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

slide86
程式流程控制 (續)
  • 迴圈控制: 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

slide89

函式名稱 (須與檔案名稱相同 .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

slide91
不同工作空間中傳遞資料

MATLAB

工作空間

函式工作空間

函式輸入輸出引數

全域變數

全域工作空間

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

W. Wang

slide93
二維繪圖
  • 給定 x 座標值與 y 座標值
  • 指定顏色,連線型態,標誌符號

plot(xdata, ydata, \'color_linestyle_marker\')

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

W. Wang

slide96

TITLE

LEGEND

TEXT

or

GTEXT

YLABEL

CURVES

二維繪圖 (續)

XLABEL

W. Wang

slide97
二維繪圖 (續)

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

» y = sin(x);

» plot(x,y)

W. Wang

slide98
二維繪圖 (續)
  • x = 0:.1:2*pi;
  • y = sin(x);
  • plot(x,y,\'b\')
  • grid on
  • hold on
  • plot(x,exp(-x),\'r:*\')

W. Wang

slide99
二維繪圖 (續)
  • 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

slide100
二維繪圖 (續)

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

W. Wang

slide101
二維繪圖 (續)

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

slide102
二維繪圖 (續)

LOGLOG

Both axes

logarithmic

SEMILOGY

log Y

linear X

SEMILOGX

log X

linear Y

PLOTYY

2 sets of

linear axes

W. Wang

slide103
三維繪圖

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

» z = 0:0.1:40;

» x = cos(z);

» y = sin(z);

» plot3(x,y,z)

W. Wang

slide105

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

slide108
參考資料
  • 鈦思科技股份有限公司Matlab 簡介投影片
  • Slides by Gerald Recktenwaldhttp://www.prenhall.com/recktenwald.
  • A MATLAB Companion for Multivariable Calculus, by Jeffery Cooper

W. Wang

slide109
線上教學
  • 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

slide110
線上教學 (續)
  • 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

slide111
線上教學 (續)
  • 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

slide112
線上教學 (續)

(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

slide113
線上教學 (續)

(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

slide114
線上教學 (續)

(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