CNormalMembershipFunction

B ve Sigma parametrelerine sahip simetrik Gaussyen üyelik fonksiyonlarıyla çalışmak için tasarlanmıştır

Açıklama

Simetrik Gaussyen üyelik fonksiyonu Gaussyen (normal) dağılım ile şekillendirilir  Fonksiyon düzgündür ve tüm tanım aralığı boyunca sıfırdan farklı değerler alır.  

fuzzy_norm_function

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

Bildirim

   class CNormalMembershipFuncion : public IMembershipFunction

Başlık

   #include <Math\Fuzzy\membershipfunction.mqh>

Kalıtım hiyerarşisi

  CObject

      IMembershipFunction

          CNormalMembershipFunction

Sınıf yöntemleri

Sınıf yöntemi  

Açıklama

B

Üyelik fonksiyonu merkezinin değerini alır/ayarlar.

Sigma

Üyelik fonksiyonunun eğrilik parametresini alır/ayarlar.

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

//+------------------------------------------------------------------+
//|                                     NormalMembershipFunction.mq5 |
//|                         Copyright 2000-2024, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#include <Math\Fuzzy\membershipfunction.mqh>
#include <Graphics\Graphic.mqh>
//--- Üyelik fonksiyonlarını oluştur
CNormalMembershipFunction func1(5,0.5);
CNormalMembershipFunction func2(5,1);
CNormalMembershipFunction func3(5,3);
//--- üyelik fonksiyonları için örtüler oluştur
double NormalMembershipFunction1(double x) { return(func1.GetValue(x)); }
double NormalMembershipFunction2(double x) { return(func2.GetValue(x)); }
double NormalMembershipFunction3(double x) { return(func3.GetValue(x)); }
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- grafiği oluştur
   CGraphic graphic;
   if(!graphic.Create(0,"NormalMembershipFunction",0,30,30,780,380))
     {
      graphic.Attach(0,"NormalMembershipFunction");
     }
   graphic.HistoryNameWidth(70);
   graphic.BackgroundMain("NormalMembershipFunction");
   graphic.BackgroundMainSize(16);
//--- eğri oluştur
   graphic.CurveAdd(NormalMembershipFunction1,0.0,10.0,0.1,CURVE_LINES,"[5, 0.0]");
   graphic.CurveAdd(NormalMembershipFunction2,0.0,10.0,0.1,CURVE_LINES,"[5, 1]");
   graphic.CurveAdd(NormalMembershipFunction3,0.0,10.0,0.1,CURVE_LINES,"[5, 3]");
//--- 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();
  }