假设我从第一年到第四年都有现金流 cf=[30,45,52,67]
和贴现率(零息票) rt=[.02,03,04,05]
在python中,计算PV是直截了当的fwd
import numpy as np
import pandas as pd
cf = [30,45,52,67]
rt = [.02,.03,.04,.05]
sum([x[0]/(1+x[1])**(i+1) for i,x in enumerate(zip(cf,rt))])
给我输出
173.1775
现在,如果我想我的净现值是180(假设),我只需在excel中运行一个solve,这将调整我的“rt”(通过添加一个全面的价差)
如何在python中复制相同的内容?我见过/使用SciPy优化用于其他目的,但不确定如何在这里使用它(或者是否有其他解决方案)
您可以使用来自
scipy.optimize
的newton
(牛顿-拉斐逊方法的实现)解决您的问题newton
需要一个起点和一个单一参数的函数,当您到达目标时,该参数的计算结果为零(这不是真的,newton
也可以接受多个变量的函数,但是…),因此我们编写了一个函数,它接受您的参数并返回newton
所需的函数,最后我们调用newton
初始值为零编辑:当然,您可以为
make_fun
选择一个更具描述性的名称相关问题 更多 >
编程相关推荐