Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2019
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.94 KB | None | 0 0
  1. K = 1e-5; % M
  2. kd=10; % arbitrary, set to alter convergence speed, numerical stability
  3. dt = 1e-7; % arbitrary, alter to change convergence speed, numerical stability
  4. v0 = [0.2; 0.2 ; K]; % M [HA], [A], [X],
  5.  
  6. %% for dilute conditions
  7. %kd=80;
  8. %dt = 1e-5;
  9. %v0 = [0.0001; 0.0001 ; K]; % [HA], [A], [X]
  10.  
  11. Nstep = 10000;
  12. t = [0:dt:(Nstep-1)*dt];
  13. tdilute = t(round(Nstep*[0.1:0.1:0.9]));
  14.  
  15. dv_dt = @(kd,K,v) [ -kd*v(1)+kd/K*v(2)*v(3); kd*v(1)-kd/K*v(2)*v(3)] ;
  16. dv_ = @(v,dt) dv_dt(kd,K,v)*dt;
  17. dv = @(v) dv_(v,dt);
  18. v = v0;
  19. conc = v0;
  20. for ii=2:Nstep
  21. vstep = dv(v);
  22. v = v + [vstep(1); vstep(2); vstep(2)];
  23. conc(:,ii) = v;
  24. if any(t(ii) == tdilute)
  25. v = v/1.2; % <-- change factor to dilute by here
  26. end
  27. end
  28.  
  29. figure
  30. subplot(2,1,1)
  31. plot(t,conc(1,:),'r')
  32. hold on
  33. plot(t,conc(2,:),'g--')
  34. plot(t,conc(3,:),'b--')
  35. ylabel('[c]')
  36. legend('[HA]','[A^-]','[H^+]')
  37. subplot(2,1,2)
  38. plot(t,-log10(conc(3,:)),'b--')
  39. ylabel('pH')
  40. xlabel('time (au)')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement