On 24/04/2008, Rich Shepard <[EMAIL PROTECTED]> wrote: > Thanks to several of you I produced test code using the normal density > function, and it does not do what we need. Neither does the Gaussian > function using fwhm that I've tried. The latter comes closer, but the ends > do not reach y=0 when the inflection point is y=0.5. > > So, let me ask the collective expertise here how to generate the curves > that we need. > > We need to generate bell-shaped curves given a midpoint, width (where y=0) > and inflection point (by default, y=0.5) where y is [0.0, 1.0], and x is > usually [0, 100], but can vary. Using the NumPy arange() function to produce > the x values (e.g, arange(0, 100, 0.1)), I need a function that will produce > the associated y values for a bell-shaped curve. These curves represent the > membership functions for fuzzy term sets, and generally adjacent curves > overlap where y=0.5. It would be a bonus to be able to adjust the skew and > kurtosis of the curves, but the controlling data would be the > center/midpoint and width, with defaults for inflection point, and other > parameters. > > I've been searching for quite some time without finding a solution that > works as we need it to work.
First I should say, please don't call these "bell curves"! It is confusing people, since that usually means specifically a Gaussian. In fact it seems that you want something more usually called a "sigmoid", or just a curve with a particular shape. I would look at http://en.wikipedia.org/wiki/Sigmoid_function In particular, they point out that the integral of any smooth, positive, "bump-shaped" function will be a sigmoid. So dreaming up an appropriate bump-shaped function is one way to go. Alternatively, tou can look at polynomial fitting - if you want, say, a function that is 1 with derivative zero at 0, 0.5 with derivative -1 at x, and 0 with derivative 0 at 1, you can construct a unique degree-6 polynomial that does exactly that; there's a new tool, KroghInterpolator, in scipy svn that can do that for you. Anne _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion