Есть ли способ выразить символическое выражение, включающее векторы и операции над ними, без их оценки?
from sympy import symbols, acos, MatrixSymbol, Matrix
rA = MatrixSymbol("r^A", 2, 1)
rB = MatrixSymbol("r^B", 2, 1)
rA, rB = Matrix(rA), Matrix(rB) # Basically I want to skip this step
acos((rA.dot(rB)) / rA.norm())
Это вычислит выражение:
⎛r_00__A⋅r_00__B + r_10__A⋅r_10__B ⎞
acos⎜─────────────────────────────────⎟
⎜ _________________________ ⎟
⎜ ╱ 2 2 ⎟
⎝ ╲╱ │r_00__A│ + │r_10__A│ ⎠
Но вместо этого яхотел бы, чтобы он оценивался примерно так, но при этом мог бы заменить символические векторы в дальнейшем.
⎛ r_A⋅r_B ⎞
acos⎜─────────⎟
⎝ ||r_A|| ⎠