from sympy import *
nx, ny, nz = symbols('nx ny nz')
ax, ay, az = symbols('ax ay az')
bx, by, bz = symbols('bx by bz')
e1 = Eq(ax * nx + ay * ny + az * nz, 0)
e2 = Eq(bx * nx + by * ny + bz * nz, 0)
e3 = Eq(nx**2 + ny**2 + nz**2, 1)
pprint(e1)
pprint(e2)
e4 = e1 * bx
pprint(e4)
e5 = e2 * ax
pprint(e5)
e6 = e4 - e5
pprint(e6)
输出:
ax⋅nx + ay⋅ny + az⋅nz = 0
bx⋅nx + by⋅ny + bz⋅nz = 0
bx⋅(ax⋅nx + ay⋅ny + az⋅nz = 0)
ax⋅(bx⋅nx + by⋅ny + bz⋅nz = 0)
-ax⋅(bx⋅nx + by⋅ny + bz⋅nz = 0) + bx⋅(ax⋅nx + ay⋅ny + az⋅nz = 0)
有关
e4 = e1 * bx
pprint(e4)
我原本期望输出类似于这个等式
bx⋅ax⋅nx + bx⋅ay⋅ny + bx⋅az⋅nz = 0
此外,没有任何操作似乎真正适用于乘法方程。例如,在e6.simplify()
中,我原本预计输出将失去第一个任期。
如何在方程式上正确使用 - ,+,*,/等操作?
答案 0 :(得分:2)
您可以分别通过调用lhs
,rhs
属性来操纵等式的左侧或右侧。例如,
e4 = Eq((bx * e1.lhs).expand(), 0)
pprint(e4)
ax⋅bx⋅nx + ay⋅bx⋅ny + az⋅bx⋅nz = 0