我需要最小化下面显示的目标函数,绿框中的变量将被引入公式中,而红色方框中的变量需要优化,每个变量都有一个起始值。到目前为止,优化是不受约束的。我把公式放在这里不是为了等待代码,而是为了让响应对函数有一个概念。到目前为止,我已经完成了以下工作:我搜索了线程,在一个玩具函数上尝试了nlm命令:
fn =function(x,a) {sum(100*a+(2*x^2+5*x-7))}
nlm(fn , a<-c(10),x<- c(100), hessian=TRUE)但是我无法得到最优(a)的值,而且我怀疑公式中有一些错误,我使用这个公式作为处理下面公式的起点。我正在寻找的是,任何一个点,我可以指向适当的功能,在R,我将开始。

发布于 2013-07-24 22:18:18
通常,使用参数列表中的赋值运算符调用R函数会导致失败。这是一个<-与=不同的领域。我不认为这会奏效:
nlm(fn , a =c(10), x = c(100), hessian=TRUE) # and it didn't错误消息是信息丰富的,告诉您缺少参数p:
> fn =function(x,p) {sum(100*p[1]+(2*x^2+5*x-7))}
> nlm(fn , p=c(10),x = c(100), hessian=TRUE)
$minimum
[1] -4988507
$estimate
[1] -50090
$gradient
[1] 100
$hessian
[,1]
[1,] 0
$code
[1] 5
$iterations
[1] 6发布于 2016-01-27 23:07:11
实际上,我建议不要在函数中添加不需要优化的额外参数。如果您有复杂的参数名称,就更容易搞砸。
我会像这样扭曲你的职能:
fn = function(x,a) {sum(100*a+(2*x^2+5*x-7))}
f = function(x) {fn(x, 100)}
nlm(f, 10, hessian=TRUE)https://stackoverflow.com/questions/17845648
复制相似问题