3
我的主要目標是在表述如查明形式sympy - 如何在擴展時添加指數?
exp(1j*k*r)
的指數的前係數:由第一膨脹,然後使用在sympy的係數_工具
(z1*exp(1j*k1*r1) + z2*exp(1j*k2*r2) + c.c.)**2
。
問題是,我不知道如何擴展,以便我們可以相加收集指數。我想看看這個詞:
exp(1j*(k1*r1+k2*r2))
但只有這種出現條件:
exp(1j*k1*r1)*exp(1j*k2*r2)
這裏是我的代碼:
from sympy import *
u = Symbol('u')
r1,r2 = symbols('r1 r2', real = True)
k1,k2 = symbols('k1 k2', real = True)
z1,z2 = symbols('z1 z2')
uu = z1*exp(1j*k1*r1)+ z2*exp(1j*k1*r2)
u = uu + uu.conjugate()
v = expand(u**2)
print(v)
我想不出該怎麼辦它。我嘗試過使用簡化,或者把它看作一個具有象徵係數的多項式,但是這並不起作用。
更一般地說,擴展然後使用coeff方法是提取指數前面係數的最好方法?有沒有自動化的工具,已經使它?
謝謝你的幫助!
編輯:
我使用powsimp用的碼本部分還嘗試:
w = powsimp(expand(u**2))
print(w.coeff(exp(1j*(k1*r1 + k2*r2))))
它返回0,因爲我們只得到
exp(1j*k1*r1 + 1j*k2*r2)
但應用係數_當它不是足夠方法來提取指數1j *(k1 * r1 + k2 * r2)。