Всем привет! Я постоянно всем рассказываю, что математика - это язык технологий и сейчас я хочу вам рассказать о своих случаях когда мне пригодилась именно та самая "вышка", которую мало кто любил в универе:)
Буду приводить темы по математике и конкретные случаи применения в рабочей сфере. Поехали!
1. Векторы. Да, обычные векторы. Я если честно слабо понимал прикладное назначение векторов пока не столкнулся с первым опытом программирование для Revit на языке С#. Мне было максимально непонятно как может отрезок, который определяет направление задаваться одной точкой😊 даже в Revit API вектора и точки — это одинаковый класс XYZ. Я вам сейчас нарисую от руки маленькую иллюстрацию. У нас есть 2 точки: [2,3] и [1,1]. Вектор — это разница между двумя точками, значит он равен [1,2]. Если провести отрезок из начала координат до точки [1,2] то мы и получим направление от первой точки до второй. Что мне и пришлось делать, когда мне нужно было задать семейству Revit вектор перемещения. Многим покажется это слишком лёгким, но 6 лет назад мне было дико осознавать, что какое-то векторы мне понадобятся в работе.
2. Скалярное произведение векторов. Раз мы начали с векторов, то вот вам ещё одно страшное название. По факту это просто число равное сумме перемноженных координат точки. Типа для точек [2,3] и [1,1] оно равно 2*1+3*1=5. Скалярное произведение называют «Dot Product».
Понадобилось оно мне, когда я писал метод, который определяет расстояние от точки до плоскости по направлению нормали, т.е. длину луча проекции точки на плоскость.
3. Плоскости. Часто очень приходилось создавать плоскости. Все эти правила, что плоскость можно задавать минимум тремя точками, не лежащими на одной прямой («Табурет с тремя ножками никогда не шатается» – лектор по математике), что через две пересекающиеся прямые можно провести только одну плоскость и т.д. мне пригодились в задачах группирования точек и назначения принадлежности их объектам. Например, как узнать, что часть точек из огромного массива образует очертание трубопровода? Прежде чем подставлять значения точек в уравнение окружности нужно понять лежат ли она на одной плоскости. Для этого нам придётся построить плоскость, определить нормаль, определить базовую точку плоскости, найти скалярное произведение тем самым найдя расстояние других точек до данной плоскости и заниматься группированием. Прям целая наука😊
4. Интегралы. Когда какое-то устройство работает в течении заданного времени и потребляет какое-то количество энергии, то получается график. Вот если мы фиксировали потребление каждую секунду, то как найти общее потребление? Нужно просто найти площадь фигуры ограниченной кривой графика, а это двойной интеграл. Если нужно найти объём пространственной фигуры, ограниченной заданными кривыми, то нужно посчитать тройной интеграл. Имеет смысл только тогда, когда у вас есть уравнение графика функции. Либо можно посчитать полиномиальную регрессию для массива точек и затем посчитать двойной интеграл. Всё зависит от ситуации.
5. Тригонометрия. Тут даже ничего писать не буду, она почти в каждом сложном семействе Revit.
6. Логарифмы. Тоже, наверное, смысла расписывать нет, ибо они иногда встречаются в расчётных параметрах инженерных систем. Например «Средняя логарифмическая температура». Revit не умеет вычислять натуральный логарифм и нужно знать как переводиться десятичные логарифмы в натуральные.
Подведём итоги. Я считаю, что в сфере, которая отвечает за сбор и обработку данных, нечего делать без базовых знаний математики. Математика — это букварь жизни. Это язык физики и химии. И иногда даже самые начальные уровни высшей математики помогают мне экономить сотни часов трудозатрат в моих проектах😉