在 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)