Решаю задачи из учебника Блинова по языку java и возникла сложность с одним из заданий.
Вот оно:
"Определить класс Вектор размерности n. Реализовать методы сложения,
вычитания, умножения, инкремента, декремента, индексирования.
Определить массив из m объектов. Каждую из пар векторов передать в
методы, возвращающие их скалярное произведение и длины. Вычислить и
вывести углы между векторами"
Реализация программы проблемы не составляет, однако я совершенно не помню как с математическими векторами работать.
И вот что собственно нужно:
- Кратко и понятно объясните основы. Не математическими терминами, а реализацией в программировании - так сказать на пальцах, для дебилов=)
- Что означает "размерность" вектора?
- Пример сложения векторов.
Другие языки программирования и технологии
Работа с математическими векторами в программировании (Основы)
Размерность вектора - это, грубо говоря, сколько в нём чисел.
Сложение:
Допустим: a1(1, 2, 4), a2(2, 7, -1)
Тогда a1 + a2 = (1 + 2, 2 + 7, 4 + (-1) ) = (3, 9, 3) (получается другой вектор) .
Вычитание - точно так же, только вычитание.
Скалярное произведение:
a1 ^ a2 = (1 * 2) + (2 * 7) + (4 * (-1) ) = 2 + 14 - 4 = 12 (получается число) .
Чтобы найти длины нужно взять скалярное произведение вектора на самого себя:
d(a1) = a1 ^ a1 = (1 * 1) + (2 * 2) + (4 * 4) = 1 + 4 + 16 = 21.
Инкремента и декремента в математике нет.
Чтобы угол между векторам найти нужно их скалярное произведение разделить на произведение их длин.
Сложение:
Допустим: a1(1, 2, 4), a2(2, 7, -1)
Тогда a1 + a2 = (1 + 2, 2 + 7, 4 + (-1) ) = (3, 9, 3) (получается другой вектор) .
Вычитание - точно так же, только вычитание.
Скалярное произведение:
a1 ^ a2 = (1 * 2) + (2 * 7) + (4 * (-1) ) = 2 + 14 - 4 = 12 (получается число) .
Чтобы найти длины нужно взять скалярное произведение вектора на самого себя:
d(a1) = a1 ^ a1 = (1 * 1) + (2 * 2) + (4 * 4) = 1 + 4 + 16 = 21.
Инкремента и декремента в математике нет.
Чтобы угол между векторам найти нужно их скалярное произведение разделить на произведение их длин.
Размерность - количество элементов вектора.
Сумма и разность векторов - вектор такой же размерности, элементы которого равны соответственно сумме или разности элементов исходных векторов: (x, y) + (a, b) = (x+a, y+b).
Скалярное произведение векторов - сумма попарных произведений соответствующих элементов: (x, y)(a, b)=ax+yb.
(Евклидова) длина вектора - корень из суммы квадратов элементов (как вариант - из скалярного произведения вектора на себя) : |(x, y)|=sqrt(x*x+y*y)
Угол между векторами определяется из соотношения x y = |x||y|cos(x^y) (где x^y - угол между векторами x и y).
Сумма и разность векторов - вектор такой же размерности, элементы которого равны соответственно сумме или разности элементов исходных векторов: (x, y) + (a, b) = (x+a, y+b).
Скалярное произведение векторов - сумма попарных произведений соответствующих элементов: (x, y)(a, b)=ax+yb.
(Евклидова) длина вектора - корень из суммы квадратов элементов (как вариант - из скалярного произведения вектора на себя) : |(x, y)|=sqrt(x*x+y*y)
Угол между векторами определяется из соотношения x y = |x||y|cos(x^y) (где x^y - угол между векторами x и y).
Похожие вопросы
- Зачем нужен решение математические задачи в программировании
- Можете ли вы привести пример применения сложных математических расчётов в программировании?
- Скиньте пожалуйста какую не будь статью где описывают как записывать математические формулы в программировании.
- Основы для программирования
- Умею решать математические задачи, а на языке программирование вообще ни капли даже в голову не приходит как?
- Основы программирования
- Как работает программирование? Какая физическая основа у программирования?
- Какой язык программирования лучше всего для сложных математических расчетов?
- Где научиться основам программирования ребёнку 10 лет ?
- Возможно ли освоить программирование и основы микроэлектроники на должном уровне за два месяца?