我正在尝试在Matlab 2019a中计算具有多个维度的内部收益率。我的公式从理论上讲是有效的(目前暂时忽略“多重收益率”警告),但是问题是,对于更大的矩阵(即noScenarios> 5或更大),代码变得非常慢。有哪些编程替代方法?我也尝试过解决,但我认为也不快。
请注意,由于我没有数学能力,因此像“布伦特方法”这样的简单关键字对我来说是不够的(例如,“计算内部收益率内部收益率的最有效方法是什么?”)。我将不得不知道a)如何在Matlab中实现它,以及b)如果它确实是白痴证明,那么什么都不会出错?谢谢!
clc
clear
close all
noScenarios = 50;
CF = ones(300,noScenarios,noScenarios,noScenarios);
CF = [repmat(-300, 1,noScenarios,noScenarios,noScenarios); CF];
for scenarios1 = 1:noScenarios
for scenarios2 = 1:noScenarios
for scenarios3 = 1:noScenarios
IRR3dimensional(scenarios1,scenarios2,scenarios3) = irr(CF(:,scenarios1,scenarios2,scenarios3));
end
end
end
Run Code Online (Sandbox Code Playgroud) 首先,很抱歉再次发布相同的问题。
我想将宽限期添加到固定利息计算方法的还款表中,以便可以在宽限期内收到利息金额。
Dataframe1:这是正常情况。
uid emi_date amt interest tenure emi Rep_seq status balance
KII-453 01/01/2020 100 2% 12 10.33333 1 1 113.67
KII-453 01/02/2020 100 2% 12 10.33333 2 1 103.3367
KII-453 01/03/2020 100 2% 12 10.33333 3 1 93.00333
KII-453 01/04/2020 100 2% 12 10.33333 4 0 82.67
KII-453 01/05/2020 100 2% 12 10.33333 5 0 72.33667
KII-453 01/06/2020 100 2% 12 10.33333 6 0 62.00333
KII-453 01/07/2020 100 2% 12 10.33333 7 0 51.67
KII-453 01/08/2020 100 2% 12 …
Run Code Online (Sandbox Code Playgroud) 当我使用numpy方法计算内部收益率(irr)时irr
,我收到nan
了返回.
In [45]: numpy.irr([-10, 2, 2, 2, 2])
Out[45]: nan
Run Code Online (Sandbox Code Playgroud)
结果不应该至少是负面的吗?比方说-8%?当我试图更好地理解实现时,我查看了NumPy存储库的主分支,但实现对我没有任何意义.
评论和给定的文献无助于理解nan
发布的条件.当我用另一个程序计算irr时,我得到了-8%的回报.
为什么NumPy返回nan
上面的数组?
我无法计算内部收益率.我使用Microsoft.VisualBasic来计算IRR.这是一个案例:
using Microsoft.VisualBasic;
...
static void Main(string[] args)
{
double[] tmpCashflows = new double[] {
-480117.0,
4471.5158140594149,
6841.5950239895265,
6550.383550359461,
6295.8611873818609,
6074.6070899770129,
5883.532880960287,
6006.9907860976427,
6133.1633945923877
,6262.1156759885489
//,6393.9143799520116
};
decimal irr = 0;
try
{
double tmpIrr = Financial.IRR(ref tmpCashflows);
...
}
catch (Exception ex)
{
irr = 0;
}
}
Run Code Online (Sandbox Code Playgroud)
它给出了"参数无效"类型的例外(在Microsoft.VisualBasic.Financial.IRR(Double []&ValueArray,Double Guess)).但是,如果我在Excel中进行计算,则不会显示任何错误.
当我使用 apache/poi 计算 Irr 值时,我得到 Double.NaN,但 excel 中的相同输入我得到负值。
那么为什么它们返回不同的值呢?
inputs here:
irr(-1.0601017230994111E8,19150.63,44505.08,22997.34,33936.39,27265.92,2127.66,2108.63,886.53,2482.27,4305.12,3421.58,65644.12,1020.51,2659.57,3191.49,20284508.4,1881279.27,11675415.09,7557862.28,921090.46,622104.32,289267.36,183.41,886.53, 0.1)
Run Code Online (Sandbox Code Playgroud) 我遇到了障碍,希望得到一些帮助。
问题陈述:
我正在尝试用 Python 计算 30 多年现金流的 XIRR。
到目前为止我尝试过什么:
然而,现有的库(如 numpy 和 pandas)似乎都不支持这一点。经过一些研究,我通过这个来源(https://vindeep.com/Corporate/XIRRCalculation.aspx)了解到,通过一些简单的操作,XIRR 可以从 IRR 计算出来。
So, all I need is an IRR function that is implemented well. The functionality used to exist in numpy but has moved to this other package (https://github.com/numpy/numpy-financial). While, this package works, it is very very slow. Here is a small test:
import pandas as pd
import numpy as np
import numpy_financial as npf
from time import time
# …
Run Code Online (Sandbox Code Playgroud)