CTriangularMembershipFunction

Класс для реализации треугольной функции принадлежности с параметрами X1, X2, X3.

Описание

Функция задает функцию принадлежности в виде треугольника. Простая и наиболее часто применяемая функция принадлежности.

fuzzy_triangular_functions

Пример кода для построения этого графика приведен ниже.

Декларация

   class CTriangularMembershipFuncion : public IMembershipFunction

Заголовок

   #include <Math\Fuzzy\membershipfunction.mqh>

Иерархия наследования

  CObject

      IMembershipFunction

          CTriangularMembershipFunction

Методы класса

Метод класса  

Описание

X1

Возвращает значение первой точки на абсциссе.

X2

Возвращает значение второй точки на абсциссе.

X3

Возвращает значение третьей точки на абсциссе.

ToNormalMF

Преобразует треугольную функцию принадлежности в гауссову.

GetValue

Рассчитывает значение функции принадлежности по указанному аргументу.

Методы унаследованные от CObject

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

Пример

//+------------------------------------------------------------------+
//|                                 TriangularMembershipFunction.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2000-2024, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
#include <Math\Fuzzy\membershipfunction.mqh>
#include <Graphics\Graphic.mqh>
//--- Create membership functions
CTriangularMembershipFunction func1(0,2,5);
CTriangularMembershipFunction func2(0,5,10);
CTriangularMembershipFunction func3(8,8,10);
//--- Create wrappers for membership functions
double TriangularMembershipFunction1(double x) { return(func1.GetValue(x)); }
double TriangularMembershipFunction2(double x) { return(func2.GetValue(x)); }
double TriangularMembershipFunction3(double x) { return(func3.GetValue(x)); }
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- create graphic
   CGraphic graphic;
   if(!graphic.Create(0,"TriangularMembershipFunction",0,30,30,780,380))
     {
      graphic.Attach(0,"TriangularMembershipFunction");
     }
   graphic.HistoryNameWidth(70);
   graphic.BackgroundMain("TriangularMembershipFunction");
   graphic.BackgroundMainSize(16);
//--- create curve
   graphic.CurveAdd(TriangularMembershipFunction1,0.0,10.0,0.1,CURVE_LINES,"[0, 2, 5]");
   graphic.CurveAdd(TriangularMembershipFunction2,0.0,10.0,0.1,CURVE_LINES,"[0, 5, 10]");
   graphic.CurveAdd(TriangularMembershipFunction3,0.0,10.0,0.1,CURVE_LINES,"[8, 8, 10]");
//--- sets the X-axis properties
   graphic.XAxis().AutoScale(false);
   graphic.XAxis().Min(0.0);
   graphic.XAxis().Max(10.0);
   graphic.XAxis().DefaultStep(1.0);
//--- sets the Y-axis properties
   graphic.YAxis().AutoScale(false);
   graphic.YAxis().Min(0.0);
   graphic.YAxis().Max(1.1);
   graphic.YAxis().DefaultStep(0.2);
//--- plot
   graphic.CurvePlotAll();
   graphic.Update();
  }