5

假设我想集成一些涉及其他一些用户定义函数的和和乘积的函数。让我们举一个非常简单的例子,它给出了同样的错误。

integrate(f = sin + cos, lower=0, upper=1)

这会产生“sin + cos 中的错误:二进制运算符的非数字参数”,我认为这是说将函数添加在一起而不传递某种参数是没有意义的。所以我有点卡在这里。这个线程提出了我认为是一个更复杂问题的解决方案,可以在这里应用,但在这种情况下,这样一个简单的任务似乎很长。我实际上有点惊讶我无法在帮助手册中找到将函数参数传递给函数,所以我认为我没有使用正确的术语。

4

1 回答 1

8

只需编写自己的函数:

> integrate(f = function(x) sin(x) + cos(x), lower=0, upper=1)
1.301169 with absolute error < 1.4e-14

在这个例子中,我使用了一个匿名函数,但这不是必需的。关键是编写一个函数来表示您想要集成的任何函数。在这种情况下,该函数应采用向量输入并添加每个元素的 sin 和 cos。

等效地,我们可以这样做:

foo <- function(x){
    sin(x) + cos(x)
}
integrate(f = foo, lower=0, upper=1)
于 2013-07-19T20:02:48.597 回答