Разница между вектором в математике и программировании - PullRequest
11 голосов
/ 30 мая 2011

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

Vector v (3, 1, 5);

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

Ответы [ 7 ]

8 голосов
/ 30 мая 2011

Если мы работаем в декартовых координатах и ​​принимаем (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

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

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

6 голосов
/ 30 мая 2011

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

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

0 голосов
/ 30 мая 2011

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

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

0 голосов
/ 30 мая 2011

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

0 голосов
/ 30 мая 2011

Практически говоря (!):

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

0 голосов
/ 30 мая 2011

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

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

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

0 голосов
/ 30 мая 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...