改进 scipy 最小化元素依赖

问题描述

我知道 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))

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)