首页 > 解决方案 > 在 Python 中实现差分(非微分)方程

问题描述

我正在尝试在 Python 中实现差分方程。它们采用 y n+1 = a * y n + b 的形式,给定 y 0,其中 y 0是初始值,它会迭代——意思是

y 1 = a * y 0 + b,
y 2 = a * y 1 + b,
...

一个示例问题(来自我的微积分课)是这样的: 假设您借了 60,000 美元的贷款,并计划以 1.2% 的利率每月偿还 700 美元。5年后还剩多少?这将设置为 y n+1 = 1.1 * y n - 700, y 0 = 60,000

我理解 Python 中的递归,您可以说,例如,

i = 0
while i < 20:
    i = i+1

但是当下一次迭代需要上一次的值时,我不确定如何处理它。

标签: pythonmathfinance

解决方案


def calc1():
    S=60000
    x=0.012
    y=5*12
    Pmt=700
    r=1+(x/12)
    Ln = S
    for k in range(1, y+1):
         Ln=(Ln*r)-Pmt
    print (Ln)

结果:20444.98 美元

或使用具有几何级数和定义的代数

Ln= S * r y - Pmt * ((1-r y ) / (1-r)) = $20444.98

抱歉 Stackoverflow 不支持 MathJax。


推荐阅读