# creates curves for common voltage dependent functions
from sys import argv
from math import exp
mini = -100
maxi = 0
power = 1
minval = 0
maxval = 1
dv = 0.1
for a in argv:
if a.startswith('mini='):
mini = float(a.split('=')[1])
if a.startswith('maxi='):
maxi = float(a.split('=')[1])
if a.startswith('power='):
power = float(a.split('=')[1])
if a.startswith('minval='):
minval= float(a.split('=')[1])
if a.startswith('maxval='):
maxval = float(a.split('=')[1])
if a.startswith('dv='):
dv = float(a.split('=')[1])
#print dv, mini, maxi
half = float(argv[1])
slope = float(argv[2])
def boltz(v,a,b):
arg = -(v-a)/b
if arg < -50:
out = 1
elif arg > 50:
out = 0
else:
out = 1.0/(1.0+exp(arg))
return out
v = mini
while v <= maxi:
act = boltz(v,half,slope)
if power != 1:
act = act**power
act*=(maxval-minval)
act+=minval
print( v, act)
v += dv