CTriangularMembershipFunction

Classe per implementare una funzione di appartenenza triangolo con i parametri X1, X2 e X3.

Descrizione

La funzione imposta una funzione di appartenenza a forma di un triangolo. Si tratta di una funzione di appartenenza semplice e per la maggior parte applicata di frequente.

fuzzy_triangular_functions

Un codice di esempio per tracciare un grafico viene visualizzato qui di seguito.

Dichiarazione

   class CTriangularMembershipFuncion : public IMembershipFunction

Titolo

   #include <Math\Fuzzy\membershipfunction.mqh>

Gerarchia di ereditarietà

  CObject

      IMembershipFunction

          CTriangularMembershipFunction

I metodi della classe

I metodi della classe  

Descrizione

X1

Ottiene il valore del primo punto sull'asse X.

X2

Ottiene il valore del secondo punto sull'asse X.

X3

Ottiene il valore del terzo punto sull'asse X.

ToNormalMF

Converte una funzione di appartenenza triangolo in una Gaussiana.

GetValue

Calcola il valore della funzione di appartenenza da un argomento specificato.

Metodi ereditati dalla classe CObject

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

Esempio

//+------------------------------------------------------------------+
//|                                 TriangularMembershipFunction.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             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>
//--- Crea funzioni di appartenenza
CTriangularMembershipFunction func1(0,2,5);
CTriangularMembershipFunction func2(0,5,10);
CTriangularMembershipFunction func3(8,8,10);
//--- Crea wrapper per funzioni di appartenenza
double TriangularMembershipFunction1(double x) { return(func1.GetValue(x)); }
double TriangularMembershipFunction2(double x) { return(func2.GetValue(x)); }
double TriangularMembershipFunction3(double x) { return(func3.GetValue(x)); }
//+------------------------------------------------------------------+
//| Funzione di start del programma Script                           |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- crea grafica
   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);
//--- crea curva
   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]");
//--- imposta le proprietà dell'asse X
   graphic.XAxis().AutoScale(false);
   graphic.XAxis().Min(0.0);
   graphic.XAxis().Max(10.0);
   graphic.XAxis().DefaultStep(1.0);
//--- imposta le proprietà asse Y
   graphic.YAxis().AutoScale(false);
   graphic.YAxis().Min(0.0);
   graphic.YAxis().Max(1.1);
   graphic.YAxis().DefaultStep(0.2);
//--- plotta
   graphic.CurvePlotAll();
   graphic.Update();
  }