кусочный

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

Синтаксис

pw = piecewise(cond1,val1,cond2,val2,...)
pw = piecewise(cond1,val1,cond2,val2,...,otherwiseVal)

Описание

пример

pw = piecewise(cond1,val1,cond2,val2,...) возвращает кусочное выражение или функциональный pw, значением которого является val1, когда условие, cond1 верен, 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<202<x<01в противном случае.

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)

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

На создании кусочное выражение применяет существующие предположения. Примените набор предположений после создания кусочного выражения при помощи 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)/xx1

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 не проверяет на наложение или конфликт условий. Вместо этого как, если еще лестничная структура, piecewise возвращает значение для первого истинного условия.

Измените условие 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

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

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

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

свернуть все

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

Советы

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

Смотрите также

| | | | | | | |

Введенный в R2017b