exponenta event banner

кусочный

Условно определенное выражение или функция

Описание

пример

pw = piecewise(cond1,val1,cond2,val2,...) возвращает кусочное выражение или функцию pw значение которого - val1 когда состояние cond1 true, is val2 когда cond2 это правда и так далее. Если условие не является истинным, значение pw является NaN.

пример

pw = piecewise(cond1,val1,cond2,val2,...,otherwiseVal) возвращает кусочное выражение или функцию pw которое имеет значение otherwiseVal если условие не соответствует действительности.

Примеры

Определение и вычисление кусочного выражения

Определите следующее кусочное выражение с помощью piecewise.

y = {1x < 01x > 0

syms x
y = piecewise(x<0, -1, x>0, 1)
y =
piecewise(x < 0, -1, 0 < x, 1)

Оценить y в -2, 0, и 2 с помощью subs заменить x. Поскольку y не определен в x = 0, значение равно NaN.

subs(y, x, [-2 0 2])
ans =
[ -1, NaN, 1]

Определение кусочной функции

Определите следующую функцию символически.

y (x) = {1x < 01x > 0

syms y(x)
y(x) = piecewise(x<0, -1, x>0, 1)
y(x) =
piecewise(x < 0, -1, 0 < x, 1)

Поскольку y(x) является символической функцией, ее можно непосредственно вычислить для значений x. Оценить y(x) в -2, 0, и 2. Поскольку y(x) не определен в x = 0, значение равно NaN. Дополнительные сведения см. в разделе Создание символьных функций.

y([-2 0 2])
ans =
[ -1, NaN, 1]

Установка значения при отсутствии условий

Задайте значение кусочной функции, если условие не является истинным (иначе называется значением), указав дополнительный входной аргумент. Если дополнительный аргумент не указан, значение функции по умолчанию в противном случае равно NaN.

Определение кусочной функции

y (x) = {2x < 20 − 2 < x < 01otherways.

syms y(x)
y(x) = piecewise(x<-2, -2, -2<x<0, 0, 1)
y(x) =
piecewise(x < -2, -2, x in Dom::Interval(-2, 0), 0, 1)

Оценить y(x) между -3 и 1 путем генерации значений x использование linspace. В -2 и 0, y(x) вычисляется как 1 потому что другие условия не соответствуют действительности.

xvalues = linspace(-3,1,5)
yvalues = y(xvalues)
xvalues =
    -3    -2    -1     0     1
yvalues =
[ -2, 1, 0, 1, 1]

Печать кусочного выражения

Постройте график следующего кусочного выражения с помощью fplot.

y = {-2x < -2x-2 < x < 22x > 2.

syms x
y = piecewise(x<-2, -2, -2<x<2, x, x>2, 2);
fplot(y)

Figure contains an axes. The axes contains an object of type functionline.

Допущения и кусочные выражения

При создании кусочное выражение применяет существующие допущения. Применение набора допущений после создания кусочного выражения с помощью simplify на выражении.

Принять x > 0. Затем определите кусочное выражение с тем же условием x > 0. piecewise автоматически применяет допущение для упрощения условия.

syms x
assume(x > 0)
pw = piecewise(x<0, -1, x>0, 1)
pw =
1

Очистить предположение на x для дальнейших вычислений.

assume(x,'clear')

Создание кусочного выражения pw с условием x > 0. Затем установить предположение, что x > 0. Применить предположение к pw с помощью simplify.

pw = piecewise(x<0, -1, x>0, 1);
assume(x > 0)
pw = simplify(pw)
pw =
1

Очистить предположение на x для дальнейших вычислений.

assume(x, 'clear')

Дифференцировать, интегрировать и находить пределы кусочного выражения

Дифференцировать, интегрировать и находить пределы кусочного выражения с помощью diff, int, и limit соответственно.

Дифференцировать следующее кусочное выражение с помощью diff.

y = {1/xx < − 1sin (x )/ xx≥−1

syms x
y = piecewise(x<-1, 1/x, x>=-1, sin(x)/x);
diffy = diff(y, x)
diffy =
piecewise(x < -1, -1/x^2, -1 < x, cos(x)/x - sin(x)/x^2)

Объединяться y с помощью int.

inty = int(y, x)
inty =
piecewise(x < -1, log(x), -1 <= x, sinint(x))

Найти пределы y в 0 и -1 с помощью limit. Поскольку limit находит двусторонний предел, кусочное выражение должно быть определено с обеих сторон. Можно также найти правый или левый предел. Для получения более подробной информации см. limit.

limit(y, x, 0)
limit(y, x, -1)
ans =
1
ans =
limit(piecewise(x < -1, 1/x, -1 < x, sin(x)/x), x, -1)

Потому что два условия соответствуют -1, пределы с обеих сторон различаются и limit не удается найти двусторонний предел.

Элементарные операции с кусочными выражениями

Сложение, вычитание, деление и умножение двух кусочных выражений. Результирующее кусочное выражение определяется только там, где определены начальные кусочные выражения.

syms x
pw1 = piecewise(x<-1, -1, x>=-1, 1);
pw2 = piecewise(x<0, -2, x>=0, 2);
add = pw1 + pw2
sub = pw1 - pw2
mul = pw1 * pw2
div = pw1 / pw2
add =
piecewise(x < -1, -3, x in Dom::Interval([-1], 0), -1, 0 <= x, 3)
sub =
piecewise(x < -1, 1, x in Dom::Interval([-1], 0), 3, 0 <= x, -1)
mul =
piecewise(x < -1, 2, x in Dom::Interval([-1], 0), -2, 0 <= x, 2)
div =
piecewise(x < -1, 1/2, x in Dom::Interval([-1], 0), -1/2, 0 <= x, 1/2)

Изменение или расширение кусочного выражения

Изменение кусочного выражения путем замены части выражения с помощью subs. Расширение кусочного выражения путем указания выражения в качестве другого значения нового кусочного выражения. Это действие объединяет два кусочных выражения. piecewise не проверяет наличие перекрывающихся или конфликтующих условий. Вместо этого, как лестница if-else, piecewise возвращает значение для первого условия true.

Изменение условия x<2 в кусочном выражении к x<0 с помощью subs.

syms x
pw = piecewise(x<2, -1, x>0, 1);
pw = subs(pw, x<2, x<0)
pw =
piecewise(x < 0, -1, 0 < x, 1)

Добавить условие x>5 со значением 1/x кому pw путем создания нового кусочного выражения с помощью pw в качестве другого значения.

pw = piecewise(x>5, 1/x, pw)
pw =
piecewise(5 < x, 1/x, x < 0, -1, 0 < x, 1)

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

свернуть все

Условие, указанное как символическое условие или переменная. Символьная переменная представляет неизвестное условие.

Пример: x > 2

Значение, если условие выполнено, задано как число, вектор, матрица или многомерный массив или как символическое число, переменная, вектор, матрица, многомерный массив, функция или выражение.

Значение, если нет условий true, задается как число, вектор, матрица или многомерный массив, или как символическое число, переменная, вектор, матрица, многомерный массив, функция или выражение. Если otherwiseVal не указан, его значение: NaN.

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

свернуть все

Кусочное выражение или функция, возвращаемое как символическое выражение или функция. Значение pw - значение val первого условия cond это правда. Чтобы найти значение pw, использовать subs для замены переменных в pw.

Совет

  • piecewise не проверяет наличие перекрывающихся или конфликтующих условий. Кусочное выражение возвращает значение первого условия true и игнорирует любые последующие выражения true. Таким образом, piecewise имитирует лестницу if-else.

См. также

| | | | | | | |

Представлен в R2016b