CNormalCombinationMembershipFunction

Classe d'implémentation d'une fonction d'appartenance gaussienne double face avec les paramètres B1, B2, Sigma1 et Sigma2.

Description

La fonction d'appartenance gaussienne à double face est formée en utilisant une distribution gaussienne. Elle permet de définir des fonctions d'appartenance asymétriques. La fonction est lisse et prend des valeurs différentes de zéro le long de toute la zone de définition.  

 

fuzzy_normcomb_function

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

Déclaration

   class CNormalCombinationMembershipFuncion : public IMembershipFunction

Titre

   #include <Math\Fuzzy\membershipfunction.mqh>

Hiérarchie d'héritage

  CObject

      IMembershipFunction

          CNormalCombinationMembershipFunction

Méthodes de classe

Méthode de classe  

Description

B1

Retourne et définit la valeur du centre de la première fonction d'appartenance.

B2

Retourne et définit la valeur du centre de la deuxième fonction d'appartenance.

Sigma1

Retourne et définit le premier paramètre de la courbure de la fonction d'appartenance.

Sigma2

Retourne et définit le deuxième paramètre de la courbure de la fonction 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

//+------------------------------------------------------------------+
//|                          NormalCombinationMembershipFunction.mq5 |
//|                         Copyright 2000-2024, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#include <Math\Fuzzy\membershipfunction.mqh>
#include <Graphics\Graphic.mqh>
//--- Crée les fonctions membres
CNormalCombinationMembershipFunction func1(1,2,3,1);
CNormalCombinationMembershipFunction func2(4,2,5,1);
CNormalCombinationMembershipFunction func3(6,2,6,1);
//--- Crée les wrappers des fonctions membres
double NormalCombinationMembershipFunction1(double x) { return(func1.GetValue(x)); }
double NormalCombinationMembershipFunction2(double x) { return(func2.GetValue(x)); }
double NormalCombinationMembershipFunction3(double x) { return(func3.GetValue(x)); }
//+------------------------------------------------------------------+
//| Fonction de lancement du script                                  |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- crée le graphique
   CGraphic graphic;
   if(!graphic.Create(0,"NormalCombinationMembershipFunction",0,30,30,780,380))
     {
      graphic.Attach(0,"NormalCombinationMembershipFunction");
     }
   graphic.HistoryNameWidth(70);
   graphic.BackgroundMain("NormalCombinationMembershipFunction");
   graphic.BackgroundMainSize(16);
//--- crée une courbe
   graphic.CurveAdd(NormalCombinationMembershipFunction1,0.0,10.0,0.1,CURVE_LINES,"[1, 2, 3, 1]");
   graphic.CurveAdd(NormalCombinationMembershipFunction2,0.0,10.0,0.1,CURVE_LINES,"[4, 2, 5, 1]");
   graphic.CurveAdd(NormalCombinationMembershipFunction3,0.0,10.0,0.1,CURVE_LINES,"[6, 2, 6, 1]");
//--- 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();
  }