0

我试图找出以下函数的参数: $$ \log L(\alpha,\beta,v) = v/\beta(e^{-\beta T} -1) + \alpha/\beta \sum_{i=1}^{n}(e^{-\beta(T-t_i)} -1) + \sum_{i=1}^{N}log(ve^{-\beta t_i} + \alpha \sum_{j=1}^{jmax(t_i)} e^{-\beta(t_i - t_j)})。$$

然而,像 fmin、fminsearch 这样的传统方法不能正确收敛。关于我可以使用的任何其他方法或开放库的任何建议?

我正在尝试 CVXPY,但它们不支持表达式中的变量除法。

4

1 回答 1

0

问题可能不是凸的(我尚未对此进行验证,但这可能是 CVXPY 拒绝它的原因)。我们没有数据,所以我们无法尝试,但我可以给出一些一般性建议:

  1. 提供精确的梯度(如果需要,还提供二阶导数)或使用具有自动微分功能的建模系统。尤其是一阶导数最好是相当精确的。使用有限差分,您可能会损失一半的精度。
  2. 提供一个好的起点。可能正在使用另一种估计方法。
  3. 一些求解器可以使用变量的界限来限制将评估函数的可行区域。这可用于将搜索限制在感兴趣的区域,也可用于保护除法和日志功能等操作。
于 2016-04-29T09:13:22.777 回答