如何在集成函数中使用exp()?

时间:2018-08-01 23:45:11

标签: python python-3.x numpy scipy numerical-integration

这是我的代码的摘要。

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的答案:

equation and result

2 个答案:

答案 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()