[英]Using optim in R, how would I maximize a function of several variables given a few of them?
我有四个变量的函数,(c,l,t,a)
我只想在c和l上优化此函数,因为a和t是输入,并且在函数内部使用,有时用于索引和填充。 (这就是为什么我不能只接受一阶条件,设置为零等原因)。
有任何想法吗?
谢谢您的帮助。
编辑:
好的,所以我认为问题可能出在我使用优化方法的方式上。 我将尝试尝试重新构造我的q。
您具有四个参数的功能:
> foo=function(c,l,t,a){c+10*l+100*t+1000*a}
> foo(1,2,3,4)
[1] 4321
您只想优化两个以上的函数,因此可以创建一个包含两个参数的函数,并使用其他参数集来调用四参数函数:
> f2=function(c,l){foo(c,l,9,8)}
> f2(1,2)
[1] 8921
现在,无论您对foo
做什么,都f2
。
如果需要,可以创建一个函数生成的函数,该函数返回具有固定参数的函数,您可以执行以下操作:
> f3gen=function(t,a){force(t);force(a);function(c,l){foo(c,l,t,a)}}
然后,您可以像以前一样使用t创建一个两个参数的函数,并将其设置为8和9:
> f3=f3gen(8,9)
> f3(1,2)
[1] 9821
这给我们提供了一个将它们设置为8和6的函数:
> f3=f3gen(8,6)
> f3(1,2)
[1] 6821
现在,您得到的f3
的值为t
并进行a
包装和固定。
但是,我认为optim
总是使用单个参数向量作为参数,这意味着,由于您没有给我们提供可重复的示例,因此我浪费了时间向您解释。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.