CGeneralizedBellShapedMembershipFunction

Clase para la implementación de la función general de pertenencia en forma de campana con los parámetros A, B y C.

Descripción

La función generalizada de pertenencia en forma de campana es parecida por su forma a la de Gauss. En toda la zona de definición la función es suave y adopta valores diferentes a cero.  

fuzzy_gbell_function

Un ejemplo de código para construir este gráfico se muestra más abajo.

Declaración

   class CGeneralizedBellShapedMembershipFuncion : public IMembershipFunction

Encabezamiento

   #include <Math\Fuzzy\membershipfunction.mqh>

Jerarquía de herencia

  CObject

      IMembershipFunction

          CGeneralizedBellShapedMembershipFunction

Métodos de clase

Método de clase  

Descripción

A

Retorna y establece el coeficiente de concentración de la función de pertenencia.

B

Retorna y establece el coeficiente de inclinación de la función de pertenencia.

С

Retorna y establece la coordenada del máximo de la función de pertenencia.

GetValue

Calcula el valor de la función de pertenenecia según el argumento indicado.

Métodos heredados de la clase CObject

Prev, Prev, Next, Next, Save, Load, Type, Compare

Ejemplo

//+------------------------------------------------------------------+
//|                      GeneralizedBellShapedMembershipFunction.mq5 |
//|                         Copyright 2000-2024, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#include <Math\Fuzzy\membershipfunction.mqh>
#include <Graphics\Graphic.mqh>
//--- Create membership functions
CGeneralizedBellShapedMembershipFunction func1(5, 1, 3);
CGeneralizedBellShapedMembershipFunction func2(5, 2, 3);
CGeneralizedBellShapedMembershipFunction func3(5, 3, 3);
//--- Create wrappers for membership functions
double GeneralizedBellShapedMembershipFunction1(double x) { return(func1.GetValue(x)); }
double GeneralizedBellShapedMembershipFunction2(double x) { return(func2.GetValue(x)); }
double GeneralizedBellShapedMembershipFunction3(double x) { return(func3.GetValue(x)); }
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- create graphic
   CGraphic graphic;
   if(!graphic.Create(0,"GeneralizedBellShapedMembershipFunction",0,30,30,780,380))
     {
      graphic.Attach(0,"GeneralizedBellShapedMembershipFunction");
     }
   graphic.HistoryNameWidth(70);
   graphic.BackgroundMain("GeneralizedBellShapedMembershipFunction");
   graphic.BackgroundMainSize(16);
//--- create curve
   graphic.CurveAdd(GeneralizedBellShapedMembershipFunction1,0.0,10.0,0.1,CURVE_LINES,"[5, 1, 3]");
   graphic.CurveAdd(GeneralizedBellShapedMembershipFunction2,0.0,10.0,0.1,CURVE_LINES,"[5, 2, 3]");
   graphic.CurveAdd(GeneralizedBellShapedMembershipFunction3,0.0,10.0,0.1,CURVE_LINES,"[5, 3, 3]");
//--- sets the X-axis properties
   graphic.XAxis().AutoScale(false);
   graphic.XAxis().Min(0.0);
   graphic.XAxis().Max(10.0);
   graphic.XAxis().DefaultStep(1.0);
//--- sets the Y-axis properties
   graphic.YAxis().AutoScale(false);
   graphic.YAxis().Min(0.0);
   graphic.YAxis().Max(1.1);
   graphic.YAxis().DefaultStep(0.2);
//--- plot
   graphic.CurvePlotAll();
   graphic.Update();
  }