《《數(shù)學(xué)建?!穼?shí)驗(yàn)指導(dǎo)書》由會(huì)員分享,可在線閱讀,更多相關(guān)《《數(shù)學(xué)建?!穼?shí)驗(yàn)指導(dǎo)書(6頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、《數(shù)學(xué)建?!穼?shí)驗(yàn)指導(dǎo)書
《數(shù)學(xué)建?!穼?shí)驗(yàn)指導(dǎo)書
實(shí)驗(yàn)一:matlab函數(shù)擬合
學(xué)時(shí):2學(xué)時(shí)
實(shí)驗(yàn)?zāi)康模赫莆沼胢atlab進(jìn)行函數(shù)擬合的方法。
實(shí)驗(yàn)內(nèi)容:
根據(jù)美國人口從1790年到1990年間的人口數(shù)據(jù)(如下表),確定人口指數(shù)增長模型(Logistic模型)中的待定參數(shù),估計(jì)出美國2010年的人口,同時(shí)畫出擬合效果的圖形。
表1 美國人口統(tǒng)計(jì)數(shù)據(jù)
年 份
1790
1800
1810
1820
1830
1840
1850
人口(106)
3.9
5.3
7.2
9.6
12.9
17.1
23.2
年 份
1860
1870
1880
2、
1890
1900
1910
1920
人口(106)
31.4
38.6
50.2
62.9
76.0
92.0
106.5
年 份
1930
1940
1950
1960
1970
1980
人口(106)
123.2
131.7
150.7
179.3
204.0
226.5
提示:
指數(shù)增長模型:
Logistic模型:
可參考擬合函數(shù):a=lsqcurvefit(example_curvefit_fun,a0,x,y);
實(shí)驗(yàn)二:matlab編程
學(xué)時(shí):2學(xué)時(shí)
實(shí)驗(yàn)?zāi)康模菏煜atlab編程
實(shí)驗(yàn)內(nèi)容:
3、
1. 寫一個(gè)函數(shù)rs=f(s),對(duì)傳進(jìn)去的字符串變量s,刪除其中的小寫字母,然后將原來的大寫字母變?yōu)樾懽帜?,得到rs返回。例如s=”aBcdE,Fg?”,則rs=”be,f?”。提示:可利用find函數(shù)和空矩陣。
2. f(x)的定義如下:
寫一個(gè)函數(shù)文件f(x)實(shí)現(xiàn)該函數(shù),要求參數(shù)x可以是向量。
實(shí)驗(yàn)三:用Lindo求解線性規(guī)劃問題
學(xué)時(shí):2學(xué)時(shí)
實(shí)驗(yàn)?zāi)康模赫莆沼肔indo求解線性規(guī)劃問題的方法,能夠閱讀Lindo結(jié)果報(bào)告。
實(shí)驗(yàn)內(nèi)容:
求解書本上P130的習(xí)題1。列出線性規(guī)劃模型,然后用Lindo求解,根據(jù)結(jié)果報(bào)告得出解決方案。
提示:
模型
4、可以如下建立:
設(shè)投資證券A,B,C,D,E的金額分別為x1,x2,x3,x4,x5 萬元.
max 0.043x1+0.027x2+0.025x3+0.022x4+0.045x5
x2+x3+x4>=400
x1+x2+x3+x4+x5<=1000
(2x1+2x2+x3+x4+5x5)/(x1+x2+x3+x4+x5)<=1.4
(9x1+15x2+4x3+3x4+2x5)/(x1+x2+x3+x4+x5)<=5
使用Lindo的一些注意事項(xiàng)
1. “>”與“>=”功能相同
2. 變量與系數(shù)間可有空格(甚至回車),但無運(yùn)算符
3. 變量以字母開頭,不能超過8個(gè)字符
4
5、. 變量名不區(qū)分大小寫(包括關(guān)鍵字)
5. 目標(biāo)函數(shù)所在行是第一行,第二行起為約束條件
6. 行號(hào)自動(dòng)產(chǎn)生或人為定義,以“)”結(jié)束
7. “!”后為注釋。
8. 在模型任何地方都可以用“TITLE”對(duì)模型命名
9. 變量不能出現(xiàn)在一個(gè)約束條件的右端
10. 表達(dá)式中不接受括號(hào)和逗號(hào)等符號(hào)
11. 表達(dá)式應(yīng)化簡,如2x1+3x2-4x1應(yīng)寫成-2x1+3x2
12. 缺省假定所有變量非負(fù),可在模型“END”語句后用“FREE name”將變量name的非負(fù)假定取消
13. 可在“END”后用“SUB”或“SLB”設(shè)定變量上下界。例如:“sub x1 10”表示“x1<=10”
6、
14. “END”后對(duì)0-1變量說明:INT n或INT name
15. “END”后對(duì)整數(shù)變量說明:GIN n或GIN name
實(shí)驗(yàn)四:用Lingo求解非線性規(guī)劃問題
學(xué)時(shí):2學(xué)時(shí)
實(shí)驗(yàn)?zāi)康模赫莆沼肔ingo求解非線性規(guī)劃問題的方法。
實(shí)驗(yàn)內(nèi)容:
求解書本上P132的習(xí)題7。列出非線性規(guī)劃模型,然后用Lingo求解,根據(jù)結(jié)果報(bào)告得出解決方案。
提示:
可參考書上鋼管切割模型的例子,注意有所修改。比如目標(biāo)函數(shù)應(yīng)該為:
min =(x1+0.1)*y1+(x2+0.2)*y2+(x3+0.3)*y3+(x4+0.
7、4)*y4;
y1,y2,y3,y4是0-1變量。
約束條件可為:
x1*r11+x2*r12+x3*r13+x4*r14>=15; 。。。
290*r11+315*r21+350*r31+455*r41<=y1*1850; 。。。
r11+r21+r31+r41<=y1*5; 。。。
x1*y1+x2*y2+x3*y3+x4*y4<=22;
x1*y1+x2*y2+x3*y3+x4*y4>=19;
x1<=y1*100; 。。。
也可以是:
min =1.1*x1+1.2*x2+1.3*x3+1.4*x4;
約束條件可為:
x1*r11+x2*r12+x3
8、*r13+x4*r14>=15; 。。。
290*r11+315*r21+350*r31+455*r41<=1850; 。。。
r11+r21+r31+r41<=5; 。。。
x1 +x2 +x3 +x4 <=22;
x1 +x2 +x3 +x4 >=19;
。。。
實(shí)驗(yàn)五:用Lingo求解大規(guī)模線性規(guī)劃問題
學(xué)時(shí):4學(xué)時(shí)
實(shí)驗(yàn)?zāi)康模赫莆沼肔ingo求解大規(guī)模線性規(guī)劃問題的方法。
實(shí)驗(yàn)內(nèi)容:
求解全國大學(xué)生數(shù)學(xué)建模競賽05年B題問題2:DVD的分配。會(huì)員每次租賃3張DVD,現(xiàn)在給出網(wǎng)站手上的100種DVD的現(xiàn)有張數(shù)
9、和當(dāng)前需要處理的1000位會(huì)員的在線訂單,如何對(duì)這些DVD進(jìn)行分配,才能使會(huì)員獲得最大的滿意度?
現(xiàn)有DVD張數(shù)和當(dāng)前需要處理的會(huì)員的在線訂單(表格格式示例)
DVD編號(hào)
D001
D002
D003
D004
…
DVD現(xiàn)有數(shù)量
10
40
15
20
…
會(huì)員在線訂單
C0001
6
0
0
0
…
C0002
0
0
0
0
…
C0003
0
0
0
3
…
C0004
0
0
0
0
…
…
…
…
…
…
…
注:D001~D100表示100種DVD, C0001~C1000表示100
10、0個(gè)會(huì)員, 會(huì)員的在線訂單用數(shù)字1,2,…表示,數(shù)字越小表示會(huì)員的偏愛程度越高,數(shù)字0表示對(duì)應(yīng)的DVD當(dāng)前不在會(huì)員的在線訂單中。所有數(shù)據(jù)將可從
提示:
可建立如下0-1規(guī)劃模型:
其中cij是偏愛指數(shù),其中0改成-1,其他數(shù)字如果是c,則用11-c代替。
可參考如下運(yùn)輸問題代碼:
model:
!6發(fā)點(diǎn)8收點(diǎn)運(yùn)輸問題;
sets:
warehouses/wh1..wh6/: capacity;
vendors/v1..v8/: demand;
links(warehouses,vendors): cost, volume;
endsets
!目標(biāo)函數(shù);
11、
min=@sum(links: cost*volume);
!需求約束;
@for(vendors(J):
@sum(warehouses(I): volume(I,J))=demand(J));
!產(chǎn)量約束;
@for(warehouses(I):
@sum(vendors(J): volume(I,J))<=capacity(I));
!這里是數(shù)據(jù);
data:
capacity=60 55 51 43 41 52;
demand=35 37 22 32 41 32 43 38;
cost=6 2 6 7 4 2 9 5
12、
4 9 5 3 8 5 8 2
5 2 1 9 7 4 3 3
7 6 7 3 9 2 7 1
2 3 9 5 7 2 6 5
5 5 2 2 8 1 4 3;
enddata
end
實(shí)驗(yàn)六:用matlab求解微分方程(組)
學(xué)時(shí):2學(xué)時(shí)
實(shí)驗(yàn)?zāi)康模赫莆沼胢atlab求微分方程和微分方程組的數(shù)值解的方法。
實(shí)驗(yàn)內(nèi)容:
求解書上P138,P139頁的微分方程和微分方程組,畫出書中
13、圖3、4、5、6、7、8。
提示:
要求解微分方程(組)dy/dt=f(t,y),可如下調(diào)用:
[T,Y]=ode45(f,[t0,tn],y0)
1. 函數(shù)在求解區(qū)間[t0,tn]內(nèi),自動(dòng)設(shè)立采樣點(diǎn)向量T,并求出解函數(shù)y在采樣點(diǎn)T處的樣本值Y。
2. f是一個(gè)函數(shù),要有兩個(gè)參數(shù),第一個(gè)參數(shù)是自變量t,第二個(gè)參數(shù)是因變量y。
3. y0=y(t0)給定方程的初值。
例:求微分方程初值問題dy/dx=-2y/x+4x,y(1)=2在[1,3]區(qū)間內(nèi)的數(shù)值解,并將結(jié)果與解析解進(jìn)行比較。
先建立一個(gè)該函數(shù)的m文件fxy1.m:
function f=f(x,y)
f=-2.*
14、y./x+4*x %注意使用點(diǎn)運(yùn)算符
再輸入命令:
[X,Y]=ode45(fxy1,[1,3],2);
X %顯示自變量的一組采樣點(diǎn)
Y %顯示求解函數(shù)與采樣點(diǎn)對(duì)應(yīng)的一組數(shù)值解
(X.^2+1./X.^2) %顯示求解函數(shù)與采樣點(diǎn)對(duì)應(yīng)的一組解析解
例: 求解常微分方程組初值問題在區(qū)間[0,2]中的解。
建立一個(gè)函數(shù)文件 fxy2.m:
function f=f(x,y)
f(1)=y(2);
f(2)=-x.*y(2)+x.^2-5;
f=f;
在MATLAB命令窗口,輸入命令:
[X,Y]=ode45(fxy2,[0,2],[5,6])
第6頁 mailto:webmaster@ 黃可坤 2006年春