




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)學(xué)建模與數(shù)學(xué)實(shí)驗(yàn)
數(shù)學(xué)建模簡(jiǎn)介
數(shù)學(xué)建模簡(jiǎn)介
1.關(guān)于數(shù)學(xué)建模
2.數(shù)學(xué)建模實(shí)例
3.數(shù)學(xué)建模論文的撰寫方法A.人口預(yù)報(bào)問(wèn)題B.椅子能在不平的地面上放穩(wěn)嗎?C.雙層玻璃的功效1、什么是數(shù)學(xué)模型?
數(shù)學(xué)模型是對(duì)于現(xiàn)實(shí)世界的一個(gè)特定對(duì)象,一個(gè)特定目的,根據(jù)特有的內(nèi)在規(guī)律,做出一些必要的假設(shè),運(yùn)用適當(dāng)?shù)臄?shù)學(xué)工具,得到一個(gè)數(shù)學(xué)結(jié)構(gòu)。簡(jiǎn)單地說(shuō):就是系統(tǒng)的某種特征的本質(zhì)的數(shù)學(xué)表達(dá)式(或是用數(shù)學(xué)術(shù)語(yǔ)對(duì)部分現(xiàn)實(shí)世界的描述),即用數(shù)學(xué)式子(如函數(shù)、圖形、代數(shù)方程、微分方程、積分方程、差分方程等)來(lái)描述(表述、模擬)所研究的客觀對(duì)象或系統(tǒng)在某一方面的存在規(guī)律。一、名詞解釋2、什么是數(shù)學(xué)建模?
數(shù)學(xué)建模是利用數(shù)學(xué)方法解決實(shí)際問(wèn)題的一種實(shí)踐。即通過(guò)抽象、簡(jiǎn)化、假設(shè)、引進(jìn)變量等處理過(guò)程后,將實(shí)際問(wèn)題用數(shù)學(xué)方式表達(dá),建立起數(shù)學(xué)模型,然后運(yùn)用先進(jìn)的數(shù)學(xué)方法及計(jì)算機(jī)技術(shù)進(jìn)行求解。觀點(diǎn):“所謂高科技就是一種數(shù)學(xué)技術(shù)”
數(shù)學(xué)建模其實(shí)并不是什么新東西,可以說(shuō)有了數(shù)學(xué)并需要用數(shù)學(xué)去解決實(shí)際問(wèn)題,就一定要用數(shù)學(xué)的語(yǔ)言、方法去近似地刻劃該實(shí)際問(wèn)題,這種刻劃的數(shù)學(xué)表述的就是一個(gè)數(shù)學(xué)模型,其過(guò)程就是數(shù)學(xué)建模的過(guò)程。數(shù)學(xué)模型一經(jīng)提出,就要用一定的技術(shù)手段(計(jì)算、證明等)來(lái)求解并驗(yàn)證,其中大量的計(jì)算往往是必不可少的,高性能的計(jì)算機(jī)的出現(xiàn)使數(shù)學(xué)建模這一方法如虎添翼似的得到了飛速的發(fā)展,掀起一個(gè)高潮。
數(shù)學(xué)建模將各種知識(shí)綜合應(yīng)用于解決實(shí)際問(wèn)題中,是培養(yǎng)和提高同學(xué)們應(yīng)用所學(xué)知識(shí)分析問(wèn)題、解決問(wèn)題的能力的必備手段之一。
二、數(shù)學(xué)建模的一般方法和步驟建立數(shù)學(xué)模型的方法和步驟并沒(méi)有一定的模式,但一個(gè)理想的模型應(yīng)能反映系統(tǒng)的全部重要特征:模型的可靠性和模型的使用性建模的一般方法:◆機(jī)理分析◆測(cè)試分析方法機(jī)理分析:根據(jù)對(duì)現(xiàn)實(shí)對(duì)象特性的認(rèn)識(shí),分析其因果關(guān)系,找出反映內(nèi)部機(jī)理的規(guī)律,所建立的模型常有明確的物理或現(xiàn)實(shí)意義。測(cè)試分析方法:將研究對(duì)象視為一個(gè)“黑箱”系統(tǒng),內(nèi)部機(jī)理無(wú)法直接尋求,通過(guò)測(cè)量系統(tǒng)的輸入輸出數(shù)據(jù),并以此為基礎(chǔ)運(yùn)用統(tǒng)計(jì)分析方法,按照事先確定的準(zhǔn)則在某一類模型中選出一個(gè)數(shù)據(jù)擬合得最好的模型。測(cè)試分析方法也叫做系統(tǒng)辯識(shí)。將這兩種方法結(jié)合起來(lái)使用,即用機(jī)理分析方法建立模型的結(jié)構(gòu),用系統(tǒng)測(cè)試方法來(lái)確定模型的參數(shù),也是常用的建模方法。
在實(shí)際過(guò)程中用那一種方法建模主要是根據(jù)我們對(duì)研究對(duì)象的了解程度和建模目的來(lái)決定。機(jī)理分析法建模的具體步驟大致可見(jiàn)右圖。符合實(shí)際不符合實(shí)際交付使用,從而可產(chǎn)生經(jīng)濟(jì)、社會(huì)效益實(shí)際問(wèn)題抽象、簡(jiǎn)化、假設(shè)確定變量、參數(shù)建立數(shù)學(xué)模型并數(shù)學(xué)、數(shù)值地求解、確定參數(shù)用實(shí)際問(wèn)題的實(shí)測(cè)數(shù)據(jù)等來(lái)檢驗(yàn)該數(shù)學(xué)模型建模過(guò)程示意圖
模型
數(shù)學(xué)模型的分類:◆按研究方法和對(duì)象的數(shù)學(xué)特征分:初等模型、幾何模型、優(yōu)化模型、微分方程模型、圖論模型、邏輯模型、穩(wěn)定性模型、擴(kuò)散模型等?!舭囱芯繉?duì)象的實(shí)際領(lǐng)域(或所屬學(xué)科)分:人口模型、交通模型、環(huán)境模型、生態(tài)模型、生理模型、城鎮(zhèn)規(guī)劃模型、水資源模型、污染模型、經(jīng)濟(jì)模型、社會(huì)模型等。三、數(shù)學(xué)模型及其分類四、近幾年全國(guó)大學(xué)生數(shù)學(xué)建模競(jìng)賽題
返回1、如何預(yù)報(bào)人口?
要預(yù)報(bào)未來(lái)若干年(如2005)的人口數(shù),最重要的影響因素是今年的人口數(shù)和今后這些年的增長(zhǎng)率(即人口出身率減死亡率),根據(jù)這兩個(gè)數(shù)據(jù)進(jìn)行人口預(yù)報(bào)是很容易的。記今年人口為,k年后人口為,年增長(zhǎng)率為r,則預(yù)報(bào)公式為:
預(yù)報(bào)正確的條件:年增長(zhǎng)率r保持不變。數(shù)學(xué)建模實(shí)例1、指數(shù)增長(zhǎng)模型(馬爾薩斯人口模型):英國(guó)人口學(xué)家馬爾薩斯(Malthus1766~1834)于1798年提出。2、阻滯增長(zhǎng)模型(Logistic模型)3、更復(fù)雜的人口模型隨機(jī)性模型、考慮人口年齡分布的模型等可見(jiàn)數(shù)學(xué)模型總是在不斷的修改、完善使之能符合實(shí)際情況的變化。人口模型2、椅子能在不平的地面上放穩(wěn)嗎?把四只腳的椅子往不平的地面上一放,通常只有三只腳著地,放不穩(wěn),然而有人認(rèn)為只要稍挪動(dòng)幾次,就可以四腳著地,放穩(wěn)了,對(duì)嗎?3、雙層玻璃的功效北方城鎮(zhèn)的有些建筑物的窗戶是雙層的,即窗戶上裝兩層厚度為的玻璃夾著一層厚度為的空氣,如左圖所示,據(jù)說(shuō)這樣做是為了保暖,即減少室內(nèi)向室外的熱量流失。我們要建立一個(gè)模型來(lái)描述熱量通過(guò)窗戶的熱傳導(dǎo)(即流失)過(guò)程,并將雙層玻璃窗與用同樣多材料做成的單層玻璃窗(如右圖,玻璃厚度為)的熱量傳導(dǎo)進(jìn)行對(duì)比,對(duì)雙層玻璃窗能夠減少多少熱量損失給出定量分析結(jié)果。
返回
怎樣撰寫數(shù)學(xué)建模的論文?1、摘要:問(wèn)題、模型、方法、結(jié)果2、問(wèn)題重述4、分析與建立模型5、模型求解6、模型檢驗(yàn)7、模型推廣8、參考文獻(xiàn)9、附錄實(shí)例3、模型假設(shè)
返回謝謝!數(shù)學(xué)建模與數(shù)學(xué)實(shí)驗(yàn)
MATLAB入門
MATLAB作為線性系統(tǒng)的一種分析和仿真工具,是理工科大學(xué)生應(yīng)該掌握的技術(shù)工具,它作為一種編程語(yǔ)言和可視化工具,可解決工程、科學(xué)計(jì)算和數(shù)學(xué)學(xué)科中許多問(wèn)題。
MATLAB建立在向量、數(shù)組和矩陣的基礎(chǔ)上,使用方便,人機(jī)界面直觀,輸出結(jié)果可視化。矩陣是MATLAB的核心MATLAB的進(jìn)入與運(yùn)行方式(兩種)
MATLAB入門一、變量與函數(shù)二、數(shù)組三、矩陣四、MATLAB編程五、實(shí)驗(yàn)作業(yè)1、變量
MATLAB中變量的命名規(guī)則是:(1)變量名必須是不含空格的單個(gè)詞;(2)變量名區(qū)分大小寫;(3)變量名最多不超過(guò)19個(gè)字符;(4)變量名必須以字母打頭,之后可以是任意字母、數(shù)字或下劃線,變量名中不允許使用標(biāo)點(diǎn)符號(hào).
一、變量與函數(shù)特殊變量表2、數(shù)學(xué)運(yùn)算符號(hào)及標(biāo)點(diǎn)符號(hào)(1)MATLAB的每條命令后,若為逗號(hào)或無(wú)標(biāo)點(diǎn)符號(hào),則顯示命令的結(jié)果;若命令后為分號(hào),則禁止顯示結(jié)果.(2)“%”后面所有文字為注釋.(3)“...”表示續(xù)行.3、數(shù)學(xué)函數(shù)
MATLAB的內(nèi)部函數(shù)是有限的,有時(shí)為了研究某一個(gè)函數(shù)的各種性態(tài),需要為MATLAB定義新函數(shù),為此必須編寫函數(shù)文件.函數(shù)文件是文件名后綴為M的文件,這類文件的第一行必須是一特殊字符function開(kāi)始,格式為:
function因變量名=函數(shù)名(自變量名)函數(shù)值的獲得必須通過(guò)具體的運(yùn)算實(shí)現(xiàn),并賦給因變量.
4、M文件M文件建立方法:1.在Matlab中,點(diǎn):File->New->M-file2.在編輯窗口中輸入程序內(nèi)容
3.點(diǎn):File->Save,存盤,M文件名必須與函數(shù)名一致。Matlab的應(yīng)用程序也以M文件保存。例:定義函數(shù)f(x1,x2)=100(x2-x12)2+(1-x1)2functionf=fun(x)f=100*(x(2)-x(1)^2)^2+(1-x(1))^21.建立M文件:fun.mMATLAB(fun)2.可以直接使用函數(shù)fun.m例如:計(jì)算f(1,2),只需在Matlab命令窗口鍵入命令:x=[12]fun(x)
返回x=logspace(first,last,n)
創(chuàng)建從開(kāi)始,到結(jié)束,有n個(gè)元素的對(duì)數(shù)分隔行向量.1、創(chuàng)建簡(jiǎn)單的數(shù)組二、數(shù)組MATLAB(shuzu1)x=[abcdef]
創(chuàng)建包含指定元素的行向量x=first:last
創(chuàng)建從first開(kāi)始,加1計(jì)數(shù),到last結(jié)束的行向量x=first:increment:last
創(chuàng)建從first開(kāi)始,加increment計(jì)數(shù),last結(jié)束的行向量x=linspace(first,last,n)
創(chuàng)建從first開(kāi)始,到last結(jié)束,有n個(gè)元素的行向量
2、數(shù)組元素的訪問(wèn)MATLAB(shuzu2)(3)直接使用元素編址序號(hào).x([abcd])表示提取數(shù)組x的第a、b、c、d個(gè)元素構(gòu)成一個(gè)新的數(shù)組[x(a)x(b)x(c)x(d)].(2)訪問(wèn)一塊元素:
x(a:b:c)表示訪問(wèn)數(shù)組x的從第a個(gè)元素開(kāi)始,以步長(zhǎng)為b到第c個(gè)元素(但不超過(guò)c),b可以為負(fù)數(shù),b缺損時(shí)為1.(1)訪問(wèn)一個(gè)元素:
x(i)表示訪問(wèn)數(shù)組x的第i個(gè)元素.3、數(shù)組的方向
前面例子中的數(shù)組都是一行數(shù)列,是行方向分布的.稱之為行向量.數(shù)組也可以是列向量,它的數(shù)組操作和運(yùn)算與行向量是一樣的,唯一的區(qū)別是結(jié)果以列形式顯示.
產(chǎn)生列向量有兩種方法:直接產(chǎn)生例c=[1;2;3;4]
轉(zhuǎn)置產(chǎn)生例b=[1234];c=b’
說(shuō)明:以空格或逗號(hào)分隔的元素指定的是不同列的元素,而以分號(hào)分隔的元素指定了不同行的元素.4、數(shù)組的運(yùn)算
(1)標(biāo)量-數(shù)組運(yùn)算數(shù)組對(duì)標(biāo)量的加、減、乘、除、乘方是數(shù)組的每個(gè)元素對(duì)該標(biāo)量施加相應(yīng)的加、減、乘、除、乘方運(yùn)算.設(shè):a=[a1,a2,…,an],c=標(biāo)量則:a+c=[a1+c,a2+c,…,an+c]a.*c=[a1*c,a2*c,…,an*c]a./c=[a1/c,a2/c,…,an/c](右除)
a.\c=[c/a1,c/a2,…,c/an](左除)
a.^c=[a1^c,a2^c,…,an^c]c.^a=[c^a1,c^a2,…,c^an]MATLAB(shuzu3)(2)數(shù)組-數(shù)組運(yùn)算
當(dāng)兩個(gè)數(shù)組有相同維數(shù)時(shí),加、減、乘、除、冪運(yùn)算可按元素對(duì)元素方式進(jìn)行的,不同大小或維數(shù)的數(shù)組是不能進(jìn)行運(yùn)算的.
設(shè):a=[a1,a2,…,an],b=[b1,b2,…,bn]則:a+b=[a1+b1,a2+b2,…,an+bn]a.*b=[a1*b1,a2*b2,…,an*bn]a./b=[a1/b1,a2/b2,…,an/bn]a.\b=[b1/a1,b2/a2,…,bn/an]a.^b=[a1^b1,a2^b2,…,an^bn]MATLAB(shuzu4)
返回三、矩陣
逗號(hào)或空格用于分隔某一行的元素,分號(hào)用于區(qū)分不同的行.除了分號(hào),在輸入矩陣時(shí),按Enter鍵也表示開(kāi)始一新行.輸入矩陣時(shí),嚴(yán)格要求所有行有相同的列.
例m=[1234;5678;9101112]p=[111122223333]1、矩陣的建立特殊矩陣的建立:.MATLAB(matrix1)d=eye(m,n)產(chǎn)生一個(gè)m行、n列的單位矩陣c=ones(m,n)產(chǎn)生一個(gè)m行、n列的元素全為1的矩陣b=zeros(m,n)產(chǎn)生一個(gè)m行、n列的零矩陣a=[]產(chǎn)生一個(gè)空矩陣,當(dāng)對(duì)一項(xiàng)操作無(wú)結(jié)果時(shí),返回空矩陣,空矩陣的大小為零.2、矩陣中元素的操作MATLAB(matrix2)(1)矩陣A的第r行:A(r,:)(2)矩陣A的第r列:A(:,r)(4)取矩陣A的第i1~i2行、第j1~j2列構(gòu)成新矩陣:A(i1:i2,j1:j2)(5)以逆序提取矩陣A的第i1~i2行,構(gòu)成新矩陣:A(i2:-1:i1,:)(6)以逆序提取矩陣A的第j1~j2列,構(gòu)成新矩陣:A(:,j2:-1:j1
)(7)刪除A的第i1~i2行,構(gòu)成新矩陣:A(i1:i2,:)=[](8)刪除A的第j1~j2列,構(gòu)成新矩陣:A(:,j1:j2)=[](9)將矩陣A和B拼接成新矩陣:[AB];[A;B](3)依次提取矩陣A的每一列,將A拉伸為一個(gè)列向量:A(:)
(2)矩陣-矩陣運(yùn)算
[1]元素對(duì)元素的運(yùn)算,同數(shù)組-數(shù)組運(yùn)算。
3、矩陣的運(yùn)算(1)標(biāo)量-矩陣運(yùn)算
同標(biāo)量-數(shù)組運(yùn)算。MATLAB(matrix3)
[2]矩陣運(yùn)算:矩陣加法:A+B矩陣乘法:A*B方陣的行列式:det(A)方陣的逆:inv(A)方陣的特征值與特征向量:[V,D]=eig[A]
返回關(guān)系與邏輯運(yùn)算
1、關(guān)系操作符2、邏輯運(yùn)算符1、for循環(huán):允許一組命令以固定的和預(yù)定的次數(shù)重復(fù)
forx=array{commands}end
在for和end語(yǔ)句之間的命令串{commands}按數(shù)組(array)中的每一列執(zhí)行一次.在每一次迭代中,x被指定為數(shù)組的下一列,即在第n次循環(huán)中,x=array(:,n)控制流MATLAB提供三種決策或控制流結(jié)構(gòu):
for循環(huán)、while循環(huán)、if-else-end結(jié)構(gòu).
這些結(jié)構(gòu)經(jīng)常包含大量的MATLAB命令,故經(jīng)常出現(xiàn)在MATLAB程序中,而不是直接加在MATLAB提示符下.
例對(duì)n=1,2,…,10,求xn=的值MATLAB(for1)
whileexpression{commands}end
只要在表達(dá)式(expression)里的所有元素為真,就執(zhí)行while和end語(yǔ)句之間的命令串{commands}.2、While循環(huán)
與for循環(huán)以固定次數(shù)求一組命令相反,while循環(huán)以不定的次數(shù)求一組語(yǔ)句的值.MATLAB(while1)
例設(shè)銀行年利率為11.25%。將10000元錢存入銀行,問(wèn)多長(zhǎng)時(shí)間會(huì)連本帶利翻一番?3、If-Else-End結(jié)構(gòu)(1)有一個(gè)選擇的一般形式是:
ifexpression{commands}end
如果在表達(dá)式(expression)里的所有元素為真,就執(zhí)行if和end語(yǔ)句之間的命令串{commands}.MATLAB(fun1)
先建立M文件fun1.m定義函數(shù)f(x),再在Matlab命令窗口輸入fun1(2),fun1(-1)即可。2)有三個(gè)或更多的選擇的一般形式是:
if(expression1)
{commands1}elseif(expression2)
{commands2}elseif(expression3)
{commands3}elseif………………………else{commands}endendend……end
先建立M文件fun2.m定義函數(shù)f(x),再在Matlab命令窗口輸入fun2(2),fun2(0.5),fun2(-1)即可。MATLAB(fun2)
返回對(duì)以下問(wèn)題,編寫M文件:(1)用起泡法對(duì)10個(gè)數(shù)由小到大排序.即將相鄰兩個(gè)數(shù)比較,將小的調(diào)到前頭.(2)有一個(gè)矩陣,編程求出其最大值及其所處的位置.(3)編程求(4)一球從100米高度自由落下,每次落地后反跳回原高度的一半,再落下.求它在第10次落地時(shí),共經(jīng)過(guò)多少米?第10次反彈有多高?(5)有一函數(shù),寫一程序,輸入自變量的值,輸出函數(shù)值.實(shí)驗(yàn)作業(yè)
返回
謝謝!數(shù)學(xué)建模與數(shù)學(xué)實(shí)驗(yàn)
MATLAB作圖Matlab作圖二維圖形三維圖形圖形處理實(shí)例作業(yè)特殊二、三維圖形Matlab作圖是通過(guò)描點(diǎn)、連線來(lái)實(shí)現(xiàn)的,故在畫一個(gè)曲線圖形之前,必須先取得該圖形上的一系列的點(diǎn)的坐標(biāo)(即橫坐標(biāo)和縱坐標(biāo)),然后將該點(diǎn)集的坐標(biāo)傳給Matlab函數(shù)畫圖.命令為:PLOT(X,Y,S)PLOT(X,Y)--畫實(shí)線PLOT(X,Y1,S1,X,Y2,S2,……,X,Yn,Sn)--將多條線畫在一起X,Y是向量,分別表示點(diǎn)集的橫坐標(biāo)和縱坐標(biāo)線型y黃色.點(diǎn)-連線m洋紅o圈:短虛線c藍(lán)綠色xx-符號(hào)-.長(zhǎng)短線r紅色+加號(hào)--長(zhǎng)虛線1.曲線圖例在[0,2*pi]用紅線畫sin(x),用綠圈畫cos(x).x=linspace(0,2*pi,30);y=sin(x);z=cos(x);plot(x,y,'r',x,z,’g0')解Matlabliti12.符號(hào)函數(shù)(顯函數(shù)、隱函數(shù)和參數(shù)方程)畫圖(1)ezplotezplot(‘x(t)’,’y(t)’,[tmin,tmax])
表示在區(qū)間tmin<t<tmax繪制參數(shù)方程x=x(t),y=y(t)的函數(shù)圖ezplot(‘f(x)’,[a,b])
表示在a<x<b繪制顯函數(shù)f=f(x)的函數(shù)圖ezplot(‘f(x,y)’,[xmin,xmax,ymin,ymax])
表示在區(qū)間xmin<x<xmax和ymin<y<ymax繪制隱函數(shù)f(x,y)=0的函數(shù)圖例在[0,pi]上畫y=cos(x)的圖形解輸入命令
ezplot(‘sin(x)’,[0,pi])Matlabliti25解輸入命令
ezplot(‘cos(t)^3’,’sin(t)^3’,[0.2*pi])Matlabliti41解輸入命令ezplot('exp(x)+sin(x*y)',[-2,0.5,0,2])Matlabliti40(2)fplot注意:[1]fun必須是M文件的函數(shù)名或是獨(dú)立變量為x的字符串.[2]fplot函數(shù)不能畫參數(shù)方程和隱函數(shù)圖形,但在一個(gè)圖上可以畫多個(gè)圖形。fplot(‘fun’,lims)
表示繪制字符串fun指定的函數(shù)在lims=[xmin,xmax]的圖形.解先建M文件myfun1.m:
functionY=myfun1(x)Y=exp(2*x)+sin(3*x.^2)再輸入命令:fplot(‘myfun1’,[-1,2])Matlabliti43Matlabliti28解輸入命令:
fplot(‘[tanh(x),sin(x),cos(x)]’,2*pi*[-11–11])例在[-2,2]范圍內(nèi)繪制函數(shù)tanh的圖形解
fplot(‘tanh’,[-2,2])Matlabliti423.對(duì)數(shù)坐標(biāo)圖
在很多工程問(wèn)題中,通過(guò)對(duì)數(shù)據(jù)進(jìn)行對(duì)數(shù)轉(zhuǎn)換可以更清晰地看出數(shù)據(jù)的某些特征,在對(duì)數(shù)坐標(biāo)系中描繪數(shù)據(jù)點(diǎn)的曲線,可以直接地表現(xiàn)對(duì)數(shù)轉(zhuǎn)換.對(duì)數(shù)轉(zhuǎn)換有雙對(duì)數(shù)坐標(biāo)轉(zhuǎn)換和單軸對(duì)數(shù)坐標(biāo)轉(zhuǎn)換兩種.用loglog函數(shù)可以實(shí)現(xiàn)雙對(duì)數(shù)坐標(biāo)轉(zhuǎn)換,用semilogx和semilogy函數(shù)可以實(shí)現(xiàn)單軸對(duì)數(shù)坐標(biāo)轉(zhuǎn)換.loglog(Y)
表示x、y坐標(biāo)都是對(duì)數(shù)坐標(biāo)系semilogx(Y)
表示x坐標(biāo)軸是對(duì)數(shù)坐標(biāo)系semilogy(…)
表示y坐標(biāo)軸是對(duì)數(shù)坐標(biāo)系plotyy
有兩個(gè)y坐標(biāo)軸,一個(gè)在左邊,一個(gè)在右邊例用方形標(biāo)記創(chuàng)建一個(gè)簡(jiǎn)單的loglog解輸入命令:x=logspace(-1,2);loglog(x,exp(x),’-s’)gridon%標(biāo)注格柵Matlabliti37例創(chuàng)建一個(gè)簡(jiǎn)單的半對(duì)數(shù)坐標(biāo)圖解輸入命令:x=0:.1:10;semilogy(x,10.^x)Matlabliti38例繪制y=x3的函數(shù)圖、對(duì)數(shù)坐標(biāo)圖、半對(duì)數(shù)坐標(biāo)圖Matlabliti22返回三維圖形1、空間曲線2、空間曲面返回PLOT3(x,y,z,s)
空間曲線
1、一條曲線
例在區(qū)間[0,10*pi]畫出參數(shù)曲線x=sin(t),y=cos(t),z=t.Matlabliti8
解t=0:pi/50:10*pi;plot3(sin(t),cos(t),t)rotate3d%旋轉(zhuǎn)n維向量,分別表示曲線上點(diǎn)集的橫坐標(biāo)、縱坐標(biāo)、函數(shù)值指定顏色、線形等
PLOT3(x,y,z)2、多條曲線例畫多條曲線觀察函數(shù)Z=(X+Y).^2.(這里meshgrid(x,y)的作用是產(chǎn)生一個(gè)以向量x為行、向量y為列的矩陣)Matlabliti9其中x,y,z是都是m*n矩陣,其對(duì)應(yīng)的每一列表示一條曲線.解x=-3:0.1:3;y=1:0.1:5;[X,Y]=meshgrid(x,y);Z=(X+Y).^2;plot3(X,Y,Z)返回空間曲面例畫函數(shù)Z=(X+Y).^2的圖形.解x=-3:0.1:3;y=1:0.1:5;[X,Y]=meshgrid(x,y);Z=(X+Y).^2;surf(X,Y,Z)shadingflat%將當(dāng)前圖形變得平滑Matlabliti11(1)surf(x,y,z)畫出數(shù)據(jù)點(diǎn)(x,y,z)表示的曲面數(shù)據(jù)矩陣。分別表示數(shù)據(jù)點(diǎn)的橫坐標(biāo)、縱坐標(biāo)、函數(shù)值(2)Mesh(x,y,z)
解
x=-3:0.1:3;y=1:0.1:5;[X,Y]=meshgrid(x,y);Z=(X+Y).^2;mesh(X,Y,Z)Matlabliti24例
畫出曲面Z=(X+Y).^2在不同視角的網(wǎng)格圖.畫網(wǎng)格曲面數(shù)據(jù)矩陣。分別表示數(shù)據(jù)點(diǎn)的橫坐標(biāo)、縱坐標(biāo)、函數(shù)值(3)meshz(X,Y,Z)
在網(wǎng)格周圍畫一個(gè)curtain圖(如,參考平面)解輸入命令:[X,Y]=meshgrid(-3:.125:3);Z=praks(X,Y);Meshz(X,Y,Z)例繪peaks的網(wǎng)格圖Matlabliti36返回在圖形上加格柵、圖例和標(biāo)注定制坐標(biāo)圖形保持分割窗口縮放圖形改變視角圖形處理返回動(dòng)畫1、在圖形上加格柵、圖例和標(biāo)注(1)GRIDON:加格柵在當(dāng)前圖上
GRIDOFF:刪除格柵處理圖形(2)hh=xlabel(string):
在當(dāng)前圖形的x軸上加圖例stringhh=ylabel(string):
在當(dāng)前圖形的y軸上加圖例stringhh=title(string):
在當(dāng)前圖形的頂端上加圖例stringhh=zlabel(string):
在當(dāng)前圖形的z軸上加圖例string例在區(qū)間[0,2*pi]畫sin(x)的圖形,并加注圖例“自變量
X”、“函數(shù)Y”、“示意圖”,并加格柵.解
x=linspace(0,2*pi,30);y=sin(x);plot(x,y)xlabel('自變量X')ylabel('函數(shù)Y')title('示意圖')gridonMatlabliti2
(3)hh=gtext(‘string’)
命令gtext(‘string’)用鼠標(biāo)放置標(biāo)注在現(xiàn)有的圖上.運(yùn)行命令gtext(‘string’)時(shí),屏幕上出現(xiàn)當(dāng)前圖形,在圖形上出現(xiàn)一個(gè)交叉的十字,該十字隨鼠標(biāo)的移動(dòng)移動(dòng),當(dāng)按下鼠標(biāo)左鍵時(shí),該標(biāo)注string放在當(dāng)前十交叉的位置.例在區(qū)間[0,2*pi]畫sin(x),并分別標(biāo)注“sin(x)””cos(x)”.解
x=linspace(0,2*pi,30);y=sin(x);z=cos(x);plot(x,y,x,z)gtext(‘sin(x)’);gtext(’cos(x)’)Matlabliti3返回2、定制坐標(biāo)Axis([xminxmaxyminymaxzminzmax])例在區(qū)間[0.005,0.01]顯示sin(1/x)的圖形。解
x=linspace(0.0001,0.01,1000);y=sin(1./x);plot(x,y)axis([0.0050.01–11])Matlabliti4返回定制圖形坐標(biāo)將坐標(biāo)軸返回到自動(dòng)缺省值A(chǔ)xisautox、y、z的最大、最小值3、圖形保持(1)holdonholdof例將y=sin(x)、y=cos(x)分別用點(diǎn)和線畫出在同一屏幕上。解
x=linspace(0,2*pi,30);y=sin(x);z=cos(x)plot(x,z,:)holdonPlot(x,y)Matlabliti5保持當(dāng)前圖形,以便繼續(xù)畫圖到當(dāng)前圖上釋放當(dāng)前圖形窗口(2)figure(h)例區(qū)間[0,2*pi]新建兩個(gè)窗口分別畫出y=sin(x);
z=cos(x)。解
x=linspace(0,2*pi,100);y=sin(x);z=cos(x);plot(x,y);title('sin(x)');pausefigure(2);plot(x,z);title('cos(x)');Matlabliti6返回新建h窗口,激活圖形使其可見(jiàn),并把它置于其它圖形之上4、分割窗口h=subplot(mrows,ncols,thisplot)
劃分整個(gè)作圖區(qū)域?yàn)閙rows*ncols塊(逐行對(duì)塊訪問(wèn))并激活第thisplot塊,其后的作圖語(yǔ)句將圖形畫在該塊上。
激活已劃分為mrows*ncols塊的屏幕中的第thisplot塊,其后的作圖語(yǔ)句將圖形畫在該塊上。命令Subplot(1,1,1)返回非分割狀態(tài)。subplot(mrows,ncols,thisplot)subplot(1,1,1)
解x=linspace(0,2*pi,100);y=sin(x);z=cos(x);a=sin(x).*cos(x);b=sin(x)./(cos(x)+eps)subplot(2,2,1);plot(x,y),title(‘sin(x)’)subplot(2,2,2);plot(x,z),title(‘cos(x)’)subplot(2,2,3);plot(x,a),title(‘sin(x)cos(x)’)subplot(2,2,4);plot(x,b),title(‘sin(x)/cos(x)’)例將屏幕分割為四塊,并分別畫出y=sin(x),z=cos(x),a=sin(x)*cos(x),b=sin(x)/cos(x)。Matlabliti7返回5、縮放圖形zoomon
單擊鼠標(biāo)左鍵,則在當(dāng)前圖形窗口中,以鼠標(biāo)點(diǎn)中的點(diǎn)為中心的圖形放大2倍;單擊鼠標(biāo)右鍵,則縮小2倍解
x=linspace(0,2*pi,30);y=sin(x);Plot(x,y)zoomonMatlabliti13例縮放y=sin(x)的圖形zoomoff為當(dāng)前圖形打開(kāi)縮放模式關(guān)閉縮放模式返回6.
改變視角view
(1)view(a,b)
命令view(a,b)改變視角到(a,b),a是方位角,b為仰角。缺省視角為(-37.5,30)。
解
x=-3:0.1:3;y=1:0.1:5;[X,Y]=meshgrid(x,y);Z=(X+Y).^2;subplot(2,2,1),mesh(X,Y,Z)subplot(2,2,2),mesh(X,Y,Z),view(50,-34)subplot(2,2,3),mesh(X,Y,Z),view(-60,70)subplot(2,2,4),mesh(X,Y,Z),view(0,1,1)Matlabliti10例
畫出曲面Z=(X+Y).^2在不同視角的網(wǎng)格圖.view用空間矢量表示的,三個(gè)量只關(guān)心它們的比例,與數(shù)值的大小無(wú)關(guān),x軸view([1,0,0]),y軸view([0,1,0]),z軸view([0,0,1])。(2)view([x,y,z])返回7.
動(dòng)畫
Moviein(),getframe,movie()
函數(shù)Moviein()產(chǎn)生一個(gè)幀矩陣來(lái)存放動(dòng)畫中的幀;函數(shù)getframe對(duì)當(dāng)前的圖象進(jìn)行快照;函數(shù)movie()按順序回放各幀。Matlabliti14返回
例將曲面peaks做成動(dòng)畫。解[x,y,z]=peaks(30);surf(x,y,z)axis([-33-33-1010])m=moviein(15);fori=1:15view(-37.5+24*(i-1),30)m(:,i)=getframe;endmovie(m)特殊二、三維圖形1、特殊的二維圖形函數(shù)2、特殊的三維圖形函數(shù)返回特殊的二維圖形函數(shù)1、極坐標(biāo)圖:polar(theta,rho,s)
用角度theta(弧度表示)和極半徑rho作極坐標(biāo)圖,用s指定線型。例解:theta=linspace(0,2*pi),rho=sin(2*theta).*cos(2*theta);polar(theta,rho,’g’)title(‘Polarplotofsin(2*theta).*cos(2*theta)’);Matlabliti152、散點(diǎn)圖:scatter(X,Y,S,C)
在向量X和Y的指定位置顯示彩色圈.X和Y必須大小相同.解輸入命令:
loadseamountscatter(x,y,5,z)Matlabliti293、平面等值線圖:contour(x,y,z,n)
繪制n個(gè)等值線的二維等值線圖解輸入命令:[X,Y]=meshgeid(-2:.2:2,-2:.2:3);Z=X.*exp(-X.^2-Y.^2);[C,h]=contour(X,Y,Z);clabel(C,h)colormapcoolMatlabliti34例繪制seamount散點(diǎn)圖返回特殊的三維圖形函數(shù)1、空間等值線圖:contour3(x,y,z,n)
其中n表示等值線數(shù)。例山峰的三維和二維等值線圖。
解[x,y,z]=peaks;subplot(1,2,1)contour3(x,y,z,16,'s')grid,xlabel('x-axis'),ylabel('y-axis')zlabel('z-axis')title('contour3ofpeaks');subplot(1,2,2)contour(x,y,z,16,'s')grid,xlabel('x-axis'),ylabel('y-axis')title('contourofpeaks');Matlabliti183、三維散點(diǎn)圖scatter3(X,Y,Z,S,C)在向量X,Y和Z指定的位置上顯示彩色圓圈.
向量X,Y和Z的大小必須相同.解輸入命令:[x,y,z]=sphere(16);X=[x(:)*.5x(:)*.75x(:)];Y=[y(:)*.5y(:)*.75y(:)];Z=[z(:)*.5z(:)*.75z(:)];S=repmat([1.75.5]*10,prod(size(x)),1);C=repmat([123],prod(size(x)),1);scatter3(X(:),Y(:),Z(:),S(:),C(:),'filled'),view(-60,60)例繪制三維散點(diǎn)圖。Matlabliti32返回繪制山區(qū)地貌圖
要在某山區(qū)方圓大約27平方公里范圍內(nèi)修建一條公路,從山腳出發(fā)經(jīng)過(guò)一個(gè)居民區(qū),再到達(dá)一個(gè)礦區(qū)。橫向縱向分別每隔400米測(cè)量一次,得到一些地點(diǎn)的高程:(平面區(qū)域0<=x<=5600,0<=y<=4800),需作出該山區(qū)的地貌圖和等高線圖。
Matlabshanqu返回返回實(shí)驗(yàn)作業(yè)1、在同一平面中的兩個(gè)窗口分別畫出心形線和馬鞍面。要求:1、在圖形上加格柵、圖例和標(biāo)注2、定制坐標(biāo)3、以不同角度觀察馬鞍面2、以不同的視角觀察球面和圓柱面所圍區(qū)域。謝謝光臨!
線性規(guī)劃數(shù)學(xué)建模與數(shù)學(xué)實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)內(nèi)容2、掌握用數(shù)學(xué)軟件包求解線性規(guī)劃問(wèn)題。1、了解線性規(guī)劃的基本內(nèi)容。*2、線性規(guī)劃的基本算法。5、實(shí)驗(yàn)作業(yè)。3、用數(shù)學(xué)軟件包求解線性規(guī)劃問(wèn)題。1、兩個(gè)引例。4、建模案例:投資的收益與風(fēng)險(xiǎn)問(wèn)題一:
任務(wù)分配問(wèn)題:某車間有甲、乙兩臺(tái)機(jī)床,可用于加工三種工件。假定這兩臺(tái)車床的可用臺(tái)時(shí)數(shù)分別為800和900,三種工件的數(shù)量分別為400、600和500,且已知用三種不同車床加工單位數(shù)量不同工件所需的臺(tái)時(shí)數(shù)和加工費(fèi)用如下表。問(wèn)怎樣分配車床的加工任務(wù),才能既滿足加工工件的要求,又使加工費(fèi)用最低?
兩個(gè)引例解
設(shè)在甲車床上加工工件1、2、3的數(shù)量分別為x1、x2、x3,在乙車床上加工工件1、2、3的數(shù)量分別為x4、x5、x6??山⒁韵戮€性規(guī)劃模型:
解答問(wèn)題二:
某廠每日8小時(shí)的產(chǎn)量不低于1800件。為了進(jìn)行質(zhì)量控制,計(jì)劃聘請(qǐng)兩種不同水平的檢驗(yàn)員。一級(jí)檢驗(yàn)員的標(biāo)準(zhǔn)為:速度25件/小時(shí),正確率98%,計(jì)時(shí)工資4元/小時(shí);二級(jí)檢驗(yàn)員的標(biāo)準(zhǔn)為:速度15小時(shí)/件,正確率95%,計(jì)時(shí)工資3元/小時(shí)。檢驗(yàn)員每錯(cuò)檢一次,工廠要損失2元。為使總檢驗(yàn)費(fèi)用最省,該工廠應(yīng)聘一級(jí)、二級(jí)檢驗(yàn)員各幾名?解設(shè)需要一級(jí)和二級(jí)檢驗(yàn)員的人數(shù)分別為x1、x2人,則應(yīng)付檢驗(yàn)員的工資為:因檢驗(yàn)員錯(cuò)檢而造成的損失為:故目標(biāo)函數(shù)為:約束條件為:線性規(guī)劃模型:
解答返回1.線性規(guī)劃的標(biāo)準(zhǔn)形式:用單純法求解時(shí),常將標(biāo)準(zhǔn)形式化為:2.線性規(guī)劃的基本算法——單純形法線性規(guī)劃的基本算法——單純形法引入松弛變量x3,x4,x5,將不等式化為等式,即單純形標(biāo)準(zhǔn)形:顯然A的秩ran(A)=3,任取3個(gè)線性無(wú)關(guān)的列向量,如P3P4P5稱為一組基,記為B.其余列向量稱為非基,記為N.于是f=cBxB+cNxN,Ax=BxB+NxN=b,
則xB=B-1b-B-1NxN,f=cBB-1b+(cN–cBB-1N)xN
若可行基進(jìn)一步滿足:
cN–cBB-1N≥0,即:cBB-1N-cN≤0則對(duì)一切可行解x,必有f(x)≥cBB-1b,此時(shí)稱基可行解x=(B-1b,0)T為最優(yōu)解.
3.最優(yōu)解的存在性定理將A的列向量重排次序成A=(B,N),相應(yīng)x=(xB,xN)T,c=(cB,cN)基對(duì)應(yīng)的變量xB稱為基變量,非基對(duì)應(yīng)的變量xN稱為非基變量.定理1如果線性規(guī)劃(1)有可行解,那么一定有基可行解.定理2如果線性規(guī)劃(1)有最優(yōu)解,那么一定存在一個(gè)基可行解是最優(yōu)解.4.基可行解是最優(yōu)解的判定準(zhǔn)則因?yàn)閒=cBB-1b+(cN–cBB-1N)xN,即f-0?xB+(cBB-1N-cN)xN=cBB-1b5.基可行解的改進(jìn)改進(jìn)方法:返回用MATLAB優(yōu)化工具箱解線性規(guī)劃minz=cX
1、模型:命令:x=linprog(c,A,b)
2、模型:minz=cX
命令:x=linprog(c,A,b,Aeq,beq)注意:若沒(méi)有不等式:存在,則令A(yù)=[],b=[].3、模型:minz=cX
VLB≤X≤VUB命令:[1]x=linprog(c,A,b,Aeq,beq,VLB,VUB)
[2]x=linprog(c,A,b,Aeq,beq,VLB,VUB,X0)
注意:[1]若沒(méi)有等式約束:,則令A(yù)eq=[],beq=[].[2]其中X0表示初始點(diǎn)4、命令:[x,fval]=linprog(…)返回最優(yōu)解x及x處的目標(biāo)函數(shù)值fval.解編寫M文件xxgh1.m如下:c=[-0.4-0.28-0.32-0.72-0.64-0.6];A=[0.010.010.010.030.030.03;0.02000.0500;00.02000.050;000.03000.08];b=[850;700;100;900];Aeq=[];beq=[];vlb=[0;0;0;0;0;0];vub=[];[x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub)
ToMatlab(xxgh1)解:編寫M文件xxgh2.m如下:
c=[634];A=[010];b=[50];Aeq=[111];beq=[120];vlb=[30,0,20];vub=[];[x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub)ToMatlab(xxgh2)S.t.改寫為:例3問(wèn)題一的解答
問(wèn)題編寫M文件xxgh3.m如下:f=[1391011128];A=[0.41.110000000.51.21.3];b=[800;900];Aeq=[100100010010001001];beq=[400600500];vlb=zeros(6,1);vub=[];[x,fval]=linprog(f,A,b,Aeq,beq,vlb,vub)ToMatlab(xxgh3)結(jié)果:x=0.0000600.00000.0000400.00000.0000500.0000fval=1.3800e+004
即在甲機(jī)床上加工600個(gè)工件2,在乙機(jī)床上加工400個(gè)工件1、500個(gè)工件3,可在滿足條件的情況下使總加工費(fèi)最小為13800。例2問(wèn)題二的解答
問(wèn)題改寫為:編寫M文件xxgh4.m如下:c=[40;36];A=[-5-3];b=[-45];Aeq=[];beq=[];vlb=zeros(2,1);vub=[9;15];%調(diào)用linprog函數(shù):[x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub)ToMatlab(xxgh4)結(jié)果為:x=9.00000.0000fval=360即只需聘用9個(gè)一級(jí)檢驗(yàn)員。
注:本問(wèn)題應(yīng)還有一個(gè)約束條件:x1、x2取整數(shù)。故它是一個(gè)整數(shù)線性規(guī)劃問(wèn)題。這里把它當(dāng)成一個(gè)線性規(guī)劃來(lái)解,求得其最優(yōu)解剛好是整數(shù):x1=9,x2=0,故它就是該整數(shù)規(guī)劃的最優(yōu)解。若用線性規(guī)劃解法求得的最優(yōu)解不是整數(shù),將其取整后不一定是相應(yīng)整數(shù)規(guī)劃的最優(yōu)解,這樣的整數(shù)規(guī)劃應(yīng)用專門的方法求解。返回
投資的收益和風(fēng)險(xiǎn)二、基本假設(shè)和符號(hào)規(guī)定三、模型的建立與分析1.總體風(fēng)險(xiǎn)用所投資的Si中最大的一個(gè)風(fēng)險(xiǎn)來(lái)衡量,即max{qixi|i=1,2,…n}4.模型簡(jiǎn)化:四、模型1的求解
由于a是任意給定的風(fēng)險(xiǎn)度,到底怎樣給定沒(méi)有一個(gè)準(zhǔn)則,不同的投資者有不同的風(fēng)險(xiǎn)度。我們從a=0開(kāi)始,以步長(zhǎng)△a=0.001進(jìn)行循環(huán)搜索,編制程序如下:a=0;while(1.1-a)>1c=[-0.05-0.27-0.19-0.185-0.185];Aeq=[11.011.021.0451.065];beq=[1];A=[00.025000;000.01500;0000.0550;00000.026];b=[a;a;a;a];vlb=[0,0,0,0,0];vub=[];[x,val]=linprog(c,A,b,Aeq,beq,vlb,vub);ax=x'Q=-valplot(a,Q,'.'),axis([00.100.5]),holdona=a+0.001;endxlabel('a'),ylabel('Q')ToMatlab(xxgh5)計(jì)算結(jié)果:五、結(jié)果分析返回4.在a=0.006附近有一個(gè)轉(zhuǎn)折點(diǎn),在這一點(diǎn)左邊,風(fēng)險(xiǎn)增加很少時(shí),利潤(rùn)增長(zhǎng)很快。在這一點(diǎn)右邊,風(fēng)險(xiǎn)增加很大時(shí),利潤(rùn)增長(zhǎng)很緩慢,所以對(duì)于風(fēng)險(xiǎn)和收益沒(méi)有特殊偏好的投資者來(lái)說(shuō),應(yīng)該選擇曲線的拐點(diǎn)作為最優(yōu)投資組合,大約是a*=0.6%,Q*=20%,所對(duì)應(yīng)投資方案為:
風(fēng)險(xiǎn)度收益x0x1x2x3x40.00600.201900.24000.40000.10910.22123.曲線上的任一點(diǎn)都表示該風(fēng)險(xiǎn)水平的最大可能收益和該收益要求的最小風(fēng)險(xiǎn)。對(duì)于不同風(fēng)險(xiǎn)的承受能力,選擇該風(fēng)險(xiǎn)水平下的最優(yōu)投資組合。2.當(dāng)投資越分散時(shí),投資者承擔(dān)的風(fēng)險(xiǎn)越小,這與題意一致。即:
冒險(xiǎn)的投資者會(huì)出現(xiàn)集中投資的情況,保守的投資者則盡量分散投資。1.風(fēng)險(xiǎn)大,收益也大。實(shí)驗(yàn)作業(yè)
某廠生產(chǎn)甲乙兩種口味的飲料,每百箱甲飲料需用原料6千克,工人10名,可獲利10萬(wàn)元;每百箱乙飲料需用原料5千克,工人20名,可獲利9萬(wàn)元.今工廠共有原料60千克,工人150名,又由于其他條件所限甲飲料產(chǎn)量不超過(guò)8百箱.問(wèn)如何安排生產(chǎn)計(jì)劃,即兩種飲料各生產(chǎn)多少使獲利最大.進(jìn)一步討論:1)若投資0.8萬(wàn)元可增加原料1千克,問(wèn)應(yīng)否作這項(xiàng)投資.2)若每百箱甲飲料獲利可增加1萬(wàn)元,問(wèn)應(yīng)否改變生產(chǎn)計(jì)劃.返回?zé)o約束最優(yōu)化數(shù)學(xué)建模與數(shù)學(xué)實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)內(nèi)容2、掌握用數(shù)學(xué)軟件包求解無(wú)約束最優(yōu)化問(wèn)題。1、了解無(wú)約束最優(yōu)化基本算法。1、無(wú)約束優(yōu)化基本思想及基本算法。4、實(shí)驗(yàn)作業(yè)。3、用MATLAB求解無(wú)約束優(yōu)化問(wèn)題。2、MATLAB優(yōu)化工具箱簡(jiǎn)介
無(wú)約束最優(yōu)化問(wèn)題求解無(wú)約束最優(yōu)化問(wèn)題的的基本思想*無(wú)約束最優(yōu)化問(wèn)題的基本算法返回標(biāo)準(zhǔn)形式:求解無(wú)約束最優(yōu)化問(wèn)題的基本思想求解的基本思想
(以二元函數(shù)為例)531連續(xù)可微多局部極小
唯一極小(全局極小)搜索過(guò)程最優(yōu)點(diǎn)(11)初始點(diǎn)(-11)-114.00-0.790.583.39-0.530.232.60-0.180.001.500.09-0.030.980.370.110.470.590.330.200.800.630.050.950.900.0030.990.991E-40.9990.9981E-50.99970.99981E-8返回?zé)o約束優(yōu)化問(wèn)題的基本算法
最速下降法是一種最基本的算法,它在最優(yōu)化方法中占有重要地位.最速下降法的優(yōu)點(diǎn)是工作量小,存儲(chǔ)變量較少,初始點(diǎn)要求不高;缺點(diǎn)是收斂慢,最速下降法適用于尋優(yōu)過(guò)程的前期迭代或作為間插步驟,當(dāng)接近極值點(diǎn)時(shí),宜選用別種收斂快的算法.
1.最速下降法(共軛梯度法)算法步驟:2.牛頓法算法步驟:
如果f是對(duì)稱正定矩陣A的二次函數(shù),則用牛頓法經(jīng)過(guò)一次迭代就可達(dá)到最優(yōu)點(diǎn),如不是二次函數(shù),則牛頓法不能一步達(dá)到極值點(diǎn),但由于這種函數(shù)在極值點(diǎn)附近和二次函數(shù)很近似,因此牛頓法的收斂速度還是很快的.
牛頓法的收斂速度雖然較快,但要求Hessian矩陣要可逆,要計(jì)算二階導(dǎo)數(shù)和逆矩陣,就加大了計(jì)算機(jī)計(jì)算量和存儲(chǔ)量.3.?dāng)M牛頓法返回Matlab優(yōu)化工具箱簡(jiǎn)介1.MATLAB求解優(yōu)化問(wèn)題的主要函數(shù)2.優(yōu)化函數(shù)的輸入變量
使用優(yōu)化函數(shù)或優(yōu)化工具箱中其它優(yōu)化函數(shù)時(shí),輸入變量見(jiàn)下表:3.優(yōu)化函數(shù)的輸出變量下表:4.控制參數(shù)options的設(shè)置(3)MaxIter:允許進(jìn)行迭代的最大次數(shù),取值為正整數(shù).Options中常用的幾個(gè)參數(shù)的名稱、含義、取值如下:(1) Display:顯示水平.取值為’off’時(shí),不顯示輸出;取值為’iter’時(shí),顯示每次迭代的信息;取值為’final’時(shí),顯示最終結(jié)果.默認(rèn)值為’final’.(2) MaxFunEvals:允許進(jìn)行函數(shù)評(píng)價(jià)的最大次數(shù),取值為正整數(shù).例:opts=optimset(‘Display’,’iter’,’TolFun’,1e-8)
該語(yǔ)句創(chuàng)建一個(gè)稱為opts的優(yōu)化選項(xiàng)結(jié)構(gòu),其中顯示參數(shù)設(shè)為’iter’,TolFun參數(shù)設(shè)為1e-8.
控制參數(shù)options可以通過(guò)函數(shù)optimset創(chuàng)建或修改。命令的格式如下:(1)options=optimset(‘optimfun’)
創(chuàng)建一個(gè)含有所有參數(shù)名,并與優(yōu)化函數(shù)optimfun相關(guān)的默認(rèn)值的選項(xiàng)結(jié)構(gòu)options.(2)options=optimset(‘param1’,value1,’param2’,value2,...)
創(chuàng)建一個(gè)名稱為options的優(yōu)化選項(xiàng)參數(shù),其中指定的參數(shù)具有指定值,所有未指定的參數(shù)取默認(rèn)值.(3)options=optimset(oldops,‘param1’,value1,’param2’,value2,...)
創(chuàng)建名稱為oldops的參數(shù)的拷貝,用指定的參數(shù)值修改oldops中相應(yīng)的參數(shù).返回用Matlab解無(wú)約束優(yōu)化問(wèn)題
其中(3)、(4)、(5)的等式右邊可選用(1)或(2)的等式右邊。函數(shù)fminbnd的算法基于黃金分割法和二次插值法,它要求目標(biāo)函數(shù)必須是連續(xù)函數(shù),并可能只給出局部最優(yōu)解。常用格式如下:(1)x=fminbnd(fun,x1,x2)(2)x=fminbnd(fun,x1,x2
,options)(3)[x,fval]=fminbnd(...)(4)[x,fval,exitflag]=fminbnd(...)(5)[x,fval,exitflag,output]=fminbnd(...)ToMatlab(wliti1)
主程序?yàn)閣liti1.m:f='2*exp(-x).*sin(x)';fplot(f,[0,8]);%作圖語(yǔ)句
[xmin,ymin]=fminbnd(f,0,8)f1='-2*exp(-x).*sin(x)';[xmax,ymax]=fminbnd(f1,0,8)例2對(duì)邊長(zhǎng)為3米的正方形鐵板,在四個(gè)角剪去相等的正方形以制成方形無(wú)蓋水槽,問(wèn)如何剪法使水槽的容積最大?解先編寫M文件fun0.m如下:functionf=fun0(x)f=-(3-2*x).^2*x;主程序?yàn)閣liti2.m:[x,fval]=fminbnd('fun0',0,1.5);xmax=xfmax=-fval運(yùn)算結(jié)果為:xmax=0.5000,fmax=2.0000.即剪掉的正方形的邊長(zhǎng)為0.5米時(shí)水槽的容積最大,最大容積為2立方米.ToMatlab(wliti2)
命令格式為:(1)x=fminunc(fun,X0
);或x=fminsearch(fun,X0
)(2)x=fminunc(fun,X0
,options);或x=fminsearch(fun,X0
,options)(3)[x,fval]=fminunc(...);或[x,fval]=fminsearch(...)(4)[x,fval,exitflag]=fminunc(...);或[x,fval,exitflag]=fminsearch(5)[x,fval,exitflag,output]=fminunc(...);或[x,fval,exitflag,output]=fminsearch(...)2、多元函數(shù)無(wú)約束優(yōu)化問(wèn)題標(biāo)準(zhǔn)型為:minF(X)[3]fminunc為中型優(yōu)化算法的步長(zhǎng)一維搜索提供了兩種算法,由options中參數(shù)LineSearchType控制:LineSearchType=’quadcubic’(缺省值),混合的二次和三次多項(xiàng)式插值;LineSearchType=’cubicpoly’,三次多項(xiàng)式插使用fminunc和fminsearch可能會(huì)得到局部最優(yōu)解.說(shuō)明:fminsearch是用單純形法尋優(yōu).fminunc的算法見(jiàn)以下幾點(diǎn)說(shuō)明:[1]fminunc為無(wú)約束優(yōu)化提供了大型優(yōu)化和中型優(yōu)化算法。由options中的參數(shù)LargeScale控制:LargeScale=’on’(默認(rèn)值),使用大型算法LargeScale=’off’(默認(rèn)值),使用中型算法[2]fminunc為中型優(yōu)化算法的搜索方向提供了4種算法,由
options中的參數(shù)HessUpdate控制:HessUpdate=’bfgs’(默認(rèn)值),擬牛頓法的BFGS公式;HessUpdate=’dfp’,擬牛頓法的DFP公式;HessUpdate=’steepdesc’,最速下降法例3minf(x)=(4x12+2x22+4x1x2+2x2+1)*exp(x1)ToMatlab(wliti3)1、編寫M-文件fun1.m:functionf=fun1(x)f=exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1);
2、輸入M文件wliti3.m如下:x0=[-1,1];x=fminunc(‘fun1’,x0);y=fun1(x)
3、運(yùn)行結(jié)果:x=0.5000-1.0000y=1.3029e-10ToMatlab(wliti31)ToMatlab(wliti32)3.用fminsearch函數(shù)求解ToMatlab(wliti41)輸入命令:f='100*(x(2)-x(1)^2)^2+(1-x(1))^2';[x,fval,exitflag,output]=fminsearch(f,[-1.22])運(yùn)行結(jié)果:x=1.00001.0000fval=1.9151e-010exitflag=1output=iterations:108funcCount:202algorithm:'Nelder-Meadsimplexdirectsearch'4.
用fminunc函數(shù)ToMatlab(wliti44)(1)建立M-文件fun2.m
functionf=fun2(x)f=100*(x(2)-x(1)^2)^2+(1-x(1))^2(2)主程序wliti44.mRosenbrock函數(shù)不同算法的計(jì)算結(jié)果可以看出,最速下降法的結(jié)果最差.因?yàn)樽钏傧陆捣ㄌ貏e不適合于從一狹長(zhǎng)通道到達(dá)最優(yōu)解的情況.例5
產(chǎn)銷量的最佳安排某廠生產(chǎn)一種產(chǎn)品有甲、乙兩個(gè)牌號(hào),討論在產(chǎn)銷平衡的情況下如何確定各自的產(chǎn)量,使總利潤(rùn)最大.所謂產(chǎn)銷平衡指工廠的產(chǎn)量等于市場(chǎng)上的銷量.基本假設(shè)1.價(jià)格與銷量成線性關(guān)系2.成本與產(chǎn)量成負(fù)指數(shù)關(guān)系
模型建立
若根據(jù)大量的統(tǒng)計(jì)數(shù)據(jù),求出系數(shù)b1=100,a11=1,a12=0.1,b2=280,a21=0.2,a22=2,r1=30,λ1=0.015,c1=20,r2=100,λ2=0.02,c2=30,則問(wèn)題轉(zhuǎn)化為無(wú)約束優(yōu)化問(wèn)題:求甲,乙兩個(gè)牌號(hào)的產(chǎn)量x1,x2,使總利潤(rùn)z最大.
為簡(jiǎn)化模型,先忽略成本,并令a12=0,a21=0,問(wèn)題轉(zhuǎn)化為求:z1=(b1-a11x1)x1+(b2-a22x2)x2
的極值.顯然其解為x1=b1/
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 紡織品設(shè)計(jì)師的職業(yè)發(fā)展道路與挑戰(zhàn)研究試題及答案
- 餐飲合同協(xié)議書范本
- 雜工合同協(xié)議書
- 施工合同協(xié)議書合同編號(hào)
- 項(xiàng)目協(xié)議書合同
- 快遞合資合同協(xié)議書
- 馬口鐵合同協(xié)議書
- 購(gòu)買肥牛合同協(xié)議書
- 拆除圍墻合同協(xié)議書
- 合伙開(kāi)公司合同協(xié)議書
- 00510秘書實(shí)務(wù)-自考整合版
- 護(hù)理研究中的偏倚及控制
- 小學(xué)生的齲齒預(yù)防ppt課件
- [復(fù)習(xí)]邊坡客土吹附施工方案
- 門禁一卡通系統(tǒng)解決方案
- 沖壓試題庫(kù)及答案文檔
- 煤礦機(jī)電運(yùn)輸專業(yè)質(zhì)量標(biāo)準(zhǔn)化管理制度
- 華為保密制度范文
- 凍庫(kù)溫度記錄表
- 工程款支付審核記錄表
- 成套開(kāi)關(guān)柜GGD樣本
評(píng)論
0/150
提交評(píng)論