如何基于给定递推公式计算t=1到50期的k<sub>t+1</sub>数值
问题解答
首先注意你当前的代码存在参数赋值错误:题目给定参数为s=0.08、δ=0.3,但你的代码里写的是(δ,s,θ) = (0.08,0.3,0.35),把两个参数的赋值搞反了,会导致计算结果不符合预期,需要先修正这个问题。
要计算t=1到t=50期的k值,只需要加循环迭代计算即可,你可以把每一期的结果存在列表里方便后续调用,参考实现代码如下:
# 修正参数赋值 δ, s, θ = 0.3, 0.08, 0.35 k_records = [2.5] # 列表下标0对应初始值k0 # 迭代计算50次,得到k1到k50 for _ in range(50): last_k = k_records[-1] current_k = (1 - δ) * last_k + s * (last_k ** θ) k_records.append(current_k) # 打印t=1到t=50的结果,保留6位小数可根据需求调整 for t in range(1, 51): print(f"t={t} 对应k值:{k_records[t]:.6f}")
如果不需要留存历史k值,也可以只通过单个变量迭代,每次计算完直接打印:
δ, s, θ = 0.3, 0.08, 0.35 current_k = 2.5 for t in range(1, 51): current_k = (1 - δ) * current_k + s * (current_k ** θ) print(f"t={t} 对应k值:{current_k:.6f}")
两种方式都可以得到你需要的结果,第一种留存了所有期的数值,更适合后续做收敛性分析、绘图等操作。
内容的提问来源于stack exchange,提问作者Maeva
相关产品推荐
相关产品推荐

