2026a

# dsigmf

两个 S 型隶属度函数的差值

函数库:TyFuzzyLogic

# 语法

y = dsigmf(x,params)

# 说明

该函数通过计算两个 S 型(sigmoidal)隶属度函数的差值来得到模糊隶属度值。你也可以使用 fismf 对象计算该隶属度函数,更多信息请参阅《fismf 对象》(fismf Object)。

此隶属度函数与 sigmf(单 S 型函数)和 psigmf(两个 S 型函数的乘积)隶属度函数相关。

y = dsigmf(x,params) 返回通过两个 S 型隶属度函数差值计算得到的模糊隶属度值。每个 S 型函数的表达式为:

需将 params 指定为向量 [a1 c1 a2 c2] 来定义隶属度函数的参数,其中:

函数会为 x 中的每个输入值计算对应的隶属度值。

# 示例

计算两个 S 型函数的差值

指定论域内的输入值。

using TyFuzzyLogic
using TyPlot
x = 0:0.1:10;

计算输入值对应的隶属度函数值。

y = dsigmf(x,[5 2 5 7]);

绘制隶属度函数曲线。

plot(x,y)
title("dsigmf, P = [5 2 5 7]")
xlabel("x")
ylabel("Degree of Membership")
ylim([-0.05 1.05])

# 输入参数

x - 输入值
标量 | 向量

需要计算隶属度值的输入值,指定为标量或向量。

params - 隶属度函数参数
长度为4的向量

隶属度函数参数,指定为向量 [a_{1} c_{1} a_{2} c_{2}]:

  • a_{1}、c_{1}:第一个 S 型函数的参数;
  • a_{2}、c_{2}:第二个 S 型函数的参数。

对于每个 S 型函数:

  • 指定 a 为负值:函数向左张开;
  • 指定 a 为正值:函数向右张开;
  • a 的绝对值:定义过渡区域的宽度;
  • 参数 c:定义过渡区域的中心位置。

若要定义最大值为 1 的单峰隶属度函数,需满足:a_{1} 和 a_{2} 符号相同;c_{1} 和 c_{2} 取值足够远,使两个过渡区域都能达到 1。

# 输出参数

y - 隶属度值
标量 | 向量

返回的隶属度值,为标量或向量,维度与 x 完全一致。y 的每个元素对应 x 中相应元素的隶属度计算结果。

# 另请参阅

fismf | fismftype2 | psigmf | sigmf | gaussmf | gauss2mf | trimf | pimf