我试图用Python实现一个差分方程。它们的形式是yn+1=a*yn+b,给定y0,其中y0是初始值,它迭代——意思是
y1=a*y0+b,
y2=a*y1+b,
... 你知道吗
一个例子问题(来自我的微积分课)是这样的:假设你贷款6万美元,计划每月还700美元,利率为1.2%。5年后还能剩下多少?这将设置为yn+1=1.1*yn-700,y0=60000
我理解Python中的递归,比如说
i = 0
while i < 20:
i = i+1
但是当下一次迭代需要上一次迭代的值时,我不确定如何处理它。你知道吗
Tags:
任务的常规循环如下所示:
注意,
monthlyinterest
的讨论可能有几个原因,这些原因不是特定于编程的:a)这可能取决于利息的计算时间,即每月的哪一天。可能在付款之前或之后。你知道吗
b)年利率除以12对银行来说更好。也可以计算为1.012的第12根。你知道吗
现在,上面是一个直接的循环。它与递归无关。但它可以转换为递归调用:
关键是:
a)递归调用需要一个退出条件。我一开始就说对了。这里的退出条件是剩余月份达到0。你知道吗
b)函数
recursive()
调用自身,希望使用一个接近退出条件的参数。这里是month-1
。你知道吗你这样称呼它:
通常,您可以通过存储一个带有计算最后一个值的变量,并使用起始值对其进行种子设定来实现这一点。例如:
当然,您必须确定何时停止以及如何处理这些值。您当然要打印它们:
但你可能只想做100次,而不是永远:
您可能还想存储它们以备以后使用,因此请将它们放入一个数组中:
结果:20444.98美元
或者使用定义为sum of geometric progression的代数
Ln=S*ry-Pmt*((1-ry)/(1-r))=20444.98美元
抱歉,MathJax不支持Stackoverflow。你知道吗
相关问题 更多 >
编程相关推荐