exponenta event banner

fuzarith

Выполнение нечеткой арифметики

Описание

пример

C = fuzarith(X,A,B,operator) возвращает нечеткий набор C, что является результатом применения указанного нечеткого оператора к нечетким множествам A и B. Операция выполняется по всей вселенной дискурса X

Примеры

свернуть все

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

N = 501;
minX = -20;
maxX = 20;
x = linspace(minX,maxX,N);

A = trapmf(x,[-10 -2 1 3]);
B = gaussmf(x,[2 5]);

Оцените сумму, разницу, произведение и частное от A и B.

Csum = fuzarith(x,A,B,'sum');
Csub = fuzarith(x,A,B,'sub');
Cprod = fuzarith(x,A,B,'prod');
Cdiv = fuzarith(x,A,B,'div');

Постройте график результатов сложения и вычитания.

figure
subplot(2,1,1)
plot(x,A,'--',x,B,':',x,Csum,'c')
title('Fuzzy Addition, A+B')
legend('A','B','A+B')
subplot(2,1,2)
plot(x,A,'--',x,B,':',x,Csub,'c')
title('Fuzzy Subtraction, A-B')
legend('A','B','A-B')

Figure contains 2 axes. Axes 1 with title Fuzzy Addition, A+B contains 3 objects of type line. These objects represent A, B, A+B. Axes 2 with title Fuzzy Subtraction, A-B contains 3 objects of type line. These objects represent A, B, A-B.

Постройте график результатов умножения и деления.

figure
subplot(2,1,1)
plot(x,A,'--',x,B,':',x,Cprod,'c')
title('Fuzzy Multiplication, A*B')
legend('A','B','A*B')
subplot(2,1,2)
plot(x,A,'--',x,B,':',x,Cdiv,'c')
title('Fuzzy Division, A/B')
legend('A','B','A/B')

Figure contains 2 axes. Axes 1 with title Fuzzy Multiplication, A*B contains 3 objects of type line. These objects represent A, B, A*B. Axes 2 with title Fuzzy Division, A/B contains 3 objects of type line. These objects represent A, B, A/B.

Входные аргументы

свернуть все

Вселенная дискурса, указанная как вектор.

Входной нечеткий набор, заданный как вектор с той же длиной, что и X. Каждый элемент A - значение нечеткого набора для соответствующего значения X.

A должно быть выпуклым нечетким набором. Дополнительные сведения см. в разделе Алгоритмы.

Входной нечеткий набор, заданный как вектор с той же длиной, что и X. Каждый элемент B - значение нечеткого набора для соответствующего значения X.

B должно быть выпуклым нечетким набором. Дополнительные сведения см. в разделе Алгоритмы.

Арифметический оператор, указанный как один из следующих:

  • 'sum' - Нечеткое добавление

  • 'sub' - Нечеткое вычитание

  • 'prod' - Нечеткое умножение

  • 'div' - Нечеткое деление

Дополнительные сведения о нечетких арифметических операциях см. в разделе Алгоритмы.

Примечание

Нечеткое добавление может генерировать сообщение "divide by zero". Однако это предупреждение не влияет на точность fuzarith.

Выходные аргументы

свернуть все

Выходной нечеткий набор, возвращаемый как вектор столбца с длиной, равной длине X.

Алгоритмы

Для выполнения нечетких арифметических операций нечеткие операнды (входные нечеткие наборы A и B) должны быть выпуклыми нечеткими наборами. Нечеткое множество является выпуклым, если для каждой пары точек x1 и x2 во вселенной дискурса X и λ∈[0,1].

λ (λ x1 + (1 λ) x2) ≥min (λ (x1), λ (x2))

Α-срез нечеткого множества - это область во вселенной дискурса, для которой нечеткое множество имеет конкретное значение членства, α. Для выпуклого нечеткого множества каждый α-срез определяет непрерывную область во вселенной дискурса.

fuzarith использует непрерывные области, определяемые α-вырезами нечетких множеств A и B для вычисления соответствующего α-среза выходного нечеткого набора C. Для этого fuzarith использует интервальную арифметику.

В следующей таблице показано, как вычислить левую и правую границы выходного интервала. Здесь:

  • [AL AR] - интервал, определяемый α-вырезом нечеткого набора A.

  • [BL BR] - интервал, определяемый α-вырезом нечеткого набора B.

  • [CL CR] - интервал, определяемый α-вырезом нечеткого набора C.

Арифметический оператор интервалаОпределение
Добавление: C = A + B

CL = AL + BLCR = AR + BR

Вычитание: C = A-B

CL = AL BRCR = AR − BL

Умножение: C = A * B

CL=min (AL⋅BL, AL⋅BR, AR⋅BL, AR⋅BR) CR=max (AL⋅BL, AL⋅BR, AR⋅BL, AR⋅BR)

Подразделение: C = A/B

CL = min (ALBL, ALBR, ARBL, ARBR) CR = max (ALBL, ALBR, ARBL, ARBR)

Представлен до R2006a