python - 在 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
但是当下一次迭代需要上一次的值时,我不确定如何处理它。
解决方案
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。
推荐阅读
- python - 如何用空字典替换“无”作为字典值?
- python - 在女服务员下将 app.route 链接到 Flask/Dash 中的 app.layout
- encryption - 关于在 ubifs 上使用 fscrypt 与 ext4 的差异的问题
- javascript - 删除视频 html 播放器中的音量控制
- oracle-jet - 如何在 OJET 应用程序中添加外部路由
- excel - 如何在 Excel VBA 中使用另一个值范围更改值范围
- git - 我不知道该怎么办(3 git 和 github 错误)
- sql-server - 在事务中执行存储过程失败
- python - 为什么我得到 null 而不是来自 Fastapi 的响应?
- svelte - 使用商店列表检测派生商店中更改的商店