#python #manim
Вопрос:
при применении линейного преобразования с матрицей [3, 0],[0, 2], шляпа i должна удлиниться в 3 раза по своей длине, а шляпа j должна удлиниться в 2 раза по своей длине, верно? i hat не должен двигаться в направлении j hat, потому что вторая координата равна нулю. Но когда я визуализировал анимацию, я получил следующее: см. Изображение
Посмотрите, вместо того, чтобы i hat (зеленый) перемещался из (2, -1) в (6,-3), он немного переместился в направлении j hat?
Почему это так? Может кто-нибудь мне объяснить?
Комментарии:
1. @j1-lee Но вы видели это
2. @j1-lee я понял. Это была проблема не с моей линейной алгеброй, а с manim. На самом деле, когда мы применяем=[[2 ,-1],[-1 , 3]] а потом Б= [[3 , 0],[0 , 2]], мы ожидаем увидеть результирующую матрицу BA= [[6 , -2],[-3 , 6]]. Но manim на самом деле показывает AB .
3. @j1-lee Но поскольку A и B здесь являются матрицами, составной матрицей является BA. Его подобные функции f(g(x)) : f(x) применяются после g (x). Порядок равен g (x), затем f (x). То же самое для матриц
4. @j1-lee Спасибо, я делаю видео, объясняющее примыкания как линейные преобразования.
5. @j1-ли А=[[2 ,-1],[-1 , 3]] состоит в том, чтобы переместить i шляпу в (2,-1) и j шляпу в (-1,3). Итак, в некотором смысле я перемещаю все векторное пространство, а не только один вектор. Итак, каждый вектор в этом векторном пространстве будет преобразован. Вы смотрели это видео ? Он визуализирует все эти преобразования.
Ответ №1:
Когда мы «применяем» матрицу в manim with self.apply_matrix
, на самом деле это не применение матрицы.
Например, если мы self.apply_matrix(A)
и тогда self.apply_matrix(B)
, то мы должны получить матрицу BA, которая является результатом применения B после A.
Но то, что мы на самом деле получаем, — это AB.
А поскольку умножение матриц не является коммутативным, это разные вещи. Вот почему мы получаем неправильную трансформацию.
Не знаю, почему manim ведет себя таким образом.