График условного графика?
Я пытаюсь построить график двух функций, но я хочу построить график одной функции для условия, а график с использованием другой функции, если выполняется другое условие.
Простой пример будет:
если x> 0, то sin (x), иначе cos (x)
Затем он будет отображать cos и sin в зависимости от значения x, при x = 0 будет очевидный разрыв, так как cos(0) = 1 и sin(0) = 0.
1 ответ
РЕДАКТИРОВАТЬ: есть встроенный способ. Я оставлю свой исходный ответ ниже для потомков, но попробуйте использовать функцию piecewise ():
plot(piecewise(((cos(x),x<0), (sin(x), 0<x))))
Я предполагаю, что есть встроенный способ сделать это, но я этого не знаю. Вы можете умножить свои функции на функцию шага Хевисайда, чтобы выполнить эту задачу. Шаговая функция равна 1, если x > 0, и 0, если x < 0, поэтому, умножив это на ваши функции и затем суммируя их, вы выберете только одну из них на основе знака x, то есть:
f(x) := heaviside(x) * sin(x) + heaviside(-x) * cos(x)
Если x > 0, heavyiside(x) = 1 и heavyiside(-x) = 0, поэтому f(x) = sin(x).
Если x < 0, heavyiside(x) = 0 и heavyiside(-x) = 1, поэтому f(x) = cos(x).
Смотрите это в действии здесь. В общем, обратите внимание, что если вы хотите, чтобы переход был в точке x = a, то вы могли бы сделать heavyiside (xa) и heavyiside (-x+a) соответственно. Если вы хотите N функций, вам нужно будет (N-1) умножать пошаговые функции на каждый член, каждый со своим собственным аргументом (x-a_i). Я надеюсь, что кто-то еще может предложить более чистое решение.