CSigmoidalMembershipFunction

Classe per l'implementazione di una funzione di appartenenza sigmoide con i parametri A e C.

Descrizione

La funzione sigmoide viene applicata quando si impostano funzioni di appartenenza monotone. Essa consente la creazione di funzioni di appartenenza dei valori pari ad 1 che iniziano con un valore di argomento. Tali funzioni sono adatte se è necessario impostare tali termini linguistici come "short" o "long".

fuzzy_sigmoidal_function

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

Dichiarazione

   class CSigmoidalMembershipFuncion : public IMembershipFunction

Titolo

   #include <Math\Fuzzy\membershipfunction.mqh>

Gerarchia di ereditarietà

  CObject

      IMembershipFunction

          CSigmoidalMembershipFunction

I metodi della classe

I metodi della classe  

Descrizione

A

Ottiene ed imposta il rapporto pendenza funzione di appartenenza.

С

Ottiene ed imposta il parametro della coordinata inflessione della funzione di appartenenza.

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

//+------------------------------------------------------------------+
//|                                  SigmoidalMembershipFunction.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#include <Math\Fuzzy\membershipfunction.mqh>
#include <Graphics\Graphic.mqh>
//--- Crea funzioni di appartenenza
CSigmoidalMembershipFunction func1(-2, 4);
CSigmoidalMembershipFunction func2(1, 4);
CSigmoidalMembershipFunction func3(2, 4);
//--- Crea wrapper per funzioni di appartenenza
double SigmoidalMembershipFunction1(double x) { return(func1.GetValue(x)); }
double SigmoidalMembershipFunction2(double x) { return(func2.GetValue(x)); }
double SigmoidalMembershipFunction3(double x) { return(func3.GetValue(x)); }
//+------------------------------------------------------------------+
//| Funzione di start del programma Script                           |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- crea grafica
   CGraphic graphic;
   if(!graphic.Create(0,"SigmoidalMembershipFunction",0,30,30,780,380))
     {
      graphic.Attach(0,"SigmoidalMembershipFunction");
     }
   graphic.HistoryNameWidth(70);
   graphic.BackgroundMain("SigmoidalMembershipFunction");
   graphic.BackgroundMainSize(16);
//--- crea curva
   graphic.CurveAdd(SigmoidalMembershipFunction1,0.0,10.0,0.1,CURVE_LINES,"[-2, 4]");
   graphic.CurveAdd(SigmoidalMembershipFunction2,0.0,10.0,0.1,CURVE_LINES,"[1, 4]");
   graphic.CurveAdd(SigmoidalMembershipFunction3,0.0,10.0,0.1,CURVE_LINES,"[2, 4]");
//--- 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();
  }