参考文章:
【1】C语言计算内部回报率(或名内部收益率)(IRR)
【2】(精选版)IRR系列基础篇:概念、计算方法和误区
花呗、白条等等借贷产品的利率不像官方宣传的那么低,可以使用IRR公式计算其真实利率。
IRR内部收益率:一个现金流中的所有数字,按照固定的折现率计算至某年的净现值之和为0时,该折现率等于内部收益率,即真实收益率。
使用matlab实现IRR计算。
输入一数组,元素分别为:借贷金额、利率、分期数
function Result=IRR(inp)
loan=inp(1);%借贷金额
rate=inp(2);%官方给的利率
period=inp(3);分期数
money=loan*(1+rate)/period;%每期要还的钱
inp=zeros(1,period+1);
inp(1)=loan;
for i=2:period+1
inp(i)=-1*money;%现金流
end
len=length(inp);%现金流长度
power=len;%次数
left=0;
syms x;%未知数
for i=1:len
left=left+inp(i)*(1+x)^power;
power=power-1;%次数减一
end
eqn=left==0;%形成方程
temp=solve(eqn,x,'Real',true);
temp=vpa(temp);
len=length(temp);%解方程解的个数
for i=1:len
if (-1<temp(i)&temp<1)%筛选在-1~1之间的结果
Result=temp(i);%
end
end
each=Result;%每期利率
all=period*each;%年化利率
fprintf('标称利率:\t%.4f%%\n每期利率:\t%.4f%%\n总利率:\t%.4f%%\n',rate*100,each*100,all*100);
fprintf('标称利息:\t%.4f\n实际利息:\t%.4f\n多付利息:\t%.4f\n',loan*rate,loan*all,loan*(all-rate));
end
%main函数
clc;
INP=[2298,0.06,12];%借款金额—利率—分期数
IRR(INP);
输出结果:
标称利率: 6.0000%
每期利率: 0.9080%
总利率: 10.8964%
标称利息: 137.8800
实际利息: 250.3989
多付利息: 112.5189