提问人:Xav64 提问时间:5/6/2022 最后编辑:Xav64 更新时间:5/9/2022 访问量:87
如何在 R 中求解数学序列?
How to solve a math sequence in R?
问:
编辑:我想不出更精确的问题标题,但请让我知道我可以使用什么更好的标题,谢谢!
我有一个“基本”数学问题,我无法将其转换为 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 千克溶解岩石
答:
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
评论
我的评论是关于对 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
金矿堆里的硫酸,也许是水,也许是.d
d2
下一个:求解初始值相差的递归关系
评论