所以我有一个函数wrt $ x $ ,它实际上是对wrt $ t $ < / span>。所以我做了一个嵌套函数,但是一旦我尝试优化它,我就会遇到一个烦人的错误。
我认为这是因为积分需要假设 $ x> 5/2 $ 才能进行评估。如何假设R中的参数?这是我的代码和错误:
g = function(x){
f = function(t) {exp(-((x*t)^3))^(1/3)*(1-(1-exp(-((10*x/(2*x-5))*t)^(1/3)))^2)}
R = integrate(f,0,Inf)
}
g=Vectorize(g)
optimize(g, c(0.1, 10), tol = 0.0001)
错误:
Error in optimize(g, c(0.1, 10), tol = 1e-04) :
invalid function value in 'optimize'
使用Maple进行操作要容易得多。只需[整数]假设 $ x> 5/2 $ ,我的答案就是 $ x = 5.258565455 $ ,这是正确的。
非常感谢您的帮助。
答案 0 :(得分:1)
R中的integrate()
函数为您提供元素列表。从逻辑上讲,您只需要积分的值,即
g <- function (x) {
f <- function (t) exp(-((x*t)^3))^(1/3)*(1-(1-exp(-((10*x/(2*x-5))*t)^(1/3)))^2)
integrate(f, 0, Inf)$value
}
optimize(g, c(0.1, 10), tol = 0.0001)