from scipy.integrate import odeint
from scipy import arange
from array import array
from math import *

k1=0.04
k2=10**4
k3=3 * 10**7

def fp(y,x):
	return [-k1*y[0] + k2*y[1]*y[2],k1*y[0] - k2*y[1]*y[2] - k3*y[1]**2,k3*y[1]**2]

#initial conditions
f0=[1,0,0]
#range of values
x=arange(0,201.01,0.01)

def odesoln(tau):
	return odeint(fp,f0,x,atol=0.001,rtol=tau,full_output=1)

def answers(sol):
	nfe=sol[1]['nfe']
	numeval=nfe[len(nfe)-1]
	#get answer at endpoint
	b=sol[0].tolist()
	b=b[len(b)-1]
	#give it back
	return b,numeval

print answers(odesoln(10**-20))
