📅  最后修改于: 2023-12-03 15:04:22.609000             🧑  作者: Mango
scipy.integrate.romberg()
方法实现了龙贝格(Romburg)积分法。该方法可以用于计算包括求定积分、数值解微分方程等数学计算。
scipy.integrate.romberg(func, a, b, show=False, divmax=10, vec_func=False)
函数需要传入以下参数:
func
:被积函数。a
:积分区间的下限。b
:积分区间的上限。show
:当值为True时,则打印龙贝格积分的每个步骤。divmax
:积分区间的最大划分数。vec_func
:当值为True时,被积函数接受数组并返回数组。该方法返回定积分的计算结果。
下面是一个计算定积分的例子。假设需要计算 $sin(x)$ 在 $0$ 和 $\pi$ 之间的积分。
from scipy.integrate import romberg
from math import sin, pi
def func(x):
return sin(x)
result = romberg(func, 0, pi)
print(result)
输出:
2.00000000011
当然,开启 show
功能可以看到每个步骤的计算过程。例如:
result = romberg(func, 0, pi, show=True)
输出:
Romberg integration of <function vfunc at 0x7f3c1da293b0> from [0, pi]
Steps StepSize Results
1 3.141593 2.094395
2 1.570796 2.006545
4 0.785398 2.000438
8 0.392699 2.000043
16 0.196350 2.000002
32 0.098175 2.000000
64 0.049087 2.000000
128 0.024544 2.000000
256 0.012272 2.000000
512 0.006136 2.000000
1024 0.003068 2.000000
2048 0.001534 2.000000
4096 0.000767 2.000000
8192 0.000384 2.000000
16384 0.000192 2.000000
Out[6]: 2.0
注意:如果结果显示出e-11等极小值,则意味着结果已经收敛,并非一个 bug。