繁体   English   中英

在R中使用optim,在给定几个变量的情况下,我将如何使其最大化?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM