我的问题涉及应该相当简单的内容,但我无法使其正常工作。我的意思是,您可以计算x
和y
,然后使用plot
函数对它们进行绘制。但这可以使用curve
函数来完成吗?
我想绘制以下R
函数f2
:
n <- 1
m <- 2
f2 <- function(x) min(x^n, x^(-m))
但是此代码失败:
curve(f2, 0, 10)
有什么建议吗?
答案 0 :(得分:6)
您需要使用向量化的pmin
而不是min
(请看一下?pmin
来了解两者之间的区别)
f2 = function(x, n = 1, m = 2) {
pmin(x^n, x^(-m))
}
curve(f2, from = 0, to = 10)
顺便说一句,我将使用n
的{{1}}和m
参数来避免全局变量。
要为不同的参数f2
和f2
绘制n
,
m
答案 1 :(得分:2)
如前所述,对curve
的调用失败的主要原因是curve
需要向量化的函数(在这种情况下,输入结果的向量并得出结果的向量),而您的f2()函数仅输入和输出标量。您可以使用Vectorize
n <- 1
m <- 2
f2 <- function(x) min(x^n, x^(-m))
curve(Vectorize(f2)(x), 0, 10)
答案 2 :(得分:0)