CCompositeMembershipFunction

Classe d'implémentation d'une composition de fonctions d'appartenance.

Description

La composition de fonctions d'appartenance est une combinaison de deux, ou plus, fonctions d'appartenance utilisant un opérateur spécifié.

fuzzy_composite_function

Un extrait de code dessinant un graphique est affiché plus bas.

Déclaration

   class CCompositeMembershipFuncion : public IMembershipFunction

Titre

   #include <Math\Fuzzy\membershipfunction.mqh>

Hiérarchie d'héritage

  CObject

      IMembershipFunction

          CCompositeMembershipFunction

Méthodes de classe

Méthode de classe  

Description

CompositionType

Définit l'opérateur de la composition.

MembershipFunctions

Retourne la liste des fonctions d'appartenance.

GetValue

Calcule la valeur de la fonction d'appartenance d'un argument donné.

Méthodes héritées de la classe CObject

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

Exemple

//+------------------------------------------------------------------+
//|                                  CompositeMembershipFunction.mq5 |
//|                         Copyright 2000-2024, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#include <Math\Fuzzy\membershipfunction.mqh>
#include <Graphics\Graphic.mqh>
//--- Crée les fonctions membres
CProductTwoSigmoidalMembershipFunctions func1(2,1,-1,7);
CP_ShapedMembershipFunction func2(0,6,7,9);
CCompositeMembershipFunction composite(ProdMF,GetPointer(func1),GetPointer(func2));
//--- Crée les wrappers des fonctions membres
double ProductTwoSigmoidalMembershipFunctions(double x) { return(func1.GetValue(x)); }
double P_ShapedMembershipFunction(double x) { return(func2.GetValue(x)); }
double CompositeMembershipFunction(double x) { return(composite.GetValue(x)); }
//+------------------------------------------------------------------+
//| Fonction de lancement du script                                  |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- crée le graphique
   CGraphic graphic;
   if(!graphic.Create(0,"CompositeMembershipFunction",0,30,30,780,380))
     {
      graphic.Attach(0,"CompositeMembershipFunction");
     }
   graphic.HistoryNameWidth(70);
   graphic.BackgroundMain("CompositeMembershipFunction");
   graphic.BackgroundMainSize(16);
//--- crée une courbe
   graphic.CurveAdd(P_ShapedMembershipFunction,0.0,10.0,0.1,CURVE_LINES,"Func1");
   graphic.CurveAdd(ProductTwoSigmoidalMembershipFunctions,0.0,10.0,0.1,CURVE_LINES,"Func2");
   graphic.CurveAdd(CompositeMembershipFunction,0.0,10.0,0.1,CURVE_LINES,"Func1 * Func2");
//--- définit les propriétés de l'axe X
   graphic.XAxis().AutoScale(false);
   graphic.XAxis().Min(0.0);
   graphic.XAxis().Max(10.0);
   graphic.XAxis().DefaultStep(1.0);
//--- définit les propriétés de l'axe Y
   graphic.YAxis().AutoScale(false);
   graphic.YAxis().Min(0.0);
   graphic.YAxis().Max(1.1);
   graphic.YAxis().DefaultStep(0.2);
//--- dessin
   graphic.CurvePlotAll();
   graphic.Update();
  }