CP_ShapedMembershipFunction
通过А,B,С和D参数实施pi型归属函数的类。
描述
pi型归属函数具有曲线梯形的形式。该函数用于通过从悲观到乐观模糊数评估的顺利过渡设置不对称归属函数。
绘制图表的示例代码显示如下。
声明
class CP_ShapedMembershipFuncion : public IMembershipFunction主题
#include <Math\Fuzzy\membershipfunction.mqh>| 继承体系 CObject IMembershipFunction CP_ShapedMembershipFunction |
类方法
| 类方法 | 描述 |
|---|---|
| A | 获取和设置模糊集的起始参数。 |
| B | 获取和设置模糊集核心的第一参数。 |
| C | 获取和设置模糊集核心的第二参数。 |
| D | 获取和设置模糊集的结束参数。 |
| GetValue | 通过指定自变数计算归属函数值。 |
| 方法继承自类 CObject Prev, Prev, Next, Next, Save, Load, Type, Compare |
示例
//+------------------------------------------------------------------+
//| P_ShapedMembershipFunction.mq5 |
//| Copyright 2016, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#include <Math\Fuzzy\membershipfunction.mqh>
#include <Graphics\Graphic.mqh>
//--- 创建归属函数
CP_ShapedMembershipFunction func1(0,0.5,3,9);
CP_ShapedMembershipFunction func2(0,4,5.5,9);
CP_ShapedMembershipFunction func3(0,6,7,9);
//--- 创建归属函数包装程序
double P_ShapedMembershipFunction1(double x) { return(func1.GetValue(x)); }
double P_ShapedMembershipFunction2(double x) { return(func2.GetValue(x)); }
double P_ShapedMembershipFunction3(double x) { return(func3.GetValue(x)); }
//+------------------------------------------------------------------+
//| 脚本程序起始函数 |
//+------------------------------------------------------------------+
void OnStart()
{
//--- 创建图形
CGraphic graphic;
if(!graphic.Create(0,"P_ShapedMembershipFunction",0,30,30,780,380))
{
graphic.Attach(0,"P_ShapedMembershipFunction");
}
graphic.HistoryNameWidth(70);
graphic.BackgroundMain("P_ShapedMembershipFunction");
graphic.BackgroundMainSize(16);
//--- 创建曲线
graphic.CurveAdd(P_ShapedMembershipFunction1,0.0,10.0,0.1,CURVE_LINES,"[0, 0.5, 3, 9]");
graphic.CurveAdd(P_ShapedMembershipFunction2,0.0,10.0,0.1,CURVE_LINES,"[0, 4, 5.5, 9]");
graphic.CurveAdd(P_ShapedMembershipFunction3,0.0,10.0,0.1,CURVE_LINES,"[0, 6, 7, 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();
}