# -*- coding: utf-8 -*- from scipy.integrate import odeint from pylab import * # for plotting commands import numpy as np #~ def pole_wektorowe(zakres_A,zakres_B,k ): #~ A,B = meshgrid( zakres_A, zakres_B ) #~ dA = -k*A*A*B #~ dB = -k*A*A*B #~ quiver(A,B,dA,dB) def dokladne(y,t,K,lamb,eps): u = y[0] v = y[1] du = -u + (u+K-lamb)*v dv = 1/eps*(u-(u+K)*v) return array([du, dv]) def dlugie(y,t,K,lamb,eps): u = y[0] v = y[1] du = -lamb*u/(u+K) dv = 0 return array([du, dv]) def krotkie(y,t,K,lamb,eps): u = y[0] v = y[1] du = 0 dv = 1-(1+K)*v return array([du, dv]) def pole_wektorowe(zakres_u,zakres_v,K,lamb,eps ): u,v = meshgrid( zakres_u, zakres_v ) du = -u + (u+K-lamb)*v dv = 1/eps*(u-(u+K)*v) quiver(u,v,du,dv) K = 1.1 lamb = 1. eps = 0.001 figure(1) pole_wektorowe(np.arange(0.01,0.03,0.001), np.arange(0.01,0.03,0.001), K,lamb,eps) show() time = np.linspace(0,10,1000000) y = odeint(dokladne,[1,0],time, args =(K,lamb,eps)) #plot(y[:,0],y[:,1]) # u(t), v(t) y_krotkie = odeint(krotkie,[1,0],time, args =(K,lamb,eps)) y_dlugie = odeint(dlugie,[1,0],time, args =(K,lamb,eps)) ## figure(2) semilogx(time,y[:,0]) # u(t) semilogx(time,y[:,1]) # v(t) semilogx(time*eps,y_krotkie[:,0]) # u(t) semilogx(time*eps,y_krotkie[:,1]) # v(t) #semilogx(time,y_dlugie[:,0]) # u(t) #semilogx(time,y_dlugie[:,0]/(y_dlugie[:,0]+K)) # v(t) legend(('u','v','u_k','v_k','u_d','v_d')) show() figure() s = np.linspace(0, 10, 1000) k2=1. Km = 0.5 e0 = 1 dp_dt = k2*e0*s/(Km+s) plot(s, dp_dt) show()