当前位置: 首页>>代码示例>>Python>>正文


Python optimize.fmin_slsqp方法代码示例

本文整理汇总了Python中scipy.optimize.fmin_slsqp方法的典型用法代码示例。如果您正苦于以下问题:Python optimize.fmin_slsqp方法的具体用法?Python optimize.fmin_slsqp怎么用?Python optimize.fmin_slsqp使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在scipy.optimize的用法示例。


在下文中一共展示了optimize.fmin_slsqp方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: portfolio_optimization

# 需要导入模块: from scipy import optimize [as 别名]
# 或者: from scipy.optimize import fmin_slsqp [as 别名]
def portfolio_optimization(weights, nav_table, opt_type, multiplier, rebalance=False, lb=0., ub=1.):
    if not rebalance and opt_type == OptTarget.SORTINO:
        raise ValueError("Portfolio optimization target can't be set as "
                         "maximize sortino ratio")

    if opt_type == OptTarget.SORTINO or \
                    opt_type == OptTarget.RETURN or \
                    opt_type == OptTarget.VOL or \
                    opt_type == OptTarget.SHARP or \
            (rebalance and opt_type == OptTarget.SORTINO):
        x0 = weights

        bounds = [(lb, ub) for _ in weights]

        def eq_cond(x, *args):
            return sum(x) - 1.0

        def func(weights):
            returns = portfolio_returns(weights, nav_table, rebalance)
            return -utility_calculator(returns, opt_type, multiplier)

        out, fx, its, imode, smode = opt.fmin_slsqp(func=func,
                                                    x0=x0,
                                                    bounds=bounds,
                                                    eqcons=[eq_cond],
                                                    full_output=True,
                                                    iprint=-1,
                                                    acc=1e-12,
                                                    iter=300000)

        out = {col: weight for col, weight in zip(nav_table.columns, out)}
        return pd.DataFrame(out, index=['weight']), fx, its, imode, smode 
开发者ID:alpha-miner,项目名称:Finance-Python,代码行数:34,代码来源:Optimizer.py

示例2: test_unbounded_given

# 需要导入模块: from scipy import optimize [as 别名]
# 或者: from scipy.optimize import fmin_slsqp [as 别名]
def test_unbounded_given(self):
        """ SLSQP: unbounded, given jacobian. """
        res = fmin_slsqp(self.fun, [-1.0, 1.0], args=(-1.0, ),
                         fprime = self.jac, iprint = 0,
                         full_output = 1)
        x, fx, its, imode, smode = res
        assert_(imode == 0, imode)
        assert_array_almost_equal(x, [2, 1]) 
开发者ID:ktraunmueller,项目名称:Computable,代码行数:10,代码来源:test_slsqp.py

示例3: test_unbounded_approximated

# 需要导入模块: from scipy import optimize [as 别名]
# 或者: from scipy.optimize import fmin_slsqp [as 别名]
def test_unbounded_approximated(self):
        """ SLSQP: unbounded, approximated jacobian. """
        res = fmin_slsqp(self.fun, [-1.0, 1.0], args=(-1.0, ),
                         iprint = 0, full_output = 1)
        x, fx, its, imode, smode = res
        assert_(imode == 0, imode)
        assert_array_almost_equal(x, [2, 1]) 
开发者ID:ktraunmueller,项目名称:Computable,代码行数:9,代码来源:test_slsqp.py

示例4: test_equality_approximated

# 需要导入模块: from scipy import optimize [as 别名]
# 或者: from scipy.optimize import fmin_slsqp [as 别名]
def test_equality_approximated(self):
        """ SLSQP: equality constraint, approximated jacobian. """
        res = fmin_slsqp(self.fun,[-1.0,1.0], args=(-1.0,),
                         eqcons = [self.f_eqcon],
                         iprint = 0, full_output = 1)
        x, fx, its, imode, smode = res
        assert_(imode == 0, imode)
        assert_array_almost_equal(x, [1, 1]) 
开发者ID:ktraunmueller,项目名称:Computable,代码行数:10,代码来源:test_slsqp.py

示例5: test_equality_given

# 需要导入模块: from scipy import optimize [as 别名]
# 或者: from scipy.optimize import fmin_slsqp [as 别名]
def test_equality_given(self):
        """ SLSQP: equality constraint, given jacobian. """
        res = fmin_slsqp(self.fun, [-1.0, 1.0],
                         fprime=self.jac, args=(-1.0,),
                         eqcons = [self.f_eqcon], iprint = 0,
                         full_output = 1)
        x, fx, its, imode, smode = res
        assert_(imode == 0, imode)
        assert_array_almost_equal(x, [1, 1]) 
开发者ID:ktraunmueller,项目名称:Computable,代码行数:11,代码来源:test_slsqp.py

示例6: test_equality_given2

# 需要导入模块: from scipy import optimize [as 别名]
# 或者: from scipy.optimize import fmin_slsqp [as 别名]
def test_equality_given2(self):
        """ SLSQP: equality constraint, given jacobian for fun and const. """
        res = fmin_slsqp(self.fun, [-1.0, 1.0],
                         fprime=self.jac, args=(-1.0,),
                         f_eqcons = self.f_eqcon,
                         fprime_eqcons = self.fprime_eqcon,
                         iprint = 0,
                         full_output = 1)
        x, fx, its, imode, smode = res
        assert_(imode == 0, imode)
        assert_array_almost_equal(x, [1, 1]) 
开发者ID:ktraunmueller,项目名称:Computable,代码行数:13,代码来源:test_slsqp.py

示例7: test_bound_equality_given2

# 需要导入模块: from scipy import optimize [as 别名]
# 或者: from scipy.optimize import fmin_slsqp [as 别名]
def test_bound_equality_given2(self):
        """ SLSQP: bounds, eq. const., given jac. for fun. and const. """
        res = fmin_slsqp(self.fun, [-1.0, 1.0],
                         fprime=self.jac, args=(-1.0, ),
                         bounds = [(-0.8, 1.), (-1, 0.8)],
                         f_eqcons = self.f_eqcon,
                         fprime_eqcons = self.fprime_eqcon,
                         iprint = 0, full_output = 1)
        x, fx, its, imode, smode = res
        assert_(imode == 0, imode)
        assert_array_almost_equal(x, [0.8, 0.8], decimal=3) 
开发者ID:ktraunmueller,项目名称:Computable,代码行数:13,代码来源:test_slsqp.py

示例8: test_scalar_constraints

# 需要导入模块: from scipy import optimize [as 别名]
# 或者: from scipy.optimize import fmin_slsqp [as 别名]
def test_scalar_constraints(self):
        """ Ticket #1657 """
        x = fmin_slsqp(lambda z: z**2, [3.],
                       ieqcons=[lambda z: z[0] - 1],
                       iprint=0)
        assert_array_almost_equal(x, [1.])

        x = fmin_slsqp(lambda z: z**2, [3.],
                       f_ieqcons=lambda z: [z[0] - 1],
                       iprint=0)
        assert_array_almost_equal(x, [1.]) 
开发者ID:ktraunmueller,项目名称:Computable,代码行数:13,代码来源:test_slsqp.py

示例9: test_integer_bounds

# 需要导入模块: from scipy import optimize [as 别名]
# 或者: from scipy.optimize import fmin_slsqp [as 别名]
def test_integer_bounds(self):
        # this should not raise an exception
        fmin_slsqp(lambda z: z**2 - 1, [0], bounds=[[0, 1]], iprint=0) 
开发者ID:ktraunmueller,项目名称:Computable,代码行数:5,代码来源:test_slsqp.py

示例10: get_policies_time1

# 需要导入模块: from scipy import optimize [as 别名]
# 或者: from scipy.optimize import fmin_slsqp [as 别名]
def get_policies_time1(self,x,s,Vf):
        '''
        Finds the optimal policies
        '''
        Para,beta,Theta,G,S,Pi = self.Para,self.beta,self.Theta,self.G,self.S,self.Pi
        U,Uc,Un = Para.U,Para.Uc,Para.Un

        def objf(z):
            c,n,xprime = z[0],z[1],z[2:]
            Vprime = np.empty(S)
            for sprime in range(S):
                Vprime[sprime] = Vf[sprime](xprime[sprime])

            return -(U(c,n)+beta*Pi[s].dot(Vprime))

        def cons(z):
            c,n,xprime = z[0],z[1],z[2:]
            return np.hstack([
            x - Uc(c,n)*c-Un(c,n)*n - beta*Pi[s].dot(xprime),
            (Theta*n - c - G)[s]
            ])


        out,fx,_,imode,smode = fmin_slsqp(objf,self.z0[x,s],f_eqcons=cons,
                            bounds=[(0.,100),(0.,100)]+[self.xbar]*S,full_output=True,iprint=0)

        if imode >0:
            raise Exception(smode)

        self.z0[x,s] = out
        return np.hstack([-fx,out]) 
开发者ID:QuantEcon,项目名称:QuantEcon.lectures.code,代码行数:33,代码来源:lucas_stokey.py

示例11: get_policies_time0

# 需要导入模块: from scipy import optimize [as 别名]
# 或者: from scipy.optimize import fmin_slsqp [as 别名]
def get_policies_time0(self,B_,s0,Vf):
        '''
        Finds the optimal policies
        '''
        Para,beta,Theta,G,S,Pi = self.Para,self.beta,self.Theta,self.G,self.S,self.Pi
        U,Uc,Un = Para.U,Para.Uc,Para.Un

        def objf(z):
            c,n,xprime = z[0],z[1],z[2:]
            Vprime = np.empty(S)
            for sprime in range(S):
                Vprime[sprime] = Vf[sprime](xprime[sprime])

            return -(U(c,n)+beta*Pi[s0].dot(Vprime))

        def cons(z):
            c,n,xprime = z[0],z[1],z[2:]
            return np.hstack([
            -Uc(c,n)*(c-B_)-Un(c,n)*n - beta*Pi[s0].dot(xprime),
            (Theta*n - c - G)[s0]
            ])


        out,fx,_,imode,smode = fmin_slsqp(objf,self.zFB[s0],f_eqcons=cons,
                            bounds=[(0.,100),(0.,100)]+[self.xbar]*S,full_output=True,iprint=0)

        if imode >0:
            raise Exception(smode)

        return np.hstack([-fx,out]) 
开发者ID:QuantEcon,项目名称:QuantEcon.lectures.code,代码行数:32,代码来源:lucas_stokey.py

示例12: get_policies_time1

# 需要导入模块: from scipy import optimize [as 别名]
# 或者: from scipy.optimize import fmin_slsqp [as 别名]
def get_policies_time1(self, x, s, Vf):
        '''
        Finds the optimal policies
        '''
        model, β, Θ, = self.model, self.β, self.Θ,
        G, S, π = self.G, self.S, self.π
        U, Uc, Un = model.U, model.Uc, model.Un

        def objf(z):
            c, n, xprime = z[0], z[1], z[2:]
            Vprime = np.empty(S)
            for sprime in range(S):
                Vprime[sprime] = Vf[sprime](xprime[sprime])

            return -(U(c, n) + β * π[s] @ Vprime)

        def cons(z):
            c, n, xprime = z[0], z[1], z[2:]
            return np.hstack([x - Uc(c, n) * c - Un(c, n) * n - β * π[s] @ xprime,
                              (Θ * n - c - G)[s]])

        out, fx, _, imode, smode = fmin_slsqp(objf, 
                                              self.z0[x, s], 
                                              f_eqcons=cons,
                                              bounds=[(0, 100), (0, 100)] +
                                              [self.xbar] * S,
                                              full_output=True, 
                                              iprint=0, 
                                              acc=1e-10)

        if imode > 0:
            raise Exception(smode)

        self.z0[x, s] = out
        return np.hstack([-fx, out]) 
开发者ID:QuantEcon,项目名称:QuantEcon.lectures.code,代码行数:37,代码来源:recursive_allocation.py

示例13: get_policies_time0

# 需要导入模块: from scipy import optimize [as 别名]
# 或者: from scipy.optimize import fmin_slsqp [as 别名]
def get_policies_time0(self, B_, s0, Vf):
        '''
        Finds the optimal policies
        '''
        model, β, Θ, = self.model, self.β, self.Θ,
        G, S, π = self.G, self.S, self.π
        U, Uc, Un = model.U, model.Uc, model.Un

        def objf(z):
            c, n, xprime = z[0], z[1], z[2:]
            Vprime = np.empty(S)
            for sprime in range(S):
                Vprime[sprime] = Vf[sprime](xprime[sprime])

            return -(U(c, n) + β * π[s0] @ Vprime)

        def cons(z):
            c, n, xprime = z[0], z[1], z[2:]
            return np.hstack([-Uc(c, n) * (c - B_) - Un(c, n) * n - β * π[s0] @ xprime,
                              (Θ * n - c - G)[s0]])

        out, fx, _, imode, smode = fmin_slsqp(objf, self.zFB[s0], f_eqcons=cons,
                                              bounds=[(0, 100), (0, 100)] +
                                              [self.xbar] * S,
                                              full_output=True, iprint=0, acc=1e-10)

        if imode > 0:
            raise Exception(smode)

        return np.hstack([-fx, out]) 
开发者ID:QuantEcon,项目名称:QuantEcon.lectures.code,代码行数:32,代码来源:recursive_allocation.py

示例14: get_policies_time1

# 需要导入模块: from scipy import optimize [as 别名]
# 或者: from scipy.optimize import fmin_slsqp [as 别名]
def get_policies_time1(self,x,s,Vf):
        '''
        Finds the optimal policies 
        '''
        Para,beta,Theta,G,S,Pi = self.Para,self.beta,self.Theta,self.G,self.S,self.Pi
        U,Uc,Un = Para.U,Para.Uc,Para.Un
        
        def objf(z):
            c,n,xprime = z[0],z[1],z[2:]
            Vprime = np.empty(S)
            for sprime in range(S):
                Vprime[sprime] = Vf[sprime](xprime[sprime])

            return -(U(c,n)+beta*Pi[s].dot(Vprime))
            
        def cons(z):
            c,n,xprime = z[0],z[1],z[2:]
            return np.hstack([
            x - Uc(c,n)*c-Un(c,n)*n - beta*Pi[s].dot(xprime),
            (Theta*n - c - G)[s]            
            ])
            
        
        out,fx,_,imode,smode = fmin_slsqp(objf,self.z0[x,s],f_eqcons=cons,
                            bounds=[(0.,100),(0.,100)]+[self.xbar]*S,full_output=True,iprint=0)
                            
        if imode >0:
            raise Exception(smode)
           
        self.z0[x,s] = out
        return np.hstack([-fx,out]) 
开发者ID:QuantEcon,项目名称:QuantEcon.lectures.code,代码行数:33,代码来源:lucas_stokey.py

示例15: get_policies_time1

# 需要导入模块: from scipy import optimize [as 别名]
# 或者: from scipy.optimize import fmin_slsqp [as 别名]
def get_policies_time1(self, x, s_, Vf):
        '''
        Finds the optimal policies 
        '''
        model, β, Θ, G, S, π = self.model, self.β, self.Θ, self.G, self.S, self.π
        U, Uc, Un = model.U, model.Uc, model.Un

        def objf(z):
            c, n, xprime = z[:S], z[S:2 * S], z[2 * S:3 * S]

            Vprime = np.empty(S)
            for s in range(S):
                Vprime[s] = Vf[s](xprime[s])

            return -π[s_] @ (U(c, n) + β * Vprime)

        def cons(z):
            c, n, xprime, T = z[:S], z[S:2 * S], z[2 * S:3 * S], z[3 * S:]
            u_c = Uc(c, n)
            Eu_c = π[s_] @ u_c
            return np.hstack([
                x * u_c / Eu_c - u_c * (c - T) - Un(c, n) * n - β * xprime,
                Θ * n - c - G])

        if model.transfers:
            bounds = [(0., 100)] * S + [(0., 100)] * S + \
                [self.xbar] * S + [(0., 100.)] * S
        else:
            bounds = [(0., 100)] * S + [(0., 100)] * S + \
                [self.xbar] * S + [(0., 0.)] * S
        out, fx, _, imode, smode = fmin_slsqp(objf, self.z0[x, s_],
                                              f_eqcons=cons, bounds=bounds,
                                              full_output=True, iprint=0,
                                              acc=self.tol, iter=self.maxiter)

        if imode > 0:
            raise Exception(smode)

        self.z0[x, s_] = out
        return np.hstack([-fx, out]) 
开发者ID:QuantEcon,项目名称:QuantEcon.lectures.code,代码行数:42,代码来源:recursive_allocation.py


注:本文中的scipy.optimize.fmin_slsqp方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。