使用Numpy计算内部收益率
我是一名研究生,正在攻读MBA,专注于金融方面的内容。由于我没有编程经验,所以在回答这个问题时遇到了困难。我需要用Python来解决这个问题。任何帮助都将非常感激!
问题
问题描述:我们有一个项目,给定了一些现金流。
[-50, 20, 10, 30, 10, 15] 第一个数字是负数,表示这个项目需要的初始投资。后面的数字代表项目在15个时间段内的预期现金流入和流出。
我们想要计算这个项目的内部收益率(IRR)。简单来说,IRR就是让项目的净现值(NPV)等于零的折现率。因此,我们要找一个 ,使得
()=0⇒−50+201++10(1+)2+30(1+)3+10(1+)4+15(1+)5=0。
在这个练习中,我们将使用Numpy来数值求解这个方程。我们的思路是计算 () 在一个折现率的范围内,比如说 [0,0.001,0.002,0.003,…,0.199,0.200],然后找到一个在这个范围内的点,使得 () 接近于零。我们初始的范围越细,我们就能越接近上面方程的解。
你的任务是:
定义现金流数组。 创建一个从0%到20%的潜在折现率数组。 计算每个折现率的NPV。 找出NPV最接近零的折现率。这个折现率就是项目的近似IRR。
指南
第一步:
import numpy as np
# Define the number of points on the grid
N = 10001
# Define cashflows
cash_flows = np.array([-60, 20, 10, 30, 10, 15])
# Define the array of potential discount rates
r = np.linspace(0, 0.20, N)
# Define an array to keep NPV values
npv = np.zeros((N,))
第二步:
# Calculate NPVs for each value of the discount rate
for i in range(N):
# Calculate NPV for discount rate = r[i]
第三步:
# Identify the discount rate at which NPV is closest to zero
index = np.argmin(np.abs(npv))
第四步:
# Print the IRR
第五步:
# Copy the code for N = 1001
第六步:
# Copy the code for N = 10001
我试着使用ChatGPT,但我没有得到正确的代码。
0 个回答
暂无回答