优化错误:无法在初始参数处评估功能

jcf*_*rei 5 r nlm nonlinear-functions nonlinear-optimization

因此,我在R中遇到了这个奇怪的错误。我有一个简单的函数,当比较实际价格和模拟价格时会返回错误项hestondifferences()

当我尝试通过以下方式找到本地最小值时:

 res<-optim(fn=hestondifferences, par = c(vT=vT, rho=rho, k=k, sigma=sigma))
Run Code Online (Sandbox Code Playgroud)

我收到错误消息:

optim中的误差(fn = hestondifferences,par = c(vT = vT,rho = rho,k = k,:无法在初始参数处评估函数

令我感到困惑的是,直接使用初始参数调用该函数会hestondifferences(vT, rho, k, sigma)返回正确的值。

该函数hestondifferences()以某种方式编写:只要无法对某些参数集进行仿真,它将返回NAoptim()期望相符的结果。

jcf*_*rei 5

Optim期望函数只有一个参数。因此,所有其他参数都应在向量中传递。也就是说:该函数必须是hestondifferences(c(vT,rho,k,sigma)),而不是hestondifferences(vT,rho,k,sigma)。请参阅文档

fn:一个要最小化(或最大化)的函数,第一个参数是要进行最小化的参数向量。它应该返回一个标量结果。