防止化学优化从求负整数的gamma函数开始的例程

2024-06-16 13:09:04 发布

您现在位置:Python中文网/ 问答频道 /正文

发行日期:

防止scipy-brute优化例程(或任何opt例程)计算带有负整数的函数。我尝试优化的整个函数使用了一个gamma函数,它对于负整数是未定义的。在

背景:

我利用scipy的各种优化例程(包括brute和fmin)来优化我编写的包含gamma函数的函数。在

import scipy.optimize as sopt
param = [a, b, c]
param = sopt.brute(function_I_wrote, ((-2.0, 2.0, 0.25), (0.00, 0.25, 0.05),
                (0, 4, 0.2)),finish=None)

gamma函数使用第一个参数和您看到的值范围(-2.0,2.0,0.25)。我遇到的问题是,每当它以负整数计算函数时,例程就会被终止,因为它没有为gamma定义(负整数). 在

问题在于:

^{pr2}$

为了欺骗它,我把所有的东西都移了0.1,这样增量是(-2.1,1.9,0.25),所以现在估计它不会落在一个负整数(或零)上。在

是否有更正式的方法来指定优化例程必须避免第一个参数的负整数?我希望它在~-2和~2之间计算,而不是在负整数上求值。在


Tags: 函数import利用参数param整数scipy例程