日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

演化博弈的仿真分析 基于matlab

發布時間:2023/12/9 循环神经网络 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 演化博弈的仿真分析 基于matlab 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

演化博弈簡介

在傳統博弈理論中,常常假定參與人是完全理性的,且參與人在完全信息條件下進行的,但在現實的經濟生活中的參與人來講,參與人的完全理性與完全信息的條件是很難實現的。在企業的合作競爭中,參與人之間是有差別的,經濟環境與博弈問題本身的復雜性所導致的信息不完全和參與人的有限理性問題是顯而易見的。與傳統博弈理論不同。有限理性這一概念最早是由西蒙在研究決策問題時提出的,因為個人在以別人能夠理解的方式通過語句、數字或圖表來表達自己的知識或感情時是有限制的(這或許是因為他們沒有掌握到所必需的詞匯,或許是因為這些詞匯還不存在)。

演化博弈論:一般的演化博弈理論具有如下特征:它的研究對象是隨著時間變化的某一群體,理論探索的目的是為了理解群體演化的動態過程,并解釋說明為何群體將達到的這一狀態以及如何達到。影響群體變化的因素既具有一定的隨機性和擾動現象(突變),又有通過演化過程中的選擇機制而呈現出來的規律性。大部分演化博弈理論的預測或解釋能力在于群體的選擇過程,通常群體的選擇過程具有一定的慣性,同時這個過程也潛伏著突變的動力,從而不斷地產生新變種或新特征。

演化博弈三維圖
第一部分

function dydt=sanfang(t,y)*定義一個函數,保存為函數名.m的文件,t,y為輸入函數的參數,t為時間,演化過程隨時間而變化*dydt=zeros(3,1);*zeros(m, n):生成一個m*n的零矩陣*dydt(1)=y(1)*(1-y(1))*(15-7*y(2));*輸入第一個對象的復制動態方程,y(1)代表x*dydt(2)=y(2)*(1-y(2))*(1+7*y(1)+2*y(3));*輸入第二個對象的復制動態方程,y(2)代表y*dydt(3)=y(3)*(1-y(3))*(-1+3*y(2));*輸入第三個對象的復制動態方程,y(3)代表z*end

第二部分

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


第二部分

p1=0.3,p2=0.5,p3=0.4;*輸入博弈三方的初始概率*r1=9,k1=1,c1=5,s1=1,r3=8,c3=6,c4=4,s2=2.5,c5=1;*輸入所有參數的值*[t,y]=ode45(@(t,y)sanfangdongtai(t,y,r1,k1,c1,s1,r3,c3,c4,s2,c5),[0:10],[p1,p2,p3]);*f=@(x)acos(x) 相當于建立了一個函數文件:% f.m**用ODE45函數求解剛剛定義的常微分方程**[0:10]為時間t的范圍**[p1 p2 p3]為輸入p1、p2、p3的值*y1=y(:,1);*表示dx/dt*plot(t,y1,'--r');*畫x的演化圖,--為虛線,r為紅色*hold on;y2=y(:,2);*表示dy/dt*plot(t,y2,'*-k');*畫y的演化圖,*-為星號標記實線,k為黑色*hold on;y3=y(:,3);*表示dz/dt*plot(t,y3,'--g');*畫z的演化圖,--為虛線,g為綠色*xlabel('t');*x軸為時間t*ylabel('p');*y軸為概率p*hold on;legend(‘政府’,’企業’,’消費者’);*加標注,三條線分別代表是什么*

MATLAB三方動態博弈二維圖

可通過MATLAB圖形編輯功能調整圖形的坐標范圍、線條顏色、形狀等。


代碼:

p1=0.3,p2=0.5,p3=0.4; r1=9,k1=1,c1=5,s1=1,r3=8,c3=6,c4=4,s2=2.5,c5=1; [t,y]=ode45(@(t,y)erweisanfang(t,y,r1,k1,c1,s1,r3,c3,c4,s2,c5),[0:10],[p1,p2,p3]); y1=y(:,1); plot(t,y1,'--r'); hold on; y2=y(:,2); plot(t,y2,'*-k'); hold on; y3=y(:,3); plot(t,y3,'--g'); xlabel('t'); ylabel('p'); hold on; legend('政府','企業','消費者');

函數:(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

總結:
代碼:

for i=0:0.1:0.99; for j=0:0.1:0.99; for m=0:0.1:0.99; P1=0.4;P2=0.2;R1=0.5;R2=0.3;M1=0.10;M2=0.8;M3=0.10;L1=0.7; %P1=0.6;P2=0.4;R1=0.5;R2=0.3;M1=0.10;M2=0.8;M3=0.10;L1=0.7; [T,Y]=ode45(@(t,y)sanfang(t,y,P1,P2,R1,R2,M1,M2,M3,L1),[0:200],[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 if i <= 0.1; Y(:,1) end end end end xlabel('p1'); ylabel('p2'); zlabel('p3'); view([0.8 0.8 0.8]) t = T figure(2) y1=Y(:,1); plot(t,y1,'-r'); hold on; y2=Y(:,2); plot(t,y2,'-*k'); hold on; y3=Y(:,3); plot(t,y3,'-+g'); xlabel('t'); ylabel('p'); hold on; legend('政府','保險公司','漁民');

函數

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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。