CCompositeMembershipFunction

Classe per l'implementazione di una composizione di funzioni di appartenenza.

Descrizione

La composizione di funzioni di appartenenza è una combinazione di due o più funzioni di appartenenza utilizzando un operatore specificato.

fuzzy_composite_function

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

Dichiarazione

   class CCompositeMembershipFuncion : public IMembershipFunction

Titolo

   #include <Math\Fuzzy\membershipfunction.mqh>

Gerarchia di ereditarietà

  CObject

      IMembershipFunction

          CCompositeMembershipFunction

I metodi della classe

I metodi della classe  

Descrizione

CompositionType

Imposta l'operatore composizione.

MembershipFunctions

Ottiene l'elenco delle funzioni 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

//+------------------------------------------------------------------+
//|                                  CompositeMembershipFunction.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#include <Math\Fuzzy\membershipfunction.mqh>
#include <Graphics\Graphic.mqh>
//--- Crea funzioni di appartenenza
CProductTwoSigmoidalMembershipFunctions func1(2,1,-1,7);
CP_ShapedMembershipFunction func2(0,6,7,9);
CCompositeMembershipFunction composite(ProdMF,GetPointer(func1),GetPointer(func2));
//--- Crea wrapper per funzioni di appartenenza
double ProductTwoSigmoidalMembershipFunctions(double x) { return(func1.GetValue(x)); }
double P_ShapedMembershipFunction(double x) { return(func2.GetValue(x)); }
double CompositeMembershipFunction(double x) { return(composite.GetValue(x)); }
//+------------------------------------------------------------------+
//| Funzione di start del programma Script                           |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- crea grafica
   CGraphic graphic;
   if(!graphic.Create(0,"CompositeMembershipFunction",0,30,30,780,380))
     {
      graphic.Attach(0,"CompositeMembershipFunction");
     }
   graphic.HistoryNameWidth(70);
   graphic.BackgroundMain("CompositeMembershipFunction");
   graphic.BackgroundMainSize(16);
//--- crea curva
   graphic.CurveAdd(P_ShapedMembershipFunction,0.0,10.0,0.1,CURVE_LINES,"Func1");
   graphic.CurveAdd(ProductTwoSigmoidalMembershipFunctions,0.0,10.0,0.1,CURVE_LINES,"Func2");
   graphic.CurveAdd(CompositeMembershipFunction,0.0,10.0,0.1,CURVE_LINES,"Func1 * Func2");
//--- 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();
  }