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
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')

Входные параметры

свернуть все

Вселенная беседы, заданной как вектор.

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

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

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

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

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

  • 'sum' — Нечеткое сложение

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

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

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

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

Примечание

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

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

свернуть все

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

Алгоритмы

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

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

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

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

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

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

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

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

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

CL=AL+BLCR=AR+BR

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

CL=ALBRCR=ARBL

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

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

Деление: C = A/B

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

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

Для просмотра документации необходимо авторизоваться на сайте