我复制了您的示例并尝试了一下。看起来,如果您坚持使用BFGS求解器,则经过几次迭代后,
mu+ alpha *r它将具有一些负数,这就是获取RuntimeWarning的方式。
我能想到的最简单的解决方法是切换到Nelder Mead解算器。
res = minimize(loglikelihood, (0.01, 0.1,0.1), method = 'Nelder-Mead',args = (atimes,))
它将给您以下结果:
28.3136498357 status: 0 nfev: 159 success: True fun: 27.982451280648817 x: array([ 0.01410906, 0.68346023, 0.90837568]) message: 'Optimization terminated successfully.' nit: 92



