gpt4 book ai didi

python - 积分可能是发散的,或缓慢收敛的

转载 作者:行者123 更新时间:2023-12-05 01:14:17 25 4
gpt4 key购买 nike

from scipy import integrate
import numpy as np
from mpmath import coth

DvDc = 6.5
dens = 5.65
Vs = 4.6e3
a = 3.3e-9
w0 = np.sqrt(2)*Vs/a
T = 50
kb = 1.38064852e-5 # in eV`
j0 = (DvDc)**2 / ((2*np.pi)**2 *dens*Vs**5)

def func(x):
return x*np.exp(-(x/w0)**2)*coth(x/(2*kb*T))
S = j0*integrate.quad(func, 0, np.inf)[0]
print(S)

您好,所以我没有使用数值积分的经验,但我想知道是否有人可以提供帮助。在这里,我定义了一些变量,并且有一个我想要集成的函数。但是我回来了“积分可能是发散的,或者是慢慢收敛的。”尽管我在 coth 的分母中添加了内容,但几乎得到了相同的结果。

有谁知道我是否犯了错误,或者我只是无法做到这一点。

谢谢!

最佳答案

你的被积函数有一些困难。首先,虽然功能没有发散,但对于集成方案来说可能看起来很像。只需绘制它:

enter image description here

那是因为你的 w01971327996035.2234 ,所以 exp(-x**2)抑制只发生在非常最右边。使用变量替换 y = x / w0做对了。二、函数未定义在x=0 (因为你除以 tanh)但可以用 2 * kb * T 连续扩展.

from scipy import integrate
import numpy as np
import matplotlib.pyplot as plt

DvDc = 6.5
dens = 5.65
Vs = 4.6e3
a = 3.3e-9
w0 = np.sqrt(2) * Vs / a
T = 50
kb = 1.38064852e-5 # in eV`
j0 = (DvDc) ** 2 / ((2 * np.pi) ** 2 * dens * Vs ** 5)


def func(x):
return x * np.exp(-((x / w0) ** 2)) / np.tanh(x / (2 * kb * T))


def func2(y):
return np.where(
y > 0,
y * w0 * np.exp(-(y ** 2)) / np.tanh(y * w0 / (2 * kb * T)),
2 * kb * T
)

val, err = integrate.quad(func2, 0, np.inf)
val *= w0 # y = x / w0 => dx = dy * w0
print(val)
1.943067033976125e+24

func2 的情节:

enter image description here

关于python - 积分可能是发散的,或缓慢收敛的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58922657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com