程式與科學計算 Lecture 2

Similar documents

<4D F736F F D C4EAC6D5CDA8B8DFB5C8D1A7D0A3D5D0C9FAC8ABB9FACDB3D2BBBFBCCAD4CEC4BFC6D7DBBACDCAD4BEEDBCB0B4F0B0B82DD6D8C7ECBEED2E646F63>

極限 limit 是由 無限接 近 的想法產生出來的數學概 念 最初用來決定某些函數在沒 有定義的點上的函數值 使得它 與鄰近的函數值有某種協調關 係 極限觀念的第一個應用 是 在決定函數由平均變化率導出瞬 間變化率 此過程即為微分 萊 布尼茲 Leibniz 從幾何觀點討論微分

996,,,,,,, 997 7, 40 ; 998 4,,, 6, 8, 3, 5, ( ),, 3,,, ;, ;,,,,,,,,,

2006年国家公务员招录考试行测真题(A)

微积分 授课讲义

精 勤 求 学 自 强 不 息 Born to win! 5 具 有 听 觉 的 不 足 6 个 月 的 婴 儿 能 迅 速 分 辨 相 似 的 语 音, 不 仅 仅 是 那 些 抚 养 这 些 婴 儿 的 人 使 用 的 语 言 的 声 音 而 年 轻 人 只 能 在 他 们 经 常 使 用 的

三維空間之機械手臂虛擬實境模擬

1-2 二元一次聯立方程式 21 例 1 代入法判斷二元一次聯立方程式的 { x3y5 2xy3 x1y2 x3y3 x2y1 xy 二元一次式 x y x+3y x-y x2y1 x2y1 { x3y5 2xy3 { 2x3y1 xy3 x2y1

Introduction to Hamilton-Jacobi Equations and Periodic Homogenization

例題. y = x x = 0 y = x 0 li 0 li 0 li = y = x x = 0 = f x) x = a x = a 2

. () ; () ; (3) ; (4).. () : P.4 3.4; P. A (3). () : P. A (5)(6); B. (3) : P.33 A (9),. (4) : P. B 5, 7(). (5) : P.8 3.3; P ; P.89 A 7. (6) : P.

Outline Speech Signals Processing Dual-Tone Multifrequency Signal Detection 云南大学滇池学院课程 : 数字信号处理 Applications of Digital Signal Processing 2

Thesis for the Master degree in Engineering Research on Negative Pressure Wave Simulation and Signal Processing of Fluid-Conveying Pipeline Leak Candi

untitled

考 纲 解 读 14 浙 江 省 普 通 高 考 语 文 科 考 纲 研 读 吴 美 琴 今 年 的 考 试 说 明, 我 用 了 八 个 字 进 行 概 括, 那 就 是 稳 中 微 调, 关 注 生 活 稳 中 微 调 :14 年 的 语 文 考 试 说 明 是 近 几 年 来 调 整 幅 度

( ) : ( ) (CIP) /.. :,003. () ISBN O4 44 CIP (00) : : 7 : 7007 : (09 ) : : :850 mm 68 mm / 3 :0.5 :60 :00 0

1. PDE u(x, y, ) PDE F (x, y,, u, u x, u y,, u xx, u xy, ) = 0 (1) F x, y,,uu (solution) u (1) u(x, y, )(1)x, y, Ω (1) x, y, u (1) u Ω x, y, Ωx, y, (P



7. 基本積分公式 (8) sec u tn udu = sec u + C (9) csc u cot udu = csc u + C () tn udu = ln cos u + C = ln sec u + C () cot udu = ln sin u + C = ln csc u + C

<3935BCC6A5D2C1CDB6D52E747066>


, 10, (Poincare) dθ, ( ) 2 1 dθ cos θ = E 2 dt K V V = cos θ E

(Microsoft Word - \246D\252k\267\247\255n_\275\306\277\357_.docx)

,,,,,,,,,,,,, :,, ;,,,,, ( ),,,, : ( ) ; ( ) ; ( ) ( ) ; ( ) ( A ) ; ( ) ( ),,,,,,, 80

untitled

Microsoft Word - ACI chapter00-1ed.docx

koji-13.dvi

x y z.... X Y (cdf) F (x, y) = P (X x, Y y) (X, Y ) 3.1. (X, Y ) 3.2 P (x 1 < X x 2, y 1 < Y y 2 ) = F (x 2, y 2 ) F (x 2, y 1 ) F (x 1, y 2

1 CPU

Untitled-3

余德浩诗词

4


3 (s05q6) The diagram shows the velocity-time graph for a lift moving between floors in a building. The graph consists of straight line segments. In t

Microsoft Word - 3D手册2.doc

Microsoft PowerPoint - 數控教材第四章

山东建筑大学学分制管理规定(试行)

Microsoft Word - 1神奇的矩阵2.doc

Microsoft Word - 第三章第一節第二節.doc

untitled

Vol. 36 ( 2016 ) No. 6 J. of Math. (PRC) HS, (, ) :. HS,. HS. : ; HS ; ; Nesterov MR(2010) : 90C05; 65K05 : O221.1 : A : (2016)

1

國立屏東教育大學碩士班研究生共同修業要點

PTS7_Manual.PDF

大 綱 最 有 利 標 目 的 及 類 型 最 有 利 標 之 辦 理 方 式 準 用 最 有 利 標 取 最 有 利 標 精 神 最 有 利 標 之 類 型 及 其 相 關 規 定 適 用 最 有 利 標 準 用 最 有 利 標 及 取 最 有 利 標 精 神 作 業 程 序 及 實 務 分 析

(baking powder) 1 ( ) ( ) 1 10g g (two level design, D-optimal) 32 1/2 fraction Two Level Fractional Factorial Design D-Optimal D

➀ ➁ ➂ ➃ ➄ ➅ ➆ ➇ ➈ ➉ Lecture on Stochastic Processes (by Lijun Bo) 2

目次 CONTENTS 2 1 乘法公式與多項式 二次方根與畢氏定理 因式分解 一元二次方程式

Geogebra A B C S Geogebra 1

ii

2016 年 地 质 工 程 系 教 学 工 作 安 排 2016 学 年 我 系 将 在 总 结 过 去 工 作 的 基 础 上, 结 合 今 年 学 院 以 抓 质 量 强 内 涵 促 改 革 调 结 构 建 品 牌 细 管 理 重 过 程 为 宗 旨, 以 规 范 管 理 深 化 内 涵 为

<4D F736F F D203136BCADBBD8D2E4D3EBD1D0BEBF2E646F63>


Microsoft Word - 9pinggb_A4.doc

Microsoft Word - 9pinggb_A4-f4.doc

理 论 探 索 事 业 单 位 改 革 的 五 点 思 考 余 路 [ 摘 要 ] 事 业 单 位 改 革 是 中 国 改 革 的 重 要 环 节, 其 影 响 力 和 难 度 不 亚 于 国 有 企 业 改 革 本 文 着 重 围 绕 推 进 事 业 单 位 改 革 应 考 虑 的 五 个 方 面

2深化教育教学改革、创新人才培养模式

Microsoft Word - 9pinggb_let.doc

实 习 上 下 点 表 格 解 释 和 相 关 纪 律 要 求 : 1 表 格 中 所 有 名 词 都 为 简 称, 包 括 医 院 名 称 四 年 级 五 年 级 各 专 业 名 称 等 所 有 时 间 都 为 学 生 装 好 行 李 出 发 时 间, 请 提 前 0 分 钟 将 行 李 运 到

简报158期.doc

Microsoft Word - 9pingb5_let.doc

退休權益.ppt [相容模式]

Microsoft Word - 1.《國文》試題評析.doc

$%%& ()*+, %&, %-&&%%,. $ %,, $,, & /$- 0(1 $%%& %& 234 %-%, 5&%6&633 & 3%%, 3-%, %643 -%%% :::; 7<9; %-%, 3$%$ :::;

# $# #!# # # # # # # %# # # &# # # # #! "

CMOS线性响应测试

Transcription:

多項式迴歸 解非線性方程式 數值積分 微分 解 ODE Matlab Math tools

多項式回歸 (regression):polyfit 找出最能夠代表 x, y 兩變數關係的 n 次多項式 假設 x 向量存有 x 變數的觀測資料,y 向量有 y 變數的觀測資料, 想要找出 x 與 y 之間的關係, 統計上會使用回歸計算 (regression) p = polyfit(x, y, n) n=1, 猜測 x 與 y 應該是線性相關, 即 y=ax+b, 結果回傳 p 向量會有兩個元素,p(1) 為係數 a,p(2) 為係數 b n=2, 猜測 x 與 y 應該是二次項關係, 即 y=ax 2 +bx+c, 結果回傳 p 向量會有三個元素,p(1)=a,p(2)=b,p(3)=c 依此類推,p 向量是用 n 次多項式 ax n +bx n-1 +cx n-2 + 回歸所得的係數, 長度為 n+1 求出回歸的 n 次多項式之後, 可以用 polyval(p,x), 以儲存在 p 向量的係數, 算出此 n 次多項式在 x 向量各元素的值

y 多項式回歸 : 範例 為了舉例方便, 先製造一組 x, y 資料, 各有 100 個資料點,x 為 0~10 之間的 100 個隨機值,y=cos(x) 但加上隨機的誤差值 : x=rand(1,100)*10; %data points of x (random between 0 and 10) y=cos(x)+2*rand(1,100); % data points of y (cos(x) with random noise) plot(x,y,'*') 3 2 1 0-1 -2-3 -4 0 2 4 6 8 10 x

y 多項式回歸 : 範例 接下來用線性 ( 一次 ) 二次 三次多項式進行資料回歸, 並且把回歸結果與原始資料點畫在同張圖上 p1=polyfit(x,y,1); p2=polyfit(x,y,2); p3=polyfit(x,y,3); 3 2 1 data n=1 fit n=2 fit n=3 fit xfit=0:0.1:10; yfit1=polyval(p1,xfit); yfit2=polyval(p2,xfit); yfit3=polyval(p3,xfit); 0-1 -2-3 plot(x,y,'*',xfit,yfit1,'r',xfit,yfit2,'g',xfit,yfit3,'k') legend('data','n=1 fit','n=2 fit', 'n=3 fit') -4 0 2 4 6 8 10 x

解非線性方程式 :fsolve 找出非線性方程 F(x)=0 的解 x = fsolve(@fun, x0) @fun: 求解的非線性方程 (F(x)) x0:initial guess of solution x:f(x)=0 的解 另外可以用 optimset 設定顯示疊代求解的過程 opt=optimset( Display, iter ) x = fsolve(@fun, x0, opt) ( 關於 optimset 的眾多設定, 可參考指令說明 )

解非線性方程組 : 範例一 求解 猜測解為 x=1 x 2 + 2 x 1 = 0 ( 直接傳入匿名函數 )( 只適用 Matlab 2011b 版本 ) >> y = @(x)x.^2+2*sqrt(x)-1 >> x = fsolve(y, 1) x = 0.2253

求解 猜測解為 x 1 = -5, x 2 = -5 解非線性方程組 : 範例二 2x 1 x 2 e x 1 = 0 x 1 + 2x 2 e x 2 = 0 ( 利用自訂函數 ) 開一個 m 檔, 用 function 設定求解的函數, 一個方程式為 F 的其中一個 column function F = myfun(x) F = [2*x(1) - x(2) - exp(-x(1)); -x(1) + 2*x(2) - exp(-x(2))]; 在主程式 ( 另一個 m 檔 ) 或指令視窗, 用 @ 將自訂函數送入 fsolve 指令求解, 給定猜測值 -5, -5, 並設定顯示疊代過程 x0 = [-5; -5]; % starting guess opt=optimset('display','iter'); x = fsolve(@myfun,x0,opt)

求解結果 After several iterations, fsolve finds an answer: Norm of First-order Trust-region Iteration Func-count f(x) step optimality radius 0 3 23535.6 2.29e+004 1 1 6 6001.72 1 5.75e+003 1 2 9 1573.51 1 1.47e+003 1 3 12 427.226 1 388 1 4 15 119.763 1 107 1 5 18 33.5206 1 30.8 1 6 21 8.35208 1 9.05 1 7 24 1.21394 1 2.26 1 8 27 0.016329 0.759511 0.206 2.5 9 30 3.51575e-006 0.111927 0.00294 2.5 10 33 1.64763e-013 0.00169132 6.36e-007 2.5 Equation solved. fsolve completed because the vector of function values is near zero as measured by the default value of the function tolerance, and the problem appears regular as measured by the gradient. x = 0.5671 0.5671

Matlab 提供幾種常見的數值積分方法 : 梯形法 trapz(x) 用一次多項式直線逼近 數值積分 適應式辛普森法 adaptive Simpson quad(x) 用二次多項式曲線逼近 global adaptive quadrature integral(x) 自動判斷高階多項式逼近

數值積分 (1): 梯形法 trapz Z = trapz(x, Y) X 向量 : 在 X 座標上的分隔位置, Y 向量 : 每個 X 位置的 f(x) 值 Z 變數 : 以梯形法計算 f(x) 在積分區間 (X(1)=a~X(n)=b) 的定積分結果 範例一 (x,y 為資料點 ) >> x=[0 10 20 30 40]; >> y=[0.5 0.7 0.9 0.6 0.4]; >> area1=trapz(x,y) area1 = 26.5000 範例二 (y 為 x 的函數 ) >> x=linspace(0,pi,25); >> y=sin(x); >> area2=trapz(x,y) area2 = 1.9971

數值積分 (2): 辛普森法 quad Z = quad(fun, a, b) fun 是要積分的函數,a,b 是積分區間,Z 是積分結果範例二 ( 利用自訂函數 ) 範例一 ( 直接傳入匿名函數 ) ( 只適用 Matlab 2011b 版本 ) >> y=@(x) 1/(x^3-2x-5) >> Q = quad(y,0,2) Q = -0.4605 開一個 m 檔, 用 function 設定要積分的函數 function y = myfun(x) y = 1./(x.^3-2*x-5); 在主程式 ( 另一個 m 檔 ) 或指令視窗, 用 @ 將自訂函數送入 quad 指令 >> Q = quad(@myfun,0,2) Q = -0.4605

數值積分 (3):integral Z = integral(fun, a, b) fun 是要積分的函數,a,b 是積分區間,Z 是積分結果 可計算暇積分 積分下限接近奇異點 singularity 等狀況 範例 : e x2 dx 0 >> y = @(x) exp(-x.^2); >> Q = integral(y,0,inf) Q = 0.8862

數值微分 :diff, gradient dfdx = diff(f)./dx: forward difference 計算一次微分 diff(f) 計算 F 向量前後兩個元素的差值 回傳結果 dfdx 向量會比 F 向量少一個元素 dx 是微分間距 ( 可能是純量或向量 ) dfdx = diff(f,n)./(dx.^n) forward difference 計算 n 次微分 diff(f,2) = diff(diff(f)) df(x) dx = F x i+1 F(x i ) x d n F(x) dx n dfdx = gradient(f, dx): central difference 一次微分 F 是一維向量, 回傳結果 dfdx 的長度與 F 相同 [dfdx, dfdy] = gradient(f, dx, dy) 計算曲面的梯度向量 F 是裝有曲面資料的二維矩陣 dfdx 是 X 方向的微分,dFdY 是 Y 方向的微分 df(x) dx = F x i+1 F(x i 1 ) 2 x F(x, y) = F F i + x y j

數值微分範例 : y=sin(x) 的一次 二次微分 ni=100; x=linspace(-pi,pi,ni); dx=(2*pi)/((ni-1)); y=sin(x); dy=gradient(y,dx); ddy=gradient(dy,dx); plot(x,y) hold on plot(x,dy,'r-') plot(x,ddy,'k-') legend('y=sin(x)','y''','y"') hold off

數值解常微分方程組 (ODE):ode45 t: 產生時間向量 [t, X]=ode45(@fun, [t0,t1], X0) X:solution 矩陣, 每一個 column 代表一個應變數對應到時間向量的變化值 @fun: 求解的 ODE 方程組 [t0 t1]: 積分時間區間 X0: 每個應變數初始值 X(t) = (x 1 t, x 2 t ) dx 1 (t) = f dt 1 (x 1 (t), x 2 (t), t) dx 2 (t) = f dt 2 (x 1 (t), x 2 (t), t) I. C. t = t0, X t0 = (x 1 t0, x 2 t0 )

解 ODE 方程組 : 範例 求解下列常微分方程式, 畫出 t=0 ~10 時 x(t) 與 y(t) 的解 : F t = (x t, y t ) I. C. : t = 0, x 0 = 0, y 0 = 1 dx(t) = xcos t + y sin t dt dy(t) = xsin t + y cos t dt 步驟一 : 編輯 ODE 方程組的自訂函數 ( 假設取名 myode.m): function dfdt=myode(t,f) dfdt(1) = F(1)*cos(t)+F(2)*sin(t); dfdt(2) = -F(1)*sin(t)+F(2)*cos(t); dfdt = dfdt ; % change to column vector

y(t) x, y 解 ODE 方程組 : 範例 步驟二, 求解, 畫出結果 : 回到指令視窗或主程式 ( 另一個.m 檔 ), 用 ode45 指令求出 ODE 方程組在時間 0~10 之間的解, 初始值設定 x=0, y=1 畫出 x, y 的時間變化序列, 以及 x-y 平面上的 phase diagram [t,f]=ode45(@myode, [0 10],[0 1]); x=f(:,1); y=f(:,2); plot(t,x,'r',t,y, g'); legend( x, y ); plot(x,y) 2.5 2 1.5 1 y1 x y2 y 2.5 0.5 2 0 1.5-0.5 1 0.5-1 0 2 4 6 8 10 t 0-0.5-1 -0.5 0 0.5 1 1.5 2 2.5 x(t)

Matlab 工具庫 (Toolbox) Matlab 有許多外掛或第三方開發的工具庫可以使用, 很多都需要額外購買安裝 開啟 help window, 左邊的列表會顯示目前有安裝的工具庫, 點選之後會有使用說明 函數功能介紹 實際使用範例 學校 / 系上的 Matlab 可能會安裝的工具庫有 : Bioinformatics Communications Control System Curve Fitting Filter Design Fixed-Point Image Processing Model Predictive Control Neural Network Optimization Parallel Computing Partial Differential Equation Robust Control Signal Processing Statistics Symbolic Math System Identification Wavelet