年复利变额月付债务结清时间求解:请求排查解法错误
Hey,我来帮你梳理下你解法里的问题,再一步步推正确的结果~
首先,你的解法里有两个核心错误,直接导致后续推导跑偏了:
- 年还款额计算失误:月还款额是$800(1+\frac{t}{120})$,这里咱们默认$t$是年数(对应年利率9%),那每年的总还款额应该是12倍月还款额:
12 * 800(1 + t/120) = 9600 + 80t
你算成了960t + 9160,这第一步的算术错误太关键了; - 微分方程形式写错:你写的
dp(t)/dt = 0.09*p(t)-(960t+9160) dt多了末尾的dt,正确的连续时间债务微分方程应该是「债务变化率 = 利息产生速率 - 还款速率」,也就是:dp/dt = 0.09p(t) - (9600 + 80t)
接下来是正确的推导步骤,咱们一步步来:
1. 建立正确的线性微分方程
设$p(t)$为$t$年时的债务余额,年利率9%按连续复利计算,年还款速率是$9600 + 80t$美元/年,方程整理为标准线性形式:
$$\frac{dp}{dt} - 0.09p = -(9600 + 80t)$$
2. 计算积分因子
线性微分方程的积分因子公式是$u(t) = \exp\left(\int 系数dt\right)$,这里$p$的系数是-0.09,所以:
$$u(t) = \exp\left(\int -0.09 dt\right) = e^{-0.09t}$$
3. 求解微分方程
把方程两边乘以积分因子,左边会变成乘积的导数:
$$e^{-0.09t}\frac{dp}{dt} - 0.09e^{-0.09t}p = -(9600 + 80t)e^{-0.09t}$$
左边等价于$\frac{d}{dt}\left(p(t)e^{-0.09t}\right)$,接下来两边积分:
$$p(t)e^{-0.09t} = -\int (9600 + 80t)e^{-0.09t} dt + C$$
计算右边的积分(分部积分法)
把积分拆成两部分:
$$\int (9600 + 80t)e^{-0.09t} dt = 9600\int e^{-0.09t}dt + 80\int t e^{-0.09t}dt$$
- 第一部分积分:$\int e^{-0.09t}dt = -\frac{1}{0.09}e^{-0.09t} + C_1$
- 第二部分用分部积分:设$u=t$,$dv=e{-0.09t}dt$,则$du=dt$,$v=-\frac{1}{0.09}e{-0.09t}$,代入得:
$$\int t e^{-0.09t}dt = -\frac{t}{0.09}e^{-0.09t} + \frac{1}{0.09}\int e^{-0.09t}dt = -\frac{t}{0.09}e^{-0.09t} - \frac{1}{0.092}e{-0.09t} + C_2$$
把两个结果代回去化简:
$$\int (9600 + 80t)e^{-0.09t} dt = -\frac{9600}{0.09}e^{-0.09t} - \frac{80t}{0.09}e^{-0.09t} - \frac{80}{0.092}e{-0.09t} + C$$
所以回到积分后的式子,两边乘以$e^{0.09t}$得到通解:
$$p(t) = \frac{9600}{0.09} + \frac{80t}{0.09} + \frac{80}{0.09^2} + Ce^{0.09t}$$
4. 代入初始条件求常数C
初始时刻$t=0$,债务是100000美元,代入通解:
$$100000 = \frac{9600}{0.09} + 0 + \frac{80}{0.09^2} + C$$
计算数值:
$\frac{9600}{0.09} ≈ 106666.67$,$\frac{80}{0.09^2} ≈ 9876.54$,所以:
$$C = 100000 - 106666.67 - 9876.54 ≈ -16543.21$$
最终债务余额的表达式是:
$$p(t) = 106666.67 + 888.89t + 9876.54 - 16543.21e^{0.09t}$$
简化一下:
$$p(t) = 116543.21 + 888.89t - 16543.21e^{0.09t}$$
5. 求债务结清时间(p(t)=0)
令$p(t)=0$,得到方程:
$$116543.21 + 888.89t = 16543.21e^{0.09t}$$
这个方程没有解析解,得用数值方法(比如牛顿迭代法)求解:
- 试$t=20$年:左边≈134321,右边≈99986,左边>右边
- 试$t=25$年:左边≈138765,右边≈156960,右边>左边
- 再缩小范围迭代,最终得到$t≈23.2$年,也就是大约23年3个月左右。
总结一下,你最初的两个小错误(算术和方程形式)直接导致后续推导全部偏离,修正这两点后就能得到正确的结果啦~
内容的提问来源于stack exchange,提问作者Jack Hsu

