Saya baru mengenal sympy, dan saya sedang bereksperimen dengan beberapa kode. Saya mencoba menerapkan yang berikut

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))

Saya berjuang untuk membuat sympy benar-benar melakukan integrasi, yang dibiarkan dibatalkan di luar penjumlahan. Saya dapat membuatnya bekerja hanya jika saya mengganti jumlah dan integralnya secara manual manually

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

Saya merasa masalahnya mungkin karena cara k didefinisikan, tetapi saya tidak tahu bagaimana melakukannya dengan benar.

0
tos1 9 April 2020, 14:02

1 menjawab

Jawaban Terbaik

Ini diperbaiki di sympy master sejak rilis terakhir (1.5).

Dengan 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 

Dengan tuan:

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