我正在尝试使变量test
等于变量test2
。
从test2
获得的打印结果只是所需的(1-g1 g1*)
。
但是test
吐出(g1-1)(g1*-1)(x)(x*)
,其中x
是sqrt{(1- g1 g1*)/[(g1-1)(g1*-1)]}
从外观上看问题,我知道表达式应该抵消,但是我无法得到test
来简化共轭表达式。
尝试过sp.simplify,sp.together
import sympy as sp
def Lambdaj(gammaj):
step1 = sp.together(1 - sp.conjugate(gammaj)) * sp.sqrt((1 - gammaj * sp.conjugate(gammaj)) / ((1-gammaj) * (1 - sp.conjugate(gammaj))))
return step1
g1 = sp.symbols('g1')
test = sp.together(Lambdaj(g1) * sp.conjugate(Lambdaj(g1)))
print(test)
test2 = 1 - g1 * sp.conjugate(g1)
print(test2)
print(sp.together((1-g1)*(1-sp.conjugate(g1))))
答案 0 :(得分:0)
假设g1**2 < 1
是否公平?如果是这样,我们可以用仅包含这些值的表达式替换g1
,简化结果,然后重新替换原始的g1
:
>>> p = var('p',nonnegative=True)
>>> u=Eq(g1, p/(1+p)) # p in [0, 1)
>>> test.subs(*u.args).simplify().subs(p,solve(u,p)[0]).simplify()
1 - g1**2