小编cof*_*pls的帖子

在python中使用相同的运算符添加lambda函数

我有一个相当冗长的等式,我需要使用scipy.integrate.quad进行整合,并想知道是否有办法将lambda函数相互添加.我的想法是这样的

y = lambda u: u**(-2) + 8
x = lambda u: numpy.exp(-u)
f = y + x
int = scipy.integrate.quad(f, 0, numpy.inf)
Run Code Online (Sandbox Code Playgroud)

我真正使用的方程远比我在这里提到的方程复杂得多,因此为了便于阅读,将方程式分解为更小,更易于管理的部分将是有用的.

有没有办法处理lambda函数?或者也许是另一种甚至不需要lambda函数但会提供相同输出的方法?

python numpy scipy

17
推荐指数
3
解决办法
2441
查看次数

集成在Python中返回数组的函数

我有很多要集成的数据,并希望找到一种只用矩阵来完成所有操作的方法,并且愿意在准确性方面做出妥协以提高性能.我的想法是这样的:

import numpy
import scipy

a = np.array([1,2,3])

def func(x):
    return x**2 + x

def func2(x):
    global a
    return a*x

def integrand(x):
    return func(x)*func2(x)

integrated = quad(integrand, 0, 1)
Run Code Online (Sandbox Code Playgroud)

所以我试图将每个元素集成到数组中integrand.

我知道有可能使用numpy.vectorize()这样的:

integrated = numpy.vectorize(scipy.integrate.quad)(integrand, 0, 1)
Run Code Online (Sandbox Code Playgroud)

但我无法做到这一点.有没有办法在python中执行此操作?

那么现在我学到了更多的python我可以回答这个问题,如果有人碰巧稳定在它上面并且有同样的问题.这样做的方法是编写函数,好像它们将采用标量值,而不是向量作为输入.所以按照上面的代码,我们会有类似的东西

import numpy as np
import scipy.integrate.quad

a = np.array([1, 2, 3]) # arbitrary array, can be any size

def func(x):
    return x**2 + x

def func2(x, a):
    return a*x

def integrand(x, a):
    return func(x)*func2(x, a)

def integrated(a): …
Run Code Online (Sandbox Code Playgroud)

python numpy scipy

6
推荐指数
1
解决办法
4270
查看次数

标签 统计

numpy ×2

python ×2

scipy ×2