Алгоритм Ланцоша
Алгоритм Ланцоша — это итерационный метод, разработанный Корнелиусом Ланцошем , который представляет собой адаптацию степенных методов для поиска «наиболее полезные» (стремящиеся к крайне высокому/самому низкому) собственным значениям и собственным векторам Эрмитова матрица , где часто, но не обязательно, намного меньше, чем . [1] Несмотря на свою вычислительную эффективность в принципе, метод в его первоначальной формулировке оказался бесполезным из-за его численной нестабильности .
В 1970 году Охалво и Ньюман показали, как сделать метод численно устойчивым, и применили его к решению очень больших инженерных конструкций, подвергающихся динамическим нагрузкам. [2] Это было достигнуто с помощью метода очистки векторов Ланцоша (т.е. путем многократной реортогонализации каждого вновь сгенерированного вектора со всеми ранее сгенерированными). [2] с любой степенью точности, которые, если их не выполнять, приводили к серии векторов, которые были сильно загрязнены векторами, связанными с самыми низкими собственными частотами.
В своей оригинальной работе эти авторы также предложили, как выбрать начальный вектор (т.е. использовать генератор случайных чисел для выбора каждого элемента начального вектора) и предложили эмпирически определяемый метод определения , уменьшенное количество векторов (т.е. оно должно быть выбрано примерно в 1,5 раза больше желаемого количества точных собственных значений). Вскоре после этого за их работой последовала Пейдж, которая также провела анализ ошибок. [3] [4] В 1988 году Охалво представил более подробную историю этого алгоритма и эффективный тест на ошибку собственных значений. [5]
Алгоритм
[ редактировать ]- Введите матрицу эрмитову размера и, возможно, несколько итераций (по умолчанию пусть ).
- Строго говоря, алгоритму не нужен доступ к явной матрице, а только функция который вычисляет произведение матрицы на произвольный вектор. Эта функция вызывается не более чем раз.
- Выведите матрица с ортонормированными столбцами и трехдиагональной вещественной симметричной матрицей размера . Если , затем является унитарным , и .
- Предупреждение. Итерация Ланцоша склонна к числовой нестабильности. При выполнении неточной арифметики следует принять дополнительные меры (как описано в последующих разделах) для обеспечения достоверности результатов.
- Позволять — произвольный вектор с евклидовой нормой .
- Сокращенный начальный шаг итерации:
- Позволять .
- Позволять .
- Позволять .
- Для делать:
- Позволять (также евклидова норма ).
- Если , тогда пусть ,
- еще выбери как произвольный вектор с евклидовой нормой что ортогонально всем .
- Позволять .
- Позволять .
- Позволять .
- Позволять быть матрицей со столбцами . Позволять .
- Примечание для .
В принципе существует четыре способа написания итерационной процедуры. Пейдж и другие работы показывают, что указанный выше порядок операций является наиболее численно стабильным. [6] [7] На практике исходный вектор можно рассматривать как еще один аргумент процедуры, при этом и индикаторы числовой неточности, включенные в качестве дополнительных условий завершения цикла.
Не считая умножения матрицы на вектор, каждая итерация арифметические операции. Умножение матрицы на вектор можно выполнить в арифметические операции, где — среднее количество ненулевых элементов в строке. Таким образом, общая сложность , или если ; алгоритм Ланцоша может быть очень быстрым для разреженных матриц. Схемы улучшения численной стабильности обычно оцениваются по этой высокой производительности.
Векторы называются векторами Ланцоша . Вектор не используется после вычисляется, и вектор не используется после вычисляется. Следовательно, можно использовать одно и то же хранилище для всех трех. Аналогично, если только трехдиагональная матрица ищется, то необработанная итерация не требуется после того, как вычислил , хотя некоторым схемам улучшения численной стабильности это понадобится позже. Иногда последующие векторы Ланцоша пересчитываются из когда это необходимо.
Применение к собственной проблеме
[ редактировать ]Алгоритм Ланцоша чаще всего упоминается в контексте поиска собственных значений и собственных векторов матрицы, но в то время как обычная диагонализация матрицы сделает собственные векторы и собственные значения очевидными при проверке, то же самое нельзя сказать о трехдиагонализации, выполняемой Ланцошем. алгоритм; для вычисления даже одного собственного значения или собственного вектора необходимы нетривиальные дополнительные шаги. Тем не менее, применение алгоритма Ланцоша часто является значительным шагом вперед в вычислении собственного разложения.
Если является собственным значением , и его собственный вектор ( ), затем является соответствующим собственным вектором с тем же собственным значением:
Таким образом, алгоритм Ланцоша преобразует задачу собственного разложения для в задачу собственного разложения для .
- Для трехдиагональных матриц существует ряд специализированных алгоритмов, часто с большей вычислительной сложностью, чем алгоритмы общего назначения. Например, если это трехдиагональная симметричная матрица тогда:
- Непрерывная рекурсия позволяет вычислить характеристический полином в операций и оценивая их в определенный момент операции.
- Алгоритм собственных значений «разделяй и властвуй» можно использовать для вычисления всего собственного разложения в операции.
- Метод быстрых мультиполей [8] может вычислить все собственные значения всего за операции.
- некоторые общие алгоритмы собственного разложения, в частности алгоритм QR Известно, что , сходятся быстрее для трехдиагональных матриц, чем для общих матриц. Асимптотическая сложность трехдиагонального QR равна так же, как и для алгоритма «разделяй и властвуй» (хотя постоянный коэффициент может быть и другим); поскольку собственные векторы вместе имеют элементов, это асимптотически оптимально.
- Даже алгоритмы, на скорость сходимости которых не влияют унитарные преобразования, такие как степенной метод и обратная итерация , могут получить небольшой выигрыш в производительности от применения к трехдиагональной матрице. вместо исходной матрицы . С очень разреженный, все ненулевые элементы находятся в очень предсказуемых позициях, он обеспечивает компактное хранение с превосходной производительностью по сравнению с кэшированием . Так же, является вещественной матрицей со всеми собственными векторами и собственными значениями, тогда как вообще может иметь комплексные элементы и собственные векторы, поэтому реальной арифметики достаточно для нахождения собственных векторов и собственных значений .
- Если очень велика, то уменьшается так что имеет управляемый размер, все равно позволит найти более крайние собственные значения и собственные векторы ; в Алгоритм Ланцоша можно рассматривать как схему сжатия с потерями для эрмитовых матриц, в которой особое внимание уделяется сохранению крайних собственных значений.
Сочетание хорошей производительности для разреженных матриц и возможности вычисления нескольких (без вычисления всех) собственных значений являются основными причинами выбора использования алгоритма Ланцоша.
Приложение к трехдиагонализации
[ редактировать ]Хотя проблема собственных чисел часто является мотивацией для применения алгоритма Ланцоша, операция, которую в первую очередь выполняет алгоритм, - это трехдиагонализация матрицы, для которой численно стабильным преобразованиям Хаусхолдера с 1950-х годов предпочтение отдавалось . В 1960-е годы алгоритм Ланцоша игнорировался. Интерес к нему возобновился благодаря теории сходимости Каниэля-Пейджа и разработке методов предотвращения числовой нестабильности, но алгоритм Ланцоша остается альтернативным алгоритмом, который можно попробовать только в том случае, если Хаусхолдер неудовлетворителен. [9]
Аспекты, в которых различаются два алгоритма, включают:
- Ланцош воспользовался является разреженной матрицей, тогда как Householder этого не делает и будет генерировать fill-in .
- Ланчош полностью работает с оригинальной матрицей. (и у него нет проблем с тем, что она известна только неявно), тогда как необработанный Хаусхолдер хочет изменить матрицу во время вычисления (хотя этого можно избежать).
- Каждая итерация алгоритма Ланцоша создает еще один столбец окончательной матрицы преобразования. , тогда как итерация Householder создает еще один фактор в унитарной факторизации из . Однако каждый фактор определяется одним вектором, поэтому требования к хранению одинаковы для обоих алгоритмов. можно вычислить в время.
- Домохозяин численно стабилен, а необработанный Ланцош — нет.
- Ланцош во многом аналогичен, только точки синхронизации (вычисления и ). Домохозяин менее параллелен, имеет последовательность вычисляются скалярные величины, каждая из которых зависит от предыдущей величины в последовательности.
Вывод алгоритма
[ редактировать ]Существует несколько направлений рассуждений, которые приводят к алгоритму Ланцоша.
Более экономный метод питания
[ редактировать ]Степенной метод нахождения собственного значения наибольшей величины и соответствующего собственного вектора матрицы примерно
- Выберите случайный вектор .
- Для (до направления сошлось) делаем:
- Позволять
- Позволять
- В большом предел, приближается к нормированному собственному вектору, соответствующему собственному значению наибольшей величины.
Критика, которую можно выдвинуть против этого метода, заключается в том, что он расточителен: он тратит много работы (матрично-векторные продукты на этапе 2.1) на извлечение информации из матрицы. , но обращает внимание только на самый последний результат; реализации обычно используют одну и ту же переменную для всех векторов , при этом каждая новая итерация перезаписывает результаты предыдущей. Вместо этого может быть желательно сохранить все промежуточные результаты и систематизировать данные.
Одна часть информации, которую тривиально можно получить из векторов есть цепочка подпространств Крылова . Один из способов заявить, что без введения множеств в алгоритм — это заявить, что он вычисляет
- подмножество основе такой, что для каждого и все
это тривиально удовлетворяется пока линейно не зависит от (и в случае наличия такой зависимости можно продолжить последовательность, выбрав в качестве произвольный вектор, линейно независимый от ). Основа, содержащая векторов, однако, вероятно, будет численно плохо обусловленным , поскольку эта последовательность векторов по замыслу предназначена для сходимости к собственному вектору . Чтобы избежать этого, можно объединить степенную итерацию с процессом Грама – Шмидта , чтобы вместо этого создать ортонормированный базис этих подпространств Крылова.
- Выберите случайный вектор евклидовой нормы . Позволять .
- Для делать:
- Позволять .
- Для всех позволять . (это координаты относительно базисных векторов .)
- Позволять . (Отменить компонент это в .)
- Если тогда пусть и ,
- в противном случае выберите как произвольный вектор евклидовой нормы что ортогонально всем .
Связь между векторами итераций мощности и ортогональные векторы это что
- .
Здесь можно заметить, что на самом деле нам не нужна векторы для вычисления этих , потому что и, следовательно, разница между и находится в , что компенсируется процессом ортогонализации. Таким образом, тот же базис для цепочки подпространств Крылова вычисляется формулой
- Выберите случайный вектор евклидовой нормы .
- Для делать:
- Позволять .
- Для всех позволять .
- Позволять .
- Позволять .
- Если тогда пусть ,
- в противном случае выберите как произвольный вектор евклидовой нормы что ортогонально всем .
Априори коэффициенты удовлетворить
- для всех ;
определение может показаться немного странным, но соответствует общей схеме с
Поскольку векторы итераций мощности которые были исключены из этой рекурсии, удовлетворяют векторы и коэффициенты содержать достаточно информации из что все можно вычислить, поэтому при переключении векторов ничего не потеряется. (Действительно, оказывается, что собранные здесь данные дают значительно лучшее приближение наибольшего собственного значения, чем те, которые можно получить при равном количестве итераций степенного метода, хотя на данный момент это не обязательно очевидно.)
Эта последняя процедура является итерацией Арнольди . Алгоритм Ланцоша возникает как упрощение, получаемое за счет исключения шагов вычислений, которые оказываются тривиальными, когда является эрмитовым, в частности, большая часть коэффициенты оказываются равными нулю.
Элементарно, если тогда является эрмитовым
Для мы знаем это , и поскольку по построению ортогонально этому подпространству, это скалярное произведение должно быть равно нулю. (По сути, это также причина, по которой последовательностям ортогональных полиномов всегда можно задать трехчленное рекуррентное соотношение .) Для каждый получает
поскольку последнее действительно, поскольку является нормой вектора. Для каждый получает
значит, это тоже реально.
Более абстрактно, если это матрица со столбцами тогда цифры могут быть идентифицированы как элементы матрицы , и для матрица находится верхний Хессенберг . С
матрица является эрмитовым. Это подразумевает, что также является нижним Хессенбергом, поэтому на самом деле он должен быть трехдиагональным. Будучи эрмитовой, ее главная диагональ действительна, а поскольку ее первая поддиагональ действительна по построению, то же самое верно и для ее первой наддиагонали. Поэтому, является реальной симметричной матрицей — матрицей спецификации алгоритма Ланцоша.
Одновременная аппроксимация крайних собственных значений
[ редактировать ]Один из способов характеристики собственных векторов эрмитовой матрицы. является стационарными точками фактора Рэлея
В частности, наибольшее собственное значение это глобальный максимум и наименьшее собственное значение это глобальный минимум .
В низкомерном подпространстве из возможно найти максимум и минимум из . Повторяя это для возрастающей цепочки создает две последовательности векторов: и такой, что и
Тогда возникает вопрос, как выбрать подпространства так, чтобы эти последовательности сходились с оптимальной скоростью.
От , оптимальное направление поиска больших значений это градиент , и аналогично из оптимальное направление, в котором следует искать меньшие значения это отрицательный градиент . В общем
поэтому интересующие направления достаточно легко вычислить с помощью матричной арифметики, но если кто-то хочет улучшить оба и то есть два новых направления, которые следует принять во внимание: и с и могут быть линейно независимыми векторами (действительно, близкими к ортогональным), вообще нельзя ожидать и быть параллельным. Нет необходимости увеличивать размерность к на каждом шагу, если считаются подпространствами Крылова, поскольку тогда для всех таким образом, в частности для обоих и .
Другими словами, мы можем начать с произвольного начального вектора построить векторные пространства
а затем искать такой, что
Поскольку итерация метода мощности принадлежит из этого следует, что итерация для создания и не может сходиться медленнее, чем у степенного метода, и достигнет большего за счет аппроксимации обоих крайних значений собственных значений. Для подзадачи оптимизации на некоторых , удобно иметь ортонормированный базис для этого векторного пространства. Таким образом, мы снова приходим к задаче итеративного вычисления такого базиса последовательности подпространств Крылова.
Конвергенция и другая динамика
[ редактировать ]При анализе динамики алгоритма удобно брать собственные значения и собственные векторы как задано, даже если они явно не известны пользователю. Чтобы исправить обозначения, пусть — собственные значения (всем известно, что они вещественны и, следовательно, их можно упорядочить) и пусть — ортонормированный набор собственных векторов такой, что для всех .
Также удобно зафиксировать обозначения для коэффициентов исходного вектора Ланцоша относительно этого собственного базиса; позволять для всех , так что . Стартовый вектор обеднение некоторого собственного компонента приведет к задержке сходимости к соответствующему собственному значению, и хотя это просто проявляется как постоянный фактор в границах ошибки, истощение остается нежелательным. Одним из распространенных способов избежать постоянного поражения им является выбор сначала рисуя элементы случайным образом в соответствии с тем же нормальным распределением со средним значением а затем измените масштаб вектора до нормы . До масштабирования это приводит к тому, что коэффициенты также быть независимыми нормально распределенными стохастическим переменными из одного и того же нормального распределения (поскольку замена координат унитарна), а после масштабирования вектора будет иметь равномерное распределение на единичной сфере в . Это позволяет ограничить вероятность того, что, например, .
Тот факт, что алгоритм Ланцоша не зависит от координат (операции рассматривают только внутренние произведения векторов, а не отдельные элементы векторов), позволяет легко создавать примеры с известной собственной структурой для запуска алгоритма: make диагональная матрица с искомыми собственными значениями на диагонали; пока стартовый вектор имеет достаточно ненулевых элементов, алгоритм выведет общую трехдиагональную симметричную матрицу как .
Теория конвергенции Каниэля – Пейджа
[ редактировать ]После итерационные шаги алгоритма Ланцоша, это реальная симметричная матрица, которая, как и выше, имеет собственные значения Под конвергенцией понимают прежде всего конвергенцию к (и симметричная сходимость к ) как растет, и во вторую очередь сближение некоторого диапазона собственных значений своим коллегам из . Сходимость алгоритма Ланцоша часто на несколько порядков быстрее, чем сходимость алгоритма степенной итерации. [9] : 477
Границы для исходят из приведенной выше интерпретации собственных значений как крайних значений коэффициента Рэлея. . С априори является максимумом в целом тогда как это просто максимум на -мерное подпространство Крылова, тривиально получаем . И наоборот, любая точка в этом подпространстве Крылова имеется нижняя оценка для , поэтому, если можно указать точку, для которой мал, то это обеспечивает жесткую границу .
Размер Krylov subspace is
поэтому любой его элемент может быть выражен как для некоторого полинома степени максимум ; коэффициенты этого полинома - это просто коэффициенты линейной комбинации векторов . У полинома, который мы хотим, будут действительные коэффициенты, но на данный момент нам следует учесть и комплексные коэффициенты, и мы напишем для многочлена, полученного комплексным сопряжением всех коэффициентов . В этой параметризации подпространства Крылова имеем
Используя теперь выражение для как линейную комбинацию собственных векторов, мы получаем
и вообще
для любого многочлена .
Таким образом
Ключевое различие между числителем и знаменателем здесь заключается в том, что член исчезает в числителе, но не в знаменателе. Таким образом, если можно выбрать быть большим в но мал при всех других собственных значениях, можно получить жесткую границу ошибки .
С имеет гораздо больше собственных значений, чем имеет коэффициенты, это может показаться сложной задачей, но один из способов выполнить ее — использовать полиномы Чебышева . Письмо на степень Полином Чебышева первого рода (тот, который удовлетворяет условию для всех ), у нас есть полином, который остается в диапазоне на известном интервале но быстро растет за его пределами. При некотором масштабировании аргумента мы можем заставить его отображать все собственные значения, кроме в . Позволять
(в случае , используйте вместо этого наибольшее собственное значение, строго меньшее ), то максимальное значение для является и минимальное значение , так
Более того
количество
(т. е. отношение первой собственной щели к диаметру остальной части спектра ) , таким образом, имеет здесь ключевое значение для скорости сходимости. Также пишу
мы можем заключить, что
Таким образом, скорость сходимости контролируется главным образом , поскольку эта граница уменьшается в раз за каждую дополнительную итерацию.
Для сравнения можно рассмотреть, как зависит скорость сходимости степенного метода от , но поскольку степенной метод в первую очередь чувствителен к отношению между абсолютными значениями собственных значений, нам нужно для собственного зазора между и быть доминирующим. При этом ограничении случай, наиболее благоприятствующий степенному методу, состоит в том, что , так что учтите это. В конце степенного метода вектор итераций:
где каждая новая итерация эффективно умножает -амплитуда к
Тогда оценка наибольшего собственного значения равна
поэтому приведенную выше оценку скорости сходимости алгоритма Ланцоша следует сравнить с
который уменьшается в раз для каждой итерации. Таким образом, разница сводится к тому, что между и . В регион, последнее больше похоже на , и работает так же, как степенной метод с собственным зазором в два раза больше; заметное улучшение. Однако более сложным случаем является случай в котором это еще большее улучшение собственного зазора; тот Область — это область, в которой алгоритм Ланцоша с точки зрения сходимости дает наименьшее улучшение по сравнению со степенным методом.
Численная стабильность
[ редактировать ]Стабильность означает, насколько повлияет на алгоритм (т. е. даст ли он приблизительный результат, близкий к исходному), если в него войдут и накопится небольшие числовые ошибки. Численная стабильность является центральным критерием оценки полезности реализации алгоритма на компьютере с округлением.
Для алгоритма Ланцоша можно доказать, что при точной арифметике набор векторов строит ортонормированный базис, а решенные собственные значения/векторы являются хорошими аппроксимациями исходной матрицы. Однако на практике (поскольку вычисления выполняются в арифметике с плавающей запятой, где неточность неизбежна) ортогональность быстро теряется и в некоторых случаях новый вектор может даже линейно зависеть от уже построенного множества. В результате некоторые собственные значения результирующей трехдиагональной матрицы могут не быть аппроксимациями исходной матрицы. Следовательно, алгоритм Ланцоша не очень стабилен.
Пользователи этого алгоритма должны иметь возможность находить и удалять эти «ложные» собственные значения. Практическая реализация алгоритма Ланцоша направлена на решение этой проблемы стабильности в трех направлениях: [6] [7]
- Предотвратить потерю ортогональности,
- Восстановите ортогональность после создания базиса.
- После того, как все хорошие и «ложные» собственные значения идентифицированы, удалите ложные.
Вариации
[ редактировать ]Существуют варианты алгоритма Ланцоша, в которых задействованные векторы представляют собой высокие узкие матрицы вместо векторов, а нормализующие константы представляют собой небольшие квадратные матрицы. Они называются «блочными» алгоритмами Ланцоша и могут работать намного быстрее на компьютерах с большим количеством регистров и длительным временем выборки из памяти.
Многие реализации алгоритма Ланцоша перезапускаются после определенного количества итераций. Одним из наиболее влиятельных вариантов перезапуска является неявно перезапускаемый метод Ланцоша. [10] который реализован в ARPACK . [11] Это привело к ряду других возобновленных вариантов, таких как возобновление бидиагонализации Ланцо. [12] Еще одним успешным вариантом перезапуска является метод Ланцоша с толстым перезапуском. [13] который был реализован в пакете программного обеспечения под названием TRLan. [14]
Нулевое пространство над конечным полем
[ редактировать ]В 1995 году Питер Монтгомери опубликовал алгоритм, основанный на алгоритме Ланцоша, для поиска элементов нулевого пространства большой разреженной матрицы над GF(2) ; поскольку группа людей, интересующихся большими разреженными матрицами над конечными полями, и группа людей, интересующихся большими проблемами собственных значений, почти не перекрываются, это часто также называют блочным алгоритмом Ланцоша, не вызывая необоснованной путаницы. [ нужна ссылка ]
Приложения
[ редактировать ]Алгоритмы Ланцоша очень привлекательны, поскольку умножение на является единственной крупномасштабной линейной операцией. Поскольку механизмы взвешенного поиска текста реализуют именно эту операцию, алгоритм Ланцоша можно эффективно применять к текстовым документам (см. скрытое семантическое индексирование ). Собственные векторы также важны для крупномасштабных методов ранжирования, таких как алгоритм HITS, разработанный Джоном Кляйнбергом , или алгоритм PageRank, используемый Google.
Алгоритмы Ланцоша также используются в физике конденсированного состояния как метод решения гамильтонианов сильно коррелированных электронных систем . [15] а также в оболочечных моделей кодах по ядерной физике . [16]
Реализации
[ редактировать ]Библиотека NAG содержит несколько процедур. [17] для решения крупномасштабных линейных систем и собственных задач, использующих алгоритм Ланцоша.
MATLAB и GNU Octave поставляются со ARPACK встроенным . Как хранимые, так и неявные матрицы можно анализировать с помощью функции eigs() ( Matlab / Octave ).
Аналогично, в Python пакет SciPy ARPACK имеет scipy.sparse.linalg.eigsh , который также является оболочкой для функций SSEUPD и DSEUPD из , которые используют неявно перезапущенный метод Ланцоша.
Реализация алгоритма Ланцоша в Matlab (обратите внимание на проблемы с точностью) доступна как часть пакета Matlab для распространения гауссовского доверия . ГрафЛаб [18] Библиотека совместной фильтрации включает крупномасштабную параллельную реализацию алгоритма Ланцоша (на C++) для многоядерных вычислений.
Библиотека PRIMME также реализует алгоритм, подобный Ланцошу.
Примечания
[ редактировать ]- ^ Оба коэффициента не обязательно должны быть действительными, но фаза не имеет большого значения. Не обязательно, чтобы компонанты для других собственных векторов полностью исчезли, но они сжимаются по крайней мере так же быстро, как и для , так описывает худший случай.
Ссылки
[ редактировать ]- ^ Ланцос, К. (1950). «Итерационный метод решения проблемы собственных значений линейных дифференциальных и интегральных операторов» (PDF) . Журнал исследований Национального бюро стандартов . 45 (4): 255–282. дои : 10.6028/jres.045.026 .
- ^ Jump up to: а б Оялво, ИЮ; Ньюман, М. (1970). «Режимы вибрации крупногабаритных конструкций методом автоматического матричного приведения». Журнал АИАА . 8 (7): 1234–1239. Бибкод : 1970AIAAJ...8.1234N . дои : 10.2514/3.5878 .
- ^ Пейдж, CC (1971). Вычисление собственных значений и собственных векторов очень больших разреженных матриц (кандидатская диссертация). Лондонский университет. OCLC 654214109 .
- ^ Пейдж, CC (1972). «Вычислительные варианты метода Ланцоша для задачи о собственных силах». Дж. Инст. Математические приложения . 10 (3): 373–381. дои : 10.1093/имамат/10.3.373 .
- ^ Оялво, ИЮ (1988). «Происхождение и преимущества векторов Ланцоша для больших динамических систем». Учеб. 6-я конференция по модальному анализу (IMAC), Киссимми, Флорида . стр. 489–494.
- ^ Jump up to: а б Каллум; Уиллоби (1985). Алгоритмы Ланцоша для вычисления больших симметричных собственных значений . Том. 1. ISBN 0-8176-3058-9 .
- ^ Jump up to: а б Юсеф Саад (22 июня 1992 г.). Численные методы решения больших задач на собственные значения . ISBN 0-470-21820-7 .
- ^ Коакли, Эд С.; Рохлин, Владимир (2013). «Быстрый алгоритм «разделяй и властвуй» для вычисления спектров действительных симметричных трехдиагональных матриц». Прикладной и вычислительный гармонический анализ . 34 (3): 379–414. дои : 10.1016/j.acha.2012.06.003 .
- ^ Jump up to: а б Голуб, Джин Х.; Ван Лоан, Чарльз Ф. (1996). Матричные вычисления (3-е изд.). Балтимор: Университет Джонса Хопкинса. Нажимать. ISBN 0-8018-5413-Х .
- ^ Д. Кальветти ; Л. Райхель; Округ Колумбия Соренсен (1994). «Неявно перезапущенный метод Ланцоша для решения больших симметричных задач на собственные значения» . Электронные труды по численному анализу . 2 : 1–21.
- ^ РБ Лехук; округ Колумбия Соренсен; К. Ян (1998). Руководство пользователя ARPACK: Решение крупномасштабных задач на собственные значения с помощью неявно перезапускаемых методов Арнольди . СИАМ. дои : 10.1137/1.9780898719628 . ISBN 978-0-89871-407-4 .
- ^ Э. Кокиопулу; К. Бекас; Э. Галлопулос (2004). «Вычисление наименьших сингулярных троек с неявно перезапущенной бидиагонализацией Ланцоша» (PDF) . Прил. Число. Математика . 49 : 39–61. дои : 10.1016/j.apnum.2003.11.011 .
- ^ Кешэн Ву; Хорст Саймон (2000). «Метод Ланцоша с толстым перезапуском для больших симметричных задач на собственные значения» . Журнал SIAM по матричному анализу и приложениям . 22 (2). СИАМ: 602–616. дои : 10.1137/S0895479898334605 .
- ^ Кешэн Ву; Хорст Саймон (2001). «Программный комплекс ТРЛан» . Архивировано из оригинала 1 июля 2007 г. Проверено 30 июня 2007 г.
- ^ Чен, HY; Аткинсон, Вашингтон; Уортис, Р. (июль 2011 г.). «Аномалия нулевого смещения, вызванная беспорядком, в модели Андерсона-Хаббарда: численные и аналитические расчеты». Физический обзор B . 84 (4): 045113. arXiv : 1012.1031 . Бибкод : 2011PhRvB..84d5113C . дои : 10.1103/PhysRevB.84.045113 . S2CID 118722138 .
- ^ Симидзу, Норитака (21 октября 2013 г.). «Код ядерной оболочки для массовых параллельных вычислений, «KSHELL» ». arXiv : 1310.5431 [ нукл-й ].
- ^ Группа числовых алгоритмов. «Указатель ключевых слов: Ланцош» . Руководство по библиотеке НАГ, Марк 23 . Проверено 9 февраля 2012 г.
- ^ GraphLab. Архивировано 14 марта 2011 г. в Wayback Machine.
Дальнейшее чтение
[ редактировать ]- Голуб, Джин Х .; Ван Лоан, Чарльз Ф. (1996). «Методы Ланцоша» . Матричные вычисления . Балтимор: Издательство Университета Джонса Хопкинса. стр. 470–507. ISBN 0-8018-5414-8 .
- Нг, Эндрю Ю .; Чжэн, Алиса X.; Джордан, Майкл И. (2001). «Анализ связей, собственные векторы и стабильность» (PDF) . IJCAI'01 Материалы 17-й Международной совместной конференции по искусственному интеллекту . 2 : 903–910.
- Эрик Кох (2019). «Точная диагонализация и метод Ланцоша» (PDF) . У Э. Паварини; Э. Кох; С. Чжан (ред.). Многочастичные методы для реальных материалов . Юлих. ISBN 978-3-95806-400-3 .