CCompositeMembershipFunction

Üyelik fonksiyonlarının bir kompozisyonunun uygulanması için tasarlanan bir sınıftır.

Açıklama

Üyelik fonksiyonlarının kompozisyonu, belirtilen operatörü içeren iki veya daha fazla üyelik fonksiyonunun bir kombinasyonudur.

fuzzy_composite_function

Çizelge çizmek için oluşturulmuş bir örnek kod aşağıda verilmiştir.

Bildirim

   class CCompositeMembershipFuncion : public IMembershipFunction

Başlık

   #include <Math\Fuzzy\membershipfunction.mqh>

Kalıtım hiyerarşisi

  CObject

      IMembershipFunction

          CCompositeMembershipFunction

Sınıf yöntemleri

Sınıf yöntemi  

Açıklama

CompositionType

Kompozisyon operatörünü ayarlar.

MembershipFunctions

Üyelik fonksiyonlarının listesini alır.

GetValue

Üyelik fonksiyonunun değerini belli bir argümana göre hesaplar.

Sınıftan türetilen yöntemler CObject

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

Örnek

//+------------------------------------------------------------------+
//|                                  CompositeMembershipFunction.mq5 |
//|                         Copyright 2000-2024, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#include <Math\Fuzzy\membershipfunction.mqh>
#include <Graphics\Graphic.mqh>
//--- Üyelik fonksiyonlarını oluştur
CProductTwoSigmoidalMembershipFunctions func1(2,1,-1,7);
CP_ShapedMembershipFunction func2(0,6,7,9);
uCCompositeMembershipFunction composite(ProdMF,GetPointer(func1),GetPointer(func2));
//--- üyelik fonksiyonları için örtüler oluştur
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)); }
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- grafiği oluştur
   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);
//--- eğri oluştur
   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");
//--- X-ekseninin özelliklerini ayarla
   graphic.XAxis().AutoScale(false);
   graphic.XAxis().Min(0.0);
   graphic.XAxis().Max(10.0);
   graphic.XAxis().DefaultStep(1.0);
//--- Y-ekseninin özelliklerini ayarla
   graphic.YAxis().AutoScale(false);
   graphic.YAxis().Min(0.0);
   graphic.YAxis().Max(1.1);
   graphic.YAxis().DefaultStep(0.2);
//--- çiz
   graphic.CurvePlotAll();
   graphic.Update();
  }