數(shù)量模型與算法基礎(chǔ):第二章 兔口模型 for循環(huán)_第1頁
數(shù)量模型與算法基礎(chǔ):第二章 兔口模型 for循環(huán)_第2頁
數(shù)量模型與算法基礎(chǔ):第二章 兔口模型 for循環(huán)_第3頁
數(shù)量模型與算法基礎(chǔ):第二章 兔口模型 for循環(huán)_第4頁
數(shù)量模型與算法基礎(chǔ):第二章 兔口模型 for循環(huán)_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Ch2.兔口模型,for循環(huán)1.復(fù)習(xí)2.for循環(huán)3.兔口模型4.菲波拉契數(shù),黃金分割率作業(yè)2:5個程序,1個模型9/2512:00前交班長轉(zhuǎn)shumoke@

1.學(xué)會編輯,調(diào)試,運行5個小程序,交sy1.m,sy2.m,sy3.m,sy4.m,sy5.m源程序和運行結(jié)果。請解釋結(jié)果。2.注釋程序sy6.m。3.加分題:調(diào)試,運行sy6.m,解釋結(jié)果。幫助:碰到陌生的命令,可以百度搜索:matlabrand,Matlabfor循環(huán),Matlabif語句… …

也可以查百度云上分享的參考書。如《Octave入門》等。變量/變量名/=賦值語句作者:文聞

鏈接:/question/20116757/answer/14029909

來源:知乎

變量是一段有名字(即變量名)的連續(xù)存儲空間。我們通過變量的名字來使用這段存儲空間。

變量是程序中臨時存放數(shù)據(jù)的場所,變量中可以存放例如單詞、數(shù)值、日期等類型的數(shù)據(jù)。在sy1.m,F(xiàn)=rand(1,30)是賦值語句,其中,等號左側(cè)是一個變量,F(xiàn)是變量名。賦值語句里”=“的作用是把等號右邊的計算結(jié)果存放在左側(cè)的變量里。程序程序(program)是可以遞交給計算機執(zhí)行的,用計算機語言編寫的命令的有序集合。程序也就是指令的集合,它告訴計算機如何執(zhí)行特殊的任務(wù)。打個比方說,它好比指導(dǎo)你烹調(diào)菜品的菜譜或指揮行駛一路到達(dá)目的地的GPS指令)。沒有這些特殊的指令,就不能執(zhí)行預(yù)期的任務(wù)。計算機也一樣,當(dāng)你想讓計算機為你做一件事情的時候,計算機本身并不能主動為我們工作,因此我們必須對它下達(dá)指令,而它根本不會也不可能聽懂人類自然語言對事情的描述,因此我們必須使用程序來告訴計算機做什么事情以及如何去做。for循環(huán)語句(for-loop)for語句作用是按照預(yù)先設(shè)定的循環(huán)步驟重復(fù)執(zhí)行某語句段,

其語法:for

循環(huán)控制變量=存儲著該變量依次所取值的一個向量

循環(huán)語句塊,本塊重復(fù)執(zhí)行的次數(shù)由上方向量的長度決定,每次執(zhí)行,循環(huán)控制變量依次取該向量中的值.endfor兔口模型假設(shè):

在出生后第二個月起,一對兔子每個月能生出一對小兔子來。

如果所有兔都不死,那么一年以后可以繁殖多少對兔子?

兔口問題第一個月一對;兩個月后,生下一對小兔總數(shù)共有兩對;三個月以后,老兔子又生下一對,因為小兔子還沒有繁殖能力,所以一共是三對;.。。12月后,一共有多少對?兔口增長表依次類推可以列出下表:經(jīng)過月數(shù)0123456789101112幼仔對數(shù)101123581321345589成兔對數(shù)01123581321345589144總體對數(shù)1123581321345589144233兔口模型數(shù)據(jù)經(jīng)過月數(shù)0123456789101112總體對數(shù)01123581321345589144不用for循環(huán)完成兔口模型%Fibonacci斐波那契數(shù)列1:12clc;clearall;closeall;F(1)=1;F(2)=1;F(3)=F(2)+F(1);F(4)=F(3)+F(2);F(5)=F(4)+F(3);F(6)=F(7)=F(8)=

….F(12)=F(?)+F(?);F用for循環(huán)完成了兔口模型%Fibonacci斐波那契數(shù)列1:12clc;clearall;closeall;F(1)=1;F(2)=1;fori=3:12F(i)=F(i-1)+F(i-2);endforFF(1)=1;F(2)=1;F(3)=F(2)+F(1);F(4)=F(3)+F(2);F(5)=F(4)+F(3);F(6)=F(5)+F(4);F(7)=F(8)=

….F(12)=F(?)+F(?);FIf語句有條件性地執(zhí)行語句語法If表達(dá)式

一條或者多條

MATLAB

命令語句

end描述MATLAB

計算表達(dá)式,如果if后面表達(dá)式產(chǎn)生一個邏輯真或者非零結(jié)果,然后就執(zhí)行一條或者多條

MATLAB

命令語句。當(dāng)有一個或多個if時,每一個if必須和一個相應(yīng)的end匹配。Fori=1:12并畫圖的兔口程序(有錯糾錯)clcfori=1:12ifi==1endififi==2endififi>=3EndifEndforPlot(f)930/14034如何顯示變量內(nèi)容呼叫變量名,不用分號結(jié)尾,如FF(i)i用disp()函數(shù)Disp(F);disp(F(i));disp(i);printf()函數(shù)>>printf("%9.3f\n",pi);

3.142disp()例子fora=[15346]disp(['第',num2str(find(a==[15346])),'次循環(huán),a的取值為:',num2str(a)]);Endoctave:3>log(10)ans=2.3026octave:4>disp(log(10))2.3026注釋:%注釋是編寫程序時,寫程序的人給一個語句、程序段、函數(shù)等的解釋或提示。注釋能提高程序代碼的可讀性,以便于以后的參考、修改。注釋是解釋給人看的,在運行程序時,%后面的部分會被機器跳過,不做處理。From:/q/1365361848060096例子:ifF(i)>=fqzd%如果這個人的得分大于等于前15中最高分環(huán)比增長率環(huán)比增長率,一般是指本期數(shù)據(jù)和上期相比較的增長率。

環(huán)比增長率=(本期值-上一期值)/上一期值*100%。比如,2008年5月與2008年4月的環(huán)比增長是指

上一期為基期:2008年4月數(shù)值F(200804)

本期:2008年5月數(shù)值 =(F(200805)-F(200804))/F(200804)*100%

=F(200805)/F(200804)-1如:98年凈利環(huán)比增長量=98年凈利-97年凈利。98年凈利環(huán)比增長率=(98年凈利/97年凈利)-1=(98年凈利-97年凈利)/97年凈利。兔口模型(家譜,樹)M=1m=231,12,13,24,35,56,87,13/post-71-538026-1.shtml兔口模型經(jīng)過月數(shù)123456789101112總體對數(shù)1123581321345589144/link?url=OAOzcTwGxB659IjFz--D5HC2DvQ9_vCKo-SFmB3oOAt_MRyI8ylTF9sJtiQJwkwq5YuyFne9CE_sb0dcYheqe_兔口月環(huán)比增長率:等比兔口月環(huán)比增長率zzl

zzl=f(i)/f(i-1)-1,i>=289/55=1.618,144/89=1.618,zzl1.618-1,i很大已知本月兔口,求上月兔口用到比值f(i-1)/f(i):55/89=0.618,89/144=0.618f(i-1)/f(i)0.618,i很大金字塔的神秘數(shù)金字塔和上列兔口奇異數(shù)字息息相關(guān)。金字塔的幾何形狀有五個面,八個邊,總數(shù)為十三個層面。由任何一邊看入去,都可以看到三個層面。金字塔的長度為5813寸(5-8-13),而高底和底面百分比率是0.618,那即是上述神秘數(shù)字的任何兩個連續(xù)的比率,譬如55/89=0.618,89/144=0.618,144/233=0.618。另外,一個金字塔五角塔的任何一邊長度都等于這個五角型對角線(Diagonal)的0.618。還有,底部四個邊的總數(shù)是36524.22寸,這個數(shù)字等于光年的一百倍!/link?url=AwxP-fTsBDEgPHJxmUnZGZk5Nxt4cWvDvQ4nLvmLZ3jr5SXfnu_oiEkFWl5NnFTuMQRr8sRlC08S3mxAi9hj6q黃金分割率0.6180.618的倒數(shù)是1.618。譬如144/89=1.618、233/144=1.618,而 0.618×1.618=1向日葵花有89個花辮,55個朝一方,34個朝向另一方。神秘?不錯,這組數(shù)字就叫做神秘數(shù)字。而0.618,1.618就叫做黃金分割率(GoldenSection)。/link?url=AwxP-fTsBDEgPHJxmUnZGZk5Nxt4cWvDvQ4nLvmLZ3jr5SXfnu_oiEkFWl5NnFTuMQRr8sRlC08S3mxAi9hj6q練習(xí)1:求兔口模型2至18月環(huán)比增長率clc;clearallf(1)=1;f(2)=1;fori=3:24f(i)=f(i-1)+f(i-2);

endforffori=2:18

hb(i)=(f(i)/f(i-1))-1;

endfor

hbplot(hb,"or-.")

xlabel("month")

ylabel("hb

zzl")

練習(xí)2:求兔口模型13至24個月同比增長率clc;clearallf(1)=1;f(2)=1;fori=3:24f(i)=f(i-1)+f(i-2);

endforffori=2:18

hb(i)=(f(i)/f(i-1))-1;

endfor

hbplot(hb,"or-.")

xlabel("month")

ylabel("hb

zzl")

fori=13:24i;tb(i)=(f(i)/f(i-12))-1;endfor

畫圖函數(shù)plot()句法:plot(X,Y,“格式”,...)應(yīng)用:x=[12345];y=[1491625];plot(y) %以y的分量為縱坐標(biāo),以元素序號為橫坐標(biāo),繪制連線圖plot(x,y)%以x為橫坐標(biāo),y為縱坐標(biāo)繪制連線圖plot(x,y,”--”)%虛線plot(x,y,”or”)%紅色圓點plot(x,y,”o--r”)%紅色圓點虛線圖復(fù)習(xí)題兔口模型:什么是斐波那契數(shù)列?舉例說明。什么是環(huán)比月增長率?舉例說明。什么是同比增長率?舉例說明。復(fù)習(xí)題用matlab畫X-Y點線圖用什么函數(shù)? APlot(X,Y,“o”) BPlot(X,Y,“-o”):CPlot(X,Y,“-o”) D以上全不對什么是賦值語句?舉例說明。什么是循環(huán)語句?舉例說明。延伸閱讀:秘書問題CSP秘書問題CSP:見第一章Ch1“非誠勿擾問題”的數(shù)學(xué)模型1. 代表性:把生活中問題抽象成一個簡單的易記數(shù)學(xué)過程。2. 數(shù)字化:總數(shù)n:時間限制,女生

必須確定將會遇到的男生個數(shù),比如說15個、30個或者50個。不妨把男生的總?cè)藬?shù)設(shè)為n。

分?jǐn)?shù)F(1)...F(n):這n個男生將會以一個隨機的順序排著隊依次前來表白后而得相對分。

IDI=1,…,30:每次被表白后,女生都只有兩種選擇:接受這個男生i,結(jié)束這場“征婚游戲”;或者拒絕這個男生,繼續(xù)考慮下一個表白者i+1。

簡化:不考慮被拒男生返回的可能。

“秘書問題”的變身代表性:把現(xiàn)實中問題抽象成一個簡單的易記數(shù)學(xué)過程。秘書問題未婚妻問題,波斯公主擇婿問題,電梯撿鉆石問題,。。。升學(xué)選校畢業(yè)擇業(yè)(offers)非誠勿擾停機放貸集市一條街選攤位(被動方換位思考)運動競技選出場位文娛明星賽選出場位非誠勿擾男方選出場位

經(jīng)濟(jì)活動中:生產(chǎn),消費,商業(yè),買賣,金融,分配,管理過程中的選優(yōu)博彩業(yè)其他:你有何補充?2. 數(shù)字化:總數(shù)n:時間限制,女生

必須確定將會遇到的男生個數(shù),比如說15個、30個或者50個。不妨把男生的總?cè)藬?shù)設(shè)為n。

分?jǐn)?shù)F(1)...F(n):這n個男生將會以一個隨機的順序排著隊依次前來表白后而得相對分。

IDI=1,…,30:每次被表白后,女生都只有兩種選擇:接受這個男生i,結(jié)束這場“征婚游戲”;或者拒絕這個男生,繼續(xù)考慮下一個表白者i+1。

簡化:不考慮被拒男生返回的可能。

算法(解決問題的辦法)---親友的建言,格言3.算法(n=30):*選第一個

(i=1)*最后一個

(i=n)*中間一個

(i=int(n/2))**見好就收,差不多就行F(i)>0.5?*扔骰子決定o盡早決定,等最后不保險–不是可行算法o盡晚決定,風(fēng)險與收益成正比–不是可行算法o當(dāng)斷不斷,必受其亂;免得腸子都悔青了;*****放棄前11個(37%法則),只記住前11個其中最好的ib,果斷選其后第一個比ib還好的“秘書問題”的模型化代表性:把現(xiàn)實中問題抽象成一個簡單的易記數(shù)學(xué)過程。紙模型:紙團(tuán)(有隨機數(shù)),黑袋竹模型:竹簽(有隨機數(shù)),搖桶乒乓球貝殼教室:同學(xué),序號,ID號(有隨機數(shù)F=rand(1,10);)其他:你有何補充?計算機模型:Octave,軟件+命令工具:Octave軟件Octave編程語言案列1餐街選店模型實現(xiàn)算法實現(xiàn)/翻譯成Octave語言的過程模擬出一個候選方隊列:F=rand(30,1)挑出前11個最好的,放到Fcz:Fcz=max(F(1:11))從12到第30個,比較F-數(shù)值

和Fcz

(ifa>b,,end)fori=12:30.。。……endfor如果發(fā)現(xiàn)。。。,那么就。。。如果沒有發(fā)現(xiàn)。。。,那么就。。。直至第30個,結(jié)束

練習(xí):寫第一個程序(編/存/運行)插入自己的U盤啟動OCTAVE點擊“Editor”,轉(zhuǎn)到編輯器窗口鍵入一行程序:F=rand(1,30)%是賦值語句,其中,等號左側(cè)是一個變量,F(xiàn)是變量名。賦值語句里”=“的作用%是把等號右邊的計算結(jié)果(30個數(shù))存放在左側(cè)的變量F里以備后用。文件|文件另存為|U盤下某個文件夾|文件名=sy1運行|保存文件并運行|添加路徑到載入路徑|點擊“命令窗口”查看結(jié)果。如果程序只有一行命令,回到3.加下一行程序:Fqzd=max(F(1:15))如果Sy1.m結(jié)果沒問題,結(jié)束sy1.m。你已經(jīng)完成了第一個程序sy1.m練習(xí):寫第二個程序:for循環(huán)打開sy1.m:點擊Editor|文件|編輯器最近文件|。。。sy1.m光標(biāo)移到最后的空行鍵入一程序塊:fori=[16:30]%for循環(huán)開始,從i=第16個數(shù)開始到i=第30個數(shù)F(1,i)%顯示第i個數(shù)endfor%for循環(huán)結(jié)束,文件|文件另存為|U盤下某個文件夾|文件名=sy2運行|保存文件并運行|添加路徑到載入路徑|點擊“命令窗口”查看結(jié)果。如果出錯,回到3.查錯。直到結(jié)果正確。至此Sy2.m調(diào)試成功。練:第三個程序:

if語句(如果。。。則。。。)打開sy2.m:點擊Editor|文件|編輯器最近文件|。。。sy2.m光標(biāo)移到最后的空行,鍵入一程序塊:fori=[16:30]%從第16個人開始到30ifF(1,i)>0.5%如果這個人的得分大于0.5fzd=F(i)%則找到了。顯示這個人的得分break%退出for循環(huán)endif %if語句結(jié)束,執(zhí)行下一行endfor%for循環(huán)結(jié)束符,回到for語句頭去檢查循環(huán)變量i文件|文件另存為|U盤下某個文件夾|文件名:sy3.m運行|保存文件并運行|添加路徑到載入路徑|點擊“命令窗口”查看結(jié)果。如果出錯,回到Editor去.查錯,存文件,并運行。直到結(jié)果正確。至此Sy3.m調(diào)試成功。理解各個語句的作用。自創(chuàng)一個for-loop或if語句練習(xí)一下。練:第4個程序:

if語句(如果。。。則。。。)打開sy3.m:點擊Editor|文件|編輯器最近文件|。。。sy3.m,光標(biāo)移到最后的空行鍵入一程序塊:fzd=0;fqzd=max(F(1:15));%fqzd是F前15個數(shù)中最大值fori=[16:30]%從第16個人開始到30ifF(1,i)>=fqzd%如果這個人的得分大于等于前15中最大fzd=F(1,i)%則給fzd賦值,顯示這個人的得分, break%退出for循環(huán)endif %if結(jié)束語句endfor%for循環(huán)結(jié)束語句文件|文件另存為|U盤下某個文件夾|文件名=sy4運行|保存文件并運行|添加路徑到載入路徑|點擊“命令窗口”查看結(jié)果。如果出錯,回到Editor去.查錯,存文件,并運行。直到結(jié)果正確。至此Sy4.m調(diào)試成功。理解各個語句的作用。自創(chuàng)一個for-loop或if語句練習(xí)一下。練:第5個程序:

顯示結(jié)果,模型一完成了打開sy4.m:點擊Editor|文件|編輯器最近文件|。。。sy4.m,光標(biāo)移到最后的空行鍵入一程序塊:n=30 %設(shè)定并顯示候選人序列人數(shù)nqg=15 %設(shè)定并顯示候選人序列切割位置fqzd %設(shè)定并顯示候選人序列切割位置前部最大值fzd %顯示候選人序列被選到的人得分文件|文件另存為|U盤下某個文件夾|文件名=sy5運行|保存文件并運行|添加路徑到載入路徑|點擊“命令窗口”查看結(jié)果。如果出錯,回到Editor去.查錯,存文件,并運行。直到結(jié)果正確。至此Sy5.m調(diào)試成功。理解各個語句的作用?!巴ㄓ妹貢鴨栴}GSP”的數(shù)學(xué)模型1. 代表性:數(shù)學(xué)模型是現(xiàn)實問題抽象成的一個數(shù)學(xué)表達(dá)。2.

數(shù)字化:候選人總數(shù)n:必須確定將會遇到的候選人總個數(shù),比如說15個、30個或者50個。不妨把候選人總?cè)藬?shù)設(shè)為n。

分?jǐn)?shù)F(i)...F(n):這n個候選人將會以一個隨機的順序排著隊依次前來面試而得分(0-1)。假設(shè)F(i)在0,1之間并均勻分布。

IDi=1,…,30:每次被表白后,只有兩種選擇:接受i,結(jié)束;或者拒絕,繼續(xù)考慮下一個表白者i+1。

簡化:不考慮被拒候選人重返的可能。

算法算法(n=30),解決問題的辦法:如,親友的建言,自己的想法等1.選第一個2.選最后一個3.選中間一個4.排序算法5.扔骰子決定6.盡早決定,等最后最好的出現(xiàn)的概率會降低7.盡晚決定,風(fēng)險

溫馨提示

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

評論

0/150

提交評論