我目前正在尝试编写一个函数,通过E= e21.44 * (e(8.74901^10−20 / (1.3806488*10−23 *T) )估计某些蜥蜴的能量消耗。方程中的T等于开尔文的温度。我知道,如果我插上20摄氏度的温度,这个函数应该给我大约0.829的输出。然而,当我运行这个函数(见下面)时,我得到了2.628622e-121。我相信这就是我所说的温度是如何从摄氏转变为开尔文的方式是不正确的,而且我目前被困在它上。
TempKelvin <- 273.15
Energy = function(TempKelvin = 273.15 {
exp(24.11) * exp(-8.74901*10^20 / (1.3806488*10^-23 * (T + TempKelvin)))
}
Energy(T = 28)发布于 2019-12-01 13:24:37
有几个问题:
Energy函数的调用使用T参数,但问题中定义的该函数没有T参数。T在R中的意思也是TRUE,使用不同的名称。除非被覆盖,否则在数值上下文中使用时,T将被解释为1。在R中,默认情况下,T+8等于9。请注意,由于答案取决于celsius和273.15,只有通过它们的和,我们才能得到使用273而不是像下面这样的273.15的效果:
celsius + 273
= (celsius - 0.15) + 273.15这就是传递函数20-0.15,而不是20,有效地使用20和273,而不是使用20和273.15。
Energy <- function(celsius) {
exp(21.44) * exp(-8.74901e−20 / (1.38064852e−23 * (celsius + 273.15)))
}
# match assumed answer (despite assumed answer being slightly wrong)
Energy(20 - 0.15)
## [1] 0.8289531
# correct answer
Energy(20)
## [1] 0.8381777https://stackoverflow.com/questions/59122768
复制相似问题