2010年11月28日 星期日 15:51
用sympy可以算:
In [102]: from sympy import *
In [103]: w=symbols("w")
In [105]: integrate(exp(-w*I), (w, -pi, pi))
Out[105]: 0
2010年11月28日 星期日 19:45
数值计算的话,分成实数部分和虚数部分,分别积分,注意使用支持复数计算的数学函数:
In [107]: from cmath import exp, pi
In [109]: integrate.quad(lambda w:exp(-1j*w).imag, -pi, pi)
Out[109]: (0.0, 4.3998892617846002e-14)
In [110]: integrate.quad(lambda w:exp(-1j*w).real, -pi, pi)
Out[110]: (2.6159013735064738e-16, 4.4717370932388282e-14)
因此答案是0.0+1j*2.6159013735064738e-16,约等于0
2010年11月29日 星期一 19:36
不好意思,RY老师,有点不明白。
为什么分别对exp(-1j*w)的实部和虚部积分,结果都有两项,
而最后的结果似乎又取的是Out[109]和Out[110]行的第一个数?
2010年11月29日 星期一 19:42
quad结果的第一个数是积分结果,第二个是最大误差。
2010年11月29日 星期一 19:45
也就是说对“e^(-jw) (积分区间:-pi ~ pi;积分变量:w)”,求定积分最后的结果只是约等于0。
谢谢RY老师!
2010年11月29日 星期一 19:50
数值积分的结果是约等于0,实际上是应该精确等于0
2010年11月29日 星期一 19:52
哦,对的,呵呵,居然把积分的实际意义忘了。
Zeuux © 2024
京ICP备05028076号