第二周作业-贷款问题

BUPT大一下Matlab选修

北邮Matlab选修 Week 2 贷款问题

问题描述

你想买一套 600 万元的房子,首付 30% ,当前的年贷款利率是 4.8%

若选择等额本金方式还款。

  • 20年,每月的还款额是多少?
  • 贷款期间,总共付了多少利息

若选择等额本息方式还款

  • 20年,每月的还款额是多少?
  • 贷款期间,总共付了多少利息

数学模型

等额本金方式还款

  • 每月还款额

    等额本金还款法每月还款金额由两部分组成:

    $$ 本金部分+利息部分 $$

    本金部分是固定的,因此:

    $$ 每月还款的本金=\frac{贷款总额}{贷款月数} $$ $$ 每月利息=剩余本金×月利率 $$

    每月还款额公式:

    $$ 每月还款额=每月本金+每月利息 $$

    其中,

    $$ 每月本金=\frac{贷款总额}{贷款月数} $$ $$ 每月利息=剩余本金×月利率 $$

  • 总利息

    总利息可以通过逐月累加每月的利息来计算。

等额本息方式还款

  • 每月还款额

    等额本息还款法每月还款金额是固定的,计算公式如下:(等比数列求和公式) $$ 每月还款额=\frac{贷款本金×月利率×(1+月利率)^n}{(1+月利率)^n-1} $$ 其中, $$ n是贷款月数 $$

  • 总利息 $$ 总利息=贷款总额×贷款月利率×贷款月数-贷款本金 $$

程序设计

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
%程序入口
function Loan(totalMoney, loanYears, yearlyInterestRate)
totalLoan=(1-0.3)*totalMoney;
loanMonths=12*loanYears;
monthlyInterestRate=yearlyInterestRate/12;
fprintf('等额本金方式还款:\n');
equalPrincipal(totalLoan, loanMonths, monthlyInterestRate);

fprintf('等额本息方式还款:\n');
equalPrincipalAndInterest(totalLoan, loanMonths, monthlyInterestRate);
end

% 等额本金方式还款
function equalPrincipal(totalLoan, loanMonths, monthlyInterestRate)
monthlyPrincipal = totalLoan / loanMonths;
totalInterest = 0;
results = zeros(loanMonths, 3);
for i = 1:loanMonths
    remainingPrincipal = totalLoan - (i-1) * monthlyPrincipal;
    monthlyInterest = remainingPrincipal * monthlyInterestRate;
    totalInterest = totalInterest + monthlyInterest;
    monthlyPayment = monthlyPrincipal + monthlyInterest;
    results(i, :) = [i, monthlyPayment, monthlyInterest];
end
writematrix(results, 'equalPrincipal.csv');
fprintf('总利息:%f\n', totalInterest);
end

% 等额本息方式还款
function equalPrincipalAndInterest(totalLoan, loanMonths, monthlyInterestRate)
monthlyPayment = (totalLoan * monthlyInterestRate * (1 + monthlyInterestRate)^loanMonths) / ((1 + monthlyInterestRate)^loanMonths - 1);
totalInterest = loanMonths * monthlyPayment - totalLoan;
results = [monthlyPayment, totalInterest];
writematrix(results, 'equalPrincipalAndInterest.csv');
fprintf('总利息:%f\n',totalInterest);
end

计算结果

1
2
3
4
5
>> Loan(6000000,20,0.048)
等额本金方式还款:
总利息:2024400.000000
等额本息方式还款:
总利息:2341491.296042
Progress Infinite!
使用 Hugo 构建
主题 StackJimmy 设计