Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

В числовой линейной алгебры , A вращения Гивенс является вращение в плоскости , натянутой на двух осей координат. Вращения Гивенса названы в честь Уоллеса Гивенса , который представил их численным аналитикам в 1950-х годах, когда работал в Аргоннской национальной лаборатории .

Матричное представление [ править ]

Вращение Гивенса представлено матрицей вида

где c = cos  θ и s = sin  θ появляются на пересечении i- й и j- й строк и столбцов. То есть для фиксированного i > j ненулевые элементы матрицы Гивенса задаются следующим образом:

Продукт G ( я ,  J ,  θ ) х представляет собой вращение против часовой стрелки от вектора х в ( я ,  J ) плоскости & thetas радианах, отсюда и название Гивенса вращение.

Основное использование вращений Гивенса в числовой линейной алгебре состоит в том, чтобы ввести нули [ требуется пояснение ] в векторы или матрицы. Этот эффект можно, например, использовать для вычисления QR-разложения матрицы. Одно преимущество перед преобразованиями Хаусхолдера состоит в том, что их можно легко распараллелить, а другое состоит в том, что часто для очень разреженных матриц они имеют меньшее количество операций.

Стабильный расчет [ править ]

Когда матрица Гивенс вращения, G ( я ,  J ,  θ ) , умножает другую матрицу, , с левой стороны , G A , только строки я и J из А страдают. Таким образом, мы ограничимся следующей задачей против часовой стрелки. Даны a и b , найти c = cos  θ и s = sin  θ такие, что

где - длина вектора . Явный расчет θ редко требуется или желателен. Вместо этого мы ищем напрямую c и s . Очевидным решением было бы

[1]

Однако вычисление r может быть переполнено или опустошено. Альтернативная формулировка, позволяющая избежать этой проблемы ( Голуб и Ван Лоан, 1996 , §5.1.8), реализована как функция гипотез во многих языках программирования.

Следующий код на Фортране представляет собой минималистичную реализацию ротации Гивенса для действительных чисел. Если входные значения «a» или «b» часто равны нулю, код может быть оптимизирован для обработки этих случаев, как представлено здесь .

подпрограмма givens_rotation ( a ,  b ,  c ,  s ,  r )реальный a ,  b ,  c ,  s ,  r реальный h ,  dif  ( b . ne . 0.0 ),  то h = гипотеза ( a , b ) d = 1.0 / h c = abs ( a ) * d s = sign ( d , a ) * b r = sign ( 1.0 , a ) * h иначе c = 1.0 s = 0.0 r =                                   конец , есливозвратный конец


Кроме того, как обнаружил Эдвард Андерсон при улучшении LAPACK , ранее игнорировавшимся численным соображением является непрерывность. Для этого требуется, чтобы r было положительным. [2] Следующий код MATLAB / GNU Octave иллюстрирует алгоритм.

функция [c, s, r] = givens_rotation ( a, b )  если b == 0 ;    c = знак ( а );   если ( c == 0 );    c = 1,0 ; % В отличие от других языков, знаковая функция MatLab возвращает 0 на входе 0.    конец ; s = 0 ;   г = абс ( а );   elseif a == 0 ;    c = 0 ;   s = знак ( б );   г = абс ( б );   иначе абс ( а ) > абс ( б );    t = b / a ;     u = знак ( а ) * sqrt ( 1 + t * t );         c = 1 / u ;     s = c * t ;     г = а * и ;     еще t = a / b ;     u = знак ( b ) * sqrt ( 1 + t * t );         s = 1 / u ;     c = s * t ;     г = Ь * и ;     конецконец

Функция IEEE 754 copysign (x, y) обеспечивает безопасный и дешевый способ скопировать знак y в x . Если это недоступно, | x | ⋅sgn ( y ) , использующий функции abs и sgn , является альтернативой, как было сделано выше.

Треугольная форма [ править ]

Учитывая следующую матрицу 3 × 3 :

выполнить две итерации вращения Гивенса (обратите внимание, что используемый здесь алгоритм вращения Гивенса немного отличается от приведенного выше), чтобы получить верхнюю треугольную матрицу для вычисления QR-разложения .

Чтобы сформировать желаемую матрицу, мы должны обнулить элементы (2, 1) и (3, 2) . Сначала мы обнуляем элемент (2, 1) . Используя матрицу вращения:

У нас есть следующее матричное умножение:

где

Подставляя эти значения для c и s и выполняя матричное умножение выше, получаем A 2 :

Теперь нам нужно обнулить элемент (3, 2), чтобы завершить процесс. Используя ту же идею, что и раньше, у нас есть матрица вращения:

Нам представлено следующее умножение матриц:

где

Подставляя эти значения для c и s и выполняя умножение, мы получаем A 3 :

Эта новая матрица A 3 является верхней треугольной матрицей, необходимой для выполнения итерации QR-разложения . Q теперь формируется с использованием транспонирования матриц вращения следующим образом:

Выполнение этого матричного умножения дает:

Это завершает две итерации вращения Гивенса, и теперь можно выполнить расчет QR-разложения .

Вращения Гивенса в алгебрах Клиффорда [ править ]

В алгебрах Клиффорда и ее дочерних структурах, таких как геометрическая алгебра, вращения представлены бивекторами . Повороты Гивенса представлены внешним произведением базисных векторов. Для любой пары базисных векторов бивекторами поворотов Гивенса являются:

Их действие на любой вектор записывается:

где

Измерение 3 [ править ]

В измерении 3 есть три вращения Гивенса:

[примечание 1]

Учитывая, что они являются эндоморфизмами, их можно составлять друг с другом сколько угодно раз, имея в виду, что g  ∘  ff  ∘  g .

Эти три составленных вращения Гивенса могут генерировать любую матрицу вращения в соответствии с теоремой Дэвенпорта о цепном вращении . Это означает , что они могут трансформировать в стандартном базис пространства для любого другого кадра в пространстве. [ требуется разъяснение ]

Когда повороты выполняются в правильном порядке, значения углов поворота конечного кадра будут равны углам Эйлера конечного кадра в соответствующем соглашении. Например, оператор преобразует основу пространства в кадр с углами крена, тангажа и рыскания в соответствии с соглашением Тейта-Брайана z - x - y (соглашение, согласно которому линия узлов перпендикулярна осям z и Y , также называемая Y - X ′ - Z ″ ).

По той же причине любую матрицу вращения в 3D можно разложить на произведение трех из этих операторов вращения .

Смысл композиции двух поворотов  Гивена g ∘  f - это оператор, который преобразует векторы сначала на f, а затем на g , являющиеся вращениями f и g вокруг одной оси базиса пространства. Это похоже на эквивалентность внешнего вращения для углов Эйлера.

Таблица составленных поворотов [ править ]

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

Обозначения были упрощены таким образом, что c 1 означает cos  θ 1, а s 2 означает sin  θ 2 ) . Субиндексы углов - это порядок, в котором они применяются с использованием внешнего состава (1 для собственного вращения, 2 для нутации, 3 для прецессии).

Поскольку повороты применяются только в порядке, обратном порядку поворотов в таблице углов Эйлера , эта таблица такая же, но поменять местами индексы 1 и 3 в углах, связанных с соответствующей записью. Запись типа zxy означает применение сначала поворота по оси y , затем по оси x и, наконец , по оси z по базовым осям.

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

См. Также [ править ]

  • Вращение Якоби
  • Плоскость вращения
  • Преобразование домохозяина
  • Давенпорт вращения

Заметки [ править ]

  1. ^ Матрица поворота сразу ниже не вращение Гивенс. Матрица непосредственно ниже уважающие правые и это обычная матрица один видит в компьютерной графике; однако вращение Гивенса - это просто матрица, как определено в разделе « Представление матриц » выше, и не обязательно соответствует правилу правой руки. Приведенная ниже матрица на самом деле представляет собой вращение Гивенса на угол -.

Ссылки [ править ]

  1. ^ Бьорк, Ака (1996). Численные методы решения задач наименьших квадратов . США: SIAM. п. 54. ISBN 9780898713602. Проверено 16 августа 2016 .
  2. Андерсон, Эдвард (4 декабря 2000 г.). "Разрывные плоские вращения и проблема симметричных собственных значений" (PDF) . LAPACK Рабочая заметка. Университет Теннесси в Ноксвилле и Национальная лаборатория Ок-Ридж . Проверено 16 августа 2016 .
  • Bindel, D .; Demmel, J .; Kahan, W .; Маркес, О. (2000), О надежном и эффективном вычислении вращений Гивенса. Рабочая записка LAPACK 148, Университет Теннесси, UT-CS-00-449, 31 января 2001 г.
  • Cybenko, Джордж (март-апрель 2001), "Снижение квантовых вычислений к элементарным унитарным операций" (PDF) , Вычислительный в области науки и техники , 3 (2): 27-32, DOI : 10,1109 / 5992.908999
  • Голуб, Джин Х .; Ван Лоан, Чарльз Ф. (1996), Matrix Computations (3-е изд.), Johns Hopkins, ISBN 978-0-8018-5414-9.
  • Нажмите, WH; Теукольский, С.А. Феттерлинг, Вашингтон; Фланнери, Б.П. (2007), «Раздел 11.3.1. Метод Гивенса» , Численные рецепты: Искусство научных вычислений (3-е изд.), Нью-Йорк: Cambridge University Press, ISBN 978-0-521-88068-8