python中积分怎么表示_python中的数值积分与符号积分

本文探讨了在Python中如何进行数值积分和符号积分。针对含有符号变量的复杂表达式,介绍了使用SymPy库进行符号积分的方法,并指出不能对带有符号变量的函数直接进行数值积分。同时,建议在需要数值积分时,可以利用SciPy的quad函数,通过分别积分实部和虚部来处理复数被积函数。最后,展示了通过matplotlib绘制积分结果的例子。
摘要由CSDN通过智能技术生成

旁白:当你创建一个符号表达式时,保持它的象征性。不要混合使用真正的浮点np.pi和复杂的浮点1j,而是使用SymPy的pi和{}。在from sympy import exp, pi, I, besselj, symbols

x, r = symbols('x r')

integrand = exp(-x**2) * exp(pi*I*(-x)) * besselj(0, r*x) * x

但是是的,它看起来并不能把贝塞尔函数的乘积与exp(-x**2) * exp(pi*I*(-x))积分。当r被1代替时,这种情况已经发生了,所以r的符号性质与此无关。在

直接回答您的问题:Is there any way of performing numerical integration with symbolic variables?

没有,就像没有干水一样。这在术语上是矛盾的。在Is the only other alternative defining the values of r a priori and finding the integral for each one of them?

是的。可以通过SymPy(称为mpmath)完成:

^{pr2}$

考虑到这个函数的值很复杂,我们还不太清楚如何绘制这个函数。也许你是想画出强度的绝对值?在

总之,与sypy/mpmath(纯Python)的集成对于绘图来说太慢了。最好使用SciPy的quad进行集成。它不处理复被积函数,所以我把实部和复部分别积分。在from scipy.integrate import quad

from scipy.special import jn

integrand = lambda x, r: np.ex

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>