Разница между вектором в математике и программированию

Возможно, этот вопрос лучше подходит в математическом разделе сайта, но я думаю, что stackoverflow тоже подходит. В математике вектор имеет положение и направление, но в программировании вектор обычно определяется как:

Vector v (3, 1, 5);

Где направление и величина? Для меня это точка, а не вектор... Так что же дает? Вероятно, я не получаю что-то, поэтому, если кто-нибудь сможет объяснить это мне, это будет очень признательно.

Ответ 1

Если мы работаем в декартовых координатах и ​​предположим, что (0,0,0) является началом, то точку p=(3,1,5) можно записать в виде

enter image description here

где i, j и k - единичные векторы в направлениях x, y и z. Для удобства единичные векторы отбрасываются из программных конструкций.

Величина вектора

enter image description here

и его косинусы направления

enter image description here

соответственно, оба из которых могут выполняться программно. Вы также можете использовать точечные продукты и кросс-продукты, о которых я уверен, что вы знаете. Таким образом, использование согласуется между программированием и математикой. Разница в обозначениях в основном объясняется удобством.

Однако, поскольку указал Томас, в программировании также часто определяется вектор строк или объектов, которые на самом деле не имеют математического значения. Вы можете рассматривать такие векторы как одномерный массив или список элементов, к которым можно легко получить доступ или легко манипулировать индексацией.

Ответ 2

В математике легко представить вектор точкой - просто скажем, что "основание" вектора подразумевается как начало. Таким образом, математическая точка для всех практических целей также представляет собой представление математического вектора, а вектор в вашем примере имеет величину sqrt (3 ^ 2 + 1 ^ 2 + 5 ^ 2) = 6 и направление (1/2, 1/6, 5/6) (нормированный вектор из начала координат).

Однако вектор в программировании обычно не имеет геометрического использования, а это значит, что вам действительно не интересны такие вещи, как величина или направление. Вектор в программировании - это всего лишь упорядоченный список элементов. Важным здесь является то, что элементы не обязательно должны быть цифрами - это может быть что-либо, обрабатываемое языком, о котором идет речь! Таким образом, ("Hello", "little", "world") также является вектором в программировании, хотя он (очевидно) не имеет векторной интерпретации в математическом смысле.

Ответ 3

Вектор в информатике представляет собой "одномерную" структуру данных (массив) (можно рассматривать как направление) с обычно динамическим размером (длина/величина). По этой причине он называется вектором. Но это, по крайней мере, массив.

Ответ 4

Вектор также означает набор координат. Так оно используется в программировании. Как набор чисел. Возможно, вам захочется представить векторы положения, векторы скорости, векторы импульса, векторы силы с объектом vector, или вы можете представить его любым способом, который вам подходит.

Во многих случаях векторные величины могут быть представлены 4 координатами вместо 3 (см. однородные координаты в компьютерной графике), поэтому физический вектор представлен компьютером vector с 4 элементами. В качестве альтернативы вы можете сохранить направление и величину отдельно или закодировать их с 3, 4 или более координатами.

Я предполагаю, что я получаю, это то, что компьютерные языки предназначены для представления физических моделей, но абстрактные контейнеры данных, которые программист использует в качестве инструментов для его/ее моделирования.

Ответ 5

Практически (!):

Вектор в математике - это только направление без позиции (на самом деле что-то более общее, но чтобы оставаться в вашей терминологии). В программировании часто используются векторы для точек. Вы можете представить свой вектор как вектор, указывающий от начала (0,0,0) до точки (3,1,5), называемый вектором местоположения точки. Для более глубокого понимания обратитесь к текстам аналитической и аффинной геометрии.

Ответ 6

Вектор в math является элементом n-мерного пространства над некоторым полем (например, real/complex number, functions, string). Он может иметь бесконечный размер, например. функциональное пространство L^2. Я не помню, что в программировании использовались бесконечномерные векторы (бесконечные векторы - это не векторы с неограниченной длиной, а вектор с бесконечным числом элементов)

Ответ 7

Наиболее строгим утверждением является то, что математический вектор является тензором первого порядка, который преобразуется из одной системы координат в другую согласно правилам тензорного преобразования. Физическая идея иметь в виду, что векторы имеют как величину, так и направление.

Программирующими векторами являются структуры данных, которые не должны преобразовываться в соответствии с любыми правилами и могут иметь или не иметь понятия системы координат в качестве ссылки. Если вы используете векторную структуру данных для хранения чисел, они могут соответствовать математическому определению. Но если у вас есть вектор объектов, маловероятно, чтобы они имели какое-либо отношение к преобразованиям координат.