如何应用更好的Python求解器来解决函数问题

时间:2016-06-02 09:36:47

标签: python dataframe

我试图找到/应用python Solver(SciPy / SymPy),但我不确定如何正确应用它。

目标是我希望找到更好的解决方案,以获得最优优惠券率,这将导致 IRR 等于无风险利率

函数EIRRCal将返回coupon rate(非最佳值),IRRdiff IRR与无风险率之间的差异。

我尝试并使用linspace函数来确定函数可能结果的范围,如下所示(仅为整个代码的一部分):

def optimalCoupon(recovery_rate,marginal_pd_rate,iteration):

    coupons = np.linspace(0.001,0.300,iteration)
    amat = []
    bmat = []
    cmat = []

    x = recovery_rate
    y = marginal_pd_rate

    for coupon in coupons:
        a_coupon, a_eirr, a_diff = EIRRCal(coupon, period, x, y)

        amat.append(a_coupon)
        bmat.append(a_eirr)
        cmat.append(abs(a_diff))

    for index, value in enumerate(cmat):
        if value == min(cmat):
            lowest_index = index
            optimal_coupon = amat[lowest_index]



    b_coupon, b_eirr, b_diff = EIRRCal(optimal_coupon, period, x, y)

    return [b_coupon, b_eirr, b_diff]

然而,它需要相当长的处理时间(仅有500行数据帧约为7分钟,迭代次数= 1000次)

0 个答案:

没有答案