數值分析 (Numerical Analysis)

Slides:



Advertisements
Similar presentations
Differentiation 微分 之二 以公式法求函數的微分. Type 函數形式 Function f (x) Derivative d f (x) /d x c=constant 常數 c0 Power of x xaxa a x a-1 Trigonometric 三角函數 sin x cos.
Advertisements

工職數學 第四冊 第一章 導 數 1 - 1 函數的極限與連續 1 - 2 導數及其基本性質 1 - 3 微分公式 1 - 4 高階導函數.
大綱 1. 三角函數的導函數. 2. 反三角函數的導函數. 3. 對數函數的導函數. 4. 指數函數的導函數.
變數與函數 大綱 : 對應關係 函數 函數值 顧震宇 台灣數位學習科技股份有限公司. 對應關係 蛋餅飯糰土司漢堡咖啡奶茶 25 元 30 元 25 元 35 元 25 元 20 元 顧震宇 老師 台灣數位學習科技股份有限公司 變數與函數 下表是早餐店價格表的一部分: 蛋餅 飯糰 土司 漢堡 咖啡 奶茶.
第一單元 建立java 程式.
Introduction to C Programming
MATLAB小结、 经典迭代法、CG.
1012 MATLAB 教學 彭奕翔 2013/02/27.
数学软件 Matlab —— 二维平面作图 —— 三维空间作图.
数值计算的工具—MATLAB 电子计算机技术为应用数学解决实际问题创造了物质条件 。
5.1 自然對數函數:微分 5.2 自然對數函數:積分 5.3 反函數 5.4 指數函數:微分與積分 5.5 一般底數的指數函數和應用 5.6 反三角函數:微分 5.7 反三角函數:積分 5.8 雙曲函數.
MATLAB簡介 MATLAB程式設計《入門篇》
Chapter 5 迴圈.
MATLAB介紹.
JDK 安裝教學 (for Win7) Soochow University
第1章 認識Arduino.
范洪源 臺灣師範大學數學系 MATLAB 基本功能介紹 范洪源 臺灣師範大學數學系.
4B冊 認識公倍數和最小公倍數 公倍數和最小公倍數的關係.
Java程式概觀.
銳角三角函數的定義 授課老師:郭威廷.
SQL Stored Procedure SQL 預存程序.
Methods of Integration 積分的方法
R教學 安裝RStudio 羅琪老師.
第一讲 MATLAB简介 1.1 MATLAB与通信仿真 1.1.1 通信电路与系统仿真 1.1.2 MATLAB的发展史
Application of Matlab Language
ASP.NET基本設計與操作 建國科技大學 資管系 饒瑞佶 2007年.
安裝JDK 安裝Eclipse Eclipse 中文化
Matlab基础介绍 Matlab 简介 Matlab 的安装与启动 Matlab 编程基础 Matlab 在数字信号处理课程中的应用.
黃聰明 國立臺灣師範大學數學系 MATLAB 基本功能介紹 黃聰明 國立臺灣師範大學數學系
第二章 SPSS的使用 2.1 啟動SPSS系統 2.2 結束SPSS系統 2.3 資料分析之相關檔案 2.4 如何使用SPSS軟體.
1.2 MATLAB变量表达式与数据格式 MATLAB变量与表达式 MATLAB的数据显示格式
雲端計算.
邏輯關係運算 == 等於 & 且 (logical and) ~= 不等於 | 或 (logical or) < 小於
Fortran 程式語言 之 編與譯(二) 張基昇.
数学建模与数学实验 MATLAB作图.
授課教授:張寶基 助教:梁凱雯 郭千豪 音視訊處理實驗室 2014 / 9 / 30
程式設計實習課(四) ----C 函數運用----
第一單元 建立java 程式.
建立一 function s (type) 可以用來繪製cyclic-harmonic curves
分支宣告與程式設計 黃聰明 國立臺灣師範大學數學系
Ch2多項式函數 2-2 多項式的運算與應用 影音錄製:陳清海老師 資料提供:龍騰文化事業股份有限公司.
第一章 直角坐標系 1-3 函數圖形.
数学建模 江西财经大学 数学与管理决策系 制作:华长生 华长生制作.
MATLAB 程式設計入門篇 二維平面繪圖 (part2)
本章學習目標 學習極座標繪圖與對數繪圖 學習雙y軸繪圖 學習向量場繪圖 學習統計繪圖 在Matlab的環境裡製作動畫
HTML – 超連結與圖片 資訊教育.
網頁程式概論 建國科技大學資管系 饒瑞佶 2015/9 V1 2016/4 V2 2016/9 V3.
Introduction to C Programming
CH05. 選擇敘述.
实验教学 MATLAB在行列式和矩阵中的应用 授课教师:杨梦云.
本章學習目標 學習三維繪圖的基本技巧 學習peaks() 函數的用法 學習二維與三維等高線圖的繪製 學習三維圖形的編修
撰寫MATLAB基礎財務程式 柯婷瑱.
微積分網路教學課程 應用統計學系 周 章.
挑戰C++程式語言 ──第8章 進一步談字元與字串
微積分 第二次上機 Matlab 教學 2007/10/30 陳逸嬿.
MicroSim pspice.
5.1 弧度制 例 5.3 解:.
物理化學輔助學習工具 2018/12/04.
流程控制:Switch-Case 94學年度第一學期‧資訊教育 東海大學物理系.
第二章 三角函數 2-5 三角函數的圖形.
函數應用(二)與自定函數.
Chapter 15 檔案存取 LabVIEW中的檔案存取函數也可將程式中的資料儲存成Excel或Word檔。只要將欲存取的檔案路徑位址透過LabVIEW中的路徑元件告訴檔案存取函數後,LabVIEW便可將資料存成Excel或Word檔;當然也可以將Excel或Word檔的資料讀入LabVIEW的程式中。
第七章 資料轉換和 個案選擇 7.1 前言 7.2 〝Recode〞功能 7.3 〝Compute〞功能 7.4 〝Count〞功能
1-1 二元一次式運算.
國立台灣大學 關懷弱勢族群電腦課程 By 資訊工程 黃振修
第7章 MATLAB工程计算.
第一章 直角坐標系 1-3 函數及其圖形.
第四組 停車場搜尋系統 第四組 溫允中 陳欣暉 蕭積遠 李雅俐.
物理化學輔助學習工具 2018/12/04.
Presentation transcript:

數值分析 (Numerical Analysis) 國立台北科技大學 能源與冷凍空調工程系 施陽正 老師 九十九年九月

Review of Matlab 國立台北科技大學冷凍空調工程系

簡 介 Matlab 是套應用於科學與工程領域中數值計算、分析與模擬的應用軟體,結合了數值分析、矩陣運算、訊號處理、系統模擬及繪圖等功能,功能強大、操作介面簡易。在大學課程中應用 Matlab 來輔助教學,例如線性代數、控制系統、訊號處理以及微積分。『微積分電腦輔助學習』網站由介紹一般與廣泛的應用方法切入,並以微積分為主要輔助目標。

Matlab 全文為 "matrix laboratory",原始發展理念是提供完整的矩陣運算指令,將資料元素當成是矩陣來處理,而主要的用途就是作矩陣式的數學運算。隨著日後增加的數學運算需求而增加了系統模擬、數值分析、訊號處理及圖形等功能,也容許使用者建立、運算其他不同的資料型態,滿足更多樣、更深入的運算需求,使 Matlab 應用範圍更為廣大。

基本使用語法 Matlab 中進行基本運算的方式,就是在 Matlab 命令視窗內的提示符號(“>>” 或 “?”)後面輸入運算,然後按 Enter 鍵。

例 1: >>(7*3+5.5)/10        ans =              2.6500  上例中,若不希望 Matlab 在每次運算後都顯示結果,則在運算是後面加上 “;” 即可。        >>(7*3+5.5)/10;        查詢運算結果就在提示符號『>>』後面鍵入 "ans" 即可。         ans =              2.6500

例 2: 另外,使用者也可以將運算結果儲存在自訂的變數中。 >>n = (7*3+5.5)/10        n =              2.6500

例 3: 如果要一次輸入的運算式在一個以上,我們可以用 "," 或 ";" 來隔開。 >>n = (7*3+5.5)/10; p = n ^ 5        p =           130.6861

例 4: 若是運算式太長的話,則可以用三個句號 "..." 隔開延伸到下一行 >>(7*3+5.5)/10*... 50^5 若是運算式太長的話,則可以用三個句號 "..."  隔開延伸到下一行 >>(7*3+5.5)/10*...        50^5        ans =              828125000

例 5: 在運算式中可以 "%" 符號加入文字,當作運算式的註解,運用在 Matlab 程式撰寫中可提高可讀性。 >>m = (7*3+5.5)/ 10    %將運算結果儲存在變數 m 中        m =              2.6500

例 6: Matlab 中有一些永久常數(Permanent Constants)供使用者直接呼叫。 >>pi        ans =              3.1416

常用到的幾個 Matlab 永久常數: 常數名稱 常數代表意義 i、j 基本需數單位( ) eps 代表電腦無法分析非常小的數 inf 無限大 Nan或NaN 無法定義的數值(Not A Number) pi 圓周率 p = 3.1415926... realmax 顯示系統能表示的最大數值 realmin 顯示系統能表示的最小數值

一般數學運算 我們可以透過 Matlab 中的內建函示執行一般的數學運算。 例 1:         >> y=sin(50)*exp(-0.9*2^3)         y =            -1.9589e-004

常用基本函數 sqrt( x ) 求 x 的平方根 real( z ) 求複數 z 的實部 imag( z ) 求複數 z 的虛部 conj( z ) 求複數 z 的共軛複數 round( x ) 求x四捨五入後的最接近整數 fix( x ) 捨去小數求對應於x的整數 floor( x ) 求不大於 x 中所有數的最大整數 ceil( x ) 求不小於 x 中所有數的最小整數 rat( x ) 將實數 x 化為分數表示 rats( x ) 將實數 x 化為多項分數展開

sign( x ) 符號函數(Signum function) x<0,sign( x )=-1 x=0,sign( x )=0 當 x >0時,sign( x )=1 rem( x , y ) 求x除以 y 的餘數 gcd( x , y ) 整數 x 和 y 的最大公因數 lcm( x , y ) 整數 x 和 y 的最小公倍數 exp( x ) 自然指數(以 e 為底的指數) pow2( x ) 2的指數 log( x ) 自然對數以( e 為底的對數) log2( x ) 以2為底的對數 log10( x ) 以10為底的對數

常用三角函數: 函數名稱 函數功能 sin(x) 正弦函數 cos(x) 餘弦函數 tan(x) 正切函數 asin(x) 反正弦函數 acos(x) 反餘弦函數 atan(x) 反正切函數 atan2(x,y) 四象限的反正切函數 sinh(x) 雙曲正弦函數 cosh(x) 雙曲餘弦函數 tanh(x) 雙曲正切函數 asinh(x) 反雙曲正弦函數 acosh(x) 反雙曲餘弦函數 atanh(x) 反雙曲正切函數

繪圖 這裡介紹 Matlab 繪製一維曲線、二維曲面的方法以及儲存、列印的用法。 基本繪圖     plot 是 Matlab 繪製一維圖形的基本函數,透過各座標點的定義,再呼叫使用 plot 就可以完成簡易的一維圖形。

國立台北科技大學冷凍空調工程系 施陽正 老師 例一: >> x=linspace(0, 2*pi, 50);          >> y=cos(x);          >> plot(x,y); 國立台北科技大學冷凍空調工程系 施陽正 老師

國立台北科技大學冷凍空調工程系 施陽正 老師 例二: >> x=linspace(0, 2*pi, 50);          >> y=cos(x);          >> loglog(x,y); 國立台北科技大學冷凍空調工程系 施陽正 老師

國立台北科技大學冷凍空調工程系 施陽正 老師 例三: x軸以對數為單位 和 y軸則為一般線性為單位          >> x=linspace(0, 2*pi, 50);          >> y=cos(x);          >> semilogx(x,y); 國立台北科技大學冷凍空調工程系 施陽正 老師

國立台北科技大學冷凍空調工程系 施陽正 老師 例四: x軸 為一般線性為單位y軸則以對數為單位          >> x=linspace(0, 2*pi, 50);          >> y=cos(x);          >> semilogy(x,y); 國立台北科技大學冷凍空調工程系 施陽正 老師

例五: 使用plot除了如上述繪製方式外,我們可以用plot來繪製多條圖線。 plot繪製多條圖線          >> x=linspace(0, 2*pi, 50);          >> plot(x, sin(x), x, cos(x));

plot繪製圖行功能中容許使用者改變顏色以及圖形樣式,可以選擇的顏色以及圖形樣式如下表: 字元 代表顏色 圖形樣式符號 代表圖形樣式 y 黃色 . 點 m 洋紅色 O 圓圈 c 青色 x 『X』符號 r 紅色 + 『+』符號 g 綠色 * 『*』符號 b 藍色 - 實線 w 白色 : 點線 k 黑色 -. 長點線 -- 虛線

國立台北科技大學冷凍空調工程系 施陽正 老師 例六: >> x=linspace(0, 2*pi, 50);          >> plot(x, sin(x),'r', x, cos(x),'k');   %sin(x)以紅色表示 cos(x) 以黑色表示 國立台北科技大學冷凍空調工程系 施陽正 老師

國立台北科技大學冷凍空調工程系 施陽正 老師 例七: 改變plot圖形樣式          >> x=linspace(0, 2*pi, 50);          >> plot(x, sin(x),'r.',x, cos(x),'k-.'); %sin(x)以紅色點圖表示表示 cos(x) 以黑色長點線表示 國立台北科技大學冷凍空調工程系 施陽正 老師

基本繪圖介紹完成後,皆下來介紹一維圖形其他的輔助功能。圖形繪製中為了增加圖形的可讀性,通常會在圖形中加上圖形註解以及調整圖軸以凸顯主題。 『axis』用來調整圖形的圖軸範圍

國立台北科技大學冷凍空調工程系 施陽正 老師 例八:『axis』整圖形的圖軸範圍          >> x=linspace(0, 2*pi, 50);          >> y=cos(x);          >> plot(x,y); 國立台北科技大學冷凍空調工程系 施陽正 老師

國立台北科技大學冷凍空調工程系 施陽正 老師 >> axis([0,5,-0.5,0.5]); 國立台北科技大學冷凍空調工程系 施陽正 老師

若要在圖形中加入圖形註解,我們可以使用 『xlabel』、『ylabel』、『title』、『legend』、『grid on』 例九: >>x=linspace(0, 2*pi, 50);          >>plot(x, sin(x),'r.',x, cos(x),'k-.');          >>xlabel('x');                                  % x軸註解          >>ylabel('y');                                  % y軸註解          >>title('ex');                                    % 圖形標題          >>legend('y = sin(x)','y = cos(x)');  % 圖形註解          >>grid on;                                        % 顯示格線 國立台北科技大學冷凍空調工程系 施陽正 老師

更進一步地我們可以用subplot將數個小圖顯示在同一個視窗當中。 例十: >>x=linspace(0, 2*pi, 50);   >>subplot(2,2,1); plot(x, sin(x));   >>subplot(2,2,2); plot(x, cos(x));   >>subplot(2,2,3); plot(x, sinh(x));   >>subplot(2,2,4); plot(x, cosh(x)); 國立台北科技大學冷凍空調工程系 施陽正 老師

二維圖形 針對二維圖形,Matlab 有提供一些二維圖形的函數,根據不同的圖形特性提供不同函數,以下將列表整理並舉例說明 函數名稱 函數功能 bar 長條圖 fplot 精確的函數圖形 polar 極座標圖 hist 累計圖 rose 極座標累計圖 stairs 階梯圖 fill 實心圖

國立台北科技大學冷凍空調工程系 施陽正 老師 例十一: bar( )長條圖           >>x=1:20;           >>y=rand(size(x));           >>bar(x,y);                                                    國立台北科技大學冷凍空調工程系 施陽正 老師

國立台北科技大學冷凍空調工程系 施陽正 老師 例十二: fplot ( )精確的函數圖形  某些函數我們需要較為精細的數據時,可以運用fplot 來幫我們完成。           >> x=linspace(0, 2*pi, 50);           >>fplot(‘sin(1/x)’, [0.001 0.5]); % [0.001 0.5]為繪 圖範圍                                                      國立台北科技大學冷凍空調工程系 施陽正 老師

國立台北科技大學冷凍空調工程系 施陽正 老師 例十三: polar ( ) 極座標圖           >>theta=linspace(0, 2*pi);           >>r=cos(8*theta);           >>polar(theta, r);                                         國立台北科技大學冷凍空調工程系 施陽正 老師

國立台北科技大學冷凍空調工程系 施陽正 老師 例十四: hist ( )、rose( ) 應用於觀察大量資料的分佈與統計資訊           >> x=rand(1,42,1000);           >> hist(x,42);                                                                                國立台北科技大學冷凍空調工程系 施陽正 老師

國立台北科技大學冷凍空調工程系 施陽正 老師 >> x=rand(1,1000);          >> rose(x);  %rose( ) 是以極座標表示,將資料大小表示為角度、資料個數表示為距離                                         國立台北科技大學冷凍空調工程系 施陽正 老師

國立台北科技大學冷凍空調工程系 施陽正 老師 例十五: stairs( ) 繪製梯型圖          >>x=linspace(0,10,50);          >>y=sin(x).*exp(-x/3);          >>stairs(x,y);                                                    國立台北科技大學冷凍空調工程系 施陽正 老師

國立台北科技大學冷凍空調工程系 施陽正 老師 例十六: fill( ) 實心圖          >>x=linspace(0,10,100);          >>y=sin(x).*exp(-x/9);          >>fill(x,y,'r');      % 'r' 代表紅色                                                     國立台北科技大學冷凍空調工程系 施陽正 老師

三維圖形 Matlab 中的三維空間繪圖基本函數為 『mesh』、『plot3』,其中 mesh 可以繪製出立體網狀圖,而  plot3 可以繪製出立體曲線圖,所繪製出的圖形會以不同的顏色來代表不同高度。

國立台北科技大學冷凍空調工程系 施陽正 老師 例十七: 立體網狀圖 z=x3+y3-3xy          >> [x,y]=meshgrid(-2:0.1:2);          >>z=x.^3+y.^3-3*x.*y;          >>mesh(x,y,z)          國立台北科技大學冷凍空調工程系 施陽正 老師

國立台北科技大學冷凍空調工程系 施陽正 老師 例十八: z=x3+y3-3xy          >> [x,y]=meshgrid(-2:0.1:2);          >>z=x.^3+y.^3-3*x.*y;          >>plot3(x,y,z)                                                         國立台北科技大學冷凍空調工程系 施陽正 老師

國立台北科技大學冷凍空調工程系 施陽正 老師 另外一個 surf 用法類似 mesh ,介紹如下: 例十九: 立體曲面圖 z=x3+y3-3xy          >> [x,y]=meshgrid(-2:0.1:2);          >>z=x.^3+y.^3-3*x.*y;          >>surf(x,y,z)                                                         國立台北科技大學冷凍空調工程系 施陽正 老師

矩陣基本運算 矩陣基本運算 一個3x3矩陣         1  2  3          4  5  6          7  8  9  直接在 Matlab 命令視窗內的提示符號『>>』後面輸入,各項元素間至少以一個空格來分隔,列與列間則以";"分隔。而指令行最後加上個分號可避免顯示出許多不需要的東西。

例  6:         >>A = [1 2 3; 4 5 6; 7 8 9;]; 若想知道矩陣A之內容時,則直接提示符號『>>』 後面輸入『A』即可,螢幕之顯示結果如下:         A=            1 2 3       4 5 6 7 8 9

另一種輸入可以不加分號,但是強迫分行,亦可達到相同的效果: 例 7:         >> B=[1 3 5 7]   螢幕之顯示結果如下:        B=            1  3           5  7

Matlab 中矩陣的基本運算符號有以下這些 +:加法運算 -:減法運算 *:乘法運算 / :右除法運算 \:左除法運算         ^:次方運算 ' :轉置矩陣

例 8:(基本運算) 轉置矩陣: 乘法運算: 次方運算: >>B' >>B*B >>B^3       轉置矩陣:    >>B'    ans =        1 5        3 7 乘法運算:       >>B*B       ans =              16   24              40   64 次方運算:         >>B^3        ans =              856576  1353216              2255360 3563008

矩陣運算中所要注意的是『矩陣的左、右除法運算結果不相等』。 例 9:       >>C=[7 9;11 13];        >>B/C       ans =            2.5000 -1.5000             1.5000 -0.5000       >>B\C        ans =            -2  -3               3   4 Matlab中也可以進行複變數的宣告與運算,以“ I ”或“j”還代表虛數,如 y=2+3i。  Matlab中有幾個函數可以產生矩陣,例如:rand、magic、hilb。

例 10: rand(n) 與 rand(m,n) 將個別產生 nxn 與 mxn 亂數矩陣,元素分佈於0與1之間。        >>rand(3)        ans =        0.9501 0.4860 0.4565        0.2311 0.8913 0.0185        0.6068 0.7621 0.8214

magic(n)將產生一個列相加或行相加的和都相同的矩陣。 例 11: magic(n)將產生一個列相加或行相加的和都相同的矩陣。                      >> magic(5)                      ans =                      17 24   1   8 15                       23   5   7 14 16                        4   6 13 20 22                      10 12 19 21   3                      11 18 25   2   9

hilb(n)將產生一個 n x n 的 Hilbert 矩陣。 例 12: hilb(n)將產生一個 n x n 的 Hilbert 矩陣。                      >> hilb(3)                      ans =                            1.0000 0.5000 0.3333                            0.5000 0.3333 0.2500                            0.3333 0.2500 0.2000

常用矩陣運算函數 函數名稱 函數功能 inv(A) 求矩陣A的逆矩陣(inverse) det(A) 求矩陣A的行列式值 eig(A)

國立台北科技大學冷凍空調工程系 施陽正 老師 微積分應用 微積分中極線與連續是基本的要素。在極限方面這裡舉列幾個Matlab 範例。 Matlab 要配合 symbolic object 來使用。 國立台北科技大學冷凍空調工程系 施陽正 老師

Matlab 中以 diff 指令來作微分運算

例四: 積分運算(不定積分) syms x y;    %syms 定義符號變數 int(x) ans=1/2*x^2 int(sin(x)) ans=-cos(x)

程式撰寫 Matlab 對於高階應用需求提供程式撰寫的功能,可用來處理大量資料的計算 或系統模擬。 這樣的方式很類似過去作業系統DOS中撰寫的批次檔一般,把許多一連串的指令或函數集合起來運作。      通常MATLAB程式碼撰寫的檔案以『m』為副檔名。這些副檔名為『m』的 檔案一般又分為兩種類型,其中一種為巨集式的MATLAB命令集;另一種則是 構成函式(function)。使用者可以使用MATLAB內建的『M檔案編輯器』(M-File Editor)或其他編輯器來撰寫編輯M檔案。 底下為一個M檔案內容範例:(令檔名為sample1.m)

國立台北科技大學冷凍空調工程系 施陽正 老師 底下為一個M檔案內容範例: (令檔名為sample1.m)%程式撰寫繪圖   國立台北科技大學冷凍空調工程系 施陽正 老師

在MATLAB中我們要執行這個M檔案中的程式碼,可以在MATLAB的指令視窗中輸入 >>sample1 則會出現程式執行結果                              像sample1.m這類的M檔案所產生的效果,等同於在MATLAB指令列中一行一行輸入 sample1.m裡每一列指令所產生的結果。這類型的M檔案即為巨集式M檔案。 95/02

程式流程控制 MATLAB在程式撰寫應用中有一些指令會影響程式執行的流程, 可以歸納為兩類,一種為迴圈指令,另一種則是條件指令。 MATLAB迴圈類指令有 for迴圈 以及 while迴圈。 for迴圈 for 迴圈一般用法 for varname = x:y:z for varname = [a b c ...]

國立台北科技大學冷凍空調工程系 施陽正 老師 MATLAB條件類指令可分為 if-else 和 switch case 國立台北科技大學冷凍空調工程系 施陽正 老師

前面我們提過的範例sample1.m裡頭也有if條件指令 國立台北科技大學冷凍空調工程系 施陽正 老師

國立台北科技大學冷凍空調工程系 施陽正 老師

國立台北科技大學冷凍空調工程系 施陽正 老師 95/02 國立台北科技大學冷凍空調工程系 施陽正 老師