CZ_ShapedMembershipFunction

А 및 B 매개변수를 사용하여 z와 같은 멤버십 함수를 구현하기 위한 클래스.  

설명

함수는 z와 같은 두 매개변수 멤버십 함수를 설정합니다. 1부터 0까지의 값을 갖는 비증가 멤버십 함수입니다. 함수 매개변수는 함수가 1에서 0까지 비선형 궤적으로 감소하는 간격을 정의합니다.

함수는 "매우 낮음" 유형의 퍼지 집합을 나타냅니다. 즉, 멤버십 함수가 증가하지 않도록 포화도로 설정합니다 .

fuzzy_z_function

샘플 코드(샘플 코드를 플롯팅하기 위한)가 아래에 표시됩니다.

선언

   class CZ_ShapedMembershipFuncion : public IMembershipFunction

제목

   #include <Math\Fuzzy\membershipfunction.mqh>

상속 계층

  CObject

      IMembershipFunction

          CZ_ShapedMembershipFunction

클래스 메서드

클래스 메서드  

설명

A

내림차 간격 시작의 매개변수를 가져오고 설정하기.

B

내림차 간격 끝의 매개변수를 가져오고 설정하기.

GetValue

지정한 인수를 기준으로 멤버 자격 함수의 값을 계산합니다.

클래스 CObject에서 상속된 메서드

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

//+------------------------------------------------------------------+
//|                                   Z_ShapedMembershipFunction.mq5 |
//|                         Copyright 2000-2024, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#include <Math\Fuzzy\membershipfunction.mqh>
#include <Graphics\Graphic.mqh>
//--- 멤버십 함수 생성
CZ_ShapedMembershipFunction func1(2,1);
CZ_ShapedMembershipFunction func2(2,5);
CZ_ShapedMembershipFunction func3(2,9);
//--- 멤버십 함수에 대한 래퍼 생성
double Z_ShapedMembershipFunction1(double x) { return(func1.GetValue(x)); }
double Z_ShapedMembershipFunction2(double x) { return(func2.GetValue(x)); }
double Z_ShapedMembershipFunction3(double x) { return(func3.GetValue(x)); }
//+------------------------------------------------------------------+
//| 스크립트 프로그램 시작 기능                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- 그래픽 생성
  CGraphic 그래픽;
   if(!graphic.Create(0,"Z_ShapedMembershipFunction",0,30,30,780,380))
     {
      graphic.Attach(0,"Z_ShapedMembershipFunction");
     }
   graphic.HistoryNameWidth(70);
   graphic.BackgroundMain("Z_ShapedMembershipFunction");
   graphic.BackgroundMainSize(16);
//--- 곡선 생성
   graphic.CurveAdd(Z_ShapedMembershipFunction1,0.0,10.0,0.1,CURVE_LINES,"[2, 1]");
   graphic.CurveAdd(Z_ShapedMembershipFunction2,0.0,10.0,0.1,CURVE_LINES,"[2, 5]");
   graphic.CurveAdd(Z_ShapedMembershipFunction3,0.0,10.0,0.1,CURVE_LINES,"[2, 9]");
//--- X 축 속성 설정
   graphic.XAxis().AutoScale(false);
   graphic.XAxis().Min(0.0);
   graphic.XAxis().Max(10.0);
   graphic.XAxis().DefaultStep(1.0);
//--- Y 축 속성 설정
   graphic.YAxis().AutoScale(false);
   graphic.YAxis().Min(0.0);
   graphic.YAxis().Max(1.1);
   graphic.YAxis().DefaultStep(0.2);
//--- 플롯
   graphic.CurvePlotAll();
   graphic.Update();
  }