piecewise

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

Описание

пример

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

пример

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 = 

{-1 если  x<01 если  0<x

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

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

Задайте следующую функцию символически.

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

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

{-1 если  x<01 если  0<x

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

y([-2 0 2])
ans = (-1NaN1)

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

Задайте кусочно-линейную функцию

y={-2x<-20-2<x<01otherwise.

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

{-2 if  x<-20 if  x(-2,0)1 otherwise

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

xvalues = linspace(-3,1,5)
xvalues = 1×5

    -3    -2    -1     0     1

yvalues = y(xvalues)
yvalues = (-21011)

Постройте следующее кусочное выражение при помощи 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 object. The axes object 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 = 

{-1x2 если  x<-1cos(x)x-sin(x)x2 если  -1<x

Интегрируйте y при помощи int.

inty = int(y,x)
inty = 

{log(x) if  x<-1sinint(x) если  -1x

Найдите пределы y в 0 при помощи limit.

limit(y,x,0)
ans = 1

Найдите право - и левосторонние пределы y в -1. Для получения дополнительной информации смотрите limit.

limit(y,x,-1,'right')
ans = sin(1)
limit(y,x,-1,'left')
ans = -1

Добавьте, вычтите, разделите и умножьте два кусочных выражения. Получившееся кусочное выражение только задано, где начальные кусочные выражения заданы.

syms x
pw1 = piecewise(x < -1,-1,x >= -1,1);
pw2 = piecewise(x < 0,-2,x >= 0,2);
add = pw1+pw2
add = 

{-3 если  x<-1-1 если  x[-1,0)3 если  0x

sub = pw1-pw2
sub = 

{1 если  x<-13 если  x[-1,0)-1 если  0x

mul = pw1*pw2
mul = 

{2 если  x<-1-2 если  x[-1,0)2 если  0x

div = pw1/pw2
div = 

{12 если  x<-1-12 если  x[-1,0)12 если  0x

Измените кусочное выражение, заменив часть выражения с помощью 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 = 

{-1 если  x<01 если  0<x

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

pw = piecewise(x > 5,1/x,pw)
pw = 

{1x если  5<x-1 если  x<01 если  0<x

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

свернуть все

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

Пример: x> 2

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

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

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

свернуть все

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

Советы

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

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

| | | | | | | |

Введенный в R2017b