C# Class AForge.Fuzzy.PiecewiseLinearFunction

Membership function composed by several connected linear functions.

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.

The x-axis points must be ordered (crescent), so the GetMembership 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: IMembershipFunction
Show file Open project: holisticware-admin/MonoVersal.AForgeNET

Protected Properties

Property Type Description
points Point[]

Public Methods

Method Description
GetMembership ( float x ) : float

Calculate membership of a given value to the piecewise function.

PiecewiseLinearFunction ( Point points ) : System

Initializes a new instance of the PiecewiseLinearFunction class.

Specified point must be in crescent order on X axis and their Y value must be in the range of [0, 1].

Protected Methods

Method Description
PiecewiseLinearFunction ( ) : System

Initializes a new instance of the PiecewiseLinearFunction class.

This constructor must be used only by inherited classes to create the points vector after the instantiation.

Method Details

GetMembership() public method

Calculate membership of a given value to the piecewise function.
Points of the membership function are not initialized.
public GetMembership ( float x ) : float
x float Value which membership will to be calculated.
return float

PiecewiseLinearFunction() protected method

Initializes a new instance of the PiecewiseLinearFunction class.

This constructor must be used only by inherited classes to create the points vector after the instantiation.

protected PiecewiseLinearFunction ( ) : System
return System

PiecewiseLinearFunction() public method

Initializes a new instance of the PiecewiseLinearFunction class.

Specified point must be in crescent order on X axis and their Y value must be in the range of [0, 1].

Points must be in crescent order on X axis. Y value of points must be in the range of [0, 1].
public PiecewiseLinearFunction ( Point points ) : System
points Point Array of (X,Y) coordinates of each start/end of the lines.
return System

Property Details

points protected property

Vector of (X,Y) coordinates for end/start of each line.
protected Point[] points
return Point[]