Ваша функция f
не может работать с векторами для x
, поскольку условие (a <= x)
непросто оценить для вектора.
Давайте посмотрим на
x <- -6:6
f(a,b,c,x)
Ваша функция f
не понимает, что делать с x
при оценке
if (a <= x) { code }
, поэтому всегда используется первый элемент x
.
Итак, что делать?
x <- -6:6
f_2 <- function(x) { sapply(x, function(x) f(a,b,c,x)) }
curve(f_2, xlim=c(-6,6), ylim=c(0,20), col="blue", lwd=2, add=FALSE)
Мы определяем новую функцию f_2
. sapply
берет один элемент из x
и использует его вместе с f(a,b,c,x)
, чем использует следующий элемент et c. Эта функция работает с векторами x
в качестве входных данных.
Сравните это с
curve(f(a,b,c,x), xlim=c(-6,6), ylim=c(0,20), col="blue", lwd=2, add=FALSE)
для лучшего понимания.