科学的差异演化给出了nan值

问题描述

Im对期权价格进行建模,并对每个期权合约,使用Heston模型对基础资产的价格进行模拟。为了校准Heton参数,我正在尝试使用差分演化来优化成本函数

   def de(self):
        bounds = [(0,1),(0.01,15),1.),(-1,(0,1.0) ]
        differential_evolution(self.f_cost,bounds,args=(True,),maxiter=100)

每次我运行上面的代码时,它会为我提供五个参数的nan值,但是如果我删除args=(True,)它为我提供了真实的价值,但是我遇到了错误

    686         if np.all(np.isinf(self.population_energies)):
    687             self.population_energies[:] = self._calculate_population_energies(
--> 688                 self.population)
    689             self._promote_lowest_energy()
    690 

~\Anaconda3\lib\site-packages\scipy\optimize\_differentialevolution.py in _calculate_population_energies(self,population)
    792             # wrong number of arguments for _mapwrapper
    793             # or wrong length returned from the mapper
--> 794             raise RuntimeError("The map-like callable must be of the"
    795                                " form f(func,iterable),returning a sequence"
    796                                " of numbers the same length as 'iterable'")

RuntimeError: The map-like callable must be of the form f(func,returning a sequence of numbers the same length as 'iterable'

有人可以向我解释为什么会这样吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)