Симпи - скалярное произведение и норма символьного вектора - PullRequest
1 голос
/ 19 марта 2019

Есть ли способ выразить символическое выражение, включающее векторы и операции над ними, без их оценки?

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|| ⎠
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...