_sda.py 文件源码

python
阅读 27 收藏 0 点赞 0 评论 0

项目:sdaopt 作者: sgubianpm 项目源码 文件源码
def gradient(self, x):
        g = np.zeros(x.size, np.float64)
        for i in range(x.size):
            x1 = np.array(x)
            x2 = np.array(x)
            respl = self.reps
            respr = self.reps
            x1[i] = x[i] + respr
            if x1[i] > self.upper[i]:
                x1[i] = self.upper[i]
                respr = x1[i] - x[i]
            x2[i] = x[i] - respl
            if x2[i] < self.lower[i]:
                x2[i] = self.lower[i]
                respl = x[i] - x2[i]
            f1 = self.func_wrapper(x1)
            f2 = self.func_wrapper(x2)
            g[i] = ((f1 - f2)) / (respl + respr)
        idx = np.logical_or(np.isnan(g), np.isinf(g))
        g[idx] = 101.0
        return g
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号