симпатия: учитывая символы u, v, w, как мне сказать, что u*u v*v w*w равно 1?

#sympy

Вопрос:

У меня есть 3D-единичный вектор с компонентами (v1, v2, v3) .

Я проделываю некоторые манипуляции и получаю эту матрицу (это матрица 2×2, если вы ее не поняли).:

 >>> Q
⎡              ⎛        _________________⎞                            ⎛        _________________⎞            ⎤
⎢              ⎜       ╱   2     2     2 ⎟                            ⎜       ╱   2     2     2 ⎟            ⎥
⎢            ⅈ⋅⎝v₃ - ╲╱  v₁    v₂    v₃  ⎠                          ⅈ⋅⎝v₃   ╲╱  v₁    v₂    v₃  ⎠            ⎥
⎢─────────────────────────────────────────────────────  ─────────────────────────────────────────────────────⎥
⎢                   __________________________________                     __________________________________⎥
⎢                  ╱                            2                         ╱                            2     ⎥
⎢                 ╱  │        _________________│                         ╱  │        _________________│      ⎥
⎢                ╱   │       ╱   2     2     2 │                        ╱   │       ╱   2     2     2 │      ⎥
⎢               ╱    │v₃ - ╲╱  v₁    v₂    v₃  │                       ╱    │v₃   ╲╱  v₁    v₂    v₃  │      ⎥
⎢(ⅈ⋅v₁ - v₂)⋅  ╱     │─────────────────────────│    1   (ⅈ⋅v₁ - v₂)⋅  ╱     │─────────────────────────│    1 ⎥
⎢            ╲╱      │        ⅈ⋅v₁ - v₂        │                    ╲╱      │        ⅈ⋅v₁ - v₂        │      ⎥
⎢                                                                                                            ⎥
⎢                          1                                                      1                          ⎥
⎢      ─────────────────────────────────────────              ─────────────────────────────────────────      ⎥
⎢             __________________________________                     __________________________________      ⎥
⎢            ╱                            2                         ╱                            2           ⎥
⎢           ╱  │        _________________│                         ╱  │        _________________│            ⎥
⎢          ╱   │       ╱   2     2     2 │                        ╱   │       ╱   2     2     2 │            ⎥
⎢         ╱    │v₃ - ╲╱  v₁    v₂    v₃  │                       ╱    │v₃   ╲╱  v₁    v₂    v₃  │            ⎥
⎢        ╱     │─────────────────────────│    1                 ╱     │─────────────────────────│    1       ⎥
⎣      ╲╱      │        ⅈ⋅v₁ - v₂        │                    ╲╱      │        ⅈ⋅v₁ - v₂        │            ⎦
 

Как мне сказать sympy, что, поскольку я имею дело с единичным вектором v1*v1 v2*v2 v3*v3 , он равен 1 , и это упростит для меня результат?

Комментарии:

1. Ты пробовал Q.subs(v1*v1 v2*v2 v3*v3, 1) ?

2. это работает. можете ли вы опубликовать его в качестве ответа?

Ответ №1:

В простых случаях, подобных этому, вы можете использовать Q.subs(v1*v1 v2*v2 v3*v3, 1) .