環(huán)境模擬計(jì)算的MATLAB程序設(shè)計(jì)_第1頁(yè)
環(huán)境模擬計(jì)算的MATLAB程序設(shè)計(jì)_第2頁(yè)
環(huán)境模擬計(jì)算的MATLAB程序設(shè)計(jì)_第3頁(yè)
環(huán)境模擬計(jì)算的MATLAB程序設(shè)計(jì)_第4頁(yè)
環(huán)境模擬計(jì)算的MATLAB程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩50頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、MATLAB基礎(chǔ)及其在環(huán)基礎(chǔ)及其在環(huán)境科學(xué)中的應(yīng)用境科學(xué)中的應(yīng)用培訓(xùn)內(nèi)容培訓(xùn)內(nèi)容p環(huán)境模擬計(jì)算的環(huán)境模擬計(jì)算的MATLAB程序設(shè)計(jì);程序設(shè)計(jì);p環(huán)境統(tǒng)計(jì)常見(jiàn)數(shù)據(jù)分析方法的環(huán)境統(tǒng)計(jì)常見(jiàn)數(shù)據(jù)分析方法的MATLAB實(shí)現(xiàn);實(shí)現(xiàn);p環(huán)境基本模型的環(huán)境基本模型的MATLAB實(shí)現(xiàn)及應(yīng)用(實(shí)現(xiàn)及應(yīng)用(1););p環(huán)境基本模型的環(huán)境基本模型的MATLAB實(shí)現(xiàn)及應(yīng)用(實(shí)現(xiàn)及應(yīng)用(2););p非傳統(tǒng)環(huán)境數(shù)學(xué)問(wèn)題的非傳統(tǒng)環(huán)境數(shù)學(xué)問(wèn)題的MATLAB實(shí)現(xiàn);實(shí)現(xiàn);p討論。討論。環(huán)境模擬計(jì)算的環(huán)境模擬計(jì)算的MATLAB程序設(shè)計(jì)程序設(shè)計(jì)第一講第一講一、一、MATLAB基本數(shù)學(xué)運(yùn)算基本數(shù)學(xué)運(yùn)算如何操作如何操作MATLAB?如何在

2、使用中快速獲得幫助?如何在使用中快速獲得幫助?其主要數(shù)值運(yùn)算功能有哪些?其主要數(shù)值運(yùn)算功能有哪些?一、一、MATLAB基本數(shù)學(xué)運(yùn)算基本數(shù)學(xué)運(yùn)算工作窗口系統(tǒng)工作窗口系統(tǒng) :經(jīng)常用到的窗口有6個(gè):命令窗口、M文件編輯窗口、工作空間窗口、當(dāng)前目錄窗口、工具箱窗口、命令記錄窗口命令窗口M文件編輯窗口工作空間窗口工具箱窗口當(dāng)前目錄窗口命令記錄窗口一、一、MATLAB基本數(shù)學(xué)運(yùn)算基本數(shù)學(xué)運(yùn)算p查詢幫助系統(tǒng)查詢幫助系統(tǒng):MATLAB的幫助命令有很多,可以分為help系列和lookfor命令兩大類。 help系列系列 包括help、help+函數(shù)名、helpwin和helpdesk。 lookfor命令命令

3、“help+函數(shù)名”的方法對(duì)要求已經(jīng)確切知道函數(shù)名,但是由于用戶不熟悉的原因,一些函數(shù)名可能記憶得不是很清楚,這時(shí)候可以用lookfor命令,根據(jù)提供的關(guān)鍵字獲得相關(guān)幫助,具體用法為:lookfor+關(guān)鍵字。需要時(shí)需要時(shí)間較長(zhǎng)。間較長(zhǎng)。 一、一、MATLAB基本數(shù)學(xué)運(yùn)算基本數(shù)學(xué)運(yùn)算p演示幫助系統(tǒng)演示幫助系統(tǒng) 進(jìn)入幫助系統(tǒng)主要有三種方法:其一就是通過(guò)在命令窗輸入“demo”命令;其二是通過(guò)Help菜單的“Demos”子菜單;其三是在命令窗口輸入“intro”命令 一、一、MATLAB基本數(shù)學(xué)運(yùn)算基本數(shù)學(xué)運(yùn)算常用操作命令常用操作命令操作選項(xiàng)(操作選項(xiàng)(File-優(yōu)選項(xiàng))優(yōu)選項(xiàng))-很有用的!很有用的

4、!命 令 說(shuō) 明 命 令 說(shuō) 明 命 令 說(shuō) 明 quit 關(guān) 閉M A TLAB dir 列 出 指 定 目 錄 下 的 文 件 figure 開(kāi) 辟 新 的 圖 形 窗 口 clear 清 除 內(nèi) 存 中 的 變 量 cd 改 變 當(dāng) 前 工 作 目 錄 path 顯 示 或 設(shè) 置 工 作 目 錄 cla 清 除 坐 標(biāo) 系 內(nèi) 的 圖 形 disp() 顯 示 括 號(hào) 內(nèi) 變 量 內(nèi) 容 what 目 錄 中 文 件 列 表 clf 清 除 整 個(gè) 圖 形 type 顯 示 指 定 文 件 內(nèi) 容 save 保 存 內(nèi) 存 變 量 到 文 件 clc 清 除 命 令 窗 口 內(nèi) 容 h

5、old 圖 形 保 持 開(kāi) 關(guān) load 加 載 指 定 文 件 的 變 量 一、一、MATLAB基本數(shù)學(xué)運(yùn)算基本數(shù)學(xué)運(yùn)算變量與常量變量與常量 MATLAB變量命名規(guī)則:由字母開(kāi)頭,后面可以跟字母、數(shù)字、下劃線等;變量名區(qū)分大小寫(xiě);變量名不能超過(guò)31個(gè)字符;許多標(biāo)點(diǎn)符號(hào)在MATLAB中有特殊意義,一般在變量中不允許使用。變量可以直接賦值,或者依靠計(jì)算獲得值,然后可以直接調(diào)用。 一、一、MATLAB基本數(shù)學(xué)運(yùn)算基本數(shù)學(xué)運(yùn)算變量數(shù)據(jù)類型變量數(shù)據(jù)類型 數(shù)值型數(shù)值型 常用的數(shù)值量為雙精度浮點(diǎn)數(shù),占常用的數(shù)值量為雙精度浮點(diǎn)數(shù),占8個(gè)字節(jié)個(gè)字節(jié),MATAB表示為doube()??紤]到一些特殊應(yīng)用,如圖像處

6、理,MATLAB還引入了無(wú)符號(hào)8位整型數(shù)據(jù),表示為uint8(),可大大減少其存儲(chǔ)空間。此外,MATLAB中還使用其它數(shù)據(jù)類型,如int8()、int16()、int32() 、int32()。對(duì)于MATLAB中數(shù)據(jù)顯示格式,可以用format命令控制,具體用法可以使用help命令查詢。 如果需要顯示精度較高的數(shù)值,可以使用變精度算法函數(shù)vpa()來(lái)表示。調(diào)用格式:vpa(A) 或或 vpa(A,n) % A表示數(shù)值型變量,n表示顯示有效數(shù)字位數(shù)。 符號(hào)型符號(hào)型 用于公式推導(dǎo)和一些問(wèn)題的解析解。符號(hào)型變量使用前需要用syms命令申明。語(yǔ)法格式為:syms var_list var-form %

7、 var_list變量列表;varform變量類型。例如:syms x real y positive %表示定義符號(hào)變量x為實(shí)型,y為正數(shù)。定義多個(gè)變量時(shí),變量之間以空格分開(kāi),不能用逗號(hào)分開(kāi)。變量類型屬可選項(xiàng),默認(rèn)為實(shí)數(shù)變量。 字符串型字符串型 MATLAB支持字符串變量,但是要用單引號(hào)而不是雙引號(hào)括起單引號(hào)而不是雙引號(hào)括起來(lái)來(lái)。一、一、MATLAB基本數(shù)學(xué)運(yùn)算基本數(shù)學(xué)運(yùn)算語(yǔ)句基本形式語(yǔ)句基本形式直接賦值語(yǔ)句直接賦值語(yǔ)句 基本形式為:變量變量=賦值表達(dá)式賦值表達(dá)式 分號(hào)分號(hào)“;”的用法的用法函數(shù)文件函數(shù)文件調(diào)用語(yǔ)句調(diào)用語(yǔ)句 基本形式為:返回變量列表返回變量列表=函數(shù)名函數(shù)名(輸入變量列表輸入

8、變量列表)例如u,v=eig(A)返回矩陣A的特征向量u和特征值v。命令文件命令文件調(diào)用語(yǔ)句調(diào)用語(yǔ)句 調(diào)用格式:文件名。文件名。冒號(hào)表達(dá)式冒號(hào)表達(dá)式 語(yǔ)句格式:向量向量=初值:步長(zhǎng):終值限值初值:步長(zhǎng):終值限值v1=0:0.4:pi %注意觀察最終值是2.8而不是v2=0:pi %默認(rèn)步長(zhǎng)為1v3=0:0.5:pi %步長(zhǎng)為負(fù)值,顯然不可能生成向量,因此得空矩陣v4=pi:0.5:0 %逆序構(gòu)成向量,步長(zhǎng)可以為負(fù)值 一、一、MATLAB基本數(shù)學(xué)運(yùn)算基本數(shù)學(xué)運(yùn)算矩陣基本運(yùn)算矩陣基本運(yùn)算子矩陣提取子矩陣提取 語(yǔ)句格式:B=A(S1,S2) %S1、S2分別表示行號(hào)、分別表示行號(hào)、列號(hào)構(gòu)成的向量。列

9、號(hào)構(gòu)成的向量。【例】已知矩陣A=1 2 3 4 5;6 7 8 9 0;5 4 3 2 1;0 9 8 7 6,體會(huì)下列語(yǔ)句。A=1 2 3 4 5;6 7 8 9 0;5 4 3 2 1;0 9 8 7 6 %定義矩陣A1=A(1:2:end, :) %提取矩陣A的1、3行,所有列。關(guān)鍵詞end表示最后一行或列A2=A(3,2,1,1 2 4) %提取矩陣A的3、2、1行,1、2、4列A3=A(1:2,3:5) %提取矩陣A的1、2行,3、4、5列A4=A(:,end:1:1) %提取矩陣A所有行和列,并將矩陣左右翻轉(zhuǎn),最后一列排到最前矩陣轉(zhuǎn)置矩陣轉(zhuǎn)置 語(yǔ)句格式:B=A %單引號(hào)“”表示對(duì)矩

10、陣進(jìn)行轉(zhuǎn)置操作。矩陣翻轉(zhuǎn)矩陣翻轉(zhuǎn) 語(yǔ)句格式: B=fliplr(A) %左右翻轉(zhuǎn) B=flipud(A) %上下翻轉(zhuǎn) B=rot90(A) %逆時(shí)針旋轉(zhuǎn)90度一、一、MATLAB基本數(shù)學(xué)運(yùn)算基本數(shù)學(xué)運(yùn)算矩陣基本運(yùn)算矩陣基本運(yùn)算矩陣的四則運(yùn)算矩陣的四則運(yùn)算 可以直接用“+”、“”、“*”、“/”、“”表示矩陣之間的四則運(yùn)算,但要注意矩陣之間運(yùn)算時(shí)維數(shù)的相容性。矩陣乘方矩陣乘方 語(yǔ)句格式:B=Ax %A必須是方陣,x可以是正數(shù)或分?jǐn)?shù)點(diǎn)運(yùn)算點(diǎn)運(yùn)算 可以直接用“.*”、“./”、“.”分別表示矩陣之間的乘法、除法和乘方的點(diǎn)運(yùn)算,點(diǎn)運(yùn)算實(shí)際上是對(duì)兩個(gè)參與運(yùn)算的矩陣中的對(duì)應(yīng)元素的直接運(yùn)算。一、一、MATL

11、AB基本數(shù)學(xué)運(yùn)算基本數(shù)學(xué)運(yùn)算關(guān)系運(yùn)算和邏輯運(yùn)算關(guān)系運(yùn)算和邏輯運(yùn)算一、一、MATLAB基本數(shù)學(xué)運(yùn)算基本數(shù)學(xué)運(yùn)算符號(hào)運(yùn)算符號(hào)運(yùn)算:可用于推導(dǎo)數(shù)學(xué)公式、求解代數(shù)方程、積分可用于推導(dǎo)數(shù)學(xué)公式、求解代數(shù)方程、積分求解、微分方程的解析解。符號(hào)表達(dá)式可以通過(guò)求解、微分方程的解析解。符號(hào)表達(dá)式可以通過(guò)syms命令、命令、sym函數(shù)定義函數(shù)定義例如:syms n;h=symsum(3/(2*n1)2,1,inf) % n從1到無(wú)窮大,對(duì)表達(dá)式3/(2*n1)2求和syms x;y1=2*x23*x5;y2=sin(x);fy1=finverse(y1);fy2=finverse(y1); %分別求y1、y2的逆

12、函數(shù)syms x;dsolve(Dx=1+x2,x(0)=2) %D表示微分,微分方程為x=1+x2,初始值小x0=2 一、一、MATLAB基本數(shù)學(xué)運(yùn)算基本數(shù)學(xué)運(yùn)算p插值插值根據(jù)由實(shí)驗(yàn)和測(cè)量得到的由某一函數(shù)y=f(x)(可能未知或非常復(fù)雜)在不同自變量取值x1、x2xn處的因變量y1、y2yn值,構(gòu)造一相對(duì)簡(jiǎn)單函數(shù)g(x)作為y=f(x)近似表達(dá)式:y=f(x)g(x),使g(x0)=y0,g(x1)=y1g(xn)=yn。g(x)稱為插值函數(shù),常采用多項(xiàng)式或分段函數(shù)的形式。一維插值一維插值 調(diào)用格式:Y=interp1(x,y,X,method) 已知數(shù)據(jù)(x,y),用method方法插值,

13、計(jì)算確定的插值點(diǎn)X對(duì)應(yīng)得函數(shù)值Y。method 插值方法,可取linear(線性插值)、cubic(三次多項(xiàng)式插值)、nearst(臨近點(diǎn)插值)、spline(三次樣條法插值)。二維插值二維插值 調(diào)用格式:Z=interp2(x,y,z,X,Y,method) 已知(x,y,z),用method方法插值,計(jì)算確定的插值點(diǎn)(X,Y)對(duì)應(yīng)得函數(shù)值Z。 XY一、一、MATLAB基本數(shù)學(xué)運(yùn)算基本數(shù)學(xué)運(yùn)算插值插值griddata()插值函數(shù)插值函數(shù)interp2()函數(shù)只能處理以網(wǎng)格形式給出的數(shù)據(jù)。如果已知數(shù)據(jù)函數(shù)只能處理以網(wǎng)格形式給出的數(shù)據(jù)。如果已知數(shù)據(jù)點(diǎn)格式不是以網(wǎng)格形式給出,該函數(shù)則無(wú)能為力。實(shí)際

14、中大部分實(shí)測(cè)點(diǎn)格式不是以網(wǎng)格形式給出,該函數(shù)則無(wú)能為力。實(shí)際中大部分實(shí)測(cè)數(shù)據(jù)不是以網(wǎng)格形式給出的,一般是以多組數(shù)據(jù)不是以網(wǎng)格形式給出的,一般是以多組(xi,yi,zi)的形式給出,的形式給出,為此,為此,MATLAB提供了提供了griddata()函數(shù)處理一般的二維插值問(wèn)題。函數(shù)處理一般的二維插值問(wèn)題。調(diào)用格式:調(diào)用格式:Z=griddata(x,y,z,X,Y,method) ,式中,式中,x,y,z表示表示已知的樣本點(diǎn)坐標(biāo),不要求是網(wǎng)格形式的數(shù)據(jù);已知的樣本點(diǎn)坐標(biāo),不要求是網(wǎng)格形式的數(shù)據(jù);X,Y表示相應(yīng)的插值位置表示相應(yīng)的插值位置(X,Y),可以是數(shù)據(jù)點(diǎn)、向量或網(wǎng)格矩陣;,可以是數(shù)據(jù)點(diǎn)、向

15、量或網(wǎng)格矩陣;method可取可取linear、cubic、nearest、v4,其中,其中v4是是MATLAB4.0版本提供的算版本提供的算法,公認(rèn)效果較好。法,公認(rèn)效果較好。一、一、MATLAB基本數(shù)學(xué)運(yùn)算基本數(shù)學(xué)運(yùn)算已知平面上的數(shù)據(jù)點(diǎn)可用網(wǎng)格生成函數(shù)表示x,y=meshgrid(5:0.25:5,5:0.25:5)z坐標(biāo)可用函數(shù)z=3*(1x).2.*exp(x.2) (y+1).2) 10*(x/5 x.3 y.5).*exp(x.2y.2)表示現(xiàn)插值求平面網(wǎng)格X,Y=meshgrid(4:0.2:4,4:0.2:4)上的點(diǎn)對(duì)應(yīng)的Z 坐標(biāo),并繪圖。 x,y=meshgrid(5:0.2

16、5:5,5:0.25:5); z=3*(1x).2.*exp(x.2) (y+1).2) 10*(x/5 x.3 y.5).*exp(x.2y.2);X,Y=meshgrid(4:0.2:4,4:0.2:4);Z=interp2(x,y,z,X,Y,cubic);subplot 211;surf(x,y,z);title(原始數(shù)據(jù)圖形);xlabel(X);ylabel(Y);zlabel(Z);subplot 212;surf(X,Y,Z);title(二維插值圖形);xlabel(X);ylabel(Y);zlabel(Z); p插值插值n插值舉例一、一、MATLAB基本數(shù)學(xué)運(yùn)算基本數(shù)學(xué)運(yùn)

17、算插值插值例:已知觀測(cè)數(shù)據(jù)對(duì)(x,y)如下,現(xiàn)求在自變量x0=1.8 1.3 0.7 0.7 1.2 1.7處的y0值。用不同的插值方法,比較其結(jié)果。x= 2.0 1.5 1.0 0.5 0 0.5 1.0 1.5 2.0y= 0.2 0.31 0.5 0.8 1.0 0.8 0.5 0.31 0.2【求解】上述問(wèn)題的MATLAB程序如下。x=2.0,1.5,1.0,0.5,0,0.5,1.0,1.5,2.0;%給出自變量觀測(cè)值y=0.2,0.31,0.5,0.8,1.0,0.8,0.5,0.31,0.2;%給出因變量觀測(cè)值x0=1.8 1.3 0.7 0.7 1.2 1.7; %給出互異插值

18、點(diǎn)%不同的插值方法y01=interp1(x,y,x0,linear);y02=interp1(x,y,x0,cubic);y03=interp1(x,y,x0,nearst);y04=interp1(x,y,x0,spline);%將插值結(jié)果繪圖對(duì)比subplot 211;%分割繪圖窗為2*1=2個(gè),將繪制圖形置于第1個(gè)子窗口plot(x,y,b,x0,y01,*);%原始觀測(cè)點(diǎn)畫(huà)線,插值點(diǎn)畫(huà)“*”legend(原曲線,插值點(diǎn));%標(biāo)注圖例title(linear);%標(biāo)注標(biāo)題xlabel(x軸);%標(biāo)注x軸ylabel(y軸);%標(biāo)注y軸subplot 212;plot(x,y,b,x0,

19、y02,*);legend(原曲線,插值點(diǎn));title(cubic);xlabel(x軸);ylabel(y軸);cubic和spline的插值結(jié)果會(huì)更接近理論值,而 linear和nearst的插值結(jié)果會(huì)比較粗糙。一、一、MATLAB基本數(shù)學(xué)運(yùn)算基本數(shù)學(xué)運(yùn)算擬合擬合(多項(xiàng)式擬合、線性回歸、非線性回歸等,此不贅述)(多項(xiàng)式擬合、線性回歸、非線性回歸等,此不贅述) 非線性最小二乘擬合非線性最小二乘擬合 : k=lsqnonlin(fun,k0) %對(duì)函數(shù)fun(其值最小前提下),在初始參數(shù)為k0情況下,擬合出最佳參數(shù)k。一、一、MATLAB基本數(shù)學(xué)運(yùn)算基本數(shù)學(xué)運(yùn)算p擬合擬合-舉例舉例lsqno

20、nlin已知數(shù)據(jù)某污染物在反應(yīng)器中的濃度(已知數(shù)據(jù)某污染物在反應(yīng)器中的濃度(c)隨反應(yīng)時(shí)間()隨反應(yīng)時(shí)間(t)的變)的變化數(shù)據(jù)如下:化數(shù)據(jù)如下:t=0.27 0.6 1.0 1.7 2 3 4 6c=19.27 18.25 16.34 14.30 12.43 9.42 6.45 5.37。要求擬合出函數(shù)要求擬合出函數(shù)c(t)=c0e-kt中的系數(shù)中的系數(shù)c0和和k。 【求解】設(shè)【求解】設(shè)c0和和k分別用數(shù)組分別用數(shù)組K的元素的元素K(1)、K(2)表示,則可以建表示,則可以建立立M函數(shù),然后調(diào)用函數(shù),然后調(diào)用lsqnonlin函數(shù)求解。函數(shù)求解。首先定義函數(shù)首先定義函數(shù)c2fun28.mfun

21、ction Zmin=c2fun28(K)global t c; %定義全局變量定義全局變量t=0.27 0.6 1.0 1.7 2 3 4 6;c=19.27 18.25 16.34 14.30 12.43 9.42 6.45 5.37;Zmin=c-K(1)*exp(-K(2)*t);%定義目標(biāo)函數(shù)定義目標(biāo)函數(shù):觀測(cè)值觀測(cè)值-估計(jì)值估計(jì)值 然后,調(diào)用函數(shù)然后,調(diào)用函數(shù)lsqnonlin進(jìn)行擬合進(jìn)行擬合 global t c;%定義全局變量定義全局變量K0=1,1;%初值均取初值均取1K=lsqnonlin(c2fun28,K0)tt=0:0.5:6;%定義繪圖區(qū)間定義繪圖區(qū)間cc=K(1)

22、*exp(-K(2)*tt);%估算擬合值估算擬合值plot(tt,cc,-rp,t,c,b*);legend(擬合曲線擬合曲線,觀測(cè)值觀測(cè)值)運(yùn)算結(jié)果:運(yùn)算結(jié)果:K =21.0474 0.2582,c0=21.0474,k=0.2582。 一、一、MATLAB基本數(shù)學(xué)運(yùn)算基本數(shù)學(xué)運(yùn)算規(guī)劃優(yōu)化問(wèn)題規(guī)劃優(yōu)化問(wèn)題線性規(guī)劃線性規(guī)劃 是最簡(jiǎn)單的有約束最優(yōu)化問(wèn)題 變量取值范圍約束等式約束不等式約束目標(biāo)函數(shù)uleqeqTxxxBxABAxtsxxfobj. .min. 調(diào)用格式為:X,X,fminfmin, ,f fl lagag, ,numnum = =linproglinprog(f,A,(f,A,B

23、 B,Aeq,Aeq,B Beq,eq,xlxl, ,xuxu,x,x0 0) ) 非非線線性性規(guī)規(guī)劃劃 其目標(biāo)函數(shù)或約束條件可能是線性的或非線性的,約束條件既可能有等式約束,也可能有不等式約束:非線性等式約束非線性不等式約束變量取值范圍約束線性等式約束線性不等式約束目標(biāo)函數(shù)0)(0)(. .)(min.xCxCxxxBxABAxtsxxfobjequleqeq 調(diào)用格式: X X, ,f fm mi in n, ,f fl la ag g, ,n nu um m = =f fm mi in nc co on n ( (F Fo ob bj j, ,x x0 0, ,A A, ,B B, ,A

24、 Ae eq q, ,B Be eq q, ,x xl l, ,x xu u, ,C Cf fu un n, ,o op pt t) ) 其中,F(xiàn)obj 為給目標(biāo)函數(shù)寫(xiě)的 M 函數(shù)或 inline()函數(shù);Cfun 為給非線性約束條件寫(xiě)的 M 函數(shù);opt 為運(yùn)算控制選項(xiàng)(不寫(xiě)該輸入項(xiàng)時(shí),采用其默認(rèn)的自適應(yīng)算法) 。 一、一、MATLAB基本數(shù)學(xué)運(yùn)算基本數(shù)學(xué)運(yùn)算規(guī)劃優(yōu)化問(wèn)題規(guī)劃優(yōu)化問(wèn)題-線性規(guī)劃舉例線性規(guī)劃舉例【求解】給出相關(guān)輸入?yún)?shù)的值后,調(diào)用【求解】給出相關(guān)輸入?yún)?shù)的值后,調(diào)用linprog()函數(shù)立即得到結(jié)果。函數(shù)立即得到結(jié)果。f=-2 -3 -4 -3 -5;A=0 2 1 4 2;3

25、 4 5 -1 -1;B=54;62;Aeq=;Beq=;xl=0 0 3.3 0.7 2.6;xu=;X,fmin,flag,num=linprog(f,A,B,Aeq,Beq,xl,xu,)運(yùn)行結(jié)果如下:運(yùn)行結(jié)果如下:Optimization terminated successfully.X =23.3833 0.0000 3.3000 0.7000 23.9500fmin =-181.8167;flag = 1num = iterations: 5 cgiterations: 0 algorithm: lipsol 6 . 2, 7 . 0, 3 . 3, 0,6254354242.

26、.53432min.5432154321543254321xxxxxxxxxxxxxxtsxxxxxxfobj一、一、MATLAB基本數(shù)學(xué)運(yùn)算基本數(shù)學(xué)運(yùn)算規(guī)劃優(yōu)化問(wèn)題規(guī)劃優(yōu)化問(wèn)題-非線性規(guī)劃舉例非線性規(guī)劃舉例0,354030567148. .521000min.321232221323131213212121232221xxxxxxxxxxxxxxxtsxxxxxxxxfobjx0=1,1,1;%定義初值A(chǔ)=;B=;Aeq=8 14 7;Beq=56;xl=0,0,0;xu=;%給出變量值變化范圍X,fmin,flag,num=fmincon (c2fun2_11obj,x0,A,B,Aeq,

27、Beq,xl,xu,c2fun2_11nlin)function Zmin=c2fun2_11obj(x)Zmin=1000 x(1)22*x(2)2x(3)2x(1)*x(2)5*x(1)*x(3);%目標(biāo)函數(shù)function C,Ceq=c2fun2_11nlin(x)C=x(1)*x(2)+x(1)330;x(1)*x(3)+x(2)340;%非線性不等式約束部分Ceq=x(1)2+x(2)2+x(3)235;%定義非線性等式約束部分運(yùn)算結(jié)果Optimization terminated successfully: x =2.1918 0 5.4951;fmin =904.7794;fl

28、ag =1;num =iterations: 9。一、一、MATLAB基本數(shù)學(xué)運(yùn)算基本數(shù)學(xué)運(yùn)算概率論與數(shù)理統(tǒng)計(jì)概率論與數(shù)理統(tǒng)計(jì)正態(tài)分布為例:正態(tài)分布為例:概率密度函數(shù):概率密度:pn=normpdf(x, , );概率分布:F=normcdf(x, , );逆概率:x=norminv(F, , ) 其他如泊松分布、二項(xiàng)分布、其他如泊松分布、二項(xiàng)分布、t分分布等不在贅述布等不在贅述 222)(21xnep例】分別繪制(,)為(1,1)、(0,0.5)、(0,1)、(0,0.8)、(1,1)時(shí)的概率密度函數(shù)和概率分布函數(shù)曲線?!厩蠼狻渴紫仍?,4區(qū)間構(gòu)建自變量x(橫坐標(biāo)),再分別定義和2,這樣就可

29、以調(diào)用相關(guān)函數(shù)進(jìn)行計(jì)算、繪圖。x=4:0.2:4;pn=;F=;mu=1 0 0 0 1;sigma=1 0.5 1 0.8 1;for k=1:length(mu)pn=normpdf(x,mu(k),sigma(k);subplot 211;plot(x,pn);%繪制概率密度函數(shù)圖title(概率密度函數(shù));gtext(strcat( ,num2str(mu(k), , ,num2str(sigma(k), );hold on; F=normcdf(x,mu(k),sigma(k);subplot 212;plot(x,F);%繪制概率分布函數(shù)圖title(概率分布函數(shù));gtext(s

30、trcat( ( , num2str(mu(k), , , num2str(sigma(k), ) );hold on; end計(jì)算繪圖結(jié)果如圖。從中可以觀察:方差相同,則曲線形狀相同,只是對(duì)不同平均值沿x軸進(jìn)行平移;若方差不同,則曲線形狀不一樣,方差越小,曲線越陡,最大概率密度越大。一、一、MATLAB基本數(shù)學(xué)運(yùn)算基本數(shù)學(xué)運(yùn)算p概率論與數(shù)理統(tǒng)計(jì)問(wèn)題概率論與數(shù)理統(tǒng)計(jì)問(wèn)題統(tǒng)計(jì)量分析統(tǒng)計(jì)量分析 均值和中值均值和中值:m=mean(x),mm=median(x) 上述函數(shù)分別計(jì)算向量x的算數(shù)均值和中值(中位數(shù))。如果輸入?yún)?shù)x為矩陣,則分別計(jì)算每列的均值和中值,相當(dāng)于m=meax(x,1),mm=m

31、edian(x,1)。如果要計(jì)算每行的均值和中值,則調(diào)用格式為m=meax(x,2),mm=median(x,2)。極差、標(biāo)準(zhǔn)差、協(xié)方差極差、標(biāo)準(zhǔn)差、協(xié)方差 :r=range(x),s=std(x),c=cov(x) 如果x為向量(行或列均可),則上述函數(shù)分別可以計(jì)算其極差、標(biāo)準(zhǔn)差、方差。如果輸入?yún)?shù)x為矩陣,則分別計(jì)算每列的極差、標(biāo)準(zhǔn)差以及列與列之間的協(xié)方差(形成協(xié)方差矩陣)。相關(guān)系數(shù)、峰度、偏度相關(guān)系數(shù)、峰度、偏度 :r=corrcoef(x),s=kurtosis(x),c=skewness(x) 對(duì)于kurtosis()和skewness(),如果x為矩陣,則其分別計(jì)算每列的峰度和偏度

32、,如果x為向量,則只計(jì)算出一個(gè)峰度或偏度。對(duì)于corrcoef(),如果x為矩陣,則其分別計(jì)算其列與列之間的相關(guān)系數(shù),并形成一個(gè)相關(guān)系數(shù)矩陣;如果輸入?yún)?shù)為列向量,則要求要有兩個(gè)以上的輸入列向量,調(diào)用格式為r=corrcoef(x, y, z.) 。二、二、MATLAB的基本程序設(shè)計(jì)的基本程序設(shè)計(jì)pM文件文件pInline函數(shù)函數(shù)pFor循環(huán)循環(huán)pIF判斷判斷pWhile循環(huán)循環(huán)pSwitch開(kāi)關(guān)開(kāi)關(guān)p程序流控制程序流控制二、二、MATLAB的基本程序設(shè)計(jì)的基本程序設(shè)計(jì)pM文件 M命令文件 若要執(zhí)行大量的若要執(zhí)行大量的MATLAB命令,可以在命令,可以在M文件編輯窗口中編輯、文件編輯窗口中編輯

33、、組織這些命令,然后以擴(kuò)展名為組織這些命令,然后以擴(kuò)展名為.m保存在保存在MATLAB目錄下的目錄下的work子目錄內(nèi)(默認(rèn)為此子目錄,也可以保存在其他目錄下,子目錄內(nèi)(默認(rèn)為此子目錄,也可以保存在其他目錄下,運(yùn)行時(shí)用運(yùn)行時(shí)用path()函數(shù)指定)。函數(shù)指定)。最后在命令窗口調(diào)入該文件名即可運(yùn)行。前面例子中的程序?qū)嶋H最后在命令窗口調(diào)入該文件名即可運(yùn)行。前面例子中的程序?qū)嶋H上都是這樣編制的,因?yàn)檫@樣容易調(diào)試命令。這就象早期上都是這樣編制的,因?yàn)檫@樣容易調(diào)試命令。這就象早期DOS系系統(tǒng)中的批處理文件一樣。統(tǒng)中的批處理文件一樣。 二、二、MATLAB的基本程序設(shè)計(jì)的基本程序設(shè)計(jì)pM文件 M函數(shù)文件

34、利用利用M函數(shù)文件可以將一些經(jīng)常執(zhí)行的運(yùn)算程序編輯為函數(shù)的形式,在函數(shù)文件可以將一些經(jīng)常執(zhí)行的運(yùn)算程序編輯為函數(shù)的形式,在使用時(shí),直接調(diào)入該函數(shù)名和輸入?yún)?shù)即可,大大減少了重復(fù)編寫(xiě)程序使用時(shí),直接調(diào)入該函數(shù)名和輸入?yún)?shù)即可,大大減少了重復(fù)編寫(xiě)程序代碼,精簡(jiǎn)了程序。代碼,精簡(jiǎn)了程序。M函數(shù)文件和函數(shù)文件和M命令文件的顯著差別就是命令文件的顯著差別就是M函數(shù)文函數(shù)文件既可以帶輸入輸出參數(shù),也可以不帶,而件既可以帶輸入輸出參數(shù),也可以不帶,而M命令文件則不能帶輸入輸命令文件則不能帶輸入輸出參數(shù)。出參數(shù)。 二、二、MATLAB的基本程序設(shè)計(jì)的基本程序設(shè)計(jì)pM文件 M函數(shù)文件 二、二、MATLAB的基本

35、程序設(shè)計(jì)的基本程序設(shè)計(jì)p應(yīng)用舉例function RiverCon=c2fun2_30(x)%這是一個(gè)計(jì)算河流污染物濃度的函數(shù)if nargin1 display(Too many input arguments) endif nargout1 display(Too many output arguments) endM=10000000;u=0.5;A=20;D=50;t=180:60:3600;RiverCon=(M./(A*sqrt(4*D*pi.*t).*exp(xu.*t).2)./(4*D.*t);plot(t,RiverCon, b*);xlabel(時(shí)間);ylabel(下游

36、一定距離處濃度);這樣,只要在命令窗口輸入c2fun2_30(500)即可計(jì)算500m處濃度過(guò)程線。050010001500200025003000350040000100200300400500600700時(shí) 間下游一定距離處濃度二、二、MATLAB的基本程序設(shè)計(jì)的基本程序設(shè)計(jì)pinline函數(shù) inline()函數(shù)的出現(xiàn)實(shí)際上是為了克服M函數(shù)文件的不足。因?yàn)镸函數(shù)一般需要單獨(dú)保存,其定義要符合M函數(shù)的定義規(guī)則等,對(duì)于復(fù)雜的函數(shù),這樣的定義是有必要的。但很多時(shí)候函數(shù)形式可能比較簡(jiǎn)單,而且在程序調(diào)試的時(shí)候,如果被調(diào)用函數(shù)和主調(diào)命令不在一個(gè)文件內(nèi),會(huì)使調(diào)試變得繁瑣 自變量列表:每個(gè)變量用單引號(hào)引

37、起來(lái),中間逗號(hào)分開(kāi)Y = inline(sin(2*pi*X + sigma), X, sigma)二、二、MATLAB的基本程序設(shè)計(jì)的基本程序設(shè)計(jì)p程序設(shè)計(jì)結(jié)構(gòu)流程 V向量不一定是等間隔的二、二、MATLAB的基本程序設(shè)計(jì)的基本程序設(shè)計(jì)p程序設(shè)計(jì)結(jié)構(gòu)流程 二、二、MATLAB的基本程序設(shè)計(jì)的基本程序設(shè)計(jì)p程序設(shè)計(jì)結(jié)構(gòu)流程 二、二、MATLAB的基本程序設(shè)計(jì)的基本程序設(shè)計(jì)p程序設(shè)計(jì)結(jié)構(gòu)流程 二、二、MATLAB的基本程序設(shè)計(jì)的基本程序設(shè)計(jì)p程序設(shè)計(jì)結(jié)構(gòu)流程三、三、MATLAB的繪圖技術(shù)的繪圖技術(shù)p二維繪圖二維繪圖p三維繪圖三維繪圖p圖形編輯圖形編輯三、三、MATLAB的繪圖技術(shù)的繪圖技術(shù)p基本

38、二維繪圖語(yǔ)句 三、三、MATLAB的繪圖技術(shù)的繪圖技術(shù)p基本二維繪圖語(yǔ)句三、三、MATLAB的繪圖技術(shù)的繪圖技術(shù)p基本二維繪圖語(yǔ)句繪制完圖形后,還可以用繪制完圖形后,還可以用grid on(off)命令在圖形上添加命令在圖形上添加(或取消)網(wǎng)格線;(或取消)網(wǎng)格線;用用hold on(off)命令保持?。ɑ蛉∠3譅顟B(tài))當(dāng)前圖形,命令保持?。ɑ蛉∠3譅顟B(tài))當(dāng)前圖形,使以后再繪制的圖形疊加到原來(lái)的圖形上(或重新繪圖);使以后再繪制的圖形疊加到原來(lái)的圖形上(或重新繪圖);用用axis(xmin xmax,ymin ymax)分別指定坐標(biāo)軸的區(qū)限;分別指定坐標(biāo)軸的區(qū)限;用用xlabel()、yla

39、bel()命令給坐標(biāo)軸添加標(biāo)題;命令給坐標(biāo)軸添加標(biāo)題;用用title()函數(shù)給圖形添加標(biāo)題。函數(shù)給圖形添加標(biāo)題。 一、二維圖形的繪制一、二維圖形的繪制 p其他二維繪圖語(yǔ)句 MATLAB還提供了一些特殊意義的繪圖函數(shù):loglog(x,y)可以繪制雙對(duì)數(shù)圖可以繪制雙對(duì)數(shù)圖semilogx(x,y)可以繪制可以繪制y軸為對(duì)數(shù)刻度的二維圖形軸為對(duì)數(shù)刻度的二維圖形errorbar(x,y,ymin,ymax)可以在繪制的可以在繪制的圖形上加圖形上加上誤差范圍等上誤差范圍等 三、三、MATLAB的繪圖技術(shù)的繪圖技術(shù)p二維函數(shù)繪圖語(yǔ)句 三、三、MATLAB的繪圖技術(shù)的繪圖技術(shù)p應(yīng)用舉例 三、三、MATLA

40、B的繪圖技術(shù)的繪圖技術(shù)p編程求解 【求解】編制程序如下。y=inline(200*sin(x)./x,x);subplot(221);fplot(y,1 10);title(Fig1);clear;subplot(222);fplot(tan(x),sin(x),cos(x),2*pi*1 1 1 1);title(Fig2);clear;subplot(223);ezplot(x3 + y3 5*x*y + 1/5,3,3,6 6);title(Fig3);clearsyms t ;x= sin(3*t)*cos(t);y= sin(3*t)*sin(t);subplot(224); ezp

41、lot(x,y,0,pi); title(Fig4);一、二維圖形的繪制一、二維圖形的繪制p運(yùn)行結(jié)果 二、三維圖形的繪制二、三維圖形的繪制 p基本三維繪圖語(yǔ)句 三、三、MATLAB的繪圖技術(shù)的繪圖技術(shù)p基本三維繪圖語(yǔ)句 x,y=meshgrid(1:0.5:10,10:0.5:20);z=x.5.*exp(-y.0.5).*y.5.*exp(-x.0.5);三、三、MATLAB的繪圖技術(shù)的繪圖技術(shù)p基本三維繪圖語(yǔ)句 三、三、MATLAB的繪圖技術(shù)的繪圖技術(shù)p三維函數(shù)繪圖語(yǔ)句 三、三、MATLAB的繪圖技術(shù)的繪圖技術(shù)p三維函數(shù)繪圖語(yǔ)句 【例】觀察下列函數(shù)調(diào)用后的輸出結(jié)果。f =(1x)2*exp(x2)(y+1)2) (x/5 x3 y5)*exp(x2y2) exp(x+1)2 y2);subplot 221;ezcontour(f,3,3

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論