CTriangularMembershipFunction

Classe d'implémentation d'une fonction d'appartenance triangulaire avec les paramètres X1, X2 et X3

Description

La fonction définit une fonction d'appartenance de forme triangulaire. C'est une fonction d'appartenance simple et est la plus fréquemment appliquée.

fuzzy_triangular_functions

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

Déclaration

   class CTriangularMembershipFuncion : public IMembershipFunction

Titre

   #include <Math\Fuzzy\membershipfunction.mqh>

Hiérarchie d'héritage

  CObject

      IMembershipFunction

          CTriangularMembershipFunction

Méthodes de classe

Méthode de classe  

Description

X1

Retourne la valeur du premier point de l'axe X.

X2

Retourne la valeur du deuxième point de l'axe X.

X3

Retourne la valeur du troisième point de l'axe X.

ToNormalMF

Convertit une fonction d'appartenance triangulaire en une fonction gaussienne.

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

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