Що є причиною використання LAPACK


9

QR-програма LAPACK зберігає Q як відбивачі для дому. Він масштабує вектор відображенняv з 1/v1, тому першим елементом результату стає 1, тому його не потрібно зберігати. І він зберігає окремоτвектор, який містить необхідні масштабні коефіцієнти. Отже, матриця відбивача така:

H=IτvvT,

де vне нормалізується. Тоді як у підручниках рефлекторна матриця є

H=I2vvT,

де v нормалізується.

Чому LAPACK масштабує v з 1/v1, а не нормалізувати це?

Необхідне сховище те саме (замість τ, v1 має зберігатися), а потім - подати заявку H можна зробити швидше, оскільки не потрібно множити τ (множення на 2 у версії підручника можна оптимізувати, якщо замість простої нормалізації, v масштабується 2/v).

(Причина мого запитання полягає в тому, що я пишу звичайний режим QR та SVD, і я хотів би знати причину цього рішення, потрібно мені його виконувати чи ні)

Відповіді:


7

Це заблокований варіант Householder-QR, який керує цією конструкцією. Якщо ви подивитесь на книгу Голуба та Вана Кредита (гл. 5.2 або близько того), вони говорять про те, як k-ітерації алгоритму можуть бути заблоковані, накопичуючи окремі відбивачі у відбивачі рангової форми форми , де обидва і є "високими" матрицями розміром . Цей алгоритм спрацьовує більше, але на практиці швидший, оскільки він багатий на виклики gemm (). На жаль, він є марним у зберіганні через необхідність представляти та незалежно.I+WYTWYn×kWY

У більш пізньому документі (цитованому нижче) Ван Кредит описує більш ефективну "симетризовану" структуру даних, блоковий рефлектор форми . Тут все ще , але вимога flop / зберігання для формування була усунена шляхом введення , невеликої верхньої трикутної матриці. Хоча потреба у множенні на вносить невелику кількість додаткової роботи, це, як правило, чистий приріст, оскільки .I+YTYTYn×kWTk×kTk<<n

У межах LAPACK незаблокований алгоритм насправді є лише обмежуючим випадок блочного алгоритму, аж до вибору символів (що призводить нас до , невеликої версії трикутник).k1τ1×1T

Цитування: Шрайбер, Роберт та Чарльз Ван Кредит. "Ефективне для зберігання представлення WY для продуктів перетворень домогосподарств." Журнал SIAM з науково-статистичних обчислень 10.1 (1989): 53-57.


Дякую за відповідь! Я не бачу, що знаходиться всього в -sized . У цитованій роботі в алгоритмі 5 є , а - -2. Отже, це закінчується як версія підручника, а не як версія LAPACK. Я щось сумую? τ1×1TYvT
Геза

2

Вам не потрібно зберігати , ви можете повторно обчислити його з решти вектора. (Ви можете перерахувати з інших записів також у нормалізованій версії, але це очевидно нестабільне обчислення через ці віднімання.)τv1

Насправді ви можете використовувати нижню трикутну частину для зберігання , щоб факторизація була повністю обчислена на місці. Lapack піклується про багато місцевих версій алгоритмів.Rv2,...vn


1

Моя пропозиція заснована на документації для Intel MKL https://software.intel.com/en-us/mkl-developer-reference-c-geqrf . Це виглядає як значення на діагоналі виводу сховища R, тому для Q. залишився лише нижній трикутник. Це видається природним використовувати додаткове сховище для коефіцієнтів масштабування.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.