首页 > 解决方案 > python sympy 如何简化我知道某个变量是奇整数的表达式

问题描述

例如,给定表达式(3*cos(pi*n/2)+2*sin(pi*n/2))/n**2和 n 是正奇数(即 1,3,5,...)的知识,表达式可以简化为,2*(-1)**((n-1)/2)/n**2因为cos(pi*n/2)项都归零,sin(pi*n/2)项归 -1或+1。有什么方法可以让 sympy 认识到这一事实并进行简化?

标签: pythonsympysymbolic-mathsimplification

解决方案


您可以声明nodd

In [72]: n = Symbol('n', odd=True)                                                                                                             

In [73]: (3*cos(pi*n/2)+2*sin(pi*n/2))/n**2                                                                                                    
Out[73]: 
      n   1
      ─ - ─
      2   2
2⋅(-1)     
───────────
      2    
     n 

推荐阅读