В этой статье я хотел бы рассказать зачем программистам линейная алгебра и геометрия?
Итак, сначала вспомним\узнаем что такое линейная алгебра?
Линейная алгебра — важная в приложениях часть алгебры, изучающая векторы, векторные, или линейные пространства, линейные отображения и системы линейных уравнений. Векторные пространства встречаются в математике и её приложениях повсеместно. Линейная алгебра широко используется в абстрактной алгебре и функциональном анализе и находит многочисленные приложения в естественных науках.
Применяется довольно широко в 2-х и 3-х мерной компьютерной графике, соответственно в разработке игр, симуляторов и при визуализации данных. Например, вам надо повернуть один треугольник в 3-х мерном пространстве(допустим в игре), у вас есть координаты вершин треугольника, угл и направление поворота. Какие будут вершины у повернутого треугольника? Эта одна из самых простых задач, а ведь может понадобиться узнать, пересекается ли треугольник с каким-то объектом? Выходит ли он насквозь? На какой угол он отскакивает от поверхности и тп. Причем все это надо считать очень бысто.
Вот оглавление книги “Mathematics for Game Developers” от Christopher Tremblay:
Как видите, линейной алгебры много: векторы, матрицы, трансформации, кривые, оптимизации при векторных вычислениях и тп.
Основы линейной алгебры требуются в искусственном интеллекте и машинном обучении(метод опорных векторов), аэро и космо проектах(траектории), гео-информационных проектах(GPS), при решений задач по физике и тп.