我刚刚开始在课堂上使用R,并且尝试绘制此函数:
首先,这是我的定义尝试。
> f<-function(x)
+ if(x<0) {
+ sin(x)
+ } else if (x>=2) {
+ 4*exp(x-2)
+ } else {
+ x^2 }
考虑到我得到的结果,我认为这是正确的:
> f(1)
[1] 1
> f(0)
[1] 0
> f(-1)
[1] -0.841471
> f(2)
[1] 4
> f(3)
[1] 10.87313
所以现在我要绘制它,但是我不确定哪个命令正确地执行了。我试过plot(f,x,y)是x&y,例如(-4,4)或(-2,3)的任何值,但是R给我警告消息。
最佳答案
1)尝试curve
并确保首先对其进行矢量化:
fv <- Vectorize(f)
curve(fv, -4, 4)
给(截图后续):
2)从一开始就以向量化方式替代定义
f
:g <- function(x) ifelse(x < 0, sin(x), ifelse(x >= 2, 4 * exp(x-2), x^2))
curve(g, -4, 4)
3)使用
fv
或g
也可以:x <- seq(-4, 4, .1)
plot(x, fv(x), type = "l")