Условно определенное выражение или функция
Задайте следующее кусочное выражение при помощи 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