我认为您对“功能”的含义有点困惑。
函数中的所有运算 (+、-、^) 均已向量化,因此一切正常。
x <- seq(0.4,1.01,length=1000)
y <- seq(0,3,length=1000)
z <- outer(x,y,function(x,y) 1-0.125*y^2-x^2-0.005)
contour(x,y,z,levels=0,drawlabels=FALSE)
或者如果你想要一个小捷径:
library(emdbook)
curve3d(1-0.125*y^2-x^2-0.005,
xlim=c(0.4,1.01),
ylim=c(0,3),
n=c(100,100),
sys3d="contour",drawlabels=FALSE,levels=0)
这实际上比较慢,因为它使用了for
内部循环而不是outer()
,所以我将其设置为 100x100 而不是 1000x1000(无论如何,这对于这个示例来说是多余的),但它适用于无法轻松矢量化的更复杂的示例......