0

我知道 numpy 有一个 IRR 函数可以计算这样的东西。我正在处理一个更复杂的问题,贴现现金流是一个简单的例子,可以理解我所说的“元素方面”的依赖是什么意思。

给定一个输入X = [x1, x2, x3],我应该得到一个输出Y = [y1, y2, y3],其中 y1 仅依赖于 x1,y2 依赖于 x2,y3 依赖于 x3。

scipy.optimize.minimize 是否以这种方式解释问题?我的理解是 scipy 认为 Y 的每个元素都依赖于 X 中的所有元素。如果 scipy 以后一种方式表现,我怎样才能让 scipy 识别“元素方面”的依赖关系?一次传递一个 x 值是最好的方法吗?

这是一个例子:

import numpy as np
import scipy.optimize

def f(wacc, cash_flows):
    """Function to minimize. 

    Present value of cash flows given discount rates (weighted average cost of capital).
    """
    years = cash_flows.shape[1]
    pv = cash_flows / (1 + wacc.reshape(-1, 1)) ** np.arange(cash_flows.shape[1])
    return pv.sum(axis=1)

def cost_function(wacc, cash_flows):
    return np.abs(f(wacc, cash_flows)).sum()

cash_flows = np.array([[-2, 2, 3], [-3, 3, 4], [-4, 4, 5]])
x0 = np.array([0.1, 0.1, 0.1]) # initial guess for WACC

scipy.optimize.minimize(fun=cost_function, 
                        x0=x0, 
                        args=(cash_flows), 
                        options=dict(disp=True))
4

0 回答 0