从 0 积分到 r 中的一个变量

integrate from 0 to a variable in r

我想绘制 y 对 z,其中 y=(1+z)int_0^z((0.3(1+z')^3 +0.7)^-1/2)dz',

其中 int_0^z 仅表示从 0 到 z 的积分。 我想我应该先从0到z积分,然后用积分结果代入方程。这是我的代码:

integrand <- function(z1) {(0.3*(1+z1)^3+0.7)^-1/2}
integral<-integrate(integrand, lower = 0, upper = z)

但是出现这个错误:

Error: object 'any_number' not found

Error in integrate(integrand, lower = 0, upper = z) : object 'z' not found"

这里如何定义z

谢谢,

翡翠

我试试看

integrand <- function(z1) {(0.3*(1+z1)^3+0.7)^-1/2}

我们需要让integral成为z的函数,确保它只是returns积分的值,并且在z中向量化:

integral <- Vectorize(function(z) integrate(integrand, lower = 0, upper = z)$value)

现在可以测试了:

integral(1:2)
#[1] 0.3056435 0.4037815

和情节:

curve(integral, 0, 10, xname = "z")