演化博弈的仿真分析 基于matlab
演化博弈簡介
在傳統博弈理論中,常常假定參與人是完全理性的,且參與人在完全信息條件下進行的,但在現實的經濟生活中的參與人來講,參與人的完全理性與完全信息的條件是很難實現的。在企業的合作競爭中,參與人之間是有差別的,經濟環境與博弈問題本身的復雜性所導致的信息不完全和參與人的有限理性問題是顯而易見的。與傳統博弈理論不同。有限理性這一概念最早是由西蒙在研究決策問題時提出的,因為個人在以別人能夠理解的方式通過語句、數字或圖表來表達自己的知識或感情時是有限制的(這或許是因為他們沒有掌握到所必需的詞匯,或許是因為這些詞匯還不存在)。
演化博弈論:一般的演化博弈理論具有如下特征:它的研究對象是隨著時間變化的某一群體,理論探索的目的是為了理解群體演化的動態過程,并解釋說明為何群體將達到的這一狀態以及如何達到。影響群體變化的因素既具有一定的隨機性和擾動現象(突變),又有通過演化過程中的選擇機制而呈現出來的規律性。大部分演化博弈理論的預測或解釋能力在于群體的選擇過程,通常群體的選擇過程具有一定的慣性,同時這個過程也潛伏著突變的動力,從而不斷地產生新變種或新特征。
演化博弈三維圖
第一部分
第二部分
for i=0.1:0.2:0.9 *x的起始點為0.1,步長為0.2,終止點為0.9,可根據自己對圖形的要求修改*for j=0.1:0.2:0.9 *y的起始點為0.1,步長為0.2,終止點為0.9,可根據自己對圖形的要求修改*for m=0.1:0.2:0.9 *z的起始點為0.1,步長為0.2,終止點為0.9,可根據自己對圖形的要求修改*[T,Y]=ode45('sanfang',[0 10],[i j m]); *ode45函數,求解常微分方程的數值,’sanfang’為自己前面設計的函數名,[0,10]為t的范圍,[i j m]為xyz的范圍figure(1) *數據都大于0*grid on *顯示坐標軸網格線*plot3(Y(:,1),Y(:,2),Y(:,3),'k','lineWidth',1); *plot3畫三維圖函數**Y(:,1)表示(所有行,第一列)即表示dx/dt**Y(:,2)表示(所有行,第二列)即表示dy/dt**Y(:,3)表示(所有行,第三列)即表示dz/dt**’k’表示線條為黑色**'lineWidth’,1表示線寬為1*xlabel(‘p1’); x軸的名字ylabel(‘p2’);y軸的名字zlabel(‘p3’);z軸的名字hold onview([0.5 0.5 0.5]) *調整視角,可根據自己的需要調整*代碼
for i=0.1:0.2:0.9 for j=0.1:0.2:0.9 for m=0.1:0.2:0.9 [T,Y]=ode45('sanfang',[0 10],[i j m]); figure(1) grid on %plot3(Y(:,1),Y(:,2),Y(:,3),'k','lineWidth',1); plot3(Y(:,1),Y(:,2),Y(:,3),'k','lineWidth',1,'color',[i j m]); hold on end end end xlabel('p1'); ylabel('p2'); zlabel('p3'); view([0.8 0.8 0.8])函數代碼:(命名為sanfang)
function dydt=sanfang(t,y) dydt=zeros(3,1); dydt(1)=y(1)*(1-y(1))*(15-7*y(2)); dydt(2)=y(2)*(1-y(2))*(1+7*y(1)+2*y(3)); dydt(3)=y(3)*(1-y(3))*(-1+3*y(2)); end
MATLAB三方演化博弈二維圖
第一部分
function dy=sanfangdongtai(t,y,r1,k1,c1,s1,r3,c3,c4,s2,c5)*輸入函數名sanfangdongtai,括號里面輸入所有的參數*dy=zeros(3,1);*zeros(m, n):生成一個m*n的零矩陣*dy(1)=y(1)*(1-y(1))*(-y(2)*(k1+s1)+r1+k1-c1);*輸入第一個對象的復制動態方程,y(1)代表x*dy(2)=y(2)*(1-y(2))*(-y(3)*(s2-c4)+y(1)*(k1+s1)+r3-c3-c4);*輸入第二個對象的復制動態方程,y(2)代表y*dy(3)=y(3)*(1-y(3))*(y(2)*s2-c5);*輸入第三個對象的復制動態方程,y(3)代表z*end
第二部分
MATLAB三方動態博弈二維圖
可通過MATLAB圖形編輯功能調整圖形的坐標范圍、線條顏色、形狀等。
代碼:
函數:(erweisanfang)
function dy = sanfangdongtai(t,y,r1,k1,c1,s1,r3,c3,c4,s2,c5) dy=zeros(3,1); dy(1)=y(1)*(1-y(1))*(-y(2)*(k1+s1)+r1+k1-c1); dy(2)=y(2)*(1-y(2))*(-y(3)*(s2-c4)+y(1)*(k1+s1)+r3-c3-c4); dy(3)=y(3)*(1-y(3))*(y(2)*s2-c5); end總結:
代碼:
函數
function dydt=sanfang(t,y,P1,P2,R1,R2,M1,M2,M3,L1) dydt = zeros(3,1); dydt(1)= y(1)*(1-y(1))*(R1*(y(3)-1)-y(2)*P1+y(3)*P2-M1); dydt(2)=y(2)*(1-y(2))*(P1-M2+R2); dydt(3)=y(3)*(1-y(3))*(L1*(y(1)+y(2)-y(1)*y(2)+P2-M3)); end總結
以上是生活随笔為你收集整理的演化博弈的仿真分析 基于matlab的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Nginx学习系列二Linux下Ngin
- 下一篇: 三方演化博弈复制动态方程matlab仿真