linalg
:: angle
Угол между двумя векторами
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
linalg::angle(u
, v
)
linalg::angle(u,v)
вычисляет угол φ между этими двумя векторами u
и v
, заданный
,
где обозначает скалярное произведение двух векторов, данных linalg::scalarProduct
и 2-нормой вектора, т.е.
linalg::angle
не проверяет, задано ли вычисление в соответствующем звонке компонента. Это может привести к сообщению об ошибке, как показано в Примере 2.
Следующее отношение между углом между и и углом между и содержит:.
Сообщение об ошибке возвращено, если векторы не заданы по тому же звонку компонента.
Мы вычисляем угол между этими двумя векторами и:
phi := linalg::angle( matrix([2, 5]), matrix([-3, 3]) )
Мы используем функциональный float
, чтобы получить приближение с плавающей точкой этого номера:
float(phi)
Мы даем два дальнейших примера:
linalg::angle( matrix([1, -1]), matrix([1, 1]) )
linalg::angle( matrix([1, 1]), matrix([-1, -1]) )
linalg::angle
не проверяет, задан ли термин в соответствующем звонке компонента.
Как пример, мы пытаемся вычислить угол между двумя векторами с компонентами в ℤ 7:
MatZ7 := Dom::Matrix(Dom::IntegerMod(7))
Следующий вызов приводит к ошибке, потому что 2-норма не может быть вычислена:
linalg::angle(MatZ7([1, 1]), MatZ7([-1, -1]))
Error: Integer exponent expected. [(Dom::IntegerMod(7))::_power]
Обратите внимание на то, что доменный (7)
Dom::IntegerMod
не реализует квадратный корень из элемента, поэтому в MuPAD®, вы не можете вычислить угол никаких двух векторов по ℤ 7.
|
Векторы той же размерности; вектором является n ×1 или 1 ×n матрица области категории |
Арифметическое выражение.