第五講Matlab優(yōu)化工具箱簡介分析_第1頁
第五講Matlab優(yōu)化工具箱簡介分析_第2頁
第五講Matlab優(yōu)化工具箱簡介分析_第3頁
第五講Matlab優(yōu)化工具箱簡介分析_第4頁
第五講Matlab優(yōu)化工具箱簡介分析_第5頁
已閱讀5頁,還剩55頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第五講Matlab優(yōu)化工具箱簡介分析 第五講第五講 Matlab優(yōu)化工具箱簡介優(yōu)化工具箱簡介 -optimization toobox 1. 線性優(yōu)化線性優(yōu)化 2. 非線性優(yōu)化非線性優(yōu)化 3. 極小化極大極小化極大(Minmax)問題問題 4. 曲線擬合與插值曲線擬合與插值 第五講Matlab優(yōu)化工具箱簡介分析 線性規(guī)劃問題是目標函數(shù)和約束條件均為線性函數(shù)的問題, MATLAB7.0解決的線性規(guī)劃問題的標準形式為 min sub. to: 其中f、x、b、beq、lb、ub為向量,A、Aeq為矩陣. 其它形式的線性規(guī)劃問題都可經(jīng)過適當變換化為此標準形式. 在MATLAB5.x以上版中,線性規(guī)劃

2、問題Linear Programming 已用函數(shù)linprog取代了MATLAB5.x版中的lp函數(shù).當然,由于版 本的向下兼容性,一般說來,低版本中的函數(shù)在7.0版中仍可使 用. n Rxxf bxA beqxAeq ubxlb 5.1 線性優(yōu)化 第五講Matlab優(yōu)化工具箱簡介分析 函數(shù) linprog 格式 x = linprog(f,A,b) %求min f *x sub.to 線性規(guī)劃的最優(yōu)解. x = linprog(f,A,b,Aeq,beq) %等式約束,若沒有不等式約束,則A= ,b= . x = linprog(f,A,b,Aeq,beq,lb,ub) . %指定x的范圍

3、,若沒有等式約束 ,則Aeq= ,beq= . x = linprog(f,A,b,Aeq,beq,lb,ub,x0) %設置初值x0. x = linprog(f,A,b,Aeq,beq,lb,ub,x0,options) % options為指定的優(yōu)化參數(shù). bxA 第五講Matlab優(yōu)化工具箱簡介分析 x,fval = linprog() % 返回目標函數(shù)最優(yōu)值,即fval= f *x. x,lambda,exitflag = linprog() % lambda為解x的Lagrange乘子. x, lambda,fval,exitflag = linprog() % exitflag為

4、終止迭代的錯誤條件. x,fval, lambda,exitflag,output = linprog() % output為關于優(yōu)化的一些信息. 說明: 若exitflag0表示函數(shù)收斂于解x,exitflag=0表示超過 函數(shù)估值或迭代的最大次數(shù),exitflagf = -5; -4; -6; % 寫成行向量亦可! A = 1 -1 1;3 2 4;3 2 0; b = 20; 42; 30; lb = zeros(3,1); x,fval,exitflag,output,lambda = linprog(f,A,b,lb) 結果為: x = %最優(yōu)解 0.0000 15.0000 3.0

5、000 fval = %最優(yōu)值 -78.0000 exitflag = %收斂 1 第五講Matlab優(yōu)化工具箱簡介分析 output = iterations: 6 %迭代次數(shù) cgiterations: 0 algorithm: lipsol %所使用規(guī)則 lambda = ineqlin: 3x1 double eqlin: 0 x1 double upper: 3x1 double lower: 3x1 double lambda.ineqlin ans = 0.0000 1.5000 0.5000 lambda.lower ans = 1.0000 0.0000 0.0000 表明:

6、不等約束條件2和3 以及第1個下界是有效的. 第五講Matlab優(yōu)化工具箱簡介分析 請寫出下面線性規(guī)劃的請寫出下面線性規(guī)劃的Matlab程序程序. 第五講Matlab優(yōu)化工具箱簡介分析 c=-0.4 -0.28 -0.32 -0.72 -0.64 -0.6; A=0.01 0.01 0.01 0.03 0.03 0.03;0.02 0 0 0.05 0 0;0 0.02 0 0 0.05 0;0 0 0.03 0 0 0.08; b=850;700;100;900; Aeq=; beq=; vlb=0;0;0;0;0;0; vub=; x,fval=linprog(c,A,b,Aeq,beq,

7、vlb,vub) 第五講Matlab優(yōu)化工具箱簡介分析 MATLABMATLAB求解優(yōu)化問題的主要函數(shù)求解優(yōu)化問題的主要函數(shù) 第五講Matlab優(yōu)化工具箱簡介分析 優(yōu)化函數(shù)的輸入變量優(yōu)化函數(shù)的輸入變量 第五講Matlab優(yōu)化工具箱簡介分析 優(yōu)化函數(shù)的輸出變量優(yōu)化函數(shù)的輸出變量 第五講Matlab優(yōu)化工具箱簡介分析 5.2非線性優(yōu)化 5.2.1 有約束的一元函數(shù)的最小值有約束的一元函數(shù)的最小值 單變量函數(shù)求最小值的標準形式為 sub.to 函數(shù) fminbnd 格式 x = fminbnd(fun,x1,x2) %返回自變量x在區(qū)間上函數(shù)fun 取最小值時x值,fun為目標函數(shù)的表達式字符串或M

8、ATLAB自 定義函數(shù)的函數(shù)柄. x = fminbnd(fun,x1,x2,options) x,fval = fminbnd() x,fval,exitflag = fminbnd() x,fval,exitflag,output = fminbnd() )x( fmin x 21 xxx 第五講Matlab優(yōu)化工具箱簡介分析 例5-2 計算下面函數(shù)在區(qū)間(0,1)內的最小值. x 3 e xlogxxcosx )x( f 解: x,fval,exitflag,output=fminbnd(x3+cos(x)+x*log(x)/e xp(x),0,1) x = 0.5223 fval =

9、0.3974 exitflag = 1 output = iterations: 9 funcCount: 9 algorithm: golden section search, parabolic interpolation 第五講Matlab優(yōu)化工具箱簡介分析 1) 3x()x( f 3 例5-3 在0,5上求下面函數(shù)的最小值解: 先自定義函數(shù):在MATLAB編輯器中建立M文件為: function f = myfun(x) f = (x-3).2 - 1; 保存為myfun.m,然后在命令窗口鍵入命令: x=fminbnd(myfun,0,5) 則結果顯示為: x = 3 第五講Matl

10、ab優(yōu)化工具箱簡介分析 5.2.2 無約束多元函數(shù)最小值無約束多元函數(shù)最小值 多元函數(shù)最小值的標準形式為 其中:x為向量. 命令 利用函數(shù)fminsearch求無約束多元函數(shù)最小值. 函數(shù) fminsearch 格式 x = fminsearch(fun,x0) %x0為初始點,fun為目標函數(shù)的 表達式字符串或MATLAB自定義函數(shù)的函數(shù)柄. x = fminsearch(fun,x0,options) % options查optimset. x,fval = fminsearch() %最優(yōu)點的函數(shù)值. x,fval,exitflag = fminsearch() % exitflag與單

11、變量情形一致. x,fval,exitflag,output = fminsearch() %output與單變量情形 一致. )x( fmin x x,x,xx n21 第五講Matlab優(yōu)化工具箱簡介分析 2 221 3 21 3 1 xxx10 xx4x2y例5-4 求 的最小值點. 解:X=fminsearch(2*x(1)3+4*x(1)*x(2)3- 10*x(1)*x(2)+x(2)2, 0,0) 結果為 X = 1.0016 0.8335 或在MATLAB編輯器中建立函數(shù)文件. function f=myfun(x) f=2*x(1)3+4*x(1)*x(2)3-10*x(1)

12、*x(2)+x(2)2; 保存為myfun.m,在命令窗口鍵入 X=fminsearch (myfun, 0,0) 或 X=fminsearch(myfun, 0,0) 結果為: X = 1.0016 0.8335 第五講Matlab優(yōu)化工具箱簡介分析 5.2.3 有約束的多元函數(shù)最小值有約束的多元函數(shù)最小值 非線性有約束的多元函數(shù)的標準形式為: sub.to 其中:x、b、beq、lb、ub是向量,A、Aeq為矩陣,C(x)、 Ceq(x)是返回向量的函數(shù),f(x)為目標函數(shù),f(x)、C(x)、 Ceq(x)可以是非線性函數(shù). 在MATLAB5.x中,它的求解由函數(shù)constr實現(xiàn). )x

13、( fmin x 0)x(C 0)x(Ceq bxA beqxAeq ubxlb 第五講Matlab優(yōu)化工具箱簡介分析 函數(shù) fmincon 格式 x = fmincon(fun,x0,A,b) x = fmincon(fun,x0,A,b,Aeq,beq) x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub) x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon) x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options) x,fval = fmincon() x,fval,exitfl

14、ag = fmincon() x,fval,exitflag,output = fmincon() x,fval,exitflag,output,lambda = fmincon() x,fval,exitflag,output,lambda,grad = fmincon() x,fval,exitflag,output,lambda,grad,hessian = fmincon() 第五講Matlab優(yōu)化工具箱簡介分析 參數(shù)說明: fun為目標函數(shù),它可用前面的方法定義; nonlcon的作用是通過接受的向量x來計算非線性不等約束和等 式約束分別在x處的估計C和Ceq,通過指定函數(shù)柄來使用,

15、如: x = fmincon(myfun,x0,A,b,Aeq,beq,lb,ub,mycon),先 建立非線性約束函數(shù),并保存為mycon.m:function C,Ceq = mycon(x) C = % 計算x處的非線性不等約束的函數(shù)值. Ceq = % 計算x處的非線性等式約束的函數(shù)值. lambda是Lagrange乘子,它體現(xiàn)哪一個約束有效. output輸出優(yōu)化信息; grad表示目標函數(shù)在x處的梯度; hessian表示目標函數(shù)在x處的Hessian值. 第五講Matlab優(yōu)化工具箱簡介分析 例5-5 求下面問題在初始點(0,1)處的最優(yōu)解 2121 2 2 2 1 x5x2x

16、xxx 0 x) 1x( 2 2 1 06x3x2 21 min sub.to 解:約束條件的標準形式為: sub.to 先在MATLAB編輯器中建立非線性約束函數(shù)文件: function c, ceq=mycon (x) c=(x(1)-1)2-x(2); ceq= ; %無等式約束. 0 x) 1x( 2 2 1 6x3x2 21 第五講Matlab優(yōu)化工具箱簡介分析 然后,在命令窗口鍵入如下命令或建立M文件: fun=x(1)2+x(2)2-x(1)*x(2)-2*x(1)-5*x(2); % 目標函數(shù). x0=0 1; A=-2 3; % 線性不等式約束. b=6; Aeq= ; %

17、無線性等式約束. beq= ; lb= ; % x沒有下、上界. ub= ; x,fval,exitflag,output,lambda,grad,hessian =fmincon(fun,x0,A,b,Aeq,beq,lb,ub,mycon) 第五講Matlab優(yōu)化工具箱簡介分析 則結果為x = 3 4 fval = -13 exitflag = 1 % 解收斂. output = iterations: 2 funcCount: 9 stepsize: 1 algorithm: medium-scale: SQP, Quasi-Newton, line- search firstorder

18、opt: cgiterations: lambda = lower: 2x1 double % x下界有效情況,通過lambda.lower可查看. upper: 2x1 double % x上界有效情況,為0表示約束無效. 第五講Matlab優(yōu)化工具箱簡介分析 eqlin: 0 x1 double %線性等式約束有效情況,不為0表示約束有效. eqnonlin: 0 x1 double %非線性等式約束有效情況. ineqlin: 2.5081e-008 %線性不等式約束有效情況. neqnonlin: 6.1938e-008 %非線性不等式約束有效情況. grad = %目標函數(shù)在最小值點

19、的梯度. 1.0e-006 * -0.1776 hessian = %目標函數(shù)在最小值點的Hessian值. 1.0000 -0.0000 -0.0000 1.0000 第五講Matlab優(yōu)化工具箱簡介分析 5.2.4 二次規(guī)劃問題二次規(guī)劃問題 二次規(guī)劃問題(quadratic programming)的標準形式為: sub.to 其中,H、A、Aeq為矩陣,f、b、beq、lb、ub、x為向量 其它形式的二次規(guī)劃問題都可轉化為標準形式. MATLAB5.x版中的qp函數(shù)已被6.0版中的函數(shù)quadprog取代。 xfxHx 2 1 min bxA beqxAeq buxbl 第五講Matla

20、b優(yōu)化工具箱簡介分析 函數(shù) quadprog 格式 x = quadprog(H,f,A,b) %其中H,f,A,b為標準形中的參 數(shù),x為目標函數(shù)的最小值. x = quadprog(H,f,A,b,Aeq,beq) %Aeq,beq滿足等約束條件. x = quadprog(H,f,A,b,Aeq,beq,lb,ub) % lb,ub分別為解x的 下界與上界. x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0) %x0為設置的初值 x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options) % options 為指定的優(yōu)化參數(shù).

21、x,fval = quadprog() %fval為目標函數(shù)最優(yōu)值. x,fval,exitflag = quadprog() % exitflag與線性規(guī)劃中參 數(shù)意義相同. x,fval,exitflag,output = quadprog() % output與線性規(guī)劃 中參數(shù)意義相同. x,fval,exitflag,output,lambda = quadprog() % lambda與 線性規(guī)劃中參數(shù)意義相同 . 第五講Matlab優(yōu)化工具箱簡介分析 3 x x ) 0, 0( x x 01 10 )xx( 2 1 3xx)xx( fmin 2 1 2 1 212121 例5-6

22、求二次規(guī)劃的最優(yōu)解 max f (x1, x2)=x1x2+3 sub. to x1+x2-2=0 解:化成標準形式: sub.to x1+x2=2 第五講Matlab優(yōu)化工具箱簡介分析 在Matlab中實現(xiàn)如下: H=0,-1;-1,0; f=0;0; Aeq=1 1; b=2; x,fval,exitflag,output,lambda = quadprog(H,f, , ,Aeq,b) 結果為: x = 1.0000 1.0000 第五講Matlab優(yōu)化工具箱簡介分析 fval =-1.0000 exitflag =4 output = iterations: 1 algorithm:

23、large-scale: projective preconditioned conjugate gradients f irstorderopt: 0 cgiterations: 1 message: Optimization terminated: local minimum found; the solution is singular. lambda = eqlin: 1.0000 ineqlin: lower: upper: 第五講Matlab優(yōu)化工具箱簡介分析 5.3 極小化極大(Minmax)問題 )x(Fmaxmin i Fx i 0)x(C 0)x(Ceq bxA beqxA

24、eq ubxlb sub.to 其中:x、b、beq、lb、ub是向量,A、Aeq為矩陣, C(x)、Ceq(x)和F(x)是返回向量的函數(shù),F(xiàn)(x)、C(x)、 Ceq(x) 可以是非線性函數(shù). 第五講Matlab優(yōu)化工具箱簡介分析 函數(shù) fminimax 格式 x = fminimax(fun,x0) x = fminimax(fun,x0,A,b) x = fminimax(fun,x0,A,b,Aeq,beq) x = fminimax(fun,x0,A,b,Aeq,beq,lb,ub) x = fminimax(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon) x

25、= fminimax(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options) x,fval,maxfval = fminimax() x,fval,maxfval,exitflag = fminimax() x,fval,maxfval,exitflag,output = fminimax() x,fval,maxfval,exitflag,output,lambda = fminimax() 第五講Matlab優(yōu)化工具箱簡介分析 例5-7 求下列函數(shù)最大值的最小化問題 其中: )x(f , )x(f , )x(f , )x(f , )x(f 54321 304x4

26、0 x48xx2)x(f 21 2 2 2 11 2 2 2 22 x3x)x(f 18x3x)x(f 213 214 xx)x(f 8xx)x(f 215 第五講Matlab優(yōu)化工具箱簡介分析 解:先建立目標函數(shù)文件,并保存為myfun.m:function f = myfun(x) f(1)= 2*x(1)2+x(2)2-48*x(1)-40*x(2)+304; f(2)= -x(1)2 - 3*x(2)2; f(3)= x(1) + 3*x(2) -18; f(4)= -x(1)- x(2); f(5)= x(1) + x(2) - 8; 然后,在命令窗口鍵入命令: x0 = 0.1;

27、0.1; % 初始值 x,fval = fminimax(myfun,x0) 結果為: x = 4.0000 4.0000 fval = 0.0000 -64.0000 -2.0000 -8.0000 -0.0000 第五講Matlab優(yōu)化工具箱簡介分析 5.4 曲線擬合與插值 在大量的應用領域中,人們經(jīng)常面臨用一個解析在大量的應用領域中,人們經(jīng)常面臨用一個解析 函數(shù)描述數(shù)據(jù)函數(shù)描述數(shù)據(jù)( (通常是測量值通常是測量值) )的任務的任務. .對這個問題有對這個問題有 兩種方法兩種方法. . 插值:插值: 在插值法里,數(shù)據(jù)假定是正確的,要求以在插值法里,數(shù)據(jù)假定是正確的,要求以 某種方法描述數(shù)據(jù)點

28、之間所發(fā)生的情況某種方法描述數(shù)據(jù)點之間所發(fā)生的情況. . 曲線擬合:曲線擬合或回歸是人們設法找出某條曲線擬合:曲線擬合或回歸是人們設法找出某條 光滑曲線,它最佳地擬合數(shù)據(jù),但不必要經(jīng)過任何數(shù)光滑曲線,它最佳地擬合數(shù)據(jù),但不必要經(jīng)過任何數(shù) 據(jù)點據(jù)點. . 第五講Matlab優(yōu)化工具箱簡介分析 標有標有o o的是數(shù)據(jù)點;連接數(shù)據(jù)點的實線描繪了線性內插,的是數(shù)據(jù)點;連接數(shù)據(jù)點的實線描繪了線性內插, 虛線是數(shù)據(jù)的最佳擬合虛線是數(shù)據(jù)的最佳擬合. . 01 -2 0 2 4 6 8 10 12 x y=f(x) Second Order Curve F

29、itting 第五講Matlab優(yōu)化工具箱簡介分析 曲線擬合的兩個基本問題:曲線擬合的兩個基本問題: 1.1.最佳擬合意味著什么?最佳擬合意味著什么? 2.2.應該用什么樣的曲線?應該用什么樣的曲線? 可用許多不同的方法定義最佳擬合,并存在可用許多不同的方法定義最佳擬合,并存在 無窮數(shù)目的曲線無窮數(shù)目的曲線. . 當最佳擬合被解釋為在數(shù)據(jù)點的最小誤差平當最佳擬合被解釋為在數(shù)據(jù)點的最小誤差平 方和,且所用的曲線限定為多項式時,那么曲線方和,且所用的曲線限定為多項式時,那么曲線 擬合是相當簡捷的擬合是相當簡捷的. .數(shù)學上,稱為多項式的最小二數(shù)學上,稱為多項式的最小二 乘曲線擬合乘曲線擬合. .

30、1 Matlab 曲線擬合 第五講Matlab優(yōu)化工具箱簡介分析 虛線和標志的數(shù)據(jù)點之間的垂直距離是在該點的誤差虛線和標志的數(shù)據(jù)點之間的垂直距離是在該點的誤差. .對對 各數(shù)據(jù)點距離求平方,并把平方距離全加起來,就是誤差平方各數(shù)據(jù)點距離求平方,并把平方距離全加起來,就是誤差平方 和和. .這條虛線是使誤差平方和盡可能小的曲線,即是最佳擬合這條虛線是使誤差平方和盡可能小的曲線,即是最佳擬合. . 最小二乘這個術語僅僅是使誤差平方和最小的省略說法最小二乘這個術語僅僅是使誤差平方和最小的省略說法. . 01 -2 0 2 4 6 8 10 12

31、x y=f(x) Second Order Curve Fitting 第五講Matlab優(yōu)化工具箱簡介分析 Matlab 曲線擬合和插值命令 曲 線 擬 合 和 插 值 函 數(shù) polyfit(x, y, n) 對描述n階多項式y(tǒng)=f(x)的數(shù)據(jù) 進行最小二乘曲線擬合 interp1(x, y, xo) 1維線性插值 interp1(x, y, xo, spline ) 1維3次樣條插值 interp1(x, y, xo, cubic ) 1維3次插值 interp2(x, y, Z, xi, yi) 2維線性插值 interp2(x, y, Z, xi, yi, cubic ) 2維3次插

32、值 interp2(x, y, Z, xi, yi, nearest ) 2維最近鄰插值 第五講Matlab優(yōu)化工具箱簡介分析 x=0 .1 .2 .3 .4 .5 .6 .7 .8 .9 1; y=-.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2; n=2; p=polyfit(x, y, n) ezplot( -9.8108*x*x+20.1293*x-0.0317 ) %二次多項式系數(shù) %既是p的輸出,該命令為畫出擬合曲線. xi=linspace(0, 1, 100); % x-axis data for plotting

33、 z=polyval(p, xi) %求出多項式在xi點處的取值. plot(x, y, o , x, y, xi, z, : ) xlabel( x ), ylabel( y=f(x) ), title( Second Order Curve Fitting ) 第五講Matlab優(yōu)化工具箱簡介分析 01 -2 0 2 4 6 8 10 12 x y=f(x) Second Order Curve Fitting 第五講Matlab優(yōu)化工具箱簡介分析 多項式階次的選擇是任意的多項式階次的選擇是任意的. .兩點決定一直線兩點決定一直線 或一

34、階多項式或一階多項式. .三點決定一個平方或三點決定一個平方或2 2階多項式階多項式. .按按 此進行,此進行,n+1n+1數(shù)據(jù)點唯一地確定數(shù)據(jù)點唯一地確定n n階多項式階多項式. .于是,于是, 在上面的情況下,有在上面的情況下,有1111個數(shù)據(jù)點,我們可選一個高個數(shù)據(jù)點,我們可選一個高 達達1010階的多項式階的多項式. .然而,高階多項式給出很差的數(shù)然而,高階多項式給出很差的數(shù) 值特性,人們不應選擇比所需的階次高的多項式值特性,人們不應選擇比所需的階次高的多項式. . 此外,隨著多項式階次的提高,近似變得不夠光滑,此外,隨著多項式階次的提高,近似變得不夠光滑, 因為較高階次多項式在變零前

35、,可多次求導因為較高階次多項式在變零前,可多次求導. . 第五講Matlab優(yōu)化工具箱簡介分析 00.81 -2 0 2 4 6 8 10 12 14 16 x y=f(x) 2nd and 10th Order curve Fitting 原始數(shù)據(jù)標以原始數(shù)據(jù)標以oo,2 2階曲線擬合是虛線,階曲線擬合是虛線,1010階擬合是實線階擬合是實線. . 注意,在注意,在1010階擬合中,在左邊和右邊的極值處,數(shù)據(jù)點之間出階擬合中,在左邊和右邊的極值處,數(shù)據(jù)點之間出 現(xiàn)大的紋波現(xiàn)大的紋波. .當企圖進行高階曲線擬合時,這種紋波現(xiàn)象經(jīng)常當企圖進行高階曲線擬合時,這種紋波現(xiàn)象經(jīng)常 發(fā)

36、生發(fā)生. .顯然,顯然, 越多就越好越多就越好 的觀念在這里不適用的觀念在這里不適用. . 第五講Matlab優(yōu)化工具箱簡介分析 2 插值命令 插值定義為對數(shù)據(jù)點之間函數(shù)的估值方法,這插值定義為對數(shù)據(jù)點之間函數(shù)的估值方法,這 些數(shù)據(jù)點是由某些集合給定些數(shù)據(jù)點是由某些集合給定. .當人們不能很快地求出當人們不能很快地求出 所需中間點的函數(shù)值時,插值是一個有價值的工具所需中間點的函數(shù)值時,插值是一個有價值的工具. . 例如,當數(shù)據(jù)點是某些實驗測量的結果或是過長的例如,當數(shù)據(jù)點是某些實驗測量的結果或是過長的 計算過程時,就有這種情況計算過程時,就有這種情況. . 最簡單插值的例子是最簡單插值的例子是

37、MATLABMATLAB的作圖的作圖. .按缺省,按缺省, MATLABMATLAB用直線連接所用的數(shù)據(jù)點以作圖用直線連接所用的數(shù)據(jù)點以作圖. .這個線性插這個線性插 值猜測中間值落在數(shù)據(jù)點之間的直線上值猜測中間值落在數(shù)據(jù)點之間的直線上. .當然,當數(shù)當然,當數(shù) 據(jù)點個數(shù)的增加和它們之間距離的減小時,線性插據(jù)點個數(shù)的增加和它們之間距離的減小時,線性插 值就更精確值就更精確. .例如例如: : 第五講Matlab優(yōu)化工具箱簡介分析 x1=linspace(0, 2*pi, 60); x2=linspace(0, 2*pi, 6); plot(x1, sin(x1), x2, sin(x2), -

38、 ) xlabel( x ), ylabel( sin(x) ), title( Linear Interpolation ) 01234567 -1 -0.5 0 0.5 1 x sin(x) Linear Interpolation 一個在數(shù)據(jù)點之間用一個在數(shù)據(jù)點之間用6060個點,它比另一個只用個點,它比另一個只用6 6個點更光滑和更精確個點更光滑和更精確. . 第五講Matlab優(yōu)化工具箱簡介分析 如曲線擬合一樣,插值要作決策如曲線擬合一樣,插值要作決策. .根據(jù)所作的假設,根據(jù)所作的假設, 有多種插值有多種插值. .而且,可以在一維以上空間中進行插值而且,可以在一維以上空間中進行插值

39、. . 即如果有反映兩個變量函數(shù)的插值,即如果有反映兩個變量函數(shù)的插值,z=f(x, y)z=f(x, y),那么,那么 就可在就可在x x之間和在之間和在y y之間,找出之間,找出z z的中間值進行插的中間值進行插 值值.MATLAB.MATLAB在一維函數(shù)在一維函數(shù)interp1interp1和在二維函數(shù)和在二維函數(shù)interp2interp2中,中, 提供了許多的插值選擇提供了許多的插值選擇. . 為了說明一維插值,考慮下列問題,為了說明一維插值,考慮下列問題,1212小時內,小時內, 一小時測量一次室外溫度一小時測量一次室外溫度. .數(shù)據(jù)存儲在兩個數(shù)據(jù)存儲在兩個MATLABMATLAB

40、變量變量 中中. . 第五講Matlab優(yōu)化工具箱簡介分析 hours=1:12; % index for hour data was recorded temps=5 8 9 15 25 29 31 30 22 25 27 24; % recorded temperatures plot(hours, temps, hours, temps, + ) % view temperatures title( Temperature ) xlabel( Hour ), ylabel( Degrees Celsius ) 024681012 5 10 15 20 25 30 35 Hour Degr

41、ees Celsius Temperature 第五講Matlab優(yōu)化工具箱簡介分析 正如上圖看到的,正如上圖看到的,MATLABMATLAB畫出了數(shù)據(jù)點線性插值的直畫出了數(shù)據(jù)點線性插值的直 線線. .為了計算在任意給定時間的溫度,人們可試著對可視的為了計算在任意給定時間的溫度,人們可試著對可視的 圖作解釋圖作解釋. .另外一種方法,可用函數(shù)另外一種方法,可用函數(shù)erp1. t=interp1(hours, temps, 9.3) % estimate temperature at hour=9.3 t =22.9000 t=interp1(hours, temps, 4

42、.7) % estimate temperature at hour=4.7 t =22 t=interp1(hours, temps, 3.2 6.5 7.1 11.7) % find temp at many points! t = 10.2000 30.0000 30.9000 24.9000 第五講Matlab優(yōu)化工具箱簡介分析 interp1 interp1的缺省用法是由的缺省用法是由interp1(x, y, xo)interp1(x, y, xo)來描來描 述,這里述,這里x x是獨立變量是獨立變量( (橫坐標橫坐標) ),y y是應變量是應變量( (縱坐標縱坐標) ), xox

43、o是進行插值的一個數(shù)值數(shù)組是進行插值的一個數(shù)值數(shù)組. .另外,該缺省的使用假另外,該缺省的使用假 定為線性插值定為線性插值. . 若不采用直線連接數(shù)據(jù)點,我們可采用某些更光若不采用直線連接數(shù)據(jù)點,我們可采用某些更光 滑的曲線來擬合數(shù)據(jù)點滑的曲線來擬合數(shù)據(jù)點. .最常用的方法是用一個最常用的方法是用一個3 3階多階多 項式,即項式,即3 3次多項式,來對相繼數(shù)據(jù)點之間的各段建模,次多項式,來對相繼數(shù)據(jù)點之間的各段建模, 每個每個3 3次多項式的頭兩個導數(shù)與該數(shù)據(jù)點相一致次多項式的頭兩個導數(shù)與該數(shù)據(jù)點相一致. .這種這種 類型的插值被稱為類型的插值被稱為3 3次樣條或簡稱為樣條次樣條或簡稱為樣條.

44、 .函數(shù)函數(shù)interp1interp1 也能執(zhí)行也能執(zhí)行3 3次樣條插值次樣條插值. . 第五講Matlab優(yōu)化工具箱簡介分析 t=interp1(hours, temps, 9.3, spline ) % estimate temperature at hour=9.3 t = 21.8577 t=interp1(hours, temps, 4.7, spline ) % estimate temperature at hour=4.7 t = 22.3143 t=interp1(hours, temps, 3.2 6.5 7.1 11.7, spline ) t = 9.6734 30.

45、0427 31.1755 25.3820 第五講Matlab優(yōu)化工具箱簡介分析 interp1interp1二個強約束二個強約束: : (1 1)人們不能要求有獨立變量范圍以外的結果,)人們不能要求有獨立變量范圍以外的結果, 例如,例如,interp1(hours, temps, 13.5)interp1(hours, temps, 13.5)導致一個導致一個 錯誤,因為錯誤,因為hourshours在在1 1到到1212之間變化之間變化. . (2 2)獨立變量必須是單調的)獨立變量必須是單調的. .即獨立變量在值即獨立變量在值 上必須總是增加的或總是減小的上必須總是增加的或總是減小的. .

46、 二維插值是基于與一維插值同樣的基本思二維插值是基于與一維插值同樣的基本思 想想. .然而,正如名字所隱含的,二維插值是對兩然而,正如名字所隱含的,二維插值是對兩 變量的函數(shù)變量的函數(shù)z=f(x, y) z=f(x, y) 進行插值進行插值. . 第五講Matlab優(yōu)化工具箱簡介分析 3. 非線性數(shù)據(jù)(曲線)擬合非線性數(shù)據(jù)(曲線)擬合 非線性曲線擬合是已知輸入向量xdata和輸出向量ydata,并 且知道輸入與輸出的函數(shù)關系為ydata=F(x, xdata),但不知 道系數(shù)向量x.今進行曲線擬合,求x使得下式成立: 函數(shù) lsqcurvefit 格式 x = lsqcurvefit(fun,

47、x0,xdata,ydata) x = lsqcurvefit(fun,x0,xdata,ydata,lb,ub,options) x,resnorm = lsqcurvefit() x,resnorm,residual,exitflag,output,lambda = lsqcurvefit() x,resnorm,residual,exitflag,output,lambda,jacobian =lsqcurvefit() i 2 ii 2 2 x )ydata)xdata, x(F( 2 1 ydata)xdata, x(F 2 1 min 第五講Matlab優(yōu)化工具箱簡介分析 resn

48、orm=sum (fun(x,xdata)-ydata).2),即在x處殘差 的平方和; residual=fun(x,xdata)-ydata,即在x處的殘差; exitflag為終止迭代的條件; output為輸出的優(yōu)化信息; lambda為解x處的Lagrange乘子; jacobian為解x處擬合函數(shù)fun的jacobian矩陣. 第五講Matlab優(yōu)化工具箱簡介分析 例5-8 求解如下最小二乘非線性擬合問題 已知輸入向量xdata和輸出向量ydata,且長度都是n,擬合 函數(shù)為 即目標函數(shù)為 其中: 初始解向量為x0=0.3, 0.4, 0.1。 32 ) i (xdata) 3 (

49、x)i (xdatasin() 2(x) i (xdata) 1 (x) i (ydata n 1i 2 ii x )ydata)xdata, x(F( 2 1 min 32 xdata) 3 (x)xdatasin() 2(xxdata) 1 (x)xdata, x(F 第五講Matlab優(yōu)化工具箱簡介分析 解:先建立擬合函數(shù)文件,并保存為myfun.m function F = myfun(x,xdata) F = x(1)*xdata.2 + x(2)*sin(xdata) + x(3)*xdata.3; 然后給出數(shù)據(jù)xdata和ydata xdata = 3.6 7.7 9.3 4.1 8.6 2.8 1.3 7.9 10.0 5.4; ydata = 16.5 150.6 263.1 24.7 208.5 9.9 2.7 163.9 325.0 54.3; x0 = 10, 10, 10; %初始估計值 x,resnorm = lsqcurvefit(myfun,x0,xdata,ydata) 結果為: Optimization terminated successfully: Relative function value changing by less than OPTIONS.TolFun x = 0.2269 0.3385 0.3021

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論