mtimes, *

Умножение кватерниона

Синтаксис

Описание

пример

quatC = A*B умножение кватерниона реализаций, если любой A или B кватернион. Любой A или B должен быть скаляр.

Можно использовать умножение кватерниона, чтобы составить операторы вращения:

  • Чтобы составить последовательность из вращений системы координат, умножьте кватернионы в порядке желаемой последовательности вращений. Например, чтобы применить кватернион p, сопровождаемый кватернионом q, умножьте в порядке pq. Оператор вращения становится (pq)v(pq), где v представляет объект вращаться заданный в форме кватерниона. * представляет спряжение.

  • Чтобы составить последовательность из вращений точки, умножьте кватернионы в обратном порядке желаемой последовательности вращений. Например, чтобы применить кватернион p, сопровождаемый кватернионом q, умножьтесь в обратном порядке, qp. Оператор вращения становится (qp)v(qp).

Примеры

свернуть все

Создайте 4 1 вектор-столбец, A, и скаляр, b. Умножьте A времена b.

A = quaternion(randn(4,4))
A=4×1 quaternion array
      0.53767 +  0.31877i +   3.5784j +   0.7254k
       1.8339 -   1.3077i +   2.7694j - 0.063055k
      -2.2588 -  0.43359i -   1.3499j +  0.71474k
      0.86217 +  0.34262i +   3.0349j -  0.20497k

b = quaternion(randn(1,4))
b = quaternion
    -0.12414 +  1.4897i +   1.409j +  1.4172k

C = A*b
C=4×1 quaternion array
      -6.6117 +   4.8105i +  0.94224j -   4.2097k
      -2.0925 +   6.9079i +   3.9995j -   3.3614k
       1.8155 -   6.2313i -    1.336j -     1.89k
      -4.6033 +   5.8317i + 0.047161j -    2.791k

Входные параметры

свернуть все

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

Если B является нескалярным, затем A должен быть скаляр.

Типы данных: quaternion | single | double

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

Если A является нескалярным, затем B должен быть скаляр.

Типы данных: quaternion | single | double

Выходные аргументы

свернуть все

Продукт кватерниона, возвращенный как кватернион или массив кватернионов.

Типы данных: quaternion

Алгоритмы

свернуть все

Умножение кватерниона действительным скаляром

Учитывая кватернион

q=aq+bqi+cqj+dqk,

продукт q и действительного скалярного β

βq=βaq+βbqi+βcqj+βdqk

Умножение кватерниона скаляром кватерниона

Определение базисных элементов для кватернионов,

i2=j2=k2=ijk=-1,

может быть расширен, чтобы заполнить таблицу, обобщающую базисное умножение элемента кватерниона:

 1ijk
11ijk
ii−1k−j
jj−k−1i
kkj−i−1

При чтении таблицы строки читаются сначала, например: ij = k и ji = −k.

Учитывая два кватерниона, q=aq+bqi+cqj+dqk, и p=ap+bpi+cpj+dpk, умножение может быть расширено как:

z=pq=(ap+bpi+cpj+dpk)(aq+bqi+cqj+dqk)=apaq+apbqi+apcqj+apdqk+bpaqi+bpbqi2+bpcqij+bpdqik+cpaqj+cpbqji+cpcqj2+cpdqjk+dpaqk+dpbqki+dpcqkj+dpdqk2

Можно упростить уравнение с помощью таблицы умножения кватерниона:

z=pq=apaq+apbqi+apcqj+apdqk+bpaqibpbq+bpcqkbpdqj+cpaqjcpbqkcpcq+cpdqi+dpaqk+dpbqjdpcqidpdq

Ссылки

[1] Kuipers, Джек Б. Кватернионы и последовательности вращения: краткая информация с приложениями к орбитам, космосу и виртуальной реальности. Принстон, NJ: Издательство Принстонского университета, 2007.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Введенный в R2020a