如何解决两个方程的对称欧拉恒等式
我的方程式是:
??^(??2)+??^(??3)+??^(??4)+??^(??1)= 0
在sympy中,我想使用Euler身份将其分为两个方程,一个方程包含实数,一个虚构。
?cos(?2)+?cos(?3)+?cos(?4)+?cos(?1)= 0
??sin(?2)+??sin(?3)+??sin(?4)+??sin(?1)= 0
到目前为止,我已经尝试过:
a,b,c,d = symbols("a b c d")
theta1,theta2,theta3,theta4 = symbols("theta1 theta2 theta3 theta4")
eq1 = Eq(a*exp(I*theta2) + b*exp(I*theta3) + c*exp(I*theta4) +d*exp(I*theta1),0)
eq1 = eq1.subs([(a,40),(b,120),(c,80),(d,100),(theta1,0),(theta2,40 * (pi.evalf()/180))])
lhs_real,lhs_img = eq1.lhs.as_real_imag()
rhs_real,rhs_img = eq1.rhs.as_real_imag()
eq2 = Eq(lhs_real,rhs_real)
eq3 = Eq(lhs_img,rhs_img)
但是我的eq2似乎包含实项和虚项。
−120cos( re (?3))sinh( im (?3))+ 120cos( re (?3))cosh( im (?3))− 80cos( re (?4))sinh( im (?4))+ 80cos( re (?4 ))cosh(即时通讯(?4))+ 130.641777724759 = 0
如何使用Sympy做到这一点?
我已经看过这个问题complex numbers in sympy: resolving Euler's Identity,但是sympy.re和sympy.im不适用于Sympy方程。
解决方法
首先,欢迎来到!
如果要将表达式分为实部和虚部,则只能使用实变量(real=True
)。您的例子可以改写为:
import sympy as sy
sy.init_printing()
a_r,b_r,c_r,d_r = sy.symbols('a_r,d_r',real=True)
a_i,b_i,c_i,d_i = sy.symbols('a_i,d_i',real=True)
th1,th2,th3,th4 = sy.symbols('theta_1,theta_2,theta_3,theta_4 ',real=True)
# complex numbers:
a,b = (a_r + sy.I*a_i),(a_r + sy.I*a_i)
c,d = (c_r + sy.I*c_i),(d_r + sy.I*d_i)
xpr0 = (a * sy.exp(sy.I*th2) + b * sy.exp(sy.I*th3) +
c * sy.exp(sy.I*th4) + d * sy.exp(sy.I*th1))
eq1 = sy.Eq(sy.re(xpr0),0)
# Gives: -aᵢ⋅sin(θ₂) + aᵣ⋅cos(θ₂) - bᵢ⋅sin(θ₃) + bᵣ⋅cos(θ₃) - cᵢ⋅sin(θ₄) + cᵣ⋅cos(θ₄) - dᵢ⋅sin(θ₁) + dᵣ⋅cos(θ₁) = 0
eq2 = sy.Eq(sy.im(xpr0),0)
# Gives aᵢ⋅cos(θ₂) + aᵣ⋅sin(θ₂) + bᵢ⋅cos(θ₃) + bᵣ⋅sin(θ₃) + cᵢ⋅cos(θ₄) + cᵣ⋅sin(θ₄) + dᵢ⋅cos(θ₁) + dᵣ⋅sin(θ₁) = 0
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。