【发布时间】:2017-10-04 18:32:33
【问题描述】:
由于 R 中的 optim(),我正在运行以下代码以最小化函数,但我收到以下消息:“缺少参数“h”,没有默认值”。
我检查了以前的消息,据说括号前通常是逗号,但在我的代码中似乎不是这样。
您能帮我理解该怎么做吗?非常感谢。
代码如下:
A<-function(t,k,h,s){
out<-exp((h-(s*s/(2*k*k)))*(B(t,k)-t)-(s*s/(4*k))*(B(t,k)^2))
return(out)
}
B<-function(t, k){
out<-(1-exp(-k*t))/k
return(out)
}
P<-function(a, b, r){
out<-a*exp(-b*r)
return(out)
}
somme<-function(k,h,s){
out<-(P(A(1,k,h,s), B(1,k), -0.002)-1.0021)^2+(P(A(2,k,h,s), B(2,k), -0.0016)-1.0036)^2+(P(A(3,k,h,s), B(3,k), -0.001)-1.0038)^2+(P(A(4,k,h,s), B(4,k), -0.0002)-1.002)^2+(P(A(5,k,h,s), B(5,k), 0.00077)-0.9976)^2+(P(A(6,k,h,s), B(6,k), 0.0019)-0.9901)^2+(P(A(7,k,h,s), B(7,k), 0.0031)-0.9796)^2+(P(A(8,k,h,s), B(8,k), 0.0044)-0.9655)^2+(P(A(9,k,h,s), B(9,k), 0.0056)-0.9494)^2+(P(A(10,k,h,s), B(10,k), 0.0067)-0.9317)^2
return(out)
}
init<-c(k=0,h=0,s=0)
result<-optim(par=init, fn=somme)
result
【问题讨论】:
标签: r optimization