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