CProductTwoSigmoidalMembershipFunction

멤버십 함수를 А1, А2, С1 및 С2 매개변수를 갖는 두 시그모이드 함수의 곱 형태로 구현하기 위한 클래스.  

설명

평활 비대칭 함수를 설정하기 위해 두 시그모이드 멤버십 함수의 곱을 적용합니다.  인수 값으로 시작하는 값이 1과 같은 멤버십 함수를 만들 수 있습니다. 이러한 기능은 "short" 또는 "long"과 같은 용어를 설정해야 할 경우 적합합니다.

fuzzy_prodsigmoidal_function

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

선언

   class CProductTwoSigmoidalMembershipFuncion : public IMembershipFunction

제목

   #include <Math\Fuzzy\membershipfunction.mqh>

상속 계층

  CObject

      IMembershipFunction

          CProductTwoSigmoidalMembershipFunctions

클래스 메서드

클래스 메서드  

설명

A1

첫 번째 멤버십 함수 기울기 비율을 가져오고 설정합니다.

A2

두 번째 멤버십 함수 기울기 비율을 가져와 설정하기.

C1

첫 번째 멤버십 함수 변곡 좌표 매개변수 가져오기.

C2

두 번째 멤버십 함수 변곡 좌표 매개변수 가져오기.

GetValue

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

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

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

//+------------------------------------------------------------------+
//|                       ProductTwoSigmoidalMembershipFunctions.mq5 |
//|                         Copyright 2000-2024, MetaQuotes Ltd. |
//|                                             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>
//--- 멤버십 함수 생성
CProductTwoSigmoidalMembershipFunctions func1(2,1,-1,7);
CProductTwoSigmoidalMembershipFunctions func2(2,2,-4,7);
CProductTwoSigmoidalMembershipFunctions func3(2,3,-8,7);
//--- 멤버십 함수에 대한 래퍼 생성
double ProductTwoSigmoidalMembershipFunctions1(double x) { return(func1.GetValue(x)); }
double ProductTwoSigmoidalMembershipFunctions2(double x) { return(func2.GetValue(x)); }
double ProductTwoSigmoidalMembershipFunctions3(double x) { return(func3.GetValue(x)); }
//+------------------------------------------------------------------+
//| 스크립트 프로그램 시작 기능                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- 그래픽 생성
  CGraphic 그래픽;
   if(!graphic.Create(0,"ProductTwoSigmoidalMembershipFunctions",0,30,30,780,380))
     {
      graphic.Attach(0,"ProductTwoSigmoidalMembershipFunctions");
     }
   graphic.HistoryNameWidth(70);
   graphic.BackgroundMain("ProductTwoSigmoidalMembershipFunctions");
   graphic.BackgroundMainSize(16);
//--- 곡선 생성
   graphic.CurveAdd(ProductTwoSigmoidalMembershipFunctions1,0.0,10.0,0.1,CURVE_LINES,"[2, 1, -1, 7]");
   graphic.CurveAdd(ProductTwoSigmoidalMembershipFunctions2,0.0,10.0,0.1,CURVE_LINES,"[2, 2, -4, 7]");
   graphic.CurveAdd(ProductTwoSigmoidalMembershipFunctions3,0.0,10.0,0.1,CURVE_LINES,"[2, 3, -8, 7]");
//--- 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();
  }