Matlab第二周贷款问题
Matlab选修作业记录(其他的简介懒得写了/2025-01-25/)
北邮Matlab选修 Week 2 贷款问题
问题描述
你想买一套 600
万元的房子,首付 30%
,当前的年贷款利率是 4.8%
。
若选择等额本金方式还款。
- 贷
20
年,每月的还款额是多少? - 贷款期间,总共付了多少利息
若选择等额本息方式还款
- 贷
20
年,每月的还款额是多少? - 贷款期间,总共付了多少利息
数学模型
等额本金方式还款
-
每月还款额
等额本金还款法每月还款金额由两部分组成:
$$ 本金部分+利息部分 $$
本金部分是固定的,因此:
$$ 每月还款的本金=\frac{贷款总额}{贷款月数} $$ $$ 每月利息=剩余本金×月利率 $$
每月还款额公式:
$$ 每月还款额=每月本金+每月利息 $$
其中,
$$ 每月本金=\frac{贷款总额}{贷款月数} $$ $$ 每月利息=剩余本金×月利率 $$
-
总利息
总利息可以通过逐月累加每月的利息来计算。
等额本息方式还款
-
每月还款额
等额本息还款法每月还款金额是固定的,计算公式如下:(等比数列求和公式) $$ 每月还款额=\frac{贷款本金×月利率×(1+月利率)^n}{(1+月利率)^n-1} $$ 其中, $$ n是贷款月数 $$
-
总利息 $$ 总利息=贷款总额×贷款月利率×贷款月数-贷款本金 $$
程序设计
%程序入口
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
计算结果
>> Loan(6000000,20,0.048)
等额本金方式还款:
总利息:2024400.000000
等额本息方式还款:
总利息:2341491.296042
最后修改于 2024-08-05