问题
在银行贷款中,通常采用等额还款。假定银行贷款的年利率为 p,贷款 k 元,分 m 年采用每月等额还款方式还清。问每月还款多少钱?总共还的钱是多少?每月还款中还本金和利息各是多少元?
如果考虑每月等额还本金,结果如何?如贷款 160000 元,分 5 年还清,年利率为 4.032%。给出每种情况下每月的还款额,各自总共还款是多少?
方案一:每月等额还款
计算模型概述
在此方案中,每月还款金额相同,但还款中包含的本金和利息部分随着时间的推移逐渐变化。
Matlab 仿真程序
程序的主要步骤如下:
- 初始化各项参数:贷款金额 K = 160000 元,还款年限 m= 5 年,年利率 p=4.032%。
- 计算月利率 r = 12p。
- 计算每月等额还款金额 a 。
- 逐月计算还款中的利息部分 L(i) 、本金部分 x(i) 和剩余本金 y(i) 。
- 输出结果,包括每月的还款金额、还本金、还利息以及剩余本金。
Matlab程序代码:
K = 160000; % 贷款金额
m = 5; % 还款年限
p = 0.04032; % 年利率
r = p / 12; % 月利率
n = m * 12; % 总月数
x = zeros(1, n); % 每月还本金
y = zeros(1, n); % 每月所剩本金
L = zeros(1, n); % 每月还利息
a = K * r * (1 + r)^n / ((1 + r)^n - 1); % 每月等额还款金额
% 初始还款
L(1) = K * r; % 第一个月的利息
x(1) = a - L(1); % 第一个月的本金
y(1) = K - x(1); % 第一个月剩余本金
% 逐月计算
for i = 2:n
L(i) = y(i-1) * r; % 计算利息
x(i) = a - L(i); % 计算本金
y(i) = y(i-1) - x(i); % 更新剩余本金
end
% 输出总还款金额及每月还款详情
fprintf('贷款%6d元, 总共还款%5.2f元\n\n', K, n * a);
fprintf('月 还款金额 还本金 还利息 余本金\n');
for i = 1:n
fprintf('%2d %5.2f %5.2f %5.2f %5.2f\n', i, a, x(i), L(i), y(i));
end
方案二:每月等额还本金
计算模型概述
在此方案中,每月偿还的本金固定不变,但由于剩余本金逐月减少,因此每月需支付的利息也逐月减少。每月的总还款金额逐渐减少。
Matlab 仿真程序
程序的主要步骤如下:
- 初始化各项参数:贷款金额 K = 160000 元,还款年限 m = 5 年,年利率 p = 4.032%。
- 计算月利率 r =12p。
- 计算每月固定偿还的本金 。
- 逐月计算每月还款中的利息部分 L(i)、总还款金额 x(i) 和剩余本金 y(i)。
- 输出结果,包括每月的还款金额、还本金、还利息以及剩余本金。
Matlab程序代码:
K = 160000; % 贷款金额
m = 5; % 还款年限
p = 0.04032; % 年利率
r = p / 12; % 月利率
n = m * 12; % 总月数
x = zeros(1, n); % 每月还总共的钱
y = zeros(1, n); % 每月所剩本金
L = zeros(1, n); % 每月还利息
b = K / n; % 每月还本金
% 逐月计算
for i = 1:n
L(i) = (K - (i-1) * b) * r; % 每月还利息
x(i) = b + L(i); % 每月总还钱
y(i) = K - i * b; % 余本金
end
% 计算总还款金额及总利息
s1 = sum(L); % 总利息
Total = K + s1; % 总还款
% 输出总还款金额及每月还款详情
fprintf('贷款%6d元, 总共还款%5.2f元\n\n', K, Total);
fprintf('月 还款金额 还本金 还利息 余本金\n');
for i = 1:n
fprintf('%2d %5.2f %5.2f %5.2f %5.2f\n', i, x(i), b, L(i), y(i));
end
分析
从结果来看,等额还款与等额还本金两者对比来看,贷款160000元,分5年还清,方案一总共还款176937.28元,方案二总共还款176396.80元。因此等额还款对银行更有利,因此银行采用的此方式。