2017年數學建模學習_第1頁
2017年數學建模學習_第2頁
2017年數學建模學習_第3頁
2017年數學建模學習_第4頁
2017年數學建模學習_第5頁
已閱讀5頁,還剩10頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

-.z.數模學習總結前言:我參加過數模比賽共3次,對建模過程和寫作過程比擬了解,所以我在這段時間學的偏重于MATLAB編程。7月7日:今天學習的是數據擬合方法。數據擬合主要是計算出反映數據的根本趨勢。判斷擬合程度好與不好的標準有偏差的絕對值之和最小、使偏差的最大絕對值最小和使偏差的平方和最小〔即最小二乘法〕,平時我們用得最多是最后一種方法。擬合有多項式擬合、指定函數擬合等。實現方法是曲線擬合工具箱。依次單擊Start,Toolbo*es,CurveFitting,CurveFittingTool(cftool)即可使用曲線擬合工具線。我根據以下表格進展擬合:*123456789y9763-125720代碼為:*=[123456789];Y=[9763-125720];P=polyfit(*,y,3);*i=0:.2:10;yi=polyval(P,*i);plot(*i,yi,*,y,’r*’);我分別進展了線性、二階、三階對數據進展了多項式擬合,發現三階的多項式擬合效果最好。7月8日:今天學習的數據擬合實踐應用。如人口預測模型。實際上人口隨時間的變化呈非線性變化,而且存在一個與橫坐標軸平行的漸近線,所以用在人口預測模型是Logistic曲線模型。其形式為:。另外,數據還可以進展可視化處理,使模型生動形象呈現出來。一般會用到Matlab的meshgrid函數進展實現。7月9日:今天學習數學建模當中一個較為重要的模型——線性規劃模型,最主要的是其代碼格式:其代碼為:c=[2;3;1];a=[1,4,2;3,2,0];b=[8;6];[*,y]=linprog(c,-a,-b,[],[],zeros(3,1))結果如下:*=0.80661.79000.0166y=7.00007月10日:今天學習非線性規劃。一般說來,解非線性規劃要比解線性規劃問題困難得多,而且非線性規劃也不像線性規劃那樣有單純形法這一通用方法。非線性規劃目前還沒有適于各種問題的一般算法,各種方法都有自己特定的適用圍。步驟大致分為:1.編寫M文件,定義目標函數;2.編寫M文件,定義約束條件;3.編寫主程序〔既可編寫M文件,又可以在mandWindow直接輸入命令〕7月11日:今天學習整數規劃。規劃仲的變量〔局部或全部〕限制為整數時,稱為整數規劃。假設在線性規劃模型中,變量限制為整數,則稱為整數線性規劃。目前所流行的求解整數規劃的方法,往往只適用于于整數線性規劃。常見的整數規劃問題的求解算法有一下幾種:分枝定界法:可求純或混合整數線性規劃。割平面法:可求純或混合整數線性規劃。隱枚舉法:用于求解0-1整數規劃,有過濾隱枚舉法和分枝隱枚舉法。匈牙利法:解決指派問題〔0-1規劃特殊情形〕。蒙特卡羅法:求解各種類型規劃。7月12日:今天繼續深入學習整數規劃——0-1整數規劃。0-1整數規劃是整數規劃中的特殊情形,它的變量僅取值0或1,這是稱為0-1變量,或稱二進制變量。僅取值0或1,這個條件可由下述約束條件表示:01,或。在實際問題中,如果引入0-1變量,就可以把有各種情況需要區別討論的線性規劃問題統一在一個問題中討論了。7月13日:今天根據以下方程組編寫出如下代碼:首先編寫M文件mengte.m,定義嗎,目標函數f和約束向量函數g,程序如下:Function[f,g]=mengte(*);f=*(1)^*+*(2)^2+3**(3)^2+4**(4)^2+2**(5)*2-8**(1)-2**(2)-3**(3)-*(4)-2**(5);g(1)=sum(*)-400;g(2)=*(1)+2**(2)+2**(3)+*(4)+6**(5)-800g(3)=2**(1)+*(2)+6**(3)-200;g(4)=*(3)+*(4)+5**(5)-200;rand('state',sum(clock));p0=0;ticfori=1:10^5*1=floor(*);*2=ceil(*);[f,g]=mengte(*1);ifsum(g<0=)==4ifp0<=f*0=*1;p0=f;endend[f,g]=mengte(*2);ifsum(g<=0)==4ifp0<=f*0=*2;p0=f;endendend*0,p0Toc運行程序結果如下:ans=449439711p0=477897月14日今天學習云模型根底知識。云模型屬于不確定性人工只能疇,主要用于定性與定量之間的相互轉換。自然界的不確定性附屬性角度來說,主要有隨機性和模糊性,這跟單色光的“波粒二象性〞有點類似。云模型用三個數據來表示其特征:期望:云滴在論域空間分布的期望,一般用符號E*表示。熵:不確定性程度,由離群程度和模糊程度共同決定,一般用符號En表示。超熵:用來度量熵的不確定性,亦即熵的熵,一般用符號He表示。云有兩種發生器:正向云發生器和逆向云發生器,分別用來生成足夠的云滴和計算云滴的云數字特征〔E*,En,He〕。7月15日今天學習云發生器的觸發機制:1.正向云發生器的觸發機制。2.逆向云發生器的觸發機制。正向云發生器的觸發機制:1.生成以En為期望,以為方差的正態隨機數En’。2.生成以E*為期望,以為方差的正態隨機數*。3.計算隸屬度也就是正確度,則便是相對于論域U的一個云滴。這里選擇常用的“鐘形〞函數〔a,b為常量〕為隸屬度函數。4,重復1,2,3步驟直至生成足夠的云滴。對應地,逆向云發生器是用來計算云滴的數字特征〔E*,En.He〕的,這里介紹的是無需確定度信息的逆向發生器,假設樣本*的容量為n。其觸發機制如下:計算樣本均值和方差;E*=;;.7月16日今天學習云模型的MATLAB程序設計:男子氣步槍60發比賽的4組選手的成績如表所列根據以上云模型的原理,編寫程序:clearall;closeall;N=1500;Y=[9.510.310.18.110.39.710.410.110.68.69.210.010.510.410.110.110.99.810.010.110.69.89.710.010.410.510.610.310.110.210.88.49.310.29.610.010.510.010.79.9]';fori=1;size(Y,1)subplot(size(Y,1)/2,2,i)[*,y,E*,En,He]=cloud_tranform(Y(i,:),N);plot(*,y,'r.');*label('射擊成績分布/環');ylabel('確定度');title(strcat('第',num2str(i)','人射擊云模型復原圖譜'));a*is([8,12,0,1])function[*,y,E*,En,He]=cloud_transform(y_spor,n)E*=mean(y_spor);E*=mean(abs(y_spor-E*)).*sqrt(pi./2);He=sqrt(vart(y_spor)-En.^2);forq=1:nEnn=randn(1).*He+En;*(q)=rand(1).*Enn+E*;y(q)=e*p(-(*(q)-E*).^2./(2.*Enn.^2));end*;y;7月17日:今天學習Logistic回歸。在回歸分析中,因變量y可能有兩種情形:y是一個定量的變量,這時就用通常的regress函數對y進展回歸;y是一個定性的變量,比方,y=0或1,這時就不能用通常的regress函數對y進展回歸,而是使用所謂的Logistic回歸。Logistic方法主要應用于研究*些現象發生的概率P,比方股票漲還是跌,公司成功或失敗的概率。Logistic回歸模型的根本形式為:其中,,,...,為類似于多元線性回歸模型中的回歸系數。該式表示當變量為,,...,時,自變量P為1的概率。7月18日:今天學習主成分分析。在數學建模中,經常會遇到研究多個變量的問題,而且在多數情況下,多個變量之間常常存在一定的相關性,比方在研究世界博覽會影響力評價時,就要考慮多個評價變量。當變量個數較多且變量之間存在復雜關系時,會顯著增加分析問題的復雜性。如果有一種方法可以將多個變量綜合為少數幾個代表性變量,使這些變量既能夠代表原始變量的絕大多數信息又互不相關,則這樣的方法無疑有助于對問題的分析和建模。主成分分析法〔PCA〕正是這樣的一種方法。7月19日:今天學習主成分分析法的步驟:對原始數據進展標準化處理其中,。計算樣本相關系數矩陣為了方便,假定原始數據標準化后仍用*表示,則經標準化處理后數據的相關系數為其中,計算相關系數矩陣R的特征值和相應的特征向量④選擇重要的主成分,并寫出主成分表達式⑤計算主成分得分根據標準化原始數據,按照各個樣品,分別代入主成分表達式,就可以得到各主成分下的各個樣品的新數據,即為主成分得分。具體形式如下:其中⑥依據主成分得分的數據,進一步對問題進展后續的分析和建模7月20日:今天學習SVM,即支持向量機,是新一代的基于統計理論的學習系統。但實際上它也是一種算法,因為在機器學習領域,常把一些算法看做是一個機器,即學習機器或學習系統。SVM構建了一個分割兩類的超平面。在構建的過程中,SVM算法試圖使兩類之間的分割到達最大化。以一個很大的邊緣分隔兩個類可以使期望泛化誤差最小化。“最小化泛化誤差〞的含義是:當對新的樣本〔數值未知的數據點〕進展分類時,基于學習所得的分類器,使得我們預測錯誤的幾率被最小化。直覺上,這樣的一個分類器實現了兩個分類之間的別離邊緣最大化。7月21日:今天學習K-均值。將物理或抽象對象的分成由類似的對象組成的多個類的過程被稱為聚類。由聚類所生成的簇是一組數據對象的集合,這些對象與同一個簇中的對象彼此相似,與其他簇中的對象相異。聚類分析又稱群分析,它是研究〔樣本或指標〕分類問題的一種統計分析方法。聚類分析計算方法主要有如下幾種:劃分方法,層次方法,基于密度的方法,基于網格的方法,基于模型的方法。K-均值聚類算法是著名的劃分聚類分割方法。劃分方法的根本思想是:給定一個有N個元組或者紀錄的數據集,分裂法將構造K個分組,每一個分組就代表一個聚類,K<N。而且這個K分組滿足以下條件:1.每一個分組至少包含一個數據紀錄;2.每一個數據紀錄屬于且僅屬于一個分組。對于給定的K,算法首先給出一個初始的分組方法,以后通過反復迭代的方法改變分組,使得每一次改良之后分組的方案都較前一次的好,而所謂好的標準就是:同一分組中的記錄越來越近,而不同分組的記錄越來越遠。7月22日:今天學習K-均值的算法步驟和算法原理。1.算法原理:首先隨機從數據集中選取K個點,每個點初始地代表每個簇的聚類中心,然后計算剩余各個樣本到聚類中心的距離,將它賦給最近的簇,接著重新計算每個簇的平均值,整個過程不斷重復,如果相鄰兩次調整沒有明顯變化,說明數據聚類形成的簇已經收斂。該算法的一個特點是在每次迭代中都要考察每個樣本的分類是否正確。假設不正確,就要調整,在全部樣本調整完后,再修改聚類中心,進入下一次迭代。這個過程將不斷重復直到滿足*個終止條件,終止條件可以是一下任何一個:1.沒有對象被重新分配給不同的聚類;2.聚類中心不再發生變化;3.誤差平方和局部最小。2.K-均值算法步驟:從N個數據對象任意選擇K個對象作為初始聚類中心。循環和④直到每個聚類不再發生變化為止。根據每個聚類對象的均值,計算每個對象與這些中心對象的距離,并根據最小距離重新對相應對象進展劃分。④重新計算每個聚類的均值,直到聚類中心不再變化。這種劃分使得下式最小:7月23日:今天學習樸素貝葉斯判別模型。貝葉斯判別法跟一般基于統計學理論或者機器學習的方法不同,一則是因為其有解決問題的通用模式;二則是因為其借助的先驗概率,通過樣本來修正先驗概率,得到后驗概率,最終使用后驗概率來進展類判別,這也是貝葉斯判別法的特色。比方醫生診斷癌癥,肝癌很大可能是因為水;肺癌,是因為空氣;胃癌,是因為食物。但是,通常情況下,雖然有癌癥的相關局部病癥,醫生首先是看年齡的,如果年紀輕輕一般不考慮是癌癥,除非病癥特別明顯。這里的年齡就是的先驗概率。7月24日:今天學習灰色預測。灰色關聯度矩陣是一個極其重要的矩陣,其實用性非常強。灰色關聯度一定是分析向量與向量之間以及矩陣與矩陣之間的關聯度,實際上向量與向量之間的關聯度可以看成矩陣與矩陣之間的關聯度矩陣的一維形態。既然計算關聯度,一定是計算*一個待比擬的數列與參照物〔亦即參考數列〕之間的相關程度。假設有一組參考數列如下:

假設一組待比擬數列如下:則定義關聯系數如下:是一個單調增函數。但是,不管如何取值,其只改變的絕對大小,并不改變關聯性的相對強弱。由于只能反映出點與點之間的相關性,相關性信息分散,不方便刻畫數列之間的相關性,需要把整合起來,所以定義變量我們稱之為相關度。結合實際背景,有正面作用的我們叫做正相關,反之負相關;大于0.7稱為強相關,小于0.3稱為弱相關。7月25日:今天學習經典灰色模型GM〔1,1〕,其組建模型的具體步驟分別為:數據累加,求出數列的灰導數方程;定義數列的緊鄰均值;定義GM(1,1)灰微分方程;白化GM〔1,1〕模型;求解模型;模型檢驗。為了充分深入學習,我打算每天學習2-3個步驟。先學習數據累加和求出數列的灰導數方程兩個步驟。數據往往受到各方面的干預,淹沒在“噪聲〞包圍的環境中。累加數據不僅可以起到降噪的作用,而且有利于加強數據規律的顯露。設有原始數列:現對進展累加〔AGO〕得到新數列:其中表示數列對應前k項數據的累加:根據導數和差分的數學思想,假設連續性函數C=f(t),取橫坐標,諸點各相鄰點橫坐標之間的距離h可以是相等的,也可以是不相等的,在這里去h是相等的且足夠小,這些點的縱坐標分別為一定存在這樣的結論:式〔1〕因為h是相鄰數值之間的距離也就是差值,所以變成:式〔2〕上式稱為灰導數方程。從該式的推導步驟可知,如果與之間相對發生跳躍,該式誤差會較大,這也決定了灰色模型G〔1,1〕只適用于連續、平滑的事件趨勢,如果出現突變或者災變的數據序列,需要將其單獨從原始數列中提取出來用以建立災變灰色模型。7月26日:今天學習定義數列的緊鄰均值和定義GM(1,1)灰微分方程兩個步驟。定義數列的緊鄰均值:則稱新數列為的緊鄰均值數列,有時候也叫背景值。定義GM(1,1)灰微分方程:定義GM(1,1)灰微分方程為一階線性微分方程綜合式〔1〕和式〔2〕,得:此舉的目的是為了后續的常微分方程求解可以得到含有指數e變化規律的常微分模型,而這恰好符合大局部系統都是能量系統的規律,這也是模型是灰色的一局部原因。上式中,a和b是待區分的參數,a稱為“開展系數〞,而b稱為“灰作用量〞。需要注意的是,灰微分方程定義成而不是或者,是為了防止原始數列自身存在突變的奇異數據,干擾了模型的強壯性,取其均值可平滑這種階躍性。7月27日:今天學習白化GM〔1,1〕模型。方程是一個離散變量的方程,可將它進展白化變成對應的連續方程,這樣就能將之化解成我們最終需要的灰色模型形式。對式〔2〕進展白化,如果把不再看成是離散的數列,而是關于k連續的函數,這樣就存在等式。同理可得,相當于,如此這般白化處理之后,可得式〔3〕該式稱之為GM〔1,1〕的白化模型求解模型:對式〔3〕進展求解,得7月28日:今天學習模型檢驗。模型建立之后,不能立即使用,需要用相關檢驗的方法去檢測模型穩健性以及準確性是否到達標準。到達預期標準即可使用,否則不能使用。模型精度檢驗有一種常用的有效方法:相對殘差Q檢驗原始數列對應灰色模型預測得出的序列殘差序列為所以,相對誤差,越小越好,說明模型越準確,根據的大小來劃分模型的精度等級。7月29日:今天學習模擬退火算法。主要為其算法根本步驟:令即開場退火的初始溫度,隨機生成一個初始解,并計算相應的目標函數值。令T等于冷卻進度表中的下一個值根據當前解進展擾動,產生一個新解,計算相應的目標函數值,得到。假設則新解被承受,作為新的當前解;假設,則新解按概率承受,為當前溫度。在溫度下,重復次的擾動和承受過程,即執行步驟3與4.判斷T是否已到達,是,則終止算法;否,則轉到步驟2繼續執行。7月30日:今天把模擬退火算法應用到實際上:問題:物品允許局部帶走或者每類物品有多個等情況。假設有12個物品,質量分別為2磅,5磅,18磅,3磅,2磅,5磅,10磅,4磅,11磅,7磅,14磅,6磅,價值分別為5元,10元,13元,4元,3元,11元,13元,10元,8元,16元,7元,4元,包的最大允許質量46磅。程序如下:>>a=0.95k=[5;10;13;4;3;11;13;10;8;16;7;4];k=-k;d=[2;5;18;3;2;5;10;4;11;7;14;6];restriction=46;num=12;sol_new=ones(1,num);E_current=inf;E_best=inf;sol_current=sol_new;E_best=sol_new;t0=97;tf=3;t=t0;p=1;whilet>=tfforr=1:100tmp=ceil(rand.*num);sol_new(1,tmp)=~sol_new(1,tmp);while1q=(sol_new*d<=restriction);if~qp=~p;tmp=find(sol_new==1);ifpsol_new(1,tmp)=0;elsesol_new(1,tmp(end))=0;endelsebreakendendE_new=sol_new*k;ifE_new<E_currentE_current=E_new;sol_current=sol_new;ifE_new<E_bestE_best=E_new;sol_best=sol_new;endelseifrand<e*p(-(E_new-E_current)./t)E_current=E_new;sol_current=sol_new;elsesol_new=sol_current;endendendt=t.*a;enddisp('最優解為')sol_bestdisp('物品總價值等于')val=-E_best;disp(val)disp('背包中物品重量是:')disp(sol_best*d)結果如下:a=0.9500最優解為sol_best=110011111100物品總價值等于76背包中物品重量是:46其中,最優解的0-1數字串表示物品是否放入背包,比方第4個位置上是1,應該放入。通過窮舉法對上面的問題進展了驗證,得到的最大值也是76,即上面模擬退火算法的程序確實找到了最優解。7月31日:今天學習MATLAB常規動畫實現。

1.旋轉動畫。在figure中使用命令Rotate3D可以實現利用鼠標自由轉動三維圖形,而要使圖形自動連續地轉動則要rotate命令。

程序如下:Clf;*=3*pi(-1:0.05:1);y=*;[*,y]=meshgrid(*,y);

R=sqrt(*.^2+y.^2)+eps;Z=sin(R)./R;

h=surf(*,Y,Z);colormap(jet);a*isoff;

fori=1:.0.001:1.25

rotate(h,[001],i)drawnow;

end彗星軌跡圖:語法格式為慧長p*length(y)的二維彗星軌跡:et(*,y,p),其中,p的默認值為0.1慧長p*length(y)的三維彗星軌跡:et3(*,y,z,p),其中,p的默認值為0.1在命令窗口輸入以下語句:>>*=1:600;y=sin(*);z=e*p(cos(*));p=0.2;et3(*,y,z,p)8月1日:今天學習語法語句。9.M文件中的控制語句1順序語句2循環語句Fori=(表達式) (執行語句)EndFor要和end匹配,同時,需要適當的使用分號,否則把什么都輸出來了While語句While表達式 執行語句End3選擇語句If表達式 執行語句EndIf表達式 執行語句Else 執行語句2EndIf表達式 執行語句Elseif表達式 執行語句2Else 執行語句3End4分支語句Switch開關語句 Case條件語句 執行語句1 Case條件語句 執行語句2Otherwise 執行語句nEnd5.Continue語句和break語句6echo語句通常在執行語句的過程中,命令窗口是看不到執行過程的,但有些時候需要查看程序運行的中間變量,就需要用到echo語句Echoon:顯示它后面所有執行的命令文件的指令Echooff:不顯示Echo:在顯示和不顯示來回切換對于函數形式的M文件:Echofilenameon:使filename指定的M文件的執行命令顯示出來Echofilenameoff:使filename指定的M文件的執行命令顯示不顯示出來Echoonall:將其后所有的M文件的執行指令都顯示出來Echooffall:將其后所有的M文件的執行指令都不顯示出來7error語句這個函數命令用來指示出錯的信息并終止當前函數允許的情況Error(‘message’)error后續就沒有執行8try..catch語句Try (mands1)Catch (mands2)End9input語句此命令用來提示用于從鍵盤輸入數據、字符串或者表達式,并接收輸入值Variable=input(‘提示信息’):把提示信息顯示在屏幕上,等待用

溫馨提示

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

評論

0/150

提交評論