首页 > 解决方案 > 求和的 sympy 积分

问题描述

我是 sympy 的新手,我正在尝试一些代码。我试图实现以下

from sympy import *
F = Function('F')
domega = symbols('\Delta\omega', real = True , positive=True,nonzero=True)
omega = symbols('omega', real = True , positive=True,nonzero=True)
T = symbols('T', real = True , positive=True,nonzero=True)
N = symbols('N', integer = True, positive=True ,nonzero=True)
k = symbols('k', integer = True ,positive=True )
t = symbols('t', real = True, positive=True)

T = 2 * pi / N / domega

SF =  Sum(F(domega*k) * cos(t*domega*k),(k,0,N) )
integrate(SF,(t,0,T))

我正在努力让 sympy 实际执行集成,这在求和之外未完成。只有当我手动切换总和和积分时,我才能让它工作

Sum( integrate(F(domega*k) * cos(t*domega*k) ,(t,0,T)),(k,0,N) )

我觉得问题可能是由于 k 的定义方式造成的,但我无法弄清楚如何正确地做到这一点。

标签: pythonsympy

解决方案


自上一个版本(1.5)以来,这已在 sympy master 中修复。

1.5:

   ...: integrate(SF,(t,0,T))                                                                                                     
Out[1]: 
     2⋅π                                                       
──────────────                                                 
N⋅\Delta\omega                                                 
      ⌠                                                        
      ⎮          N                                             
      ⎮         ___                                            
      ⎮         ╲                                              
      ⎮          ╲                                             
      ⎮          ╱   F(\Delta\omega⋅k)⋅cos(\Delta\omega⋅k⋅t) dt
      ⎮         ╱                                              
      ⎮         ‾‾‾                                            
      ⎮        k = 0                                           
      ⌡                                                        
      0 

与主人:

   ...: integrate(SF,(t,0,T))                                                                                                     
Out[1]: 
  N                               
_____                             
╲                                 
 ╲                                
  ╲                        ⎛2⋅π⋅k⎞
   ╲  F(\Delta\omega⋅k)⋅sin⎜─────⎟
   ╱                       ⎝  N  ⎠
  ╱   ────────────────────────────
 ╱           \Delta\omega⋅k       
╱                                 
‾‾‾‾‾                             
k = 0  

推荐阅读