Условно определенное выражение или функция
Задайте следующее кусочное выражение при помощи piecewise
.
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]
Задайте следующую функцию символически.
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]
Установите значение кусочно-линейной функции, когда нет условия true (вызываемое в противном случае значение), задав дополнительный входной параметр. Если дополнительный аргумент не задан, по умолчанию в противном случае значение функции NaN
.
Задайте кусочно-линейную функцию
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
.
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
.
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)
piecewise
не проверяет на перекрывающиеся или конфликтующие условия. Кусочное выражение возвращает значение первого истинного условия и игнорирует любые следующие истинные выражения. Таким образом, piecewise
имитирует лестницу if-else.
and
| assume
| assumeAlso
| assumptions
| if
| in
| isAlways
| not
| or