如何计算依赖于另一个函数积分的函数的积分

2024-06-17 06:56:28 发布

您现在位置:Python中文网/ 问答频道 /正文

from scipy.integrate import quad
from math import sqrt
f = lambda x, a: a**2 * x # here a is a constant.
F = lambda x, a: quad(f, 0, x, args=(a,))[0]
rho = 5

我需要计算

1/sqrt(F(rho,a)-F(s,a)), 

s是从0(下限)到rho(上限)。你知道吗


Tags: lambdafromimporthereisargsmathscipy
2条回答

我认为你的问题缺少了一些信息(例如关于a)从你以前的文章How to use `scipy.integrate.quad` to compute integral of a function which depends on the integral of another function你可能应该通过编辑你的问题文本来解决。你知道吗


关于当前的问题:为什么不定义一个新函数g,然后引用另一个函数并以与F相同的方式集成呢?你知道吗

from scipy.integrate import quad
from math import sqrt

f = lambda x, a: a**2 * x
F = lambda x, a: quad(f, 0, x, args=(a,))[0]

rho = 5
g = lambda x, a: 1 / sqrt(F(rho, a) - F(x, a))

I = quad(g, 0, rho, args=(4,))
print(I)

这张照片:

(0.5553603672694568, 1.9614421198355103e-11)

所有积分都可以象征性地计算,不需要quadF

def F(x):
    return a**2 * x**2 / 2

以及

def g(x):
    1 / sqrt(a**2 / 2 * (rho**2 - s**2))

val = quad(g, 0, rho)

pi / sqrt(2) / a

(独立于rho)。你知道吗


此外,您可以简单地在函数之外定义a。(我一直不明白为什么quad必须有一个args参数。)

from scipy.integrate import quad
from math import sqrt

a = 3.14

f = lambda x: a**2 * x
F = lambda x: quad(f, 0, x, args=(a,))[0]
rho = 5

相关问题 更多 >