關于MATLAB的數學建模算法學習筆記new_第1頁
關于MATLAB的數學建模算法學習筆記new_第2頁
關于MATLAB的數學建模算法學習筆記new_第3頁
關于MATLAB的數學建模算法學習筆記new_第4頁
關于MATLAB的數學建模算法學習筆記new_第5頁
已閱讀5頁,還剩15頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

關于MATLAB的數學建模算法學習筆記目錄TOC\o"1-3"\h\u30158線性規劃中應用: 32142非線性規劃: 36598指派問題;投資問題:(0-1問題) 3285911)應用fmincon命令語句 3243882)應用指令函數:bintprog 519846重新整理矩陣類型 6227651)應用reshape 6196222)應用命令:nonzeros 79825非線性的最小值得求法:含有一個變量時,應用命令:fminsearch(@fun,x0) 722126含有多個變量時用:fminunc() 715038求解非線性多變量等式應用命令fsolve 827604二次規劃問題應用:quadprog 819500把有條件的問題轉化成無條件問題。罰函數法:fminunc 926442在Matlab中求解極值問題函數有: 9237301)fminbnd 9303751:在Matlab中求解距離的函數為:dist 93822最小生成樹 921906prim算法 1019821Find函數的應用 1021499關于圖論的Matlab工具箱相關命令 1016801這些命令基本上都用到稀疏陣,產生稀疏陣用sparse命令 1020904查看網圖用view 1116346積分命令quadl 1124289Matlab插值工具箱 1114246一維插值:interp1 1129628二維插值: 1129821插值接點為網格節點:interp2 1131391插值節點為散亂節點:griddata 116326最小二乘法 1140772)應用lsqlin命令語句 1219717三次樣條差 1210232積分函數命令:quadl 1312571同一組數據用不同插值方法效果比較線性插值、三次樣條插值 135552參數估計 14159051)非線性最小擬合 1432685命令:lsqcurvefit解決非線性擬合問題。 1446402)線性最小二乘法 1532374解微分方程 1650131)求解常微分、線性常微分、齊次與非齊次微分方程等問題 16138912)初值問題的matlab數值解 1658303)高階微分方程 1639774)邊值問題的Matlab數值解 1614989多目標規劃問題 183335解決方案: 1883761)加權系數法。 18294952)優先等級法。 1815853)序貫算法 18215844)應用多目標規劃的MATLAB函數fgoalattain具體見《數學建模算法與應用》P131 1885775)多目標規劃可以歸結為: 1827955分類問題 198825聚類分析:Q型和R型 1925348用于求元素之間距離的命令:mandist 1917405去掉非零元命令:nonzeros 1911832去掉重復的元素命令:union 1910563Matlab聚類分析的相關命令 19知識點線性規劃中應用:1)X=linprog(c,a,b,aeq,beq,zeros(x的個數,1))用于在限制條件下的最小值;X=linprog(-c,a,b,aeq,beq,zeros(x的個數,1))用于在限制條件下的最大值;非線性規劃:1)X=fmincon(fun,X0,A,B,Aeq,Beq,LB,UB,NONLCON,OPTIONS)指派問題;投資問題:(0-1問題)應用fmincon命令語句Matlab中非線性規劃的數學模型寫成以下形式其中f(x)是標量函數,A,B,Aeq,Beq是相應維數的矩陣和向量,C(x),Ceq(x)是非線性向量函數。Matlab中的命令是X=FMINCON(FUN,X0,A,B,Aeq,Beq,LB,UB,NONLCON,OPTIONS)它的返回值是向量x,其中FUN是用M文件定義的函數f(x);X0是x的初始值;A,B,Aeq,Beq定義了線性約束A*X≤B,Aeq*XBeq,如果沒有線性約束,則A=[],B=[],Aeq=[],Beq=[];LB和UB是變量x的下界和上界,如果上界和下界沒有約束,則LB=[],UB=[],如果x無下界,則LB的各分量都為-inf,如果x無上界,則UB的各分量都為inf;NONLCON是用M文件定義的非線性向量函數C(x),Ceq(x);OPTIONS定義了優化參數,可以使用Matlab缺省的參數設置。例子:2)應用指令函數:bintprog重新整理矩陣類型1)應用reshape應用命令:nonzeros功能是將a=nonzeros(b)矩陣b按列逐次去值放在a中形成一個列向量。非線性的最小值得求法:含有一個變量時,應用命令:fminsearch(@fun,x0)含有多個變量時用:fminunc()求解非線性多變量等式應用命令fsolve二次規劃問題應用:quadprog把有條件的問題轉化成無條件問題。罰函數法:fminunc其中:用法[X,Y]=fminunc(‘test3’,rand(1,2))與[X,Y]=fminunc(@test3,rand(1,2))相同。缺點:精度不高。在Matlab中求解極值問題函數有:1)fminbnd解決單變量非線性函數在區間上的極小值問題。fseminf解決多變量、含有非線性約束的極小值問題。3)fminimax解決多變量,滿足在多個式子中極小——極大問題。加一個負號就是解決多個式子中極大——極小值問題。利用梯度求解約束優化問題。1:在Matlab中求解距離的函數為:dist2:Sin()的反函數用asind()表示3:將數據生成txt文本:dlmwrite最小生成樹prim算法Find函數的應用1)I=find(A)找出A內的非零元素位置,按列查找。一次寫在I中。2)[I,J,K]=find(A)找出A中非零元素的位置,將行標放入I中,將列表放入J中,將數值放入K中,按理尋找。關于圖論的Matlab工具箱相關命令這些命令基本上都用到稀疏陣,產生稀疏陣用sparse命令graphallshortestpaths求圖中所有頂點之間的最短距離graphconncomp找無向圖的連通分支,或有向圖的強(弱)連通分支Graphisdag測試所有有向圖是否含有圈,不含圈返回1,含圈返回0Graphisomorphism確定連個圖是否同構,同構返回1,否則返回0Graphisspantree確定一個圖是否是生成樹,是返回1,否則返回0Graphmaxflow計算有向圖的最大流Graphminspantree在圖中找最小生成樹Graphpred2path把前驅頂點的一對頂點間的最短距離和嘴短路徑Graphtopoorder執行有向無圈圖的拓撲排序Graphtraverse求從一頂點出發,所能遍歷圖中的頂點查看網圖用view用法:view(biograph(ST,[],'ShowArrows','off','ShowWeights','on'))其中ST為樹。積分命令quadlMatlab插值工具箱一維插值:interp1二維插值:插值接點為網格節點:interp2插值節點為散亂節點:griddata最小二乘法1)2)應用lsqlin命令語句3)三次樣條差積分函數命令:quadl同一組數據用不同插值方法效果比較線性插值、三次樣條插值例子clc;clear;x0=[035791112131415];y0=[01.21.72.02.12.01.81.21.01.6];x=0:0.1:15;y1=interp1(x0,y0,x);%%線性插值y2=interp1(x0,y0,x,'spline');%%%立方樣條插值pp1=csape(x0,y0);y3=ppval(pp1,x);%%邊界為一階導插值pp2=csape(x0,y0,'second');y4=ppval(pp2,x);%%邊界為二階導插值[x',y1',y2',y3',y4'];subplot(1,3,1)plot(x0,y0,'+',x,y1)title('Piecewiselinear')subplot(1,3,2)plot(x0,y0,'+',x,y2)title('Spline1')subplot(1,3,3)plot(x0,y0,'+',x,y3)title('Spline2')dx=diff(x);%%diff為一階微分dy=diff(y3);dy_dx=dy./dx;dy_dx0=dy_dx(1)%%求13<=x<=15內y的最小值ytemp=y3(131:151);ymin=min(ytemp);index=find(y3==ymin);%%xmin=x(index);[xmin,ymin]holdonplot(xmin,ymin,'ro')參數估計1)非線性最小擬合命令:lsqcurvefit解決非線性擬合問題。人口數學模型的應用:例子:數學建模算法與應用的的6章人口預報模型clc,cleara=textread('data4.txt');%把原始數據保存在純文本文件data4.txt中x=a([2:2:6],:)';%提出人口數據x=nonzeros(x);%去掉后面的零,并變成列向量t=[1790:10:2000]';t0=t(1);x0=x(1);fun=@(cs,td)cs(1)./(1+(cs(1)/x0-1)*exp(-cs(2)*(td-t0)));%cs(1)=xm,cs(2)=rcs=lsqcurvefit(fun,rand(2,1),t(2:end),x(2:end),zeros(2,1))%%擬合,滿足使最小二乘最小的參數csxhat=fun(cs,[t;2010])%預測已知年代和2010年的人口2)線性最小二乘法人口數學模型的應用,例子:1)利用后項查分clc,cleara=textread('data4.txt');%把原始數據保存在純文本文件data4.txt中x=a([2:2:6],:)';x=nonzeros(x);t=[1790:10:2000]';a=[ones(21,1),-x(2:end)];b=diff(x)./x(2:end)/10;%%時間間隔為10年cs=a\b;r=cs(1),xm=r/cs(2)2)利用前項查分clc,cleara=textread('data4.txt');%把原始數據保存在純文本文件data4.txt中x=a([2:2:6],:)';x=nonzeros(x);t=[1790:10:2000]';a=[ones(21,1),-x(1:end-1)];b=diff(x)./x(1:end-1)/10;cs=a\b;r=cs(1),xm=r/cs(2)解微分方程求解常微分、線性常微分、齊次與非齊次微分方程等問題用命令:dsolve數學建模算法與應用p112-P114初值問題的matlab數值解用:ode45(采用四五階龍哥庫塔方簡稱RK方法)、ode23(采用二三階RK方法)、ode113(采用多步法,效率一般比ode45高)用法:例如:[x,y]=ode45(fun,[a,d],y0)其中fun為定義微分方程,[a,d]為定義區間,y0為初始值,x為在定義區間中采用四五階龍哥庫塔方法取a——d之間的值,y為其求解對應的值。高階微分方程方法:就是講高階微分方程轉化為一節微分方程逐級求解,在同一個命令語句里將多同意解的多節微分方程求出。用:ode45、ode15s等命令。用法和2)中有點不同之處為:fun代表的是一次微分方程且為列向量形式。Y0為一次對應的變量的初始值且也是按列向量形式排列。具體實例見《數學建模算法與應用》的P118。4)邊值問題的Matlab數值解應用函數:bvp4c%計算數值解以及bvpinit%給出初始猜測解的結構函數。具體用

溫馨提示

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

評論

0/150

提交評論