【发布时间】:2014-06-12 01:56:11
【问题描述】:
我有一个函数列表,我想将它们添加到一个“大”函数中。示例:
funlist=list()
funlist[[1]]=exp(x1)
funlist[[2]]=sin(x2)
期望的结果:
bigfun = exp(x1) + sin(x2)
我知道数字情况可以使用reduce("+", list),但上述非数字情况呢?
请注意:我正在寻找一个通用的自动化解决方案,即函数列表可能会有所不同(函数本身和列表长度/函数数量),但列表的所有函数必须添加到一个最终术语到底。每个函数都应该有自己的必须提供的值(例如,x1 到 funlist[[1]],x2 到 funlist[[2]] 等)。
重要提示:然后将 bigfun 项传递给优化器 (optim) 以找到每个函数的最佳值,从而最大化所有函数的结果。
编辑: 为简单起见,我选择了函数 exp(x1) 和 sin(x2)。这些函数本身就是函数包装器,例如 function(x) {y1*x + y2*x^2 + y3*x^3} ,其中 y1, y2, y3 之前已经计算过。
【问题讨论】:
-
f <- function(x) sin(x) + exp(x)然后例如f(0.5). -
感谢您的发帖,但不幸的是,这不是一个可应用于各种功能的通用解决方案(我进一步编辑了我的文字以使其更清晰)。
-
是的,我看到了。在这种情况下,Bens 解决方案似乎适合我。希望这是你要找的。好问题顺便说一句。 +1。
-
谢谢西蒙。 Ben 的想法朝着正确的方向发展,但还不是我想要的。
-
请贴出优化问题。