def metric(parameters = numpy.array([])): n = numpy.size(tout) y = numpy.zeros((NEQ+1)*n) result = solve(t,bp,bp_coef,tiltangle,tiltangle_coef,respiration,respiration_coef,tout,y,parameters) if result==0: hr = y[11*n:12*n] return numpy.linalg.norm(hr,2) else: print 'ignoring this result' return 0
[10, 60], # hm [90, 200]] # hM ) #p_interval = numpy.empty_like(p_interval) #for i in xrange(len(p)): #p_interval[i][0] = .99*p[i] #p_interval[i][1] = p[i] npars = len(p) sobolgenerators = numpy.array([]) for i in xrange(npars): sobolgenerators=numpy.append(sobolgenerators,unif) # Solve model solve(t,bp,bp_coef,tiltangle,tiltangle_coef,respiration,respiration_coef,tout,y,p) #[Si, STi] = sobol_weirs(5000,sobolgenerators,p_interval,metric) p0 = p[0] k = p[1] Am0 = p[2] wall_strain = (1.0-numpy.sqrt((p0**k +bp**k)/(p0**k + Am0*bp**k))) y0 = y[:n] # Strain of both components in visco wall] y1 = y[n:2*n] # Strain of both components in visco wall s1 = p[7] s2 = p[8] firing = s1*(numpy.lib.function_base.interp(tout,t,wall_strain)-y0)+s2;