相同月利率条件下不同还款方式贷款的APR与IRR研究
文章目录
- 前提假设
- 一次性还本付息
- 先息后本
- 等额本息
- 等额本金
- 简单二分法求解IRR的程序
- 汇总
- 实验对比
前提假设
- 因为常见的信贷产品还款期数定义都是按照月,假设只借一期的利率(月利率)为r,在此条件下,研究不同还款方式下的APR和IRR计算结果与r、期数n、本金C这几个变量的关系;
- 约束条件:1)月利率为r;2)在第n期期末结束时,还清所有本息;
- IRR:根据净现值等于0时的折现率计算出实际月利率,IRR=12ractIRR=12r_{act}IRR=12ract;
- APR:年化利率,以一年(12个月)为计息长度时,利息总和占本金的百分比;
一次性还本付息
- 计算现金流:
Pi={−C,i=00,0<i<nC+Crn,i=nP_i= \begin{cases} -C, i=0 \\ 0, 0<i<n \\ C+Crn, i=n \end{cases}Pi=⎩⎨⎧−C,i=00,0<i<nC+Crn,i=n - 计算IRR:∑i=0nPi(1+ract)i=0\sum_{i=0}^{n}\frac{P_i}{(1+r_{act})^i}=0∑i=0n(1+ract)iPi=0,求得IRR=((1+rn)1/n−1)∗12IRR=((1+rn)^{1/n}-1)*12IRR=((1+rn)1/n−1)∗12;
- 计算APR:利息总和*12/C/n,求得APR=12rAPR=12rAPR=12r;
先息后本
- Pi={−C,i=0Cr,0<i<nC+Cr,i=nP_i= \begin{cases} -C, i=0 \\ Cr, 0<i<n \\ C+Cr, i=n \end{cases}Pi=⎩⎨⎧−C,i=0Cr,0<i<nC+Cr,i=n
- 计算IRR:∑i=0nPi(1+ract)i=0\sum_{i=0}^{n}\frac{P_i}{(1+r_{act})^i}=0∑i=0n(1+ract)iPi=0,−C+Cr(1(1+ract)1+...+1(1+ract)n−1)+C+Cr(1+ract)n=0-C+Cr(\frac{1}{(1+r_{act})^1}+...+\frac{1}{(1+r_{act})^{n-1}})+\frac{C+Cr}{(1+r_{act})^n}=0−C+Cr((1+ract)11+...+(1+ract)n−11)+(1+ract)nC+Cr=0,简化得(ract−r)=(ract−r)(1+ract)n(r_{act}-r)=(r_{act}-r)(1+r_{act})^n(ract−r)=(ract−r)(1+ract)n,得IRR=12rIRR=12rIRR=12r;
- 计算ARR:利息总和*12/C/n,求得APR=12rAPR=12rAPR=12r;
等额本息
- Pi={−C,i=0Cr(1+r)n(1+r)n−1,0<i<=nP_i= \begin{cases} -C, i=0 \\ C\frac{r(1+r)^n}{(1+r)^n-1}, 0<i<=n \end{cases}Pi={−C,i=0C(1+r)n−1r(1+r)n,0<i<=n
- 本质上等额本息的利息计算就是在考虑复利情况下计算出来的,所以IRR=12rIRR=12rIRR=12r;
- 计算APR:利息总和*12/C/n,求得APR=(r(1+r)n(1+r)n−1−1n)∗12APR=(\frac{r(1+r)^n}{(1+r)^n-1}-\frac{1}{n})*12APR=((1+r)n−1r(1+r)n−n1)∗12;
等额本金
- Pi={−C,i=0Cn+n+1−inCr=1+(n+1−i)rnC,0<i<=nP_i= \begin{cases} -C, i=0 \\ \frac{C}{n}+\frac{n+1-i}{n}Cr=\frac{1+(n+1-i)r}{n}C, 0<i<=n \end{cases}Pi={−C,i=0nC+nn+1−iCr=n1+(n+1−i)rC,0<i<=n
- 计算IRR:∑i=0nPi(1+ract)i=0\sum_{i=0}^{n}\frac{P_i}{(1+r_{act})^i}=0∑i=0n(1+ract)iPi=0,−C+C∑i=1n(1+(n+1−i)rn)1(1+ract)i=0-C+C\sum_{i=1}^{n}(\frac{1+(n+1-i)r}{n})\frac{1}{(1+r_{act})^i}=0−C+C∑i=1n(n1+(n+1−i)r)(1+ract)i1=0,使用数值方法求解IRR,IRR与C无关,与r和n有关;实际计算可得,近似IRR=12rIRR=12rIRR=12r;
- 计算APR:利息总和*12/C/n,求得APR=6r(n+1)nAPR=\frac{6r(n+1)}{n}APR=n6r(n+1);
简单二分法求解IRR的程序
输入:现金流list;
输出:IRR;
def cal_irr(cash_flow_list):r_min, r_max = 0,2flag = Falsecnt = 0while((flag==False)&(cnt<=100)):cnt += 1r = (r_min + r_max) / 2npv = 0for ix,i in enumerate(cash_flow_list):npv += i/(1+r)**ixif abs(npv)<=0.00001:flag = Truebreakelse:if npv>0:r_min = relse:r_max = rreturn r*12
汇总
还款方式 | IRR | APR |
---|---|---|
一次性还本付息 | ((1+rn)1/n−1)∗12((1+rn)^{1/n}-1)*12((1+rn)1/n−1)∗12 | 12r12r12r |
先息后本 | 12r12r12r | 12r12r12r |
等额本息 | 12r12r12r | (r(1+r)n(1+r)n−1−1n)∗12(\frac{r(1+r)^n}{(1+r)^n-1}-\frac{1}{n})*12((1+r)n−1r(1+r)n−n1)∗12 |
等额本金 | ∑i=1n1+(n+1−i)rn(1+ract)i−1=0\sum_{i=1}^{n}\frac{1+(n+1-i)r}{n(1+r_{act})^i}-1=0∑i=1nn(1+ract)i1+(n+1−i)r−1=0的解ractr_{act}ract乘以12,≈12r\approx12r≈12r | 6r(n+1)n\frac{6r(n+1)}{n}n6r(n+1) |
实验对比
- 以月利率r(取0.005,0.01,0.03),期数n(取1、6、12、24、240),还款方式为自变量,APR和IRR为因变量,对比结果如如下。
-
IRR计算结果:
-
APR计算结果:
-
r=1%,n=12时,各还款方式下IRR和APR对比:
-
r=1%,等额本金和等额本息还款方式下APR随着期数n的变化:
(1)等额本金,APR随着n的增大单调递减,最终趋近6r;
(2)等额本息,APR随着n的增大先下降再上升,最终趋近12r;
(3)等额本息APR > 等额本息APR。
-
r=1%,本金C=30w,贷款36期(3年),月供流水对比:
相关文章:
相同月利率条件下不同还款方式贷款的APR与IRR研究
文章目录前提假设一次性还本付息先息后本等额本息等额本金简单二分法求解IRR的程序汇总实验对比前提假设 因为常见的信贷产品还款期数定义都是按照月,假设只借一期的利率(月利率)为r,在此条件下,研究不同还款方式下的…...
【论文】智能隧道检测车的现状及改进策略
本文转载自《智慧城轨》2022年第11期 作者:黄丹樱1,韦强1,朱椰毅2,范骁1,林浩立1 单位:1 浙江师范大学工学院;2 浙江金温铁道开发有限公司 声明:本文仅用于学术分享,不做商业用途,如有侵权,联…...
【代码随想录二刷】Day16-二叉树-C++
代码随想录二刷Day16 每日任务 104.二叉树的最大深度 559.n叉树的最大深度 111.二叉树的最小深度 222.完全二叉树的节点个数 语言:C 104. 二叉树的最大深度 链接:https://leetcode.cn/problems/maximum-depth-of-binary-tree/ 递归法(前序…...
Lecture5 实现线性回归(Linear Regression with PyTorch)
目录 1 Pytorch实现线性回归 1.1 实现思路 1.2 完整代码 2 各部分代码逐行详解 2.1 准备数据集 2.2 设计模型 2.2.1 代码 2.2.2 代码逐行详解 2.2.3 疑难点解答 2.3 构建损失函数和优化器 2.4 训练周期 2.5 测试结果 3 线性回归中常用优化器 1 Pytorch实现线性回归…...
Python与Matlab svd分解的差异
1.差异说明 Matlab和Python的NumPy库中的SVD函数(np.linalg.svd)都是用来对矩阵进行奇异值分解(SVD)的函数,但它们在默认参数和返回结果方面有一些差异。 在Matlab中,SVD函数的默认行为是计算矩阵的完整SVD,即对于一…...
2023年光模块行业发展趋势及未来前景
随着数字化时代的到来,互联网行业的快速发展,网络通信设备行业的发展也在逐渐加速。光模块作为网络设备的重要组成部分,也在不断创新和发展。那么,光模块行业的未来发展趋势又是怎样的呢?接下来就跟着易天光通信&#…...
Sysmac Studio使用Tortoise和Git实现版本控制
Sysmac Studio使用Tortoise和Git实现版本控制实验时间:2022/11/16 实验软件:Sysmac Studio(1.52,需要软件授权支持版本控制)、Git(2.38.1)、Tortoise(2.13.0)、gitee(代码仓库) 实验目的:Sysmac Studio实现版本控制、多人同时开…...
Intent 和 Bundle 传值的区别
文章目录1、使用上1.1 Intent 方式1.2 Bundle 方式2、为什么 Bundle 使用 ArrayMap 而不是 Hashmap 实现呢?1、使用上 1.1 Intent 方式 举例:将数据从页面 A 传递到 B,然后再传递到 CA 页面: Intent intentnew Intent(MainActi…...
TypeScript 初步
一、TypeScript是什么? Typed JavaScript at Any Scale: 添加了类型系统的JavaScript,使用于任何规模的项目。 两个重要特点: 类型系统 任何规模 中文官网:文档简介 TypeScript中文网 TypeScript——JavaScript的超集 TypeS…...
leaflet 添加zoomslider,控制zoom放大缩小(074)
第074个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中使用zoomslider,相比于普通的zoom控件,这个更加形象,更加具体些。 直接复制下面的 vue+leaflet源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共65行)相关API参考:专栏目…...
10分钟学会python对接【OpenAI API篇】
今天学习 OpenAI API,你将能够访问 OpenAI 的强大模型,例如用于自然语言的 GPT-3、用于将自然语言翻译为代码的 Codex 以及用于创建和编辑原始图像的 DALL-E。 首先获取生成 API 密钥 在我们开始使用 OpenAI API 之前,我们需要登录我们的 Op…...
2023美赛必须注意事项
文章目录首页部分要求竞赛期间题目查看题目下载论文要求比赛提示控制号提交解决方案更多注意事项首页部分要求 具体如下: 我提取一些关键词如下: 第一页:摘要页字体要求:12点的 Times New Roman 字体请勿在此页面或任何页面上…...
基于微信小程序的智能招聘小程序
文末联系获取源码 开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏览器…...
Java文件操作和I/O
Java 流(Stream)、文件(File)和IOJava.io 包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。Java.io 包中的流支持很多种格式,比如:基本类型、对象、本地化字符集等等。一个流可以理解为一个数据的序列。输入流表示从一个源…...
QT项目_RPC(进程间通讯)
QT项目_RPC(进程间通讯) 前言: 两个进程间通信、或是说两个应用程序之间通讯。实际情况是在QT开发的一个项目中,里面包含两个子程序,子程序有单独的界面和应用逻辑,这两个子程序跑起来之后需要一些数据的交互,例如&…...
移动硬盘文件丢失怎么恢复?
在我们的日常工作、学习和生活都离不开各种数据。每天都会接收或处理各种数据,尤其是做设计、自媒体、多媒体设计的人。移动硬盘成为我们常备的存储工具,但有使用就会伴随着意外情况的发生,这将导致移动硬盘上数据的丢失,比如误删…...
什么是同步整流和异步整流
在设计降压型DCDC电路的时候,经常会听到同步整流(synchronous)和异步整流(asynchronous)。那么什么是同步整流,什么是异步整流呢从这两种电路的拓扑来看,异步整流型外围有一个续流二极管&#x…...
关于PYTHON Enclosing 的一个小问题
问题分析 以下是一段每隔半小时重复执行测试用例的脚本,func是传入的测试函数,在执行func前后,会打印操作次数 def repeat(func, action):try:log.info(u******开始并发%s****** % action)thread_list []for i in range(repeat_count):def…...
LabVIEW错误-2147220623:最大内存块属性不存在
LabVIEW错误-2147220623:最大内存块属性不存在在使用NI Linux实时操作系统目标中,使用系统属性节点和分布式系统管理器(DSM),但遇到一些问题:它未正确报告系统上的可用物理内存量。在NI Linux实时系统上出现…...
图的总复习
一、图的定义Graph 图是由顶点vertex集合及顶点间关系集合组成的一种数据结构: 顶点的集合 和 边的集合 二、无向图 用(x,y)表示两个顶点x和y之间的一条边(edge) 边是无方向的 N{V,E},V{0…...
测试流程记录
1,需求评审 2,技术方案评审 3,编写测试用例 编写需求分析 编写测试用例 编写冒烟case 4,用例评审 5,提测 提测前给开发执行冒烟case 6,测试 测试完成前约产品验收时间 7,验收 跟进验收问题…...
Mysql主从架构与实例
mysql的主从架构 MySQL主从架构是一种常见的数据库高可用性解决方案,它通常由一个主数据库和多个从数据库组成。主数据库用于处理写入请求和读取请求,从数据库则用于处理只读请求。 在主从架构中,主数据库记录所有数据更改并将这些更改同步…...
webpack(高级)--Tapable
webpack 我们直到webpack中有两个非常重要的类Compiler和Compilation 他们通过注入插件的方式 来监听webpack的所有声明周期 插件的注入是通过创建Tapable库中的各种Hook的实例来得到 Tapable Tapable中的Hook分为同步与异步 同步 SyncHook SyncBailHook SyncWaterfallHook…...
Python常见类型转换合集
近期在工作中常常接触到各种转换,如字符串转byte,byte转字符串,还有byte数组转成报文能接纳的格式(bin格式的十六进制)。故有必要系统的总结一下Python中常见的类型转换。 一:常见类型的概念 类型举例说明…...
知识点(1)
什么是跨域请求? 当前发起请求的域与该请求指向的资源所在的域不一样,凡是发送请求的url的协议、域名、端口号三者之间任意一者与当前页面地址不同的请求。这里的域指的是:我们认为若协议域名端口号均相同,那么就是同域。 get和…...
Tomcat源码分析-启动分析(三) Catalina启动
在上一篇文章中,我们分析了tomcat的初始化过程,是由Bootstrap反射调用Catalina的load方法完成tomcat的初始化,包括server.xml的解析、实例化各大组件、初始化组件等逻辑。那么tomcat又是如何启动webapp应用,又是如何加载应用程序的…...
程序员必备的软技能-金字塔原理拆解
前言 日常工作中,常常因为思维、表达方式不对产生不想要的结果: 写了一个小时的周报,领导却不满意?跟团队讲了半天自己的想法,可别人就是没理解?看了很多知识、信息,却一点也没记住࿱…...
基金详细介绍
投资回报率 利润 / 投资总额(第一次投资回报率 5%) 关注南方理财 60 天债券 B(202306)万元收益 50—60 元 购基七步曲: 风险测试基本知识交易指南查看业绩了解评级在线下单赎回 基金类型: 积极成长型基金…...
媒体邀约之企业如何加强品牌的宣传力度
传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。胡老师分享了许多媒体传播方面的经验,今天就跟大家分享下我对企业宣传方面的看法。企业如何加强品牌的宣传力度:1,网络宣传在社交媒体上建立企业账户&am…...
【SpringBoot】75、SpringBoot中使用spring-retry轻松解决重试
在日常开发过程中,难免会与第三方接口发生交互,例如:短信发送、远程服务调用、争抢锁等场景,当正常调用发生异常时,例如:网络抖动,这些间歇性的异常在一段时候之后会自行恢复,程序为…...
dw做网站基础/seo外链平台热狗
阅读目录 一、概念描述二、带有IN谓词的子查询三、带有比较运算符的子查询四、带有ANY(SOME)或ALL谓词的子查询五、带有 EXISTS 谓词的子查询六、总结回到顶部 一、概念描述 在SQL语言中,一个 SELECT-FROM-WHERE 语句称为一个查询块。将一个查…...
建设微信商城网站/国内新闻摘抄2022年
很多人都知道内存这个词,但是真正有了解内存的寥寥无几,下面我来给大家分析下Android内存: 由于Android应用的沙箱机制,每个应用所分配的内存大小是有限度的,内存太低就会触发LMK——Low Memory Killer 机制。那么到底…...
做网站点/广告公司的业务范围
简评:Java var ! JavaScript var。 Java 10 中引入了新的语法用于局部变量类型推断,很多开发者有所疑惑,希望这篇文章能帮到你。 什么是类型推断 其实在 Java 中类型推断早就存在了,看下下面的例子: public void doSom…...
网站怎么推广软文/百度如何免费推广
2019独角兽企业重金招聘Python工程师标准>>> 当需要成批插入或者更新记录时。可以采用Java的批量更新机制,这一机制允许多条语句一次性提交给数据库批量处理。通常情况下比单独提交处理更有效率。 JDBC的批量处理语句包括下面两个方法: addBa…...
阅读网站怎样做/网络销售平台有哪些软件
前言 一名DBA的经历,做自己想做的,永不放弃,感谢生命中的贵人,我的师傅带我入行,感谢CSDN平台,让我分享更多DBA的干货 文章目录前言一、为什么要转行?1.DBA行业有哪些优势2.我转行的原因3.DBA我…...
网易企业邮箱客户端下载/重庆seo推广运营
父类 xx new 子类(); xx.method(); 1 普通方法由编译时决定(左边) --- 提高效率 2 虚方法(virtual) 由运行时决定-- -多态,灵活 3 抽象方法由运行时决定的 -- 多态灵活 封装:隔离,外部不用…...