2
为什么Matlab的整体性能优于Scipy?
对于Matlab处理数值积分与Scipy的方式,我感到有些沮丧。我在下面的测试代码中观察到以下差异: Matlab的版本平均运行速度比我的python 快24倍! Matlab的版本能够在没有警告的情况下计算积分,而python返回 nan+nanj 关于上述两点,我该怎么做才能确保在python中获得相同的性能?根据文档,这两种方法都应使用“全局自适应正交”来近似积分。 下面是这两个版本中的代码(尽管python要求创建一个积分函数以便它可以处理复杂的被积数,但两者非常相似。) 蟒蛇 import numpy as np from scipy import integrate import time def integral(integrand, a, b, arg): def real_func(x,arg): return np.real(integrand(x,arg)) def imag_func(x,arg): return np.imag(integrand(x,arg)) real_integral = integrate.quad(real_func, a, b, args=(arg)) imag_integral = integrate.quad(imag_func, a, b, args=(arg)) return real_integral[0] + 1j*imag_integral[0] vintegral = np.vectorize(integral) …