微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

改进 scipy 最小化元素依赖

如何解决改进 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 举报,一经查实,本站将立刻删除。