# -*- coding: utf-8 -*- def traps(a,b,n,f): h = (1.*b-a)/n s = (f(a) + f(b))*0.5 for i in range(1,n): s += f(a + h*i) return h*s def traps_p(a,b,n,f): t= f(linspace(a,b,num=n+1)) t[0] = t[0]*0.5 t[-1] = t[-1]*0.5 return sum(t)*(1.*b-a)/n #for ? test funksjonene, format traps.py a b n 'f(x)' if __name__ == '__main__': import sys from numpy import * #for ? kunne bruke eval if len(sys.argv) != 5: sys.stderr.write("wrong number of args\n") sys.exit(2) print '%f' %(traps(float(sys.argv[1]), float(sys.argv[2]),\ int(sys.argv[3]),lambda x: eval(sys.argv[4]))) print '%f' %(traps_p(float(sys.argv[1]), float(sys.argv[2]),\ int(sys.argv[3]),lambda x: eval(sys.argv[4])))