高度节约内存递归
2视图(30天)
显示旧的评论
让我们假设我们观察数据在未来6个月每月(k = 6)。让我们也假定下面的递归结构(在下面的例子)。
我想知道,这个结构可以通过编程如何最有效地考虑以下几方面(效率将是绝对必要的):
- 6个月内为简单起见,通常没有固定这个值。因此,这个值需要重新定义;
- 每月计算存储,因为我需要它进行进一步的计算。
兆瓦:
β=符号(“测试版”[1,2])”;
φ=符号(“φ”(2 - 2));
k1我们计算的矩阵形式如下:
K1β=β*。”
在k2我们有一个相似的表达,但现在它也取决于φ*之前的时期。
K2β=β*。' +φ* K1
时期k3 k2是一样的,只是K1和k2的变化。所以从现在起是递归和重复。所以过去的观察(转k6)与K5相同的公式。
答案(1)
Sindar
2021年1月24日
他们需要象征性的吗?这可能增加了体面的成本
每月都是β和φ测量吗?
如果k仍然很小,它可能是更高效的存储phi_i beta_i,然后手动打开递归和直接计算吻你想要的,就像这样:
转K6 = beta6 * beta6 %。' + phi6 *速率
转K6 = beta6 * beta6 %。' +phi6 * (beta5*beta5.' + phi5 * K4)
转K6 = beta6 * beta6 %。' +phi6 * (beta5*beta5.' + ...
% phi5 * beta4 * beta4。' +phi4 * (beta3*beta3.' + phi3 * K2))
转K6 = beta6 * beta6。' +phi6 * (beta5*beta5.' +…
phi5 * beta4 * beta4。' +phi4 * (beta3*beta3.' + phi3 * (beta1 * beta1.' + phi1 * K1)));
这将节省内存,但是还有好机会将运行得更快比递归当你需要一个吻