【问题标题】:sympy not integrating properly with cosine?sympy 没有与余弦正确集成?
【发布时间】:2020-04-22 15:45:48
【问题描述】:

我正在尝试与 sympy 集成,但与 numpy 进行双重检查。对于 n=1,此积分的正确答案为零,这是 numpy 版本产生的。但是应该有相同答案的 sympy 版本没有。有人可以告诉我 sympy 版本有什么问题吗?

import numpy as np
import sympy as sp


#*******************NUMPY ATTEMPT********************************************
T = 2*np.pi
n = 1 #integer
F = lambda t: t/(2*np.pi)

wT = 2*np.pi/T #frequency

def F_An(t):
    return F(t)*np.cos(n*wT*t)
#F = lambda t: (t/(2*np.pi))*np.cos(n*wT*t)
An = quad(F_An,0,T)[0]
An = (2/T)*An
print('An numpy:', round(An,3))

#*******************SYMPY ATTEMPT********************************************
T = 2*sp.pi
n = sp.Symbol('n',integer=True,positive=True)
t = sp.symbols('t')
F = t/(2*sp.pi)

wT = 2*sp.pi/T #frequency

F_An=F*sp.cos(n*wT*t)
An = sp.integrate(F_An,t)
An = (2/T)*An
An=An.subs(t,T)
An=An.subs(n,1)
print('An sympy:', An)

带输出:

An numpy: 0.0
An sympy: 1/(2*pi**2)

【问题讨论】:

    标签: python integration sympy


    【解决方案1】:

    您在调用集成时没有给出限制,也没有同时使用这两个限制。在 quad 中,您从 0 积分到 2*pi

    In [17]: F_An.integrate(t)                                                                                                        
    Out[17]: 
    t⋅sin(n⋅t)   cos(n⋅t)
    ────────── + ────────
        n            2   
                    n    
    ─────────────────────
             2⋅π         
    
    In [18]: F_An.integrate(t).subs(t, 2*pi)                                                                                          
    Out[18]: 
      1   
    ──────
         2
    2⋅π⋅n 
    
    In [19]: F_An.integrate(t).subs(t, 2*pi) - F_An.integrate(t).subs(t, 0)                                                           
    Out[19]: 0
    
    In [20]: F_An.integrate((t, 0, 2*pi))                                                                                             
    Out[20]: 0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-21
      • 1970-01-01
      • 2017-12-12
      • 1970-01-01
      • 2016-06-16
      • 2017-10-06
      相关资源
      最近更新 更多