Membership function composed by several connected linear functions.

Namespace:  AForge.Fuzzy
Assembly:  AForge.Fuzzy (in AForge.Fuzzy.dll) Version: (


public class PiecewiseLinearFunction : IMembershipFunction


The piecewise linear is a generic function used by many specific fuzzy membership functions, like the trappezoidal function. This class must be instantiated with a sequence of points representing the edges of each one of the lines composing the piecewise function.

Note:The x-axis points must be ordered (crescent), so the GetMembership(Single) function will use each X value as an ending point for one line and starting point of the next.

While trapezoidal and half trapezoidal are classic functions used in fuzzy functions, this class supports any function or approximation that can be represented as a sequence of lines.

Sample usage:

// creating an array of points representing a typical trapezoidal function /-\
Point [] points = new Point[4];
// point where membership starts to rise
points[0] = new Point( 10, 0 );
// maximum membership (1) reached at the second point 
points[1] = new Point( 20, 1 );
// membership starts to fall at the third point 
points[2] = new Point( 30, 1 );
// membership gets to zero at the last point 
points[3] = new Point( 40, 0 );
// creating the instance
PiecewiseLinearFunction membershipFunction = new PiecewiseLinearFunction( points );
// getting membership for several points
for ( int i = 5; i < 45; i++ )
    Console.WriteLine( membershipFunction.GetMembership( i ) );

Inheritance Hierarchy


See Also