2008/5/2 Rich Shepard <[EMAIL PROTECTED]>: > When I last visited I was given excellent advice about Gaussian and other > bell-shaped curves. Upon further reflection I realized that the Gaussian > curves will not do; the curve does need to have y=0.0 at each end. > > I tried to apply a Beta distribution, but I cannot correlate the alpha and > beta parameters with the curve characteristics that I have. > > What will work (I call it a pi curve) is a matched pair of sigmoid curves, > the ascending curve on the left and the descending curve on the right. Using > the Boltzmann function for these I can calculate and plot each individually, > but I'm having difficulty in appending the x and y values across the entire > range. This is where I would appreciate your assistance. > > The curve parameters passed to the function are the left end, right end, > and midpoint. The inflection point (where y = 0.5) is half-way between the > ends and the midpoint. > > What I have in the function is this: > > def piCurve(ll, lr, mid): > flexL = (mid - ll)/2.0 > flexR = (lr - mid)/2.0 > tau = (mid - ll)/10.0 > > x = [] > y = [] > > xL = nx.arange(ll,mid,0.1) > for i in xL: > x.append(xL[i]) > yL = 1.0 / (1.0 + nx.exp(-(xL-flexL)/tau)) > for j in yL: > y.append(yL[j]) > > xR = nx.arange(mid,lr,0.1) > for i in xR: > x.append(xR[i]) > yR = 1 - (1.0 / (1.0 + nx.exp(-(xR-flexR)/tau))) > for j in yR: > y.append(yR[j]) > > appData.plotX = x > appData.plotY = y > > Python complains about adding to the list: > > yL = 1.0 / (1.0 + nx.exp(-(x-flexL)/tau)) > TypeError: unsupported operand type(s) for -: 'list' and 'float' > > What is the appropriate way to generate two sigmoid curves so that the x > values range from the left end to the right end and the y values rise from > 0.0 to 1.0 at the midpoint, then lower to 0.0 again?
How about multiplying two Boltzmann terms together, ala: f(x) = 1/(1+exp(-(x-flex1)/tau1)) * 1/(1+exp((x-flex2)/tau2)) You'll find if your two flexion points get too close together, the peak will drop below the maximum for each individual curve, but the transition will be continuous. Angus. -- AJC McMorland, PhD candidate Physiology, University of Auckland (Nearly) post-doctoral research fellow Neurobiology, University of Pittsburgh _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion