簡體   English   中英

x軸上同時變化的兩個變量的圖

[英]Plot of two variables varied simultaneously, on x-axis

我的以下代碼生成了一個帶有x軸循環變量的圖形。 具體來說,eta_22從0到1變化,循環迭代大小為0.01。

該行下面的代碼是源功能文件。

我的問題是:如何生成eta_1從0到1變化且循環迭代大小也為0.01的圖? (我想要在y軸上繪制AA,而eta_1,eta_2從0到1變化。)

我的嘗試:我試圖創建嵌套的“ for”循環,但是情節本身正在循環。 我試圖將繪圖線也放置在“ for”循環之外,但這沒有用。

謝謝你的幫助。

global Lambda mu mu_A mu_T beta tau eta_1 eta_2 lambda_T rho_1 rho_2 gamma

  alpha = 100;
  TIME = 365;
  eta_22 = zeros(1,alpha); 
  AA = zeros(1,alpha);

  for m = 1:1:alpha 
  eta_2 = m./alpha;
  eta_22(m) = m./alpha;
  Lambda = 531062; 
  mu = (1/70)/365;
  mu_A = 0.25/365;
  mu_T = 0.2/365;
  beta = 0.187/365; 
  tau = 4/365;  
  lambda_T = 0.1;
  rho_1 = 1/60;
  rho_2 = (rho_1)./(270.*rho_1-1);
  gamma = 1e-3;
  eta_1 = 0;

  S0 = 191564208;
  T0 = 131533276;
  H0 = 2405659;
  C0 = 1805024;
  C10 = 1000000; 
  C20 = 1000000; 
  CT10 = 500000; 
  CT20 = 500000;
  y0 = [S0, T0, H0, C0, C10, C20, CT10, CT20];

  [t,y] = ode45('SimplifiedEqns',[0:1:TIME],y0);
  S = y(:,1);
  T = y(:,2);
  H = y(:,3); 
  C = y(:,4);
  C1 = y(:,5); 
  C2 = y(:,6);
  CT1 = y(:,7); 
  CT2 = y(:,8);  
  N = S + T + H + C + C1 + C2 + CT1 + CT2;

  HIVinf1=[0:1:TIME];
  HIVinf2=[beta.*(S+T).*(C1+C2)./N];
  HIVinf=trapz(HIVinf1,HIVinf2);
  AA(m) = HIVinf;
  end

  plot(100.*eta_22,AA./1000)

_____________________________________________________________________________________________________

  function ydot = SimplifiedEqns(t,y)

  global Lambda mu mu_A mu_T beta tau eta_1 eta_2 lambda_T rho_1 rho_2 gamma

  S = y(1);
  T = y(2);
  H = y(3); 
  C = y(4);
  C1 = y(5); 
  C2 = y(6);
  CT1 = y(7); 
  CT2 = y(8);

  N = S + T + H + C + C1 + C2 + CT1 + CT2;
  ydot = zeros(8,1);

  ydot(1)=Lambda-mu.*S-beta.*(H+C+C1+C2).*(S./N)-tau.*(T+C).*(S./N);
  ydot(2)=tau.*(T+C).*(S./N)-beta.*(H+C+C1+C2).*(T./N)-(mu+mu_T).*T;
  ydot(3)=beta.*(H+C+C1+C2).*(S./N)-tau.*(T+C).*(H./N)-(mu+mu_A).*H;
  ydot(4)=beta.*(H+C+C1+C2).*(T./N)+tau.*(T+C).*(H./N)-(mu+mu_A+mu_T+lambda_T).*C;
  ydot(5)=lambda_T.*C-(mu+mu_A+rho_1+eta_1).*C1;
  ydot(6)=rho_1.*C1-(mu+mu_A+rho_2+eta_2).*C2;
  ydot(7)=eta_1.*C1-(mu+rho_1+gamma).*CT1;
  ydot(8)=eta_2.*C2-(mu+rho_2+gamma.*(rho_1)./(rho_1+rho_2)).*CT2+(rho_1).*CT1;
  end

最簡單的方法:

eta_1=0:1/alpha:1;
eta_2=0:1/alpha:1;
lsize=length(eta_1) % I assume eta_1 and eta_2 are of the same size

for i=1:lsize
%Update your AA(i) here
end
plot(eta_1,AA,eta_2,AA)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM