如何在 R 中求解数学序列?

How to solve a math sequence in R?

提问人:Xav64 提问时间:5/6/2022 最后编辑:Xav64 更新时间:5/9/2022 访问量:87

问:

编辑:我想不出更精确的问题标题,但请让我知道我可以使用什么更好的标题,谢谢!

我有一个“基本”数学问题,我无法将其转换为 R 代码。如果我每年向土壤中添加 4 公斤岩石,并且每年添加的所有岩石中有 1% 溶解,那么 n 年后我会溶解多少岩石(以公斤为单位)?(例如 n=47 岁)。

你知道 R 中有什么代码或函数可以帮助我计算吗?

多谢!

为了清楚起见,前三年的计算如下所示:

一年级

第一年我申请了 4 公斤,到了年底,我有 A1 = 0.01x4 = 0.04 kg 溶解的岩石

二年级

第二年,我仍然有 4-(0.01x4)= 3.96 公斤第一年的未溶解岩石,我再次申请 4 公斤岩石。总的来说,我有 3.96x4 = 7.96 公斤的岩石。我会有 A2 = 0.01x7.96 = 0.0796 kg 第 2 年年底溶解的岩石 并且 A1 = 从第 1 年开始溶解的 0.04 kg 岩石

所以在第 2 年结束时,我总共溶解了 0.04 + 0.0796 = 0.1196 公斤的岩石

三年级

第 3 年初未溶解岩石的总量:4 kg(第 3 年施用)+ 3.96 kg(第 2 年施用)+ 3.96-(3.96x0.01) = 1 年施用的 3.92 kg。我总共有 4+3.96+3.92= 11.88 公斤未溶解的岩石。在第 3 年结束时,我将拥有 A3 = 0.01x11.88 = 0.1188 千克溶解岩石

第 3 年末溶解岩石总量: A3+A2+A1 = 0.1188+0.0796+0.04 = 0.2384 千克溶解岩石

R 数学 序列

评论


答:

2赞 G. Grothendieck 5/6/2022 #1

1) 如果 u[i] 和 d[i] 是 i 年末未溶解和溶解的岩石,如果我们想计算 n 年,那么:

n <- 3
u <- numeric(n)
u[1] <- 4
for(i in 2:n) u[i] <- (1-0.01) * u[i-1] + 4
u
## [1]  4.0000  7.9600 11.8804

d <- cumsum(0.01 * u)
d
## [1] 0.040000 0.119600 0.238404

2)我们可以像这样交替使用Reduce:

n <- 3
u <- Reduce(function(x, y) (1-0.01)*x+4, numeric(n-1), init = 4, acc = TRUE)
u
## [1]  4.0000  7.9600 11.8804

d <- cumsum(0.01 * u)
d
## [1] 0.040000 0.119600 0.238404

评论

0赞 Chris 5/7/2022
如果保留每年 1% 的规定,我认为您不希望 d 上的 cumsum。
1赞 G. Grothendieck 5/7/2022
这给出了与问题中相同的数字,因此我认为这是想要的。
0赞 Xav64 5/9/2022
@Chris 是的,这正是想要的,因为 1% 适用于整个
0赞 Chris 5/9/2022 #2

我的评论是关于对 47 时溶解了多少岩石的最终答案的影响:cumsum(0.01 * u)

n <- 47
u <- numeric(n)
u[1] <- 4
for(i in 2:n) u[i] <- (1-0.01) * u[i-1] + 4
u[47]
[1] 150.5898
d <- cumsum(0.01 * u)
d[47]
[1] 38.91606
d[47]/u[47]
[1] 0.2584242
# as against
d2 <- 0.01 * u
d2[47]
[1] 1.505898
d2[47]/u[47]
[1] 0.01

金矿堆里的硫酸,也许是水,也许是.dd2