CS_ShapedMembershipFunction

Classe per implementare una funzione di appartenenza stile-S con i parametri A e B.  

Descrizione

La funzione imposta una funzione di appartenenza a due parametri stile-S. Questa è una non decrescente funzione che assume valori da 0 ad 1. I parametri A e B definiscono l'intervallo all'interno del quale la funzione aumenta la traiettoria non lineare da 0 a 1.

La funzione rappresenta l'insieme fuzzy di tipo "molto alto" (cioè sono impostate funzioni di appartenenza non-decrescenti con saturazione ).

fuzzy_s_function

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

Dichiarazione

   class CS_ShapedMembershipFuncion : public IMembershipFunction

Titolo

   #include <Math\Fuzzy\membershipfunction.mqh>

Gerarchia di ereditarietà

  CObject

      IMembershipFunction

          CS_ShapedMembershipFunction

I metodi della classe

I metodi della classe  

Descrizione

A

Ottiene ed imposta il parametro dell'inizio dell'intervallo crescente.

B

Ottiene ed imposta il primo parametro del nucleo dell' insieme fuzzy.

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

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