这是我的代码的摘要。
from scipy.integrate import quad
from numpy import exp, log, inf
def f(x):
return log(log(x))/(x*log(x**2))
val, err = quad(f, exp(), exp(2))
val
我知道代码的结构正确,但是我无法正确格式化exp()
。我究竟做错了什么?该功能应输出0.069324。提前感谢您的帮助!
以下是WolfRamAlpha的答案:
答案 0 :(得分:1)
numpy的exp是一个函数,而不是数字。您要
exp(1) = e
exp(2) = e**2
或者也许
import numpy as np
np.e
np.e**2
作为您的集成限制。
说,我明白了
from numpy import exp, log
def f(x):
return log(log(x))/(x*log(x**2))
val, err = quad(f, exp(1), exp(2))
val
返回0.12011325347955035
这绝对是该积分的价值。您可以更改变量以验证
val,err = quad(lambda x: log(x)/(2*x),1,2)
给出相同的结果
答案 1 :(得分:0)
只需将ggplot()
替换为p <- ggplot(data, aes(x=data$Log.MF.mass, y=data$log.FM.lifespan, group=data$Mating.system)) +
geom_point(aes(shape=data$Mating.system, color=data$Mating.system))
p <- p+labs(x="Log MF body mass", y="Log FM longevity", color="Mating system")
,就可以了。顺便说一句,一旦找出正确的功能,就可以使用一个线性lambda函数。您的代码非常好。我想到了分享另一种可能的方法来实现同一件事。
exp()