Ошибка scad блочный метод ланцоша отсутствие сходимости на интервале доверия

Введение

При решении задач сейсмического анализа зданий и сооружений чаще всего применяется линейно-спектральный метод. Значительной по трудоемкости составляющей этого подхода является определение частот и форм собственных колебаний. При этом возникает вопрос: а сколько частот и форм собственных колебаний следует удерживать, чтобы результат был достоверным? В сейсмических нормах многих стран (Еврокод 8, UBC-97, сейсмические нормы Украины и др.) принято, что сумма модальных масс по каждому из направлений сейсмического воздействия должна быть не менее установленной границы. Обычно для горизонтальной составляющей сейсмического воздействия принимается 85−90%, для вертикальной — 70−90%. Под направлением сейсмического воздействия понимается направление, совпадающее с одной из осей глобальной системы координат OXYZ расчетной модели сооружения. Считается, что сейсмическое воздействие поочередно прикладывается вдоль каждой оси, причем принимается гипотеза об их статистической независимости [5, 8].

Модальной массой при сейсмическом воздействии в направлении dir (dir = OX, OY, OZ) называется величина

(1)

, где Гidir = (Mψi, Idir), M — матрица масс, ψi — собственный вектор (форма колебаний, отвечающая i-й частоте), Idir — вектор, компоненты которого равны 1, если соответствуют степени свободы сейсмического входа по направлению dir, и нулю в противном случае,

— общая масса, участвующая в движении по направлению dir.

Суммой модальных масс по направлению dir называется величина
, причем

(2)

, где N — количество степеней свободы дискретной модели [3, 5, 8], n — количество удерживаемых собственных форм, n < < N.

В [3] на примере простой задачи показана зависимость некоторых внутренних усилий от суммы модальных масс (рис. 1).


Рис. 1

Рис. 1

Здесь NΛ = NA ⁄ NA100; VΛ = V ⁄ V100; MΛ = Mov ⁄ Mov100, NA — продольная сила в стержне А, V — суммарная сдвигающая сила в основании, Mov — опрокидывающий момент. Символ 100 означает, что этот фактор получен при удержании в решении всех собственных форм дискретной модели (100% модальных масс).

Рис. 1 иллюстрирует тот факт, что для получения достоверной сейсмической реакции сооружения необходимо удерживать такое количество собственных форм, чтобы обеспечить высокий процент модальных масс (не менее 80%). При этом, разумеется, расчетная модель должна достаточно достоверно описывать поведение системы.

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

При решении ряда задач было обнаружено, что суммы модальных масс сходятся крайне неравномерно и очень медленно [2]. При работе с расчетными моделями, содержащими большое количество степеней свободы (несколько сот тысяч), возникает серьезная проблема определения большого количества частот и форм собственных колебаний (порядка нескольких тысяч), представляющая собой сложную вычислительную задачу.

В этой работе представлен один из методов решения — блочный метод Ланцоша со сдвигами, реализованный автором в программном комплексе SCAD.

Блочный метод Ланцоша со сдвигами

В основу этой статьи положена работа Р. Граймса, Дж. Льюиса и Г. Саймона «A shifted block Lanczos algorithm for solving sparse symmetric generalized eigenproblems» [7]. Алгоритм данной реализации метода приведен в [4], а ее внедрение в программный комплекс SCAD представлено в [1]. Отметим, что блочная версия алгоритма позволяет сократить медленные операции ввода-вывода по сравнению с классической (неблочной) версией. Введение сдвигов существенно улучшает сходимость, а в случае определения большого количества собственных пар разделяет длинный частотный интервал на относительно короткие подинтервалы, ограничивая тем самым размерность пространства Крылова и заменяя экспоненциальный рост количества вычислений квазилинейным. Если исходная задача на собственные значения представляется как
(3)

, где K, M — соответственно положительно определенная разреженная матрица жесткости и полуопределенная матрица масс, {λ, ψ} — собственная пара. Вводя сдвиги σ12,…,σk, разбиваем этот частотный интервал на к+1 подинтервалов, на каждом из которых решаем задачу

(4)

где Kσ = K — σkM, λk = 1 ⁄ (ω2 — σk).

Таким образом, на каждом частотном подинтервале решается отдельная задача (4). Алгоритм выглядит так: при отсутствии какой-либо информации о спектре собственных частот полагаем σ1 = 0. Затем выполняем L шагов блочного метода Ланцоша и определяем сошедшиеся собственные пары. Далее анализируется сумма модальных масс для сошедшихся собственных пар. Если хотя бы по одному из направлений сейсмического входа сумма модальных масс меньше указанной, осуществляется переход к новому частотному интервалу. Кроме сошедшихся собственных пар имеются приближения собственных частот, которые еще не сошлись. Именно они используются для прогнозирования нового значения параметра сдвига σ2. Приняв сдвиг на основе такого прогноза, продолжаем вычисления на новом частотном интервале до тех пор, пока не определим все собственные числа, лежащие слева от сдвига и справа от последнего собственного числа, соответствующего сошедшейся собственной паре с предыдущего частотного интервала. Затем снова определяем суммы модальных масс. И так до тех пор, пока не будет достигнута достаточная сумма модальных масс.

Пример расчета

На рис. 2 приведена расчетная модель здания, включающая 8937 узлов, 9073 конечных элементов и 52 572 уравнения.


Рис. 2. Расчетная модель здания

Рис. 2. Расчетная модель здания

По количеству уравнений эта задача на сегодняшний день относится к классу средних, однако по сложности решения обобщенной проблемы собственных значений она очень трудна, так как вследствие значительной жесткости несущих конструкций в нижней части спектра расположены локальные формы колебаний (рис. 3, 4), и только форма колебаний, соответствующая 522-й частоте (рис. 5), существенно влияет на сейсмическую реакцию сооружения (m522ox = 29%, тогда как
).


Рис. 3. Первая форма колебаний, частота 4,183 Гц

Рис. 3. Первая форма колебаний, частота 4,183 Гц


Рис. 4. Четвертая форма колебаний, частота 4,365 Гц

Рис. 4. Четвертая форма колебаний, частота 4,365 Гц

Наибольший вклад дает 523-я форма колебаний, представленная на рис. 5.


Рис. 5. 523-я форма колебаний, частота 5,756 Гц

Рис. 5. 523-я форма колебаний, частота 5,756 Гц

Для обеспечения требуемых сумм модальных масс пришлось определить 2398 собственных пар.


Спектр собственных частот для этой задачи очень густой — в интервале [4.183, 5.756] Гц лежит 523 собственных частоты.
Зависимость сумм модальных масс от количества удерживаемых собственных форм приведена на рис. 6.


Рис. 6. Зависимость сумм модальных масс (Mx, My, Mz) от количества удерживаемых собственных форм

Рис. 6. Зависимость сумм модальных масс (Mx, My, Mz) от количества удерживаемых собственных форм

Выводы

При расчетах зданий и сооружений на сейсмику периодически встречаются задачи, в которых в нижней части спектра лежит большое количество локальных форм колебаний, причем спектр собственных частот является очень густым. Такие задачи создают серьезные проблемы, поскольку вычислительные алгоритмы, реализованные в современных компьютерных системах МКЭ-анализа, как правило, в таких случаях оказываются малоэффективными. Разработанный в программном комплексе SCAD алгоритм блочного метода Ланцоша со сдвигами, реализующий сейсмический режим, позволяет значительно продвинуться в решении этой проблемы.

Литература

  1. Карпиловский В.С., Криксунов Э.З., Фиалко С.Ю. Блочный метод Ланцоша со спектральными трансформациями для решения больших МКЭ задач собственных колебаний. — Вісник Одеського національного морського університету. — 2003, № 10, с. 93−99.
  2. Перельмутер А.В., Карпиловский В.С., Фиалко С.Ю., Егупов К.В. Опыт реализации проекта МСН СНГ «Строительство в сейсмических районах» в программной системе SCAD. — Вісник Одеської державної академії будівництва та архітектури. — 2003, випуск 9, с. 147−159.
  3. Фиалко С.Ю. Некоторые особенности анализа частот и форм собственных колебаний при расчете сооружений на сейсмические воздействия. — Вісник Одеської державної академії будівництва та архітектури. — 2002, випуск 8, с. 193−201.
  4. Фиалко С.Ю. О решении обобщенной проблемы собственных значений. — В кн. Перельмутер А.В., Сливкер В.И. Расчетные модели сооружений и возможность их анализа. — Издание второе. К.: Сталь, 2002, с. 570−597.
  5. Clough R., Penzien J. Dynamics of structures. — New York: McGraw-Hill, Inc., 1975. — 527 p.
  6. Fialko S.Yu., Kriksunov E.Z. and Karpilovskyy V.S. A block Lanczos method with spectral transformations for natural vibrations and seismic analysis of large structures in SCAD software. Proceedings of the CMM-2003 — Computer Methods in Mechanics, June 3−6, 2003. Gliwice, Poland, р. 129−130.
  7. Grimes R.G., Lewis J.G., Simon H.D. A shifted block Lanczos algorithm for solving sparse symmetric generalized eigenproblems. SIAM J. Matrix Anal. Appl. V. 15, 1: pp. 1−45, 1994.
  8. Wilson E.L. Three dimensional dynamic analysis of structures. California, Computers and Structures, Inc., Berkeley, USA, 1996. — 261 p.

Сергей Фиалко

д.т.н., с.н.с., проф.

Киевский национальный университет

строительства и архитектуры

Алгоритм Ланцоша — это прямой алгоритм, поиск Корнелиусом Ланцошем, который является адаптацией методов мощности для нахождения m { displaystyle m}m«наиболее полезных» (стремящихся к экстремально высоким / наименьшим) собственных имеющихся и собственных матрицы n × n { displaystyle n times n}п раз пэрмитовой матрицы, где m { displaystyle m}mчасто, но не обязательно намного меньше, чем n { displaystyle n}n. В принципе вычислительно эффективный метод, в его первоначальной формулировке не был полезен из-за его числовой нестабильности.

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

В своей первоначальной работе эти авторы также предложили, как выбрать начальный вектор (т. Е. Использовать генератор случайных чисел для выбора каждого элемента начального события), и предложили эмпирический метод определения m { displaystyle m }m, уменьшенное количество векторов (то есть должно быть выбрано примерно в 1,5 раза больше желаемого точного количества собственных значений). Вскоре после их работы последовала Пейдж, которая также представила анализ ошибок. В 1988 году Оялво представил более подробную историю этого алгоритма и эффективный тест на ошибку значений.

Содержание

  • 1 Алгоритм
    • 1.1 Применение к задаче собственных значений
    • 1.2 Применение к тридиагонализации
  • 2 Вывод алгоритм
    • 2.1 Более предусмотрительный степенной метод
    • 2.2 Одновременная аппроксимация крайних собственных значений
  • 3 Сходимость и другая динамика
    • 3.1 Теория сходимости Каниэля — Пейджа
  • 4 Числовая устойчивость
  • 5 Вариации
    • 5.1 Пустое пространство над конечным полем
  • 6 Приложения
  • 7 Реализации
  • 8 Примечания
  • 9 Ссылки
  • 10 Дополнительная литература

Алгоритм

Вход a Эрмитов матрица A { displaystyle A}Aразмера n × n { displaystyle n times n}п раз пи, необязательно, количество итераций m { displaystyle m}m(по умолчанию пусть m = n { displaystyle m = n}m = n).
Вывод an n × m { displaystyle n times m}п умножить на мматрица V { displaystyle V}Vс ортонормированными столбцами и трехдиагональной действительной симметричной матрицей T = V ∗ AV { displaystyle T = V ^ {*} AV}{ displaystyle T = V ^ {*} AV}размером m × m { displaystyle м раз м}m раз m. Если m = n { displaystyle m = n}m = n, то V { displaystyle V}Vявляется унитарным и A = VTV ∗ { displaystyle A = VTV ^ {*}}{ displaystyle A = VTV ^ {*}}.
Предупреждение Итерация Ланцоша подвержена числовой нестабильности. При выполнении неточной арифметики необходимо выполнить дополнительные меры (как в следующих разделах) для достоверности результатов.

  1. Пусть v 1 ∈ C n { displaystyle v_ {1} in mathbb {C} ^ {n}}{ displaystyle v_ {1} in mathbb {C} ^ {n}}— произвольный вектор с евклидовой нормой. 1 { displaystyle 1}1.
  2. Сокращенный шаг начальной итерации:
    1. Пусть w 1 ′ = A v 1 { displaystyle w_ {1} ‘= Av_ {1} }{displaystyle w_{1}'=Av_{1}}.
    2. Пусть α 1 = вес 1 ′ ∗ v 1 { displaystyle alpha _ {1} = w_ {1} ‘^ {*} v_ {1}}{displaystyle alpha _{1}=w_{1}'^{*}v_{1}}.
    3. w 1 знак равно w 1 ′ — α 1 v 1 { displaystyle w_ {1} = w_ {1} ‘- alpha _ {1} v_ {1}}{displaystyle w_{1}=w_{1}'-alpha _{1}v_{1}}.
  3. Для j = 2,…, m { displaystyle j = 2, dots, m}{ displ aystyle j = 2, точки, m}do:
    1. Пусть β j = ‖ wj — 1 ‖ { displaystyle beta _ {j} = | w_ {j-1} |}{ displaystyle beta _ {j} = | w_ {j-1} |}(также Евклидова норма ).
    2. Если β j ≠ 0 { displaystyle beta _ {j} neq 0}{ displaystyle бета _ {j} neq 0}, тогда пусть vj = wj — 1 / β j { displaystyle v_ {j} = w_ {j-1} / beta _ {j}}{ displaystyle v_ {j} = w_ {j-1} / beta _ {j}},
      иначе выберет как vj { displaystyle v_ {j}}v_ {j}произвольный вектор с евклидовой нормой 1 { displaystyle 1}1, который ортогонален всем v 1,…, vj — 1 { displaystyle v_ {1}, dots, v_ {j-1}}{ displaystyle v_ {1}, dots, v_ {j-1}}.
    3. Пусть wj ′ = A vj { disp laystyle w_ {j} ‘= Av_ {j}}{displaystyle w_{j}'=Av_{j}}.
    4. Пусть α j = wj ′ ∗ vj { displaystyle alpha _ {j} = w_ {j} ‘^ {*} v_ {j}}{displaystyle alpha _{j}=w_{j}'^{*}v_{j}}.
    5. Пусть wj = wj ′ — α jvj — β jvj — 1 { displaystyle w_ {j} = w_ {j} ‘- alpha _ {j} v_ {j} — beta _ {j} v_ {j-1}}{displaystyle w_{j}=w_{j}'-alpha _{j}v_{j}-beta _{j}v_{j-1}}.
  4. Пусть V { displaystyle V}Vбудет матрицей со столбцами v 1,…, vm { displaystyle v_ {1}, dots, v_ {m}}{ displaystyle v_ {1}, dots, v_ {m}}. Пусть T = (α 1 β 2 0 β 2 α 2 β 3 β 3 α 3 ⋱ ⋱ ⋱ β м — 1 β м — 1 α м — 1 β м 0 β м α м) { displaystyle T = { begin {pmatrix} alpha _ {1} beta _ {2} 0 beta _ {2} alpha _ {2} beta _ {3} beta _ {3} alpha _ {3 } ddots ddots ddots beta _ {m-1} beta _ {m-1} alpha _ {m-1} beta _ {m} 0 beta _ {m} alpha _ {m} end {pmatrix}}}{ displaystyle T = { begin {pmatrix} alpha _ {1} beta _ {2} 0  beta _ {2} alpha _ {2} beta _ {3}  beta _ {3} alpha _ {3} ddots  ddots ddots beta _ {m-1}  beta _ {m-1} alpha _ {m-1} beta _ {m}  0 beta _ {m} alpha _ {m}  end {pmatrix }}}.
ПримечаниеA vj = wj ′ = β j + 1 vj + 1 + α jvj + β jvj — 1 { displaystyle Av_ {j} = w_ {j} ‘= beta _ {j + 1} v_ {j + 1} + alpha _ {j} v_ {j} + beta _ {j} v_ {j-1}}{displaystyle Av_{j}=w_{j}'=beta _{j+1}v_{j+1}+alpha _{j}v_{j}+beta _{j}v_{j-1}}для 1 < j < m {displaystyle 1{ displaystyle 1 <j <m}.

В принципе существует четыре способа написать итерационные полномочия. Пейдж и другие работы показывают, что приведенный выше порядок наиболее устойчиво устойчивым. На практике начальный вектор v 1 { displaystyle v_ {1}}v_ {1}может быть взят как другой аргумент процедуры с β j = 0 { displaystyle beta _ {j} = 0}{ displaystyle beta _ {j} = 0 }и индикаторы числовой неточности включены в качестве дополнительных условий завершения цикла.

Не считая умножения матрицы на вектор, каждая итерация действия O (n) { displaystyle O (n)}O (n)арифметических операций. Умножение матрицы на вектор может быть выполнено в O (dn) { displaystyle O (dn)}{ displaystyle O (dn)}арифметических операциях, где d { displaystyle d}d— это среднее количество ненулевых элементов в строке. Таким образом, общая сложность составляет O (dmn) { displaystyle O (dmn)}{ displaystyle O ( dmn)}или O (dn 2) { displaystyle O (dn ^ {2})}{ displaystyle O (dn ^ {2})}если m = n { displaystyle m = n}m = n; алгоритм Ланцоша может быть очень быстрым для разреженных матриц. Схемы для улучшения числовой стабильности обычно оцениваются по этой высокой производительности.

Векторы v j { displaystyle v_ {j}}v_ {j}называются явлениями Ланцоша. Вектор wj ′ { displaystyle w_ {j} ‘}{displaystyle w_{j}'}не используется после вычислений wj { displaystyle w_ {j}}w_ {j}, а вектор wj { displaystyle w_ {j}}w_ {j}не используется после вычислений vj + 1 { displaystyle v_ {j + 1}}{ displaystyle v_ {j + 1}}. Следовательно, можно использовать одно и то же хранилище для всех трех. Аналогичным образом, если ищется только трехдиагональная матрица T { displaystyle T}T, тогда исходная итерация не требует vj — 1 { displaystyle v_ {j-1}}{ displaystyle v_ {j -1}}после вычислений wj { displaystyle w_ {j}}w_ {j}, хотя для некоторых схем повышения числовой стабильности это позже. Иногда последующие пересадки Ланцоша при необходимости читаются из v 1 { displaystyle v_ {1}}v_ {1}.

Применение к задаче собственных значений

Алгоритм Ланцоша чаще всего используется в контексте поиска собственные значения и собственных векторов матрицы, но в то время как обычная диагонализация матрицы сделала бы трех проверенные конструкции и собственные значения очевидными прике, это не верно для выполняемой алгоритмом Ланцоша; Для вычисления даже одного собственного значения или вектора необходимы нетривиальные дополнительные шаги. Тем не менее, применение алгоритма Ланцоша часто является значительным шагом вперед в вычислении собственного разложения. Если λ { displaystyle lambda}lambdaявляется собственным значением A { displaystyle A}A, и если T x = λ x { displaystyle Tx = lambda x}{ displaystyle Tx = lambda x}(x { displaystyle x}xзатем является собственным вектором T { displaystyle T}T), y = V x { displaystyle y = Vx}{ displaystyle y = Vx}— собственный собственный вектор A { displaystyle A}A(поскольку A y = AV x = VTV ∗ V x = VTI x Знак равно VT Икс = В (λ Икс) = λ В Икс = λ Y { Displaystyle Ay = AVx = VTV ^ {*} Vx = VTIx = VTx = V ( lambda x) = lambda Vx = lambda y}{ displaystyle Ay = AVx = VTV ^ {*} Vx = VTIx = VTx = V ( lambda x) = lambda Vx = lambda y}). Таким образом, алгоритм Ланцоша преобразует проблему собственного разложения для A { displaystyle A}Aв задачу собственного разложения для T { displaystyle T}T.

  1. Для трехдиагональных матриц существует ряд специализированных алгоритмов, часто с большей вычислительной сложностью, чем алгоритмы общего назначения. Например, если T { displaystyle T}Tпредставляет собой трехдиагональную симметричную матрицу m × m { displaystyle m times m}m раз m, тогда:
  2. Известно, некоторые общие алгоритмы разложения на собственные числа, в частности, QR-алгоритм, сход быстрее для трехдиагональных матриц, чем для обычных матриц. Асимптотическая сложность трехдиагонального QR составляет O (m 2) { displaystyle O (m ^ {2})}{ displaystyle O (m ^ {2})}, как и для алгоритма «разделяй и властвуй» (хотя постоянный множитель может быть другим.) ; так как собственные конструкции вместе имеют m 2 { displaystyle m ^ {2}}m ^ {2}элементов, это асимптотически оптимально.
  3. Даже алгоритмы, скорость сходимости которых не зависит от унитарных преобразователей, таких как метод мощности и обратная итерация, может иметь преимущества на низком уровне производительности от применения к трехдиагональной матрице T { displaystyle T}Tчем скорее исходная матрица A { displaystyle A}A. Время T { displaystyle T}Tочень разрежен, все ненулевые элементы находятся в хорошо предсказуемых позициях, обеспечивает компактное хранение с превосходной производительностью по сравнению с кэшированием. Аналогично, T { displaystyle T}T— это вещественная матрица со всеми собственными объектами и собственными значениями действительными, тогда как A { displaystyle A}Aкак правило, может иметь сложные элементы и существующие, поэтому достаточно вещественной арифметики для собственных векторов и собственных значений T { displaystyle T}T.
  4. Если n { displaystyle n}nравно очень большой, то уменьшение m { displaystyle m}mтак, чтобы T { displaystyle T}Tимел управляемый размер, все равно позволит найти более экстремальные собственные значения и конструктивные элементы A { displaystyle A}A; в области m ≪ n { displaystyle m ll n}{ displaystyle m ll n}алгоритм Ланцоша можно рассматривать как схему сжатие с потерянными для эрмитовых матриц, которая подчеркивает сохранение крайних собственных значений.

Сочетание хорошей производительности для разреженных матриц и способности вычислять несколько (без всех вычислений) значений собственных показателей использования алгоритма Ланцоша.

Применение к трехдиагонализации

Хотя проблема собственных значений часто является мотивацией для применения алгоритма Ланцоша, операция, которая в первую очередь выполняет алгоритм, представляет собой трехдиагонализацию матрицы, для которой численно стабильны преобразования Хаусхолдера Популярностью с 1950-х годов. В 60-е годы алгоритм Ланцоша не принимался во внимание. Интерес к нему был возрожден теорией конвергенции Каниэля — Пейджа и разработала методы предотвращения числовой нестабильности, но алгоритм Ланцоша является альтернативным алгоритмом, который можно пробовать только в том случае, если Хаусхолдер не удовлетворителен.

два алгоритма различаются: использует

  • Ланцош то, что A { displaystyle A}Aявляется разреженным матрицей, тогда как Хаусхолдер этого не делает, и генерирует заполнение.
  • Ланцоша работает с исходной матрицей A { displaystyle A}A(и не имеет проблем с тем, что она известна только неявно), тогда как необработанный Хаусхолдер хочет изменить матрицу во время вычислений (хотя это может быть
  • Каждая итера алгоритма Ланцоша создает другой столбец матрицы окончательного преобразования V { displaystyle V}V, тогда итерация Хаусхолдера еще один множитель в унитарной факторизации Q 1 Q 2… Q n { displaystyle Q_ {1} Q_ {2} dots Q_ {n}}{ displaystyle Q_ {1} Q_ {2} dots Q_ {n}}из V { displaystyle V}V. Однако каждый фактор определяется одним вектором, поэтому требования к памяти одинаковы для обоих алгоритмов, и V = Q 1 Q 2… Q n { displaystyle V = Q_ {1} Q_ {2} dots Q_ {n}}{ displaystyle V = Q_ {1} Q_ { 2} точки Q_ {n}}можно вычислить в O (n 3) { displaystyle O (n ^ {3})}O (n ^ {3})time.
  • Домохозяин — это численно стабильный, тогда как исходный Ланцош — нет.
  • Ланцош очень параллелен, только с O (n) { displaystyle O (n)}O (n)точками синхронизации (вычисления α j { displaystyle alpha _ {j}}alpha _ {j}и β j { displaystyle beta _ {j}}beta _ {j}). Хаусхолдер менее параллелен, поскольку имеет последовательность O (n 2) { displaystyle O (n ^ {2})}O (n ^ {2})вычисленных скалярных величин, каждая из которых зависит от предыдущей величины в последовательности.

Вывод алгоритма

Есть несколько аргументов, которые приводят к алгоритму Ланцоша.

Более предусмотрительный метод мощности

Метод мощности для нахождения собственного значения наибольшей величины и соответствующей матрицы матрицы A { displaystyle A}Aявляется примерно

  1. Выберите случайный вектор u 1 ≠ 0 { displaystyle u_ {1} neq 0}{ displaystyle u_ {1} neq 0}.
  2. для j ⩾ 1 { displaystyle j geqslant 1}{ displaystyle j geqslant 1}(пока направление uj { displaystyle u_ {j}}u_ {j}не сойдется) do:
    1. Пусть uj + 1 ′ = A uj. { displaystyle u_ {j + 1} ‘= Au_ {j}.}{displaystyle u_{j+1}'=Au_{j}.}
    2. Пусть u j + 1 = u j + 1 ′ / ‖ u j + 1 ′ ‖. { displaystyle u_ {j + 1} = u_ {j + 1} ‘/ | u_ {j + 1} ‘ |.}{displaystyle u_{j+1}=u_{j+1}'/|u_{j+1}'|.}

Этот метод может быть подвергнут критике за его расточительность: он тратит много работы (произведение матрица-вектор на шаге 2.1), извлекая информация из матрицы A { displaystyle A}A, но обращает внимание только на самый последний результат; обычно используют одну и ту же переменную для всех векторов u j { displaystyle u_ {j}}u_ {j}, при этом новая итерация перезаписывает результаты предыдущей. Что, если вместо этого мы сохраним все промежуточные результаты и систематизируем их данные?

Одна часть информации, которая тривиально доступна из векторов u j { displaystyle u_ {j}}u_ {j}, представляет собой цепочку подпространств Крылова. Один из способов заявить, что без введения наборов в алгоритме — заявить, что он вычисляет

подмножество {vj} j = 1 m { displaystyle {v_ {j} } _ {j = 1} ^ { m}}{ displaystyle {v_ {j} } _ {j = 1} ^ {m}}основы C n { displaystyle mathbb {C} ^ {n}}{ displaystyle mathbb {C} ^ {n}}такой, что A x ∈ span ⁡ (v 1,…, vj + 1) { displaystyle Ax in operatorname {span} (v_ {1}, dotsc, v_ {j + 1})}{ displaystyle Ax in operatorname { span} (v_ {1}, dotsc, v_ {j + 1})}для каждого x ∈ span ⁡ (v 1,…, vj) { displaystyle x in operatorname {span} (v_ {1}, dotsc, v_ {j})}{ displaystyle x in operatorname { span} (v_ {1}, dotsc, v_ {j})}и все 1 ⩽ j < m ; {displaystyle 1leqslant j{ displaystyle 1 leqslant j <m;}

это тривиально удовлетворяется vj = uj { displaystyle v_ {j} = u_ {j}}{ displaystyle v_ {j} = u_ {j}}до тех пор, пока uj { displaystyle u_ {j}}u_ {j}линейно не зависит от u 1,…, uj — 1 { displaystyle u_ {1}, dotsc, u_ {j-1}}{ displaystyle u_ {1}, dotsc, u_ {j-1}}(и в случае такой зависимости, то можно продолжить последовательность, выбрав в качестве vj { displaystyle v_ {j}}v_ {j}произвольный вектор, линейно независимый от u 1,…, uj — 1 { displaystyle u_ {1}, dotsc, u_ {j-1}}{ displaystyle u_ {1}, dotsc, u_ {j-1}}). Однако базис быстро обусловлен uj { displaystyle u_ {j}}u_ {j}, скорее всего, будет численно плохо обусловлен, поскольку эта последовательность векторов по замыслу обеспечивает схождения в собственном векторе А { displaystyle A}A. Чтобы избежать этого, можно комбинировать степенную итерацию с процессом Грама — Шмидта, чтобы вместо этого получить ортонормированный базис этих подпространств Крылова.

  1. Выберите случайный вектор u 1 { displaystyle u_ {1}}u_ {1}евклидовой нормы 1 { displaystyle 1}1. Пусть v 1 = u 1 { displaystyle v_ {1} = u_ {1}}{ displaystyle v_ {1} = u_ {1}}.
  2. для j = 1,…, m — 1 { displaystyle j = 1, dotsc, m- 1}{ displaystyle j = 1, dotsc, m-1}do:
    1. Пусть uj + 1 ′ = A uj { displaystyle u_ {j + 1} ‘= Au_ {j}}{displaystyle u_{j+1}'=Au_{j}}.
    2. Для всех к = 1,…, j { displaystyle k = 1, dotsc, j}{ displaystyle k = 1, dotsc, j}пусть gk, j = vk ∗ uj + 1 ′ { displaystyle g_ {k, j} = v_ {k} ^ {*} u_ {j + 1} ‘}{displaystyle g_{k,j}=v_{k}^{*}u_{j+1}'}. (Это координаты A uj = uj + 1 ′ { displaystyle Au_ {j} = u_ {j + 1} ‘}{displaystyle Au_{j}=u_{j+1}'}относительно базисных векторов v 1,…, Vj { displaystyle v_ {1}, dotsc, v_ {j}}{ displaystyle v_ {1}, dotsc, v_ {j}}.)
    3. Пусть wj + 1 = uj + 1 ′ — ∑ k = 1 jgk, jvk { displaystyle w_ {j + 1} = u_ {j + 1} ‘- sum _ {k = 1} ^ {j} g_ {k, j} v_ {k}}{displaystyle w_{j+1}=u_{j+1}'-sum _{k=1}^{j}g_{k,j}v_{k}}. (Отменить компонент uj + 1 ′ { displaystyle u_ {j + 1} ‘}{displaystyle u_{j+1}'}, который находится в span ⁡ (v 1,…, vj) { displaystyle operatorname {span} (v_ {1}, dotsc, v_ {j}) }{ displaystyle operatorname {span} (v_ {1}, dotsc, v_ {j})}.)
    4. Если wj + 1 ≠ 0 { displaystyle w_ {j + 1} neq 0}{ displaystyle w_ {j + 1} neq 0}, тогда пусть uj + 1 = uj + 1 ′ / ‖ uj + 1 ′ ‖ { displaystyle u_ {j + 1} = u_ {j + 1} ‘/ | u_ {j + 1}’ |}{displaystyle u_{j+1}=u_{j+1}'/|u_{j+1}'|}и vj + 1 = wj + 1 / ‖ Wj + 1 ‖ { displaystyle v_ {j + 1} = w_ {j + 1} / | w_ {j + 1} |}{ displaystyle v_ {j + 1} = w_ {j + 1} / | w_ {j + 1} |},
      в случае опасности uj + 1 = vj + 1 { displaystyle u_ {j + 1} = v_ {j + 1}}{ displaystyle u_ {j + 1} = v_ {j + 1}}произвольный вектор евклидовой нормы 1 { displaystyle 1}1который ортогонал ен всем из v 1,…, vj { displaystyle v_ {1}, dotsc, v_ {j}}{ displaystyle v_ {1}, dotsc, v_ {j}}.

соотношение между вектором степенных итераций uj { displaystyle u_ {j}}u_ {j}и ортогон векторами vj { displaystyle v_ {j}}v_ {j}таково, что

A uj знак равно ‖ uj + 1 ′ ‖ uj + 1 = uj + 1 ′ = wj + 1 + ∑ К знак равно 1 jgk, jvk = ‖ wj + 1 ‖ vj + 1 + ∑ k = 1 jgk, jvk { displaystyle Au_ {j} = | u_ {j + 1} ‘ | u_ {j + 1} = u_ {j + 1} ‘= w_ {j + 1} + sum _ {k = 1} ^ {j} g_ {k, j} v_ {k} = | w_ {j + 1} | v_ {j + 1} + sum _ {k = 1} ^ {j} g_ {k, j} v_ {k}}{displaystyle Au_{j}=|u_{j+1}'|u_{j+1}=u_{j+1}'=w_{j+1}+sum _{k=1}^{j}g_{k,j}v_{k}=|w_{j+1}|v_{j+1}+sum _{k=1}^{j}g_{k,j}v_{k}}.

Здесь можно заметить, что нам на самом деле не нужна конструкция uj { displaystyle u_ {j}}u_ {j}для вычислений этих vj { displaystyle v_ {j}}v_ {j}, потому что uj — vj ∈ span ⁡ (v 1,…, vj — 1) { displaystyle u_ {j} -v_ {j} in operatorname {span} (v_ {1}, dotsc, v_ {j-1})}{ displaystyle u_ {j} -v_ {j} in operatorname {span} (v_ {1}, dotsc, v_ {j-1})}и, следовательно, разница между uj + 1 ′ = A uj { displaystyle u_ {j + 1} ‘= Au_ {j}}{displaystyle u_{j+1}'=Au_{j}}и wj + 1 ′ = A vj { displaystyle w_ {j + 1} ‘= Av_ {j}}{displaystyle w_{j+1}'=Av_{j}}находится в <358 диапазоне ⁡ (v 1,…, Vj) { displaystyle operatorname {span} (v_ {1}, dotsc, v_ {j})}{ displaystyle operatorname {span} (v_ {1}, dotsc, v_ {j})}, который отменяется процесс ортогонализации. Таким образом, тот же самый базис для цепочки подпространств Крылова вычисляется с помощью

  1. Выбрать случайный вектор v 1 { displaystyle v_ {1}}v_ {1}евклидовой нормы 1 { displaystyle 1}1.
  2. Для j = 1,…, m — 1 { displaystyle j = 1, dotsc, m-1}{ displaystyle j = 1, dotsc, m-1}do:
    1. Пусть wj + 1 ′ = A vj { displaystyle w_ {j + 1} ‘= Av_ {j}}{displaystyle w_{j+1}'=Av_{j}}.
    2. Для всех k = 1,…, j { displaystyle k = 1, dotsc, j}{ displaystyle k = 1, dotsc, j}пусть hk, j = vk ∗ wj + 1 ′ { displaystyle h_ {k, j} = v_ {k} ^ {*} w_ {j + 1} ‘}{displaystyle h_{k,j}=v_{k}^{*}w_{j+1}'}.
    3. Пусть wj + 1 = wj + 1 ′ — ∑ К = 1 jhk, jvk { displaystyle w_ {j + 1} = w_ {j + 1} ‘- sum _ {k = 1} ^ {j} h_ {k, j} v_ {k}}{displaystyle w_{j+1}=w_{j+1}'-sum _{k=1}^{j}h_{k,j}v_{k}}.
    4. Пусть hj + 1, j = ‖ wj + 1 ‖ { displaystyle h_ {j + 1, j} = | w_ {j + 1} |}{ displaystyle h_ {j + 1, j} = | w_ {j + 1} |}.
    5. Если hj + 1, j ≠ 0 { displaystyle h_ {j + 1, j} neq 0}{ displaystyle h_ {j + 1, j} neq 0}, тогда пусть vj + 1 = wj + 1 / hj + 1, j { displaystyle v_ {j + 1} = w_ {j + 1} / h_ {j + 1, j}}{ displaystyle v_ {j + 1} = w_ {j + 1} / h_ {j + 1, j}},
      в противном случае получить как vj + 1 { displaystyle v_ {j + 1}}{ displaystyle v_ {j + 1}}произвольный вектор евклидовой нормы 1 { displaystyle 1}1, который ортогонален всем из v 1,…, vj { displaystyle v_ {1}, dotsc, v_ {j}}{ displaystyle v_ {1}, dotsc, v_ {j}}.

Априори коэффициенты hk, j { displaystyle h_ {k, j}}{ displaystyle h_ {k, j}}удовлетворяет

A vj знак равно ∑ К знак равно 1 j + 1 hk, jvk { displaystyle Av_ {j} = sum _ {k = 1} ^ {j + 1} h_ {k, j} v_ {k}}{ displaystyle Av_ {j} = sum _ {k = 1} ^ {j + 1} h_ {k, j} v_ {k}}для всех j < m {displaystyle j{ displaystyle j <m };

определение hj + 1, j = ‖ wj + 1 ‖ { displaystyle h_ {j + 1, j} = | w_ {j + 1} |}{ displaystyle h_ {j + 1, j} = | w_ {j + 1} |}может показаться немного странным, но соответствует общему шаблону hk, j = vk ∗ wj + 1 ′ { displaystyle h_ {k, j} = v_ {k } ^ {*} w_ {j + 1} ‘}{displaystyle h_{k,j}=v_{k}^{*}w_{j+1}'}, поскольку

vj + 1 ∗ wj + 1 ′ = vj + 1 ∗ wj + 1 = ‖ wj + 1 ‖ vj + 1 ∗ vj + 1 = ‖ Wj + 1 ‖. { Displaystyle v_ {j + 1} ^ {*} w_ {j + 1} ‘= v_ {j + 1} ^ {*} w_ {j + 1} = | w_ {j + 1} | v_ {j + 1} ^ {*} v_ {j + 1} = | w_ {j + 1} |.}{displaystyle v_{j+1}^{*}w_{j+1}'=v_{j+1}^{*}w_{j+1}=|w_{j+1}|v_{j+1}^{*}v_{j+1}=|w_{j+1}|.}

Технических степенных итераций uj { displaystyle u_ {j}}u_ {j}, которые были исключены из этой рекурсии, удовлетворяют uj ∈ span ⁡ (v 1,…, vj), { displaystyle u_ {j} in operatorname {span} (v_ {1}, ldots, v_ {j}),}{ displaystyle u_ {j} in operatorname {span} (v_ {1}, ldots, v_ {j}),}векторы {vj} j = 1 m { displaystyle {v_ {j} } _ {j = 1} ^ {m}}{ displaystyle {v_ {j} } _ {j = 1} ^ {m}}и коэффициенты hk, j { displaystyle h_ {k, j}}{ displaystyle h_ {k, j}}содержат достаточно информации из A { displaystyle A}A, что все из u 1,…, um { displaystyle u_ {1}, ldots, u_ {m}}u_ {1}, ldots, u_ {m}можно вычислить, поэтому при переключении векторов ничего не потеряно. (Действительно, оказывается, что собранные здесь данные дают значительно лучшее приближение к наибольшему собственному значению, чем получается при равном количестве итераций в степенном методе, хотя на данном этапе это не обязательно очевидно.)

Эта последняя процедура является итерацией Арнольди. Алгоритм Ланцоша возникает как упрощение, которое можно получить за счет исключения этапов вычисления, которые оказываются тривиальными, когда A { displaystyle A}Aэрмитово, в частности, большая часть hk, j Коэффициенты { displaystyle h_ {k, j}}{ displaystyle h_ {k, j}}оказываются равными нулю.

Элементарно, если A { displaystyle A}Aэрмитово, то

hk, j = vk ∗ wj + 1 ′ = vk ∗ A vj = vk ∗ A ∗ vj = (A vk) ∗ vj. { displaystyle h_ {k, j} = v_ {k} ^ {*} w_ {j + 1} ‘= v_ {k} ^ {*} Av_ {j} = v_ {k} ^ {*} A ^ { *} v_ {j} = (Av_ {k}) ^ {*} v_ {j}.}{displaystyle h_{k,j}=v_{k}^{*}w_{j+1}'=v_{k}^{*}Av_{j}=v_{k}^{*}A^{*}v_{j}=(Av_{k})^{*}v_{j}.}

Для k < j − 1 {displaystyle k{ displaystyle k <j-1}мы знаем, что A vk ∈ span ⁡ (v 1,…, vj — 1) { displaystyle Av_ {k} in operatorname {span} (v_ {1}, ldots, v_ {j-1})}{ displaystyle Av_ {k} in operatorname {span} (v_ {1}, ldots, v_ {j- 1})}, а поскольку vj { displaystyle v_ { j}}v_ {j}по построению ортогонален этому подпространству, это внутреннее произведение должно быть нулевым. (По сути, это также причина того, почему последовательностям ортогональных многочленов всегда можно задать трехчленное рекуррентное соотношение.) Для k = j — 1 { displaystyle k = j-1}{ displaystyle к = j-1}получается

hj — 1, j = (A vj — 1) ∗ vj = vj ∗ A vj — 1 ¯ = hj, j — 1 ¯ = hj, j — 1 { displaystyle h_ {j -1, j} = (Av_ {j-1}) ^ {*} v_ {j} = { overline {v_ {j} ^ {*} Av_ {j-1}}} = { overline {h_ { j, j-1}}} = h_ {j, j-1}}{ displaystyle h_ {j-1, j} = (Av_ {j-1}) ^ {*} v_ {j} = { overline {v_ {j} ^ {*} Av_ {j-1 }}} = { overline {h_ {j, j- 1}}} = h_ {j, j-1}}

, поскольку последний является действительным, поскольку является нормой вектора. Для k = j { displaystyle k = j}{ displaystyle k = j}получается

hj, j = (A vj) ∗ vj = vj ∗ A vj ¯ = hj, j ¯, { displaystyle h_ {j, j} = (Av_ {j}) ^ {*} v_ {j} = { overline {v_ {j} ^ {*} Av_ {j}}} = { overline {h_ {j, j }}},}{ displaystyle h_ {j, j} = (Av_ {j}) ^ {* } v_ {j} = { overline {v_ {j} ^ {*} Av_ {j}}} = { overline {h_ {j, j}}},}

означает, что это тоже реально.

Более абстрактно, если V { displaystyle V}Vпредставляет собой матрицу со столбцами v 1,…, vm { displaystyle v_ {1}, ldots, v_ {m}}{ displaystyle v_ {1}, ldot s, v_ {m}}, то числа hk, j { displaystyle h_ {k, j}}{ displaystyle h_ {k, j}}могут быть идентифицированы как элементы матрицы H = V ∗ AV { displaystyle H = V ^ {*} AV}{ displaystyle H = V ^ {*} AV}и hk, j = 0 { displaystyle h_ {k, j} = 0}{ displaystyle h_ {k, j} = 0}для к>j + 1; { displaystyle k>j + 1;}{displaystyle k>j + 1;}матрица H { displaystyle H}Hявляется верхним Hessenberg. Поскольку

H ∗ = (V ∗ AV) * = V * A * V = V * AV = H { Displaystyle H ^ {*} = left (V ^ {*} AV right) ^ {*} = V ^ {*} A ^ {*} V = V ^ {*} AV = H}{ displaystyle H ^ {*} = left (V ^ {*} AV right) ^ {*} = V ^ {*} A ^ {*} V = V ^ {*} AV = H}

матрица H { displaystyle H}Hэрмитова. Это означает, что H { displaystyle H}Hтакже является нижним по Гессенбергу, поэтому на самом деле он должен быть трехдиагональным. Поскольку его главная диагональ является эрмитовой, ее главная диагональ действительна, а поскольку ее первая поддиагональ реальна по конструкции, то же самое верно и для ее первой наддиагонали. Следовательно, H { displaystyle H}H— это действительная симметричная матрица — матрица T { displaystyle T}Tиз спецификации алгоритма Ланцоша.

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

Один из способов охарактеризовать собственные векторы эрмитова матрица A { displaystyle A}A— это как стационарные точки из частного отношения Рэлея

r (x) = x ∗ A xx ∗ x, x ∈ C n. { displaystyle r (x) = { frac {x ^ {*} Ax} {x ^ {*} x}}, qquad x in mathbb {C} ^ {n}.}{ displaystyle r (x) = { frac {x ^ {*} Ax} {x ^ {*} x }}, qquad x in mathbb {C} ^ {n}.}

В частности, наибольшее собственное значение λ max { displaystyle lambda _ { max}}lambda_ max— это глобальный максимум r { displaystyle r}rи наименьшее собственное значение λ min { displaystyle lambda _ { min}}lambda_ min— это глобальный минимум r { displaystyle r}r.

в подпространстве низкой размерности L { displaystyle { mathcal {L}}}{ mathcal {L}}из C n { displaystyle mathbb {C} ^ {n}}{ displaystyle mathbb {C} ^ {n}}может оказаться возможным найти максимум x { displaystyle x}xи минимум y { displaystyle y}Yиз r { displaystyle r}r. Повторяя это для возрастающей цепочки L 1 ⊂ L 2 ⊂ ⋯ { displaystyle { mathcal {L}} _ {1} subset { mathcal {L}} _ {2} subset cdots}{ displaystyle { mathcal {L}} _ {1} subset { mathcal {L}} _ {2} subset cdots}производит две последовательности векторов: x 1, x 2,… { displaystyle x_ {1}, x_ {2}, ldots}x_1, x_2, ldotsи y 1, y 2,… { displaystyle y_ {1}, y_ {2}, dotsc}{ displaystyle y_ {1}, y_ {2}, dotsc}такие, что xj, yj ∈ L j { displaystyle x_ {j}, y_ {j} in { mathcal {L}} _ {j}}{ displaystyle x_ {j}, y_ {j} in { mathcal {L}} _ {j}}и

r (x 1) ⩽ r (x 2) ⩽ ⋯ ⩽ λ max r (y 1) ⩾ r (y 2) ⩾ ⋯ ⩾ λ мин { Displaystyle { begin {align} r (x_ {1}) leqslant r (x_ {2}) leqslant cdots leqslant lambda _ { max} r (y_ {1 }) geqslant r (y_ {2}) geqslant cdots geqslant lambda _ { min} end {align}}}{ displaystyle { begin {align} r (x_ {1}) leqslant r (x_ {2}) leqslant cdots leqslant lambda _ { max}  r (y_ {1}) geqslant r (y_ {2}) geqslant cdots geqslant lambda _ { min} end {align}}}

Тогда возникает вопрос, как выбрать подпространства, чтобы эти последовательности сходились в оптимальная скорость.

Из xj { displaystyle x_ {j}}x_ {j}, оптимальное направление для поиска больших значений r { displaystyle r}r— это градиент ∇ r (xj) { displaystyle nabla r (x_ {j})}{ displaystyl е набла г (x_ {j})}, а также от yj { displaystyle y_ {j}}y_ {j}оптимальным направлением поиска меньших значений r { displaystyle r}rявляется направление отрицательного градиента — ∇ r (yj) { displaystyle — nabla r (y_ {j})}{ displaystyle - nabla r (y_ {j})}. В общем

∇ r (x) = 2 x ∗ x (A x — r (x) x) { displaystyle nabla r (x) = { frac {2} {x ^ {*} x}} (Ax-r (x) x)}{ displaystyle nabla r (x) = { гидроразрыв {2} {x ^ {*} x}} (Ax-r (x) x)},

поэтому интересующие направления достаточно легко вычислить в матричной арифметике, но если кто-то хочет улучшить оба, xj { displaystyle x_ {j}}x_ {j}и yj { displaystyle y_ {j}}y_ {j}то есть два новых направления, которые следует учитывать: A xj { displaystyle Ax_ {j}}{ displaystyle Ax_ {j}}и A yj; { displaystyle Ay_ {j};}{ displaystyle Ay_ {j};}начиная с xj { displaystyle x_ {j}}x_ {j}и yj { displaystyle y_ {j}}y_ {j}могут быть линейно независимыми векторами (действительно, близкими к ортогональным), в общем случае нельзя ожидать A xj { displaystyle Ax_ {j}}{ displaystyle Ax_ {j}}и A yj { displaystyle Ay_ {j}}{ displaystyle Ay_ {j}}быть параллельным. Следовательно, необходимо ли увеличивать размер L j { displaystyle { mathcal {L}} _ {j}}mathcal {L} _jна 2 { displaystyle 2}2на каждом шагу? Нет, если взять {L j} j = 1 m { displaystyle {{ mathcal {L}} _ {j} } _ {j = 1} ^ {m}}{ displaystyle {{ mathcal {L}} _ {j} } _ {j = 1} ^ {m }}быть подпространствами Крылова, потому что тогда A z ∈ L j + 1 { displaystyle Az in { mathcal {L}} _ {j + 1}}{ displaystyle Az in { mathcal {L}} _ { j + 1}}для всех z ∈ L j, { displaystyle z in { mathcal {L}} _ {j},}{ displaystyle z in { mathcal {L}} _ {j},}таким образом, в частности, для обоих z = xj { displaystyle z = x_ {j}}{ displaystyle z = x_ {j}}и z = yj { displaystyle z = y_ {j}}{ displaystyle z = y_ {j}}.

Другими словами, мы можем начать с некоторого произвольного начального вектора x 1 = y 1, { displaystyle x_ {1} = y_ {1},}{ displaystyle x_ {1} = y_ {1},}построить векторные пространства

L j = span ⁡ (x 1, A x 1,…, A j — 1 x 1) { displaystyle { mathcal {L}} _ {j} = operatorname {span} (x_ {1}, Ax_ {1}, ldots, A ^ {j-1} x_ {1})}{ displaystyle { mathcal {L}} _ {j} = operatorname {span} (x_ { 1}, Ax_ {1}, ldots, A ^ {j -1} x_ {1})}

и затем искать xj, yj ∈ L j { displaystyle x_ {j}, y_ {j} in { mathcal {L}} _ {j}}{ displaystyle x_ {j}, y_ {j} in { mathcal {L}} _ {j}}такие, что

r (xj) = max z ∈ L jr (z) и r (yj) = min z ∈ L jr (z). { displaystyle r (x_ {j}) = max _ {z in { mathcal {L}} _ {j}} r (z) qquad { text {and}} qquad r (y_ {j }) = min _ {z in { mathcal {L}} _ {j}} r (z).}{ displaystyle r ( x_ {j}) = max _ {z in { mathcal {L}} _ {j}} r (z) qquad { text {и}} qquad r (y_ {j}) = min _ {z in { mathcal {L}} _ {j}} r (z).}

Поскольку j { displaystyle j}jth степень метод итерации uj { displaystyle u_ {j}}u_ {j}принадлежит L j, { displaystyle { mathcal {L}} _ {j},}{ displaystyle { mathcal {L}} _ {j},}из этого следует, что итерация для создания xj { displaystyle x_ {j}}x_ {j}и yj { displaystyle y_ {j}}y_ {j}не может сходиться медленнее, чем это метода мощности и достигнет большего, аппроксимируя оба крайних значения собственных значений. Для подзадачи оптимизации r { displaystyle r}rна некотором L j { displaystyle { mathcal {L}} _ {j}}{ displaystyle { mathcal {L}} _ {j}}он удобно иметь ортонормированный базис {v 1,…, vj} { displaystyle {v_ {1}, ldots, v_ {j} }}{ displaystyle {v_ {1}, ldots, v_ {j} }}для этого векторного пространства. Таким образом, мы снова приходим к проблеме и проблеме такого базиса для поставляемого подпространств Крылова.

Сходимость и другая динамика

При анализе динамики алгоритма удобно брать собственные значения и собственные векторы A { displaystyle A}Aкак заданы, даже если они явно не известны пользователю. Чтобы зафиксировать обозначение, пусть λ 1 ⩾ λ 2 ⩾ ⋯ ⩾ λ n { displaystyle lambda _ {1} geqslant lambda _ {2} geqslant dotsb geqslant lambda _ {n}}{ displaystyle lambda _ {1} geqslant lambda _ {2} geqslant dotsb geqslant lambda _ {n}}будет собственными значениями (все они известны, и поэтому их можно упорядочить), и пусть z 1,…, zn { displaystyle z_ {1}, dotsc, z_ {n}}{ displaystyle z_ {1}, dotsc, z_ {n}}быть ортонормированным набором собственных векторов такой, что A zk = λ kzk { displaystyle Az_ {k} = lambda _ {k} z_ {k}}{ displaystyle Az_ {k} = lambda _ {k} z_ {k}}для всех k = 1,…, n { displaystyle k = 1, dotsc, n}{ displ aystyle k = 1, dotsc, n}.

Также удобно зафиксировать обозначение для коэффициентов исходного вектора Ланцоша v 1 { displaystyle v_ {1 }}v_ {1}относительно этого собственного базиса; пусть dk = zk ∗ v 1 { displaystyle d_ {k} = z_ {k} ^ {*} v_ {1}}{ displaystyle d_ {k} = z_ {k} ^ {*} v_ {1}}для всех k = 1,…, n { displaystyle k = 1, dotsc, n}{ displ aystyle k = 1, dotsc, n}, так что v 1 = ∑ k = 1 ndkzk { displaystyle textstyle v_ {1} = sum _ {k = 1} ^ {n} d_ {k} z_ {k}}{ displaystyle textstyle v_ {1} = sum _ {k = 1} ^ {n} d_ {k} z_ {k}}. Начальный вектор v 1 { displaystyle v_ {1}}v_ {1}, лишенный некоторого собственного значения, будет задерживать сходимость к соответствующему собственному значению, и даже несмотря на то, что это просто оказывается постоянным фактором в границах ошибки, истощение остается нежелательным. Один из распространенных методов, позволяющих избежать постоянного удара, — выбрать v 1 { displaystyle v_ {1}}v_ {1}, сначала отрисовав элементы случайным образом в соответствии с тем же нормальным распределением со средним значением 0 { displaystyle 0}{ displaystyle 0}, а затем масштабируйте вектор до нормы 1 { displaystyle 1}1. Prior to the rescaling, this causes the coefficients d k {displaystyle d_{k}}d_{k}to also be independent normally distributed stochastic variables from the same normal distribution (since the change of coordinates is unitary), and after rescaling the vector ( d 1, …, d n) {displaystyle (d_{1},dotsc,d_{n})}{ displaystyle (d_ {1}, dotsc, d_ {n})}will have a uniform distribution on the unit sphere in C n {displaystyle mathbb {C} ^{n}}mathbb {C} ^ {n}. This makes it possible to bound the probability that for example | d 1 | < ε {displaystyle |d_{1}|<varepsilon }{ displaystyle | d_ {1} | < varepsilon}.

The fact that the Lanczos algorithm is coordinate-agnostic – operations only look at inner products of vectors, never at individual elements of vectors – makes it easy to construct examples with known eigenstructure to run the algorithm on: make A {displaystyle A}Aa diagonal matrix with the desired eigenvalues on the diagonal; as long as the starting vector v 1 {displaystyle v_{1}}v_ {1}has enough nonzero elements, the algorithm will output a general tridiagonal symmetric матрица как T { displaystyle T}T.

Теория сходимости Каниэля – Пейдж

После m { displaystyle m}mитерационных шагов алгоритма Ланцоша, T { displaystyle T}T— это m × m { displaystyle m times m}m раз mвещественная симметричная матрица, которая, как и в предыдущем случае, имеет m { displaystyle m}mсобственные значения θ 1 ⩾ θ 2 ⩾ ⋯ ⩾ θ m. { displaystyle theta _ {1} geqslant theta _ {2} geqslant dots geqslant theta _ {m}.}{ displaystyle theta _ {1} geqslant theta _ {2} geqslant dots geqslant theta _ {m}.}Под конвергенцией в первую очередь понимается конвергенция θ 1 { displaystyle theta _ {1}}theta _ {1}до λ 1 { displaystyle lambda _ {1}}lambda _ {1}(и симметричная сходимость θ m { displaystyle theta _ {m}}theta _ {m}до λ n { displaystyle lambda _ {n}}lambda _ {n}) как m { displaystyle m}mрастет, и, во-вторых, сходимость некоторого диапазона θ 1,…, θ k { displaystyle theta _ {1}, ldots, theta _ {k}}{ displaystyle theta _ {1}, ldots, theta _ { k}}собственные значения T { displaystyle T}Tна их аналоги λ 1,…, λ k { displaystyle lambda _ {1}, ldots, lambda _ {k}}{ displaystyle lambda _ {1}, ldots, lambda _ {k}}из A { displaystyle A}A. Сходимость для алгоритма Ланцоша часто на порядки быстрее, чем для алгоритма степенной итерации.

Границы для θ 1 { displaystyle theta _ {1}}theta _ {1}исходят из приведенной выше интерпретации собственных значений как крайних значений коэффициента Рэлея r (x) { displaystyle r (x)}r (x). Поскольку λ 1 { displaystyle lambda _ {1}}lambda _ {1}априори является максимумом r { displaystyle r}rна всем C n, { displaystyle mathbb {C} ^ {n},}{ displaystyle mathbb {C} ^ {n},}, тогда как θ 1 { displaystyle theta _ {1}}theta _ {1}— это просто максимум на an m { displaystyle m}m-мерное подпространство Крылова, мы тривиально получаем λ 1 ⩾ θ 1 { displaystyle lambda _ {1} geqslant theta _ {1}}{ displaystyle lambda _ {1} geqslant theta _ {1}}. И наоборот, любая точка x { displaystyle x}xв этом подпространстве Крылова обеспечивает нижнюю границу r (x) { displaystyle r (x)}r (x)для θ 1 { displaystyle theta _ {1}}theta _ {1}, поэтому, если можно выставить точку, для которой λ 1 — r (x) { displaystyle lambda _ {1} — r (x)}{ displaystyle lambda _ {1} -r (x)}мало, тогда это обеспечивает жесткую границу θ 1 { displaystyle theta _ {1}}theta _ {1}.

Размер m { displaystyle m}mПодпространство Крылова — это

span ⁡ {v 1, A v 1, A 2 v 1,…, A m — 1 v 1}, { displayst yle operatorname {span} left {v_ {1}, Av_ {1}, A ^ {2} v_ {1}, ldots, A ^ {m-1} v_ {1} right },}{ displaystyle operatorname {span} влево {v_ {1}, Av_ {1}, A ^ {2} v_ {1}, ldots, A ^ {m-1} v_ {1} right },}

, поэтому любой его элемент может быть выражен как p (A) v 1 { displaystyle p (A) v_ {1}}{ displaystyle p (A) v_ {1}}для некоторого полинома p { displaystyle p}pстепени не более м — 1 { displaystyle m-1}m-1; коэффициенты этого многочлена — это просто коэффициенты в линейной комбинации векторов v 1, A v 1, A 2 v 1,…, A m — 1 v 1 { displaystyle v_ {1}, Av_ {1}, A ^ { 2} v_ {1}, ldots, A ^ {m-1} v_ {1}}{ displaystyle v_ {1}, Av_ {1}, A ^ {2} v_ {1}, ldots, A ^ {m-1} v_ {1}}. У желаемого многочлена обеспечивают действующие коэффициенты, но на данный момент мы должны учитывать комплексные коэффициенты, и мы напишем p ∗ { displaystyle p ^ {*}}p ^ {*}для многочлен, полученный комплексным сопряжением всех коэффициентов п { displaystyle p}p. В этом параметре подпространства Крылова имеет

r (p (A) v 1) = (p (A) v 1) ∗ A p (A) v 1 (p (A) v 1) ∗ p (A) v 1 = v 1 ∗ p (A) ∗ A p (A) v 1 v 1 ∗ p (A) ∗ p (A) v 1 = v 1 ∗ p ∗ (A ∗) A p (A) v 1 v 1 ∗ p * (A *) p (A) v 1 знак равно v 1 * p * (A) A p (A) v 1 v 1 * p * (A) p (A) v 1 { displaystyle r (p ( A) v_ {1}) = { frac {(p (A) v_ {1}) ^ {*} Ap (A) v_ {1}} {(p (A) v_ {1}) ^ {*} p (A) v_ {1}}} = { frac {v_ {1} ^ {*} p (A) ^ {*} Ap (A) v_ {1}} {v_ {1} ^ {*} p (A) ^ {*} p (A) v_ {1}}} = { frac {v_ {1} ^ {*} p ^ {*} (A ^ {*}) Ap (A) v_ {1} } {v_ {1} ^ {*} p ^ {*} (A ^ {*}) p (A) v_ {1}}} = { frac {v_ {1} ^ {*} p ^ {*} (A) Ap (A) v_ {1}} {v_ {1} ^ {*} p ^ {*} (A) p (A) v_ {1}}}}{ displaystyle r (p (A) v_ {1}) = { frac { (p (A) v_ {1}) ^ {*} Ap (A) v_ {1}} {(p (A) v_ {1}) ^ {*} p (A) v_ {1}}} = { frac {v_ {1} ^ {*} p (A) ^ {*} Ap (A) v_ {1}} {v_ {1} ^ {*} p (A) ^ {*} p (A) v_ {1}}} = { frac {v_ {1} ^ {*} p ^ {*} (A ^ {*}) Ap (A) v_ {1}} {v_ {1} ^ {*} p ^ {*} (A ^ {*}) p (A) v_ {1}}} = { frac {v_ {1} ^ {*} p ^ {*} (A) Ap (A) v_ {1}} {v_ {1} ^ {*} p ^ {*} (A) p (A) v_ {1}}}}

Используя теперь выражение для v 1 { displaystyle v_ {1}}v_ {1}как линейной комбинации собственных векторов мы получаем

A v 1 = A ∑ k = 1 ndkzk = ∑ k = 1 ndk λ kzk { displaystyle Av_ {1 } = A sum _ {k = 1} ^ {n} d_ {k} z_ {k} = sum _ {k = 1} ^ {n} d_ {k} lambda _ {k} z_ { k}}{ displaystyle Av_ {1} = A sum _ {k = 1} ^ {n} d_ {k} z_ {k} = sum _ {k = 1} ^ {n} d_ { k} lambda _ {k} z_ {k}}

и в более общем плане

q (A) v 1 = ∑ k = 1 ndkq (λ k) zk { displaystyle q (A) v_ {1} = sum _ {k = 1 } ^ {n} d_ {k} q ( lambda _ {k}) z_ {k}}{ displaystyle q (A) v_ {1} = sum _ {k = 1} ^ {n} d_ {k} q ( lambda _ {k}) z_ {k}}

для любого полинома q { displaystyle q}q.

Таким образом,

λ 1 — r (p (A) v 1) = λ 1 — v 1 ∗ ∑ k = 1 ndkp ∗ (λ k) λ kp (λ k) zkv 1 ∗ ∑ k = 1 ndkp ∗ (λ k) p (λ k) zk = λ 1 — ∑ k = 1 n | d k | 2 λ k p (λ k) ∗ p (λ k) ∑ k = 1 n | d k | 2 p (λ k) ∗ p (λ k) = ∑ k = 1 n | d k | 2 (λ 1 — λ k) | p (λ k) | 2 ∑ k = 1 n | d k | 2 | p (λ k) | 2. { displaystyle lambda _ {1} -r (p (A) v_ {1}) = lambda _ {1} — { frac {v_ {1} ^ {*} sum _ {k = 1 } ^ {n} d_ {k} p ^ {*} ( lambda _ {k}) lambda _ {k} p ( lambda _ {k}) z_ {k}} {v_ {1} ^ {* } сумма _ {k = 1} ^ {n} d_ {k} p ^ {*} ( lambda _ {k}) p ( lambda _ {k}) z_ {k}}} = lambda _ { 1} — { frac { sum _ {k = 1} ^ {n} | d_ {k} | ^ {2} lambda _ {k} p ( lambda _ {k}) ^ {*} p ( lambda _ {k})} { sum _ {k = 1} ^ {n} | d_ {k} | ^ {2} p ( lambda _ {k}) ^ {*} p ( lambda _ {k})}} = { frac { sum _ {k = 1} ^ {n} | d_ {k} | ^ {2} ( lambda _ {1} — lambda _ {k}) left | p ( lambda _ {k}) right | ^ {2}} { sum _ {k = 1} ^ {n} | d_ {k} | ^ {2} left | p ( lambda _ {k}) right | ^ {2}}}.}{ displaystyle lambda _ {1} -r (p (A) v_ {1}) = lambda _ {1} - { frac {v_ {1} ^ {*} sum _ {k = 1} ^ {n} d_ {k} p ^ {*} ( lambda _ {k}) лямбда _ {k} p ( lambda _ {k}) z_ {k}} {v_ {1} ^ {*} sum _ {k = 1} ^ {n} d_ {k} p ^ {*} ( lambda _ {k}) p ( lambda _ {k}) z_ {k}}} = lambda _ {1} - { frac { sum _ {k = 1} ^ {n} | d_ {k} | ^ {2} lambda _ {k} p ( lambda _ {k}) ^ {*} p ( lambda _ {k})} { sum _ {k = 1} ^ {n} | d_ {k} | ^ {2} p ( lambda _ {k}) ^ {*} p ( lambda _ {k})}} = { frac { sum _ {k = 1} ^ {n} | d_ {k} | ^ {2} ( lambda _ {1} - lambda _ {k}) left | p ( lambda _ {k}) right | ^ {2}} { sum _ {k = 1} ^ {n} | d_ {k} | ^ {2} left | p ( lambda _ {k}) right | ^ {2}}}.}

Ключевое различие между числителем и знаменателем в том, что член k = 1 { displaystyle k = 1}k = 1в числителе исчезает, но не в знаменателе. Таким образом, если можно выбрать p { displaystyle p}pбольшим на λ 1 { displaystyle lambda _ {1}}lambda _ {1}, но маленьким на всех остальных собственных значений, мы получим жесткую границу ошибки λ 1 — θ 1 { displaystyle lambda _ {1} — theta _ {1}}{ displaystyle lambda _ {1} - theta _ {1}}.

Бук A { displaystyle A}Aимеет намного больше значений, чем p { displaystyle p}pимеет коэффициенты, это может показаться сложным требованием, но один из способов удовлетворить это — использовать полиномы Чебышева. Запись ck { displaystyle c_ {k}}c_ {k}для степени k { displaystyle k}kполином Чебышева первого рода (который удовлетворяет ck (соз ⁡ х) = соз ⁡ (kx) { displaystyle c_ {k} ( cos x) = cos (kx)}{ displaystyle c_ {k} ( cos x) = cos (kx)}для всех x { displaystyle x}x), у нас естьчлен, который находится в диапазоне [- 1, 1] { displaystyle [-1,1]}[-1,1]на известном интервале [- 1, 1] { displaystyle [-1,1]}[-1,1], но быстро растет за его пределами. При некотором масштабировании аргумента мы можем показать все собственные значения, кроме λ 1 { displaystyle lambda _ {1}}lambda _ {1}в [- 1, 1] { displaystyle [-1, 1]}[-1,1]. Пусть

p (x) = см — 1 (2 x — λ 2 — λ n λ 2 — λ n) { displaystyle p (x) = c_ {m-1} left ({ frac {2x- lambda _ {2} — lambda _ {n}} { lambda _ {2} — lambda _ {n}}} right)}{ displaystyle p (x) = c_ {m-1} left ({ frac {2x- lambda _ {2 } - lambda _ {n}} { lambda _ {2} - lambda _ {n}}} right)}

(в случае λ 2 = λ 1 { displaystyle lambda _ {2} = lambda _ {1}}{ displaystyle lambda _ {2} = lambda _ {1}}, використовуйте вместо этого наибольшее собственное значение строго меньше, чем λ 1 { displaystyle lambda _ {1}}lambda _ {1}), то максимальное значение | p (λ k) | 2 { displaystyle | p ( lambda _ {k}) | ^ {2}}{ displaystyle | p ( lambda _ {k}) | ^ {2}}для k ⩾ 2 { displaystyle k geqslant 2}{ displaystyle k geqslant 2}равно 1 { displaystyle 1}1и минимальное = равно 0 { displaystyle 0}{ displaystyle 0}, поэтому

λ 1 — θ 1 ⩽ λ 1 — r (p (A) v 1) = ∑ k = 2 n | d k | 2 (λ 1 — λ k) | p (λ k) | 2 ∑ k = 1 n | d k | 2 | p (λ k) | 2 ⩽ ∑ k = 2 n | d k | 2 (λ 1 — λ k) | d 1 | 2 | p (λ 1) | 2 ⩽ (λ 1 — λ n) ∑ k = 2 n | d k | 2 | p (λ 1) | 2 | d 1 | 2. { displaystyle lambda _ {1} — theta _ {1} leqslant lambda _ {1} -r (p (A) v_ {1}) = { frac { sum _ {k = 2 } ^ {n} | d_ {k} | ^ {2} ( lambda _ {1} — lambda _ {k}) | p ( lambda _ {k}) | ^ {2}} { sum _ {k = 1} ^ {n} | d_ {k} | ^ {2} | p ( lambda _ {k}) | ^ {2}}} leqslant { frac { sum _ {k = 2} ^ {n} | d_ {k} | ^ {2} ( lambda _ {1} — lambda _ {k})} {| d_ {1} | ^ {2} | p ( lambda _ {1}) | ^ {2}}} leqslant { frac {( lambda _ {1} — lambda _ {n}) sum _ {k = 2} ^ {n} | d_ {k} | ^ {2}} {| p ( lambda _ {1}) | ^ {2} | d_ {1} | ^ {2}}}.}{ displaystyle lambda _ {1} - theta _ {1} leqslant lambda _ {1} -r (p (A) v_ {1}) = { frac { sum _ {k = 2} ^ {n} | d_ {k} | ^ {2} ( lambda _ {1} - lambda _ {k}) | p ( lambda _ {k}) | ^ {2}} { sum _ {k = 1} ^ {n} | d_ {k} | ^ {2} | p ( lambda _ {k}) | ^ {2}}} leqslant { frac { sum _ {k = 2} ^ {n} | d_ {k} | ^ {2} ( lambda _ {1} - lambda _ {k})} {| d_ {1} | ^ {2} | p ( lambda _ {1}) | ^ {2}}} leqslant { frac {( lambda _ {1} - lambda _ {n}) sum _ {k = 2} ^ {n} | d_ {k} | ^ {2}} {| p ( lambda _ {1}) | ^ {2} | d_ {1} | ^ {2}}}.}

Кроме того,

p (λ 1) = см — 1 (2 λ 1 — λ 2 — λ n λ 2 — λ n) = см — 1 (2 λ 1 — λ 2 λ 2 — λ n + 1); { displaystyle p ( lambda _ {1}) = c_ {m-1} left ({ frac {2 lambda _ {1} — lambda _ {2} — lambda _ {n}} { lambda _ {2} — lambda _ {n}}} right) = c_ {m-1} left (2 { frac { lambda _ {1} — lambda _ {2}} { lambda _ {2} — lambda _ {n}}} + 1 right);}{ displaystyle p ( lambda _ {1}) = c_ {m-1} left ({ frac {2 lambda _ {1} - lambda _ { 2} - lambda _ {n}} { lambda _ {2} - lambda _ {n}}} right) = c_ {m-1} left (2 { frac { lambda _ {1} - lambda _ {2}} { lambda _ {2} - lambda _ {n}}} + 1 right);}

величина

ρ = λ 1 — λ 2 λ 2 — λ n { displaystyle rho = { frac { lambda _ {1} — lambda _ {2}} { lambda _ {2} — lambda _ {n}}}}{ displaystyle rho = { frac { lambda _ {1} - lam bda _ {2}} { lambda _ {2} - lambda _ {n}}}}

(т. Е. Отношение первой собственной щели к диаметру остальной части тип ), таким образом, имеет значение для скорости сходимости здесь. Также пишем

R = e arcosh ⁡ (1 + 2 ρ) = 1 + 2 ρ + 2 ρ 2 + ρ, { displaystyle R = e ^ { operatorname {arcosh} (1 + 2 rho)} = 1 + 2 rho +2 { sqrt { rho ^ {2} + rho}},}{ displaystyle R = e ^ { operatorname { arcosh} (1 + 2 rho)} = 1 + 2 rho +2 { sqrt { rho ^ {2} + rho}},}

мы можем заключить, что

λ 1 — θ 1 ⩽ (λ 1 — λ n) (1 — | d 1 | 2) см — 1 (2 ρ + 1) 2 | d 1 | 2 = 1 — | d 1 | 2 | d 1 | 2 (λ 1 — λ n) 1 ch 2 ⁡ ((m — 1) arcosh ⁡ (1 + 2 ρ)) = 1 — | d 1 | 2 | d 1 | 2 (λ 1 — λ n) 4 (R m — 1 + R — (m — 1)) 2 ⩽ 4 1 — | d 1 | 2 | d 1 | 2 (λ 1 — λ N) р — 2 (м — 1) { displaystyle { begin {выровнено} lambda _ {1} — theta _ {1} leqslant { frac {( lambda _ { 1} — lambda _ {n}) left (1- | d_ {1} | ^ {2} right)} {c_ {m-1} (2 rho +1) ^ {2} | d_ {1} | ^ {2}}} [6pt] = { frac {1- | d_ {1} | ^ {2}} {| d_ {1} | ^ {2}}} ( lambda _ {1} — lambda _ {n}) { frac {1} { cosh ^ {2} ((m-1) operatorname {arcosh} (1 + 2 rho))}} [6pt] = { frac {1- | d_ {1} | ^ {2}} {| d_ {1} | ^ {2}}} ( lambda _ {1} — lambda _ {n}) { frac {4} { left (R ^ {m-1} + R ^ {- (m-1)} справа) ^ {2}}} [6pt] leqslant 4 { frac {1- | d_ {1} | ^ {2}} {| d_ {1} | ^ {2}}} ( lambda _ {1} — lambda _ {n}) R ^ {- 2 (m-1)} end {align}}}{ displaystyle { begin {align} lam bda _ {1} - theta _ {1} leqslant { frac {( lambda _ {1} - lambda _ {n}) left (1- | d_ {1} | ^ {2} справа)} {c_ {m -1} (2 rho +1) ^ {2} | d_ {1} | ^ {2}}}  [6pt] = { frac {1- | d_ {1} | ^ {2}} {| d_ {1} | ^ {2}}} ( lambda _ {1} - lambda _ {n}) { frac {1} { cosh ^ {2} ((m-1) operatorname {arcosh} (1 + 2 rho))}}  [6pt] = { frac {1- | d_ {1} | ^ {2}} {| d_ {1} | ^ {2}}} ( lambda _ {1} - lambda _ {n}) { frac {4} { left (R ^ {m-1} + R ^ {- (m-1)} справа) ^ {2}}}  [6pt] leqslant 4 { frac {1- | d_ {1} | ^ {2}} {| d_ {1} | ^ {2}}} ( lambda _ {1} - lambda _ {n}) R ^ {- 2 (m-1)} end {align}}}

Таким образом, скорость сходимости контролируется главным образом R { displaystyle R}R, так как эта граница уменьшается в R — 2 { displaystyle R ^ {- 2}}{ displaystyle R ^ {- 2}}для каждой дополнительной итерации.

Для сравнения можно рассмотреть, как скорость сходимости степенного метода зависит от ρ { displaystyle rho}rho, но поскольку степенной метод в первую очередь чувствителен к частному между модулями собственных значений нам нужно | λ n | ⩽ | λ 2 | { displaystyle | lambda _ {n} | leqslant | lambda _ {2} |}{ displaystyle | lambda _ {n} | leqslant | lambda _ {2} |}для собственного промежутка между λ 1 { displaystyle lambda _ {1}}lambda _ {1}и λ 2 { displaystyle lambda _ {2}}lambda _ {2}, чтобы быть доминирующим. При этом ограничении наиболее благоприятного для степенного метода является случай λ n = — λ 2 { displaystyle lambda _ {n} = — lambda _ {2}}{ displaystyle lambda _ {n} = - lambda _ {2}}, поэтому рассмотрим что. В конце метода мощности вектор итерации:

u = (1 — t 2) 1/2 z 1 + tz 2 ≈ z 1 + tz 2, { displaystyle u = (1-t ^ {2}) ^ {1 / 2} z_ {1} + tz_ {2} приблизительно z_ {1} + tz_ {2},}{ displaystyle u = (1-t ^ {2}) ^ {1/2} z_ {1} + tz_ { 2} приблизительно z_ {1} + tz_ {2},}

, каждая где новая итерация эффективно умножает z 2 { displaystyle z_ {2}}z_ {2}-амплитуда t { displaystyle t}tна

λ 2 λ 1 = λ 2 λ 2 + (λ 1 — λ 2) = 1 1 + λ 1 — λ 2 λ 2 знак равно 1 1 + 2 ρ. { displaystyle { frac { lambda _ {2}} { lambda _ {1}}} = { frac { lambda _ {2}} { lambda _ {2} + ( lambda _ {1} — lambda _ {2})}} = { frac {1} {1 + { frac { lambda _ {1} — lambda _ {2}} { lambda _ {2}}}}} = { frac {1} {1 + 2 rho}}.}{ displaystyle { frac { lambda _ {2}} { lambda _ {1}}} = { frac { lambda _ {2}} { lambda _ {2} + ( lambda _ {1} - lambda _ {2})}} = { frac {1} {1 + { frac { lambda _ { 1} - lambda _ {2}} { lambda _ {2}}}}} = { frac {1} {1 + 2 rho}}.}

Тогда оценка наибольшего собственного значения будет

u ∗ A u = (1 — t 2) λ 1 + t 2 λ 2, { displaystyle u ^ {*} Au = (1-t ^ {2}) lambda _ {1} + t ^ {2} lambda _ {2},}{ displaystyle u ^ { *} Au = (1-t ^ {2}) lambda _ {1} + t ^ {2} lambda _ {2},}

, поэтому указанная выше граница сходимости алгоритма Ланцоша скорость следует сравнить с

λ 1 — u ∗ A U знак равно (λ 1 — λ 2) t 2, { displaystyle lambda _ {1} -u ^ {*} Au = ( lambda _ {1} — lambda _ {2}) t ^ {2},}{ displaystyle lambda _ {1} -u ^ {*} Au = ( lambda _ {1 } - lambda _ {2}) t ^ {2},}

, который сжимается в (1 + 2 ρ) — 2 { displaystyle (1 + 2 rho) ^ {- 2}}{ displaystyle (1 + 2 rho) ^ {- 2}}для каждой итерации. Таким образом, разница сводится к разнице между 1 + 2 ρ { displaystyle 1 + 2 rho}{ displaystyle 1 + 2 rho}и R = 1 + 2 ρ + 2 ρ 2 + ρ { displaystyle R = 1 + 2 rho +2 { sqrt { rho ^ {2} + rho}}}{ displaystyle R = 1 + 2 rho +2 { sqrt { rho ^ {2} + rho}}}. В области ρ ≫ 1 { displaystyle rho gg 1}{ displaystyle rho gg 1}последнее больше похоже на 1 + 4 ρ { displaystyle 1 + 4 rho}{ displaystyle 1 + 4 rho}и работает так же, как и силовой метод, с вдвое большей собственной щелью; заметное улучшение. Однако более сложным является случай ρ ≪ 1, { displaystyle rho ll 1,}{ displaystyle rho ll 1,}, в котором R ≈ 1 + 2 ρ { displaystyle R приблизительно 1+ 2 { sqrt { rho}}}{ displaystyle R приблизительно 1 + 2 { sqrt { rho}}}— еще большее улучшение собственной щели; область ρ ≫ 1 { displaystyle rho gg 1}{ displaystyle rho gg 1}— это область, в которой алгоритм Ланцоша с точки зрения сходимости дает наименьшее улучшение по сравнению с методом мощности.

Числовая стабильность

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

Для алгоритма Ланцоша можно доказать, что с помощью точной арифметики векторов наборов v 1, v 2, ⋯, vm + 1 { displaystyle v_ {1}, v_ {2}, cdots, v_ {m + 1}}v_ {1}, v_ {2}, cdots, v _ {{m + 1}}строит ортонормированный базис, вычисленные собственные значения / основы хорошими приближениями к значениям исходной матрицы. Однако на практике (вычисления выполняются в арифметике с плавающей запятой, где неточность неизбежна) ортогональность быстро теряется, и в некоторых случаях новый вектор может даже линейно зависеть от уже построенного набора. В результате некоторых собственных значений результирующей трехдиагональной матрицы могут быть приближения к исходной матрице. Следовательно, алгоритм Ланцоша не очень стабилен.

Пользователи этого алгоритма должны иметь возможность находить и удалить эти «ложные» собственные значения. Практические алгоритмы реализации Ланцоша идут в трех направлениях для борьбы с этой проблемой стабильности:

  1. Предотвратить потерю ортогональности,
  2. Восстановить ортогональность после создания основы.
  3. После Все «ложные» собственные значения идентифицируют, ложные удаляются.

Варианты

Существуют варианты алгоритма Ланцоша, которые задействованные обеспечивают высокие узкие матрицы вместо векторов, а нормализующие константы представляют собой небольшие квадратные матрицы. Они называются «блочными» алгоритмами Ланцоша и могут быть намного быстрее на компьютере с большим количеством регистров и длительным временем выборки из памяти.

Многие реализации алгоритма Ланцоша перезапускаются после определенного количества итераций. Одним из наиболее важных вариантов перезапуска является неявно перезапускаемый метод Ланцоша, который реализован в ARPACK. Это привело к ряду других перезапущенных вариаций, таких как перезапуск бидиагонализации Ланцоша. Другой успешный вариант с перезапуском — это метод Ланцоша с толстым перезапуском, который был реализован в программном пакете под названием TRLan.

Пустое пространство над конечным полем

В 1995 году Питер Монтгомери опубликовал алгоритм, основанный на алгоритме Ланцоша, для поиска элементов нулевого пространства большой разреженной матрицы над GF (2) ; как множество людей, интересующихся большими разреженными матрицами над конечными полями и множеством людей, интересующимися большими проблемами собственных значений, почти не пересекаются, это часто также называют блочным алгоритмом Ланцоша, не вызывая необоснованной путаницы.

Приложения

Алгоритмы Ланцоша очень привлекательны, потому что умножение на A { displaystyle A ,}A ,является единственной крупномасштабной операцией. Временной алгоритм поиска текста с взвешенными терминами реализуют именно этот механизм, алгоритм Ланцоша может эффективно использовать текстовым документам (см. Скрытое семантическое индексирование ). Собственные рекомендации также важны для крупномасштабных методов ранжирования, таких как алгоритм HITS, примеры Джоном Клейнбергом, или алгоритм PageRank, инструмент Google.

Алгоритмы Ланцоша также используются в Физике конденсированных сред как методы решения гамильтонианов сильно коррелированных электронных систем, а также в модели оболочки коды в ядерной физике.

Реализации

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

MATLAB и GNU Octave поставляются со встроенным ARPACK. Как сохраненные, так и неявные матрицы могут быть проанализированы с помощью функций eigs () (Matlab / Octave ).

Реализация алгоритма Ланцоша в Matlab (обратите внимание на проблемы с точностью) доступна как часть пакета Matlab для распространения веры по Гауссу. Библиотека совместной фильтрации GraphLab включает крупномасштабную параллельную реалима Ланцоша (на C ++) для многоядерных процессоров.

Библиотека PRIMME также реализует алгоритм типа Ланцоша.

Примечания

Ссылки

Дополнительная литература

  • Голуб, Джин Х. ; Ван Лоан, Чарльз Ф. (1996). «Методы Ланцоша». Матричные вычисления. Балтимор: Издательство Университета Джона Хопкинса. С. 470–507. ISBN 0-8018-5414-8.
  • Нг, Эндрю Ю. ; Чжэн, Алиса X.; Джордан, Майкл И. (2001). «Анализ связи, собственные основы и стабильность» (PDF). IJCAI’01 Труды 17-й международной совместной конференции по искусственному интеллекту. Том 2: 903–910.

В Алгоритм Ланцоша это прямой алгоритм разработан Корнелиус Ланцош это адаптация силовые методы найти м «самый полезный» (стремящийся к экстремально высокому / низкому) собственные значения и собственные векторы из п раз п Эрмитова матрица, куда м часто, но не обязательно, намного меньше, чем п.[1] Несмотря на то, что в принципе вычислительно эффективный метод, изначально сформулированный метод не был полезен из-за его числовая нестабильность.

В 1970 году Оялво и Ньюман показали, как сделать метод численно устойчивым, и применили его к решению очень больших инженерных сооружений, подвергающихся динамической нагрузке.[2] Это было достигнуто с использованием метода очистки векторов Ланцоша (т.е. путем многократной реортогонализации каждого вновь созданного вектора с помощью все ранее созданные)[2] с любой степенью точности, которая, если ее не выполнять, давала серию векторов, которые были сильно загрязнены векторами, связанными с самыми низкими собственными частотами.

В своей первоначальной работе эти авторы также предложили, как выбрать начальный вектор (т.е. использовать генератор случайных чисел для выбора каждого элемента начального вектора), и предложили эмпирически определенный метод определения м— уменьшенное количество векторов (т.е. его следует выбирать примерно в 1,5 раза больше желаемого точного количества собственных значений). Вскоре после этого за их работой последовала Пейдж, которая также представила анализ ошибок.[3][4] В 1988 году Оялво представил более подробную историю этого алгоритма и эффективный тест на ошибку собственных значений.[5]

Алгоритм

Вход а Эрмитова матрица А размера п раз п, и, возможно, несколько итераций м (по умолчанию пусть m = n).
Выход ан п раз м матрица V с ортонормированный колонны и трехдиагональный вещественная симметричная матрица { displaystyle T = V ^ {*} AV} размера м раз м. Если m = n, тогда V является унитарный, и { displaystyle A = VTV ^ {*}}.
Предупреждение Итерация Ланцоша подвержена численной нестабильности. При выполнении неточной арифметики необходимо принять дополнительные меры (как описано в следующих разделах) для обеспечения достоверности результатов.

  1. Позволять { displaystyle v_ {1} in mathbb {C} ^ {n}} — произвольный вектор с Евклидова норма 1.
  2. Сокращенный этап начальной итерации:
    1. Позволять { displaystyle w_ {1}'= Av_ {1}}.
    2. Позволять { displaystyle alpha _ {1} = w_ {1}'^ {*} v_ {1}}.
    3. Позволять { displaystyle w_ {1} = w_ {1}'- alpha _ {1} v_ {1}}.
  3. За { displaystyle j = 2, dots, m} делать:
    1. Позволять { Displaystyle бета _ {j} = | w_ {j-1} |} (также Евклидова норма ).
    2. Если { displaystyle beta _ {j} neq 0}, тогда пусть { displaystyle v_ {j} = w_ {j-1} / beta _ {j}},
      иначе выберите как v_ {j} произвольный вектор с евклидовой нормой 1 что ортогонально всем { displaystyle v_ {1}, dots, v_ {j-1}}.
    3. Позволять { displaystyle w_ {j}'= Av_ {j}}.
    4. Позволять { displaystyle alpha _ {j} = w_ {j}'^ {*} v_ {j}}.
    5. Позволять { displaystyle w_ {j} = w_ {j}'- alpha _ {j} v_ {j} - beta _ {j} v_ {j-1}}.
  4. Позволять V матрица со столбцами { displaystyle v_ {1}, dots, v_ {m}}. Позволять { displaystyle T = { begin {pmatrix} alpha _ {1} & beta _ {2} &&&& 0 beta _ {2} & alpha _ {2} & beta _ {3} &&& & beta _ {3} & alpha _ {3} & ddots && && ddots & ddots & beta _ {m-1} & &&& beta _ {m-1} & alpha _ {m-1} & beta _ {m} 0 &&&& beta _ {m} & alpha _ {m} end {pmatrix}}}.
Примечание { displaystyle Av_ {j} = w_ {j}'= beta _ {j + 1} v_ {j + 1} + alpha _ {j} v_ {j} + beta _ {j} v_ {j- 1}} за { displaystyle 1 <j <m}.

В принципе, существует четыре способа написать итерационную процедуру. Пейдж и другие работы показывают, что приведенный выше порядок операций является наиболее численно устойчивым.[6][7]На практике начальный вектор v_ {1} можно рассматривать как еще один аргумент процедуры, с { displaystyle beta _ {j} = 0} и индикаторы числовой неточности, включенные в качестве дополнительных условий завершения цикла.

Не считая умножения матрицы на вектор, каждая итерация делает На) арифметические операции. Умножение матрицы на вектор может быть выполнено в { Displaystyle О (дн)} арифметические операции, где d — среднее количество ненулевых элементов в строке. Таким образом, общая сложность { displaystyle O (dmn)}, или же { Displaystyle О (дн ^ {2})} если m = n; алгоритм Ланцоша может быть очень быстрым для разреженных матриц. Схемы для улучшения числовой стабильности обычно оцениваются по этой высокой производительности.

Векторы v_ {j} называются Векторы Ланцоша. Вектор { displaystyle w_ {j}'} не используется после w_ {j} вычисляется, а вектор w_ {j} не используется после { displaystyle v_ {j + 1}} вычисляется. Следовательно, можно использовать одно и то же хранилище для всех трех. Точно так же, если только трехдиагональная матрица Т ищется, то сырая итерация не нужна { displaystyle v_ {j-1}} после вычисления w_ {j}, хотя некоторым схемам повышения численной устойчивости он понадобится в дальнейшем. Иногда последующие векторы Ланцоша пересчитываются из v_ {1} при необходимости.

Приложение к проблеме собственных значений

Алгоритм Ланцоша чаще всего упоминается в контексте поиска собственные значения и собственные векторы матрицы, но в то время как обычный диагонализация матрицы сделает собственные векторы и собственные значения очевидными при проверке, этого нельзя сказать о трехдиагонализации, выполняемой алгоритмом Ланцоша; Для вычисления даже одного собственного значения или собственного вектора необходимы нетривиальные дополнительные шаги. Тем не менее, применение алгоритма Ланцоша часто является значительным шагом вперед в вычислении собственного разложения. Если lambda является собственным значением А, и если { displaystyle Tx = lambda x} (Икс является собственным вектором Т) тогда { displaystyle y = Vx} — соответствующий собственный вектор А (поскольку { Displaystyle Ay = AVx = VTV ^ {*} Vx = VTIx = VTx = V ( lambda x) = lambda Vx = lambda y}). Таким образом, алгоритм Ланцоша преобразует задачу собственного разложения для А в задачу собственного разложения для Т.

  1. Для трехдиагональных матриц существует ряд специализированных алгоритмов, часто с большей вычислительной сложностью, чем алгоритмы общего назначения. Например, если Т является м раз м трехдиагональная симметричная матрица, тогда:
  2. Некоторые общие алгоритмы разложения на собственные числа, в частности QR-алгоритм, как известно, сходятся быстрее для трехдиагональных матриц, чем для обычных матриц. Асимптотическая сложность трехдиагонального QR равна { Displaystyle О (м ^ {2})} точно так же, как для алгоритма «разделяй и властвуй» (хотя постоянный коэффициент может быть другим); так как собственные векторы вместе имеют м ^ {2} элементов, это асимптотически оптимально.
  3. Даже алгоритмы, скорость сходимости которых не зависит от унитарных преобразований, таких как силовой метод и обратная итерация, может обладать низкими преимуществами производительности от применения к трехдиагональной матрице Т а не исходная матрица А. С Т очень разреженный, со всеми ненулевыми элементами в хорошо предсказуемых положениях, он обеспечивает компактное хранение с отличной производительностью по сравнению с кеширование. Так же, Т это настоящий матрица со всеми собственными векторами и собственными значениями действительными, тогда как А в общем, может иметь комплексные элементы и собственные векторы, поэтому вещественной арифметики достаточно для нахождения собственных векторов и собственных значений Т.
  4. Если п очень большой, то уменьшение м так что Т имеет управляемый размер, но позволит находить наиболее экстремальные собственные значения и собственные векторы А; в { displaystyle m ll n} области алгоритм Ланцоша можно рассматривать как сжатие с потерями схема для эрмитовых матриц, подчеркивающая сохранение крайних собственных значений.

Сочетание хорошей производительности для разреженных матриц и способности вычислять несколько (без вычисления всех) собственных значений являются основными причинами использования алгоритма Ланцоша.

Применение к тридиагонализации

Хотя проблема собственных значений часто является мотивацией для применения алгоритма Ланцоша, операция, которую в первую очередь выполняет алгоритм, — это трехдиагонализация матрицы, для которой численно стабильная Преобразования домовладельцев пользуются популярностью с 1950-х годов. В 60-е годы алгоритм Ланцоша не принимался во внимание. Интерес к нему был возрожден теорией сходимости Каниэля – Пейджа и развитием методов предотвращения числовой нестабильности, но алгоритм Ланцоша остается альтернативным алгоритмом, который можно пробовать только в том случае, если Хаусхолдер не удовлетворителен.[9]

Аспекты, в которых различаются два алгоритма, включают:

  • Ланцош пользуется А будучи разреженной матрицей, тогда как Хаусхолдер нет и будет генерировать заполните.
  • Ланцош полностью работает с исходной матрицей А (и не имеет проблем с тем, что он известен только неявно), тогда как необработанный Хаусхолдер хочет изменить матрицу во время вычисления (хотя этого можно избежать).
  • Каждая итерация алгоритма Ланцоша создает еще один столбец окончательной матрицы преобразования. V, тогда как итерация Хаусхолдера дает еще один фактор в унитарной факторизации { displaystyle Q_ {1} Q_ {2} dots Q_ {n}} из V. Однако каждый фактор определяется одним вектором, поэтому требования к памяти одинаковы для обоих алгоритмов, и { displaystyle V = Q_ {1} Q_ {2} dots Q_ {n}} можно вычислить в О (п ^ {3}) время.
  • Домохозяин численно стабилен, тогда как сырой Ланцош — нет.
  • Ланцош очень параллелен, только На) точки синхронизация (вычисления alpha _ {j} и beta _ {j}). Домохозяин менее параллелен, имея последовательность О (п ^ {2}) вычисляются скалярные величины, каждая из которых зависит от предыдущей величины в последовательности.

Вывод алгоритма

Есть несколько аргументов, которые приводят к алгоритму Ланцоша.

Более предусмотрительный метод силы

Степенной метод нахождения наибольшего собственного значения и соответствующего собственного вектора матрицы А примерно

  1. Выберите случайный вектор { displaystyle u_ {1} neq 0}.
  2. За { displaystyle j geqslant 1} (до направления u_ {j} сошлась) делать:
    1. Позволять { displaystyle u_ {j + 1}'= Au_ {j}.}
    2. Позволять { displaystyle u_ {j + 1} = u_ {j + 1}'/ | u_ {j + 1}' |.}

Этот метод можно критиковать за то, что он расточителен: он тратит много работы (произведение матрица-вектор на шаге 2.1), извлекая информацию из матрицы. А, но обращает внимание только на самый последний результат; реализации обычно используют одну и ту же переменную для всех векторов u_ {j}, при котором каждая новая итерация перезаписывает результаты предыдущей. Что, если вместо этого мы сохраним все промежуточные результаты и систематизируем их данные?

Одна часть информации, которую легко получить из векторов u_ {j} это цепочка Крыловские подпространства. Один из способов заявить, что без введения наборов в алгоритм, — это заявить, что он вычисляет

подмножество { Displaystyle {v_ {j} } _ {j = 1} ^ {m}} основы { displaystyle mathbb {C} ^ {n}} такой, что { displaystyle Ax in operatorname {span} (v_ {1}, dotsc, v_ {j + 1})} для каждого { displaystyle x in operatorname {span} (v_ {1}, dotsc, v_ {j})} и все { Displaystyle 1 leqslant j <m;}

это тривиально удовлетворяется { displaystyle v_ {j} = u_ {j}} так долго как u_ {j} линейно не зависит от { displaystyle u_ {1}, dotsc, u_ {j-1}} (и в случае наличия такой зависимости можно продолжить последовательность, выбрав v_ {j} произвольный вектор, линейно независимый от { displaystyle u_ {1}, dotsc, u_ {j-1}}). Основа, содержащая u_ {j} векторы, однако, вероятно, будут численно плохо воспитанный, так как эта последовательность векторов по замыслу должна сходиться к собственному вектору А. Чтобы избежать этого, можно комбинировать итерацию мощности с Процесс Грама – Шмидта, чтобы вместо этого создать ортонормированный базис этих подпространств Крылова.

  1. Выберите случайный вектор u_ {1} евклидовой нормы 1. Позволять { displaystyle v_ {1} = u_ {1}}.
  2. За { Displaystyle J = 1, dotsc, м-1} делать:
    1. Позволять { displaystyle u_ {j + 1}'= Au_ {j}}.
    2. Для всех { Displaystyle к = 1, dotsc, j} позволять { displaystyle g_ {k, j} = v_ {k} ^ {*} u_ {j + 1}'}. (Это координаты { displaystyle Au_ {j} = u_ {j + 1}'} относительно базисных векторов { displaystyle v_ {1}, dotsc, v_ {j}}.)
    3. Позволять { displaystyle w_ {j + 1} = u_ {j + 1}'- sum _ {k = 1} ^ {j} g_ {k, j} v_ {k}}. (Отменить компонент { displaystyle u_ {j + 1}'} это в { displaystyle operatorname {span} (v_ {1}, dotsc, v_ {j})}.)
    4. Если { displaystyle w_ {j + 1} neq 0} тогда пусть { displaystyle u_ {j + 1} = u_ {j + 1}'/ | u_ {j + 1}' |} и { Displaystyle v_ {j + 1} = w_ {j + 1} / | w_ {j + 1} |},
      в противном случае выберите как { displaystyle u_ {j + 1} = v_ {j + 1}} произвольный вектор евклидовой нормы 1 что ортогонально всем { displaystyle v_ {1}, dotsc, v_ {j}}.

Связь между векторами степенных итераций u_ {j} и ортогональные векторы v_ {j} в том, что

{ Displaystyle Au_ {j} = | u_ {j + 1}' | u_ {j + 1} = u_ {j + 1}' = w_ {j + 1} + sum _ {k = 1} ^ {j} g_ {k, j} v_ {k} = | w_ {j + 1} | v_ {j + 1} + sum _ {k = 1} ^ {j} g_ {k, j} v_ {k}}.

Здесь можно заметить, что на самом деле нам не нужен u_ {j} векторов для вычисления этих v_ {j}, потому что { displaystyle u_ {j} -v_ {j} in operatorname {span} (v_ {1}, dotsc, v_ {j-1})} и поэтому разница между { displaystyle u_ {j + 1}'= Au_ {j}} и { displaystyle w_ {j + 1}'= Av_ {j}} в { displaystyle operatorname {span} (v_ {1}, dotsc, v_ {j})}, который компенсируется процессом ортогонализации. Таким образом, тот же базис для цепочки подпространств Крылова вычисляется с помощью

  1. Выберите случайный вектор v_ {1} евклидовой нормы 1.
  2. За { Displaystyle J = 1, dotsc, м-1} делать:
    1. Позволять { displaystyle w_ {j + 1}'= Av_ {j}}.
    2. Для всех { Displaystyle к = 1, dotsc, j} позволять { displaystyle h_ {k, j} = v_ {k} ^ {*} w_ {j + 1}'}.
    3. Позволять { displaystyle w_ {j + 1} = w_ {j + 1}'- sum _ {k = 1} ^ {j} h_ {k, j} v_ {k}}.
    4. Позволять { displaystyle h_ {j + 1, j} = | w_ {j + 1} |}.
    5. Если { displaystyle h_ {j + 1, j} neq 0} тогда пусть { Displaystyle v_ {j + 1} = w_ {j + 1} / h_ {j + 1, j}},
      в противном случае выберите как { displaystyle v_ {j + 1}} произвольный вектор евклидовой нормы 1 что ортогонально всем { displaystyle v_ {1}, dotsc, v_ {j}}.

Априори коэффициенты { displaystyle h_ {k, j}} удовлетворить

{ displaystyle Av_ {j} = sum _ {k = 1} ^ {j + 1} h_ {k, j} v_ {k}} для всех { displaystyle j <m};

Определение { displaystyle h_ {j + 1, j} = | w_ {j + 1} |} может показаться немного странным, но соответствует общей схеме { displaystyle h_ {k, j} = v_ {k} ^ {*} w_ {j + 1}'} поскольку

{ Displaystyle v_ {j + 1} ^ {*} w_ {j + 1}'= v_ {j + 1} ^ {*} w_ {j + 1} = | w_ {j + 1} | v_ { j + 1} ^ {*} v_ {j + 1} = | w_ {j + 1} |.}

Поскольку векторы степенной итерации u_ {j} которые были исключены из этой рекурсии, удовлетворяют { displaystyle u_ {j} in operatorname {span} (v_ {1}, ldots, v_ {j}),} векторы { Displaystyle {v_ {j} } _ {j = 1} ^ {m}} и коэффициенты { displaystyle h_ {k, j}} содержать достаточно информации из А что все u_ {1}, ldots, u_ {m} можно вычислить, поэтому при переключении векторов ничего не потеряно. (Действительно, оказывается, что собранные здесь данные дают значительно лучшее приближение к наибольшему собственному значению, чем получается при равном количестве итераций в степенном методе, хотя на данный момент это не обязательно очевидно.)

Эта последняя процедура является Итерация Арнольди. Алгоритм Ланцоша возникает как упрощение, получаемое от исключения этапов вычислений, которые оказываются тривиальными, когда А является эрмитовым — в частности, большинство { displaystyle h_ {k, j}} коэффициенты оказываются равными нулю.

Элементарно, если А эрмитово тогда

{ displaystyle h_ {k, j} = v_ {k} ^ {*} w_ {j + 1}'= v_ {k} ^ {*} Av_ {j} = v_ {k} ^ {*} A ^ { *} v_ {j} = (Av_ {k}) ^ {*} v_ {j}.}

За { Displaystyle к <j-1} мы знаем это { displaystyle Av_ {k} in operatorname {span} (v_ {1}, ldots, v_ {j-1})}, и с тех пор v_ {j} по построению ортогонален этому подпространству, это внутреннее произведение должно быть нулевым. (По сути, это также причина того, почему последовательности ортогональных многочленов всегда могут быть заданы трехчленное рекуррентное соотношение.) За { Displaystyle к = j-1} один получает

{ displaystyle h_ {j-1, j} = (Av_ {j-1}) ^ {*} v_ {j} = { overline {v_ {j} ^ {*} Av_ {j-1}}} = { overline {h_ {j, j-1}}} = h_ {j, j-1}}

поскольку последний реален в силу того, что является нормой вектора. За { displaystyle k = j} один получает

{ displaystyle h_ {j, j} = (Av_ {j}) ^ {*} v_ {j} = { overline {v_ {j} ^ {*} Av_ {j}}} = { overline {h_ { j, j}}},}

это значит, что это тоже реально.

Более абстрактно, если V матрица со столбцами { displaystyle v_ {1}, ldots, v_ {m}} тогда числа { displaystyle h_ {k, j}} можно идентифицировать как элементы матрицы { displaystyle H = V ^ {*} AV}, и { displaystyle h_ {k, j} = 0} за { displaystyle k> j + 1;} матрица ЧАС является Верхний Гессенберг. С

{ displaystyle H ^ {*} = left (V ^ {*} AV right) ^ {*} = V ^ {*} A ^ {*} V = V ^ {*} AV = H}

матрица ЧАС эрмитово. Отсюда следует, что ЧАС также является более низким по Гессенбергу, поэтому на самом деле он должен быть трехъядерным. Поскольку его главная диагональ является эрмитовой, она действительна, и поскольку ее первая поддиагональ реальна по построению, то же самое верно и для ее первой наддиагонали. Следовательно, ЧАС — действительная симметричная матрица — матрица Т спецификации алгоритма Ланцоша.

Одновременное приближение крайних собственных значений

Один из способов характеризации собственных векторов эрмитовой матрицы А как есть стационарные точки из Фактор Рэлея

{ displaystyle r (x) = { frac {x ^ {*} Ax} {x ^ {*} x}}, qquad x in mathbb {C} ^ {n}.}

В частности, наибольшее собственное значение lambda_ max это глобальный максимум р и наименьшее собственное значение lambda_ min это глобальный минимум р.

В подпространстве малой размерности { mathcal {L}} из { displaystyle mathbb {C} ^ {n}} возможно найти максимальное Икс и минимум у из р. Повторяя это для возрастающей цепочки { Displaystyle { mathcal {L}} _ {1} subset { mathcal {L}} _ {2} subset cdots} производит две последовательности векторов: x_1, x_2, ldots и { displaystyle y_ {1}, y_ {2}, dotsc} такой, что { displaystyle x_ {j}, y_ {j} in { mathcal {L}} _ {j}} и

{ displaystyle { begin {align} r (x_ {1}) & leqslant r (x_ {2}) leqslant cdots leqslant lambda _ { max} r (y_ {1}) & geqslant r (y_ {2}) geqslant cdots geqslant lambda _ { min} end {выровнено}}}

Тогда возникает вопрос, как выбрать подпространства, чтобы эти последовательности сходились с оптимальной скоростью.

Из x_ {j}, оптимальное направление поиска больших значений р это то из градиент { Displaystyle набла г (x_ {j})}, а также от y_ {j} оптимальное направление поиска меньших значений р это отрицательный градиент { displaystyle - nabla r (y_ {j})}. В целом

{ Displaystyle nabla r (x) = { frac {2} {x ^ {*} x}} (Ax-r (x) x)},

так что интересующие направления достаточно легко вычислить в матричной арифметике, но если кто-то хочет улучшить оба x_ {j} и y_ {j} Затем следует принять во внимание два новых направления: { displaystyle Ax_ {j}} и { displaystyle Ay_ {j};} поскольку x_ {j} и y_ {j} могут быть линейно независимыми векторами (действительно, близкими к ортогональным), в общем случае нельзя ожидать { displaystyle Ax_ {j}} и { displaystyle Ay_ {j}} быть параллельным. Следовательно, необходимо ли увеличивать размер mathcal {L} _j к 2 на каждом шагу? Не если { Displaystyle {{ mathcal {L}} _ {j} } _ {j = 1} ^ {m}} считаются подпространствами Крылова, потому что тогда { displaystyle Az in { mathcal {L}} _ {j + 1}} для всех { displaystyle z in { mathcal {L}} _ {j},} таким образом, в частности для обоих { displaystyle z = x_ {j}} и { displaystyle z = y_ {j}}.

Другими словами, мы можем начать с произвольного начального вектора { displaystyle x_ {1} = y_ {1},} построить векторные пространства

{ displaystyle { mathcal {L}} _ {j} = operatorname {span} (x_ {1}, Ax_ {1}, ldots, A ^ {j-1} x_ {1})}

а затем искать { displaystyle x_ {j}, y_ {j} in { mathcal {L}} _ {j}} такой, что

{ displaystyle r (x_ {j}) = max _ {z in { mathcal {L}} _ {j}} r (z) qquad { text {and}} qquad r (y_ {j }) = min _ {z in { mathcal {L}} _ {j}} r (z).}

Поскольку jth power метод итерации u_ {j} принадлежит { displaystyle { mathcal {L}} _ {j},} из этого следует, что итерация для получения x_ {j} и y_ {j} не может сходиться медленнее, чем в степенном методе, и добьется большего, аппроксимируя оба крайних значения собственных значений. Для подзадачи оптимизации р на некоторых { displaystyle { mathcal {L}} _ {j}}, удобно иметь ортонормированный базис { Displaystyle {v_ {1}, ldots, v_ {j} }} для этого векторного пространства. Таким образом, мы снова приходим к проблеме итеративного вычисления такого базиса для последовательности подпространств Крылова.

Конвергенция и другая динамика

При анализе динамики алгоритма удобно брать собственные значения и собственные векторы А как указано, даже если они явно не известны пользователю. Чтобы зафиксировать обозначения, пусть { displaystyle lambda _ {1} geqslant lambda _ {2} geqslant dotsb geqslant lambda _ {n}} быть собственными числами (все они, как известно, действительны и, следовательно, их можно упорядочить), и пусть { displaystyle z_ {1}, dotsc, z_ {n}} — ортонормированный набор собственных векторов таких, что { displaystyle Az_ {k} = lambda _ {k} z_ {k}} для всех { Displaystyle к = 1, dotsc, п}.

Также удобно зафиксировать обозначения для коэффициентов исходного вектора Ланцоша v_ {1} относительно этого собственного базиса; позволять { displaystyle d_ {k} = z_ {k} ^ {*} v_ {1}} для всех { Displaystyle к = 1, dotsc, п}, так что { displaystyle textstyle v_ {1} = sum _ {k = 1} ^ {n} d_ {k} z_ {k}}. Начальный вектор v_ {1} исчерпание некоторого собственного значения приведет к задержке сходимости к соответствующему собственному значению, и даже несмотря на то, что это просто является постоянным множителем в границах ошибки, истощение остается нежелательным. Один из распространенных методов, позволяющих избежать постоянных ударов, — это выбрать v_ {1} сначала нарисовав элементы случайным образом в соответствии с тем же нормальное распределение со средним { displaystyle 0} а затем масштабируйте вектор до нормы 1. Перед изменением масштаба это приводит к тому, что коэффициенты d_ {k} также быть независимыми нормально распределенными стохастическими переменными из того же нормального распределения (поскольку изменение координат унитарно), и после масштабирования вектора { displaystyle (d_ {1}, dotsc, d_ {n})} будет равномерное распределение на единичной сфере в mathbb {C} ^ {n}. Это позволяет ограничить вероятность того, что, например, { displaystyle | d_ {1} | < varepsilon}.

Тот факт, что алгоритм Ланцоша не зависит от координат — операции смотрят только на внутренние произведения векторов, а не на отдельные элементы векторов, — позволяет легко создавать примеры с известной собственной структурой для запуска алгоритма: make А диагональная матрица с желаемыми собственными значениями на диагонали; пока начальный вектор v_ {1} имеет достаточно ненулевых элементов, алгоритм выдаст общую трехдиагональную симметричную матрицу как Т.

Теория сходимости Кэниела – Пейджа

После м итерационные шаги алгоритма Ланцоша, Т является м раз м вещественная симметричная матрица, которая, как и выше, имеет м собственные значения { displaystyle theta _ {1} geqslant theta _ {2} geqslant dots geqslant theta _ {m}.} Под сходимостью в первую очередь понимается сходимость theta _ {1} к lambda _ {1} (и симметричная сходимость theta _ {m} к lambda _ {n}) в качестве м растет, и во вторую очередь сближение некоторого диапазона { displaystyle theta _ {1}, ldots, theta _ {k}} собственных значений Т своим коллегам { displaystyle lambda _ {1}, ldots, lambda _ {k}} из А. Сходимость для алгоритма Ланцоша часто на порядки быстрее, чем для алгоритма степенных итераций.[9]:477

Границы для theta _ {1} происходят из приведенной выше интерпретации собственных значений как крайних значений коэффициента Рэлея г (х). С lambda _ {1} является априори максимумом р в целом { displaystyle mathbb {C} ^ {n},} в то время как theta _ {1} это просто максимум на м-мерное подпространство Крылова, тривиально получаем { displaystyle lambda _ {1} geqslant theta _ {1}}. И наоборот, любая точка Икс в этом подпространстве Крылова оценивается снизу г (х) за theta _ {1}, так что если можно выставить точку, за которую { displaystyle lambda _ {1} -r (x)} мала, то это обеспечивает жесткую границу theta _ {1}.

Измерение м Крылова подпространство

{ displaystyle operatorname {span} left {v_ {1}, Av_ {1}, A ^ {2} v_ {1}, ldots, A ^ {m-1} v_ {1} right } ,}

так что любой его элемент может быть выражен как { displaystyle p (A) v_ {1}} для некоторого полинома п степени не более м-1; коэффициенты этого многочлена — это просто коэффициенты линейной комбинации векторов { displaystyle v_ {1}, Av_ {1}, A ^ {2} v_ {1}, ldots, A ^ {m-1} v_ {1}}. У желаемого многочлена окажутся действительные коэффициенты, но на данный момент мы должны учитывать и комплексные коэффициенты, и мы напишем п ^ {*} для полинома, полученного комплексным сопряжением всех коэффициентов п. В этой параметризации подпространства Крылова имеем

{ displaystyle r (p (A) v_ {1}) = { frac {(p (A) v_ {1}) ^ {*} Ap (A) v_ {1}} {(p (A) v_ { 1}) ^ {*} p (A) v_ {1}}} = { frac {v_ {1} ^ {*} p (A) ^ {*} Ap (A) v_ {1}} {v_ { 1} ^ {*} p (A) ^ {*} p (A) v_ {1}}} = { frac {v_ {1} ^ {*} p ^ {*} (A ^ {*}) Ap (A) v_ {1}} {v_ {1} ^ {*} p ^ {*} (A ^ {*}) p (A) v_ {1}}} = { frac {v_ {1} ^ { *} p ^ {*} (A) Ap (A) v_ {1}} {v_ {1} ^ {*} p ^ {*} (A) p (A) v_ {1}}}}

Используя теперь выражение для v_ {1} как линейную комбинацию собственных векторов, получаем

{ displaystyle Av_ {1} = A sum _ {k = 1} ^ {n} d_ {k} z_ {k} = sum _ {k = 1} ^ {n} d_ {k} lambda _ { k} z_ {k}}

и вообще

{ displaystyle q (A) v_ {1} = sum _ {k = 1} ^ {n} d_ {k} q ( lambda _ {k}) z_ {k}}

для любого полинома q.

Таким образом

{ displaystyle lambda _ {1} -r (p (A) v_ {1}) = lambda _ {1} - { frac {v_ {1} ^ {*} sum _ {k = 1} ^ {n} d_ {k} p ^ {*} ( lambda _ {k}) lambda _ {k} p ( lambda _ {k}) z_ {k}} {v_ {1} ^ {*} сумма _ {k = 1} ^ {n} d_ {k} p ^ {*} ( lambda _ {k}) p ( lambda _ {k}) z_ {k}}} = lambda _ {1} - { frac { sum _ {k = 1} ^ {n} | d_ {k} | ^ {2} lambda _ {k} p ( lambda _ {k}) ^ {*} p ( lambda _ {k})} { sum _ {k = 1} ^ {n} | d_ {k} | ^ {2} p ( lambda _ {k}) ^ {*} p ( lambda _ {k} )}} = { frac { sum _ {k = 1} ^ {n} | d_ {k} | ^ {2} ( lambda _ {1} - lambda _ {k}) left | p ( lambda _ {k}) right | ^ {2}} { sum _ {k = 1} ^ {n} | d_ {k} | ^ {2} left | p ( lambda _ {k}) right | ^ {2}}}.}

Ключевое различие между числителем и знаменателем заключается в том, что k = 1 член исчезает в числителе, но не в знаменателе. Таким образом, если можно выбрать п быть большим в lambda _ {1} но мал во всех остальных собственных значениях, можно получить жесткую границу ошибки { displaystyle lambda _ {1} - theta _ {1}}.

С А имеет гораздо больше собственных значений, чем п имеет коэффициенты, это может показаться сложной задачей, но один из способов удовлетворить это — использовать Полиномы Чебышева. Письмо c_ {k} на степень k Многочлен Чебышева первого рода (удовлетворяющий { Displaystyle с_ {к} ( соз х) = соз (кх)} для всех Икс), у нас есть многочлен, который остается в диапазоне [-1,1] на известном интервале [-1,1] но быстро растет вне его. При некотором масштабировании аргумента мы можем отобразить все собственные значения, кроме lambda _ {1} в [-1,1]. Позволять

{ displaystyle p (x) = c_ {m-1} left ({ frac {2x- lambda _ {2} - lambda _ {n}} { lambda _ {2} - lambda _ {n) }}}верно)}

(в случае { displaystyle lambda _ {2} = lambda _ {1}}, используйте вместо этого наибольшее собственное значение, строго меньшее, чем lambda _ {1}), то максимальное значение { Displaystyle | п ( лямбда _ {к}) | ^ {2}} за { Displaystyle к geqslant 2} является 1 а минимальное значение равно { displaystyle 0}, так

{ displaystyle lambda _ {1} - theta _ {1} leqslant lambda _ {1} -r (p (A) v_ {1}) = { frac { sum _ {k = 2} ^ {n} | d_ {k} | ^ {2} ( lambda _ {1} - lambda _ {k}) | p ( lambda _ {k}) | ^ {2}} { sum _ {k = 1} ^ {n} | d_ {k} | ^ {2} | p ( lambda _ {k}) | ^ {2}}} leqslant { frac { sum _ {k = 2} ^ { n} | d_ {k} | ^ {2} ( lambda _ {1} - lambda _ {k})} {| d_ {1} | ^ {2} | p ( lambda _ {1}) | ^ {2}}} leqslant { frac {( lambda _ {1} - lambda _ {n}) sum _ {k = 2} ^ {n} | d_ {k} | ^ {2}} {| p ( lambda _ {1}) | ^ {2} | d_ {1} | ^ {2}}}.}

более того

{ displaystyle p ( lambda _ {1}) = c_ {m-1} left ({ frac {2 lambda _ {1} - lambda _ {2} - lambda _ {n}} { lambda _ {2} - lambda _ {n}}} right) = c_ {m-1} left (2 { frac { lambda _ {1} - lambda _ {2}} { lambda _ {2} - lambda _ {n}}} + 1 right);}

количество

{ displaystyle rho = { frac { lambda _ {1} - lambda _ {2}} { lambda _ {2} - lambda _ {n}}}}

(т. е. отношение первых собственная щель к диаметру остальной части спектр ) имеет ключевое значение для скорости сходимости здесь. Также пишу

{ displaystyle R = e ^ { operatorname {arcosh} (1 + 2 rho)} = 1 + 2 rho +2 { sqrt { rho ^ {2} + rho}},}

мы можем сделать вывод, что

{ displaystyle { begin {align} lambda _ {1} - theta _ {1} & leqslant { frac {( lambda _ {1} - lambda _ {n}) left (1- | d_ {1} | ^ {2} right)} {c_ {m-1} (2 rho +1) ^ {2} | d_ {1} | ^ {2}}} [6pt] & = { frac {1- | d_ {1} | ^ {2}} {| d_ {1} | ^ {2}}} ( lambda _ {1} - lambda _ {n}) { frac {1 } { cosh ^ {2} ((m-1) operatorname {arcosh} (1 + 2 rho))}} [6pt] & = { frac {1- | d_ {1} | ^ { 2}} {| d_ {1} | ^ {2}}} ( lambda _ {1} - lambda _ {n}) { frac {4} { left (R ^ {m-1} + R ^ {- (m-1)} right) ^ {2}}} [6pt] & leqslant 4 { frac {1- | d_ {1} | ^ {2}} {| d_ {1} | ^ {2}}} ( lambda _ {1} - lambda _ {n}) R ^ {- 2 (m-1)} end {align}}}

Таким образом, скорость сходимости определяется главным образом р, поскольку эта граница уменьшается в раз { displaystyle R ^ {- 2}} за каждую дополнительную итерацию.

Для сравнения можно рассмотреть, как скорость сходимости степенного метода зависит от rho, но поскольку степенной метод в первую очередь чувствителен к отношению абсолютных значений собственных значений, нам нужно { displaystyle | lambda _ {n} | leqslant | lambda _ {2} |} для собственного зазора между lambda _ {1} и lambda _ {2} быть доминирующим. При этом ограничении наиболее благоприятным для степенного метода является то, что { displaystyle lambda _ {n} = - lambda _ {2}}, так что считайте это. В конце метода мощности вектор итерации:

{ displaystyle u = (1-t ^ {2}) ^ {1/2} z_ {1} + tz_ {2} приблизительно z_ {1} + tz_ {2},}[примечание 1]

где каждая новая итерация эффективно умножает z_ {2}-амплитуда т к

{ displaystyle { frac { lambda _ {2}} { lambda _ {1}}} = { frac { lambda _ {2}} { lambda _ {2} + ( lambda _ {1} - lambda _ {2})}} = { frac {1} {1 + { frac { lambda _ {1} - lambda _ {2}} { lambda _ {2}}}}} = { frac {1} {1 + 2 rho}}.}

Тогда оценка наибольшего собственного значения имеет вид

{ displaystyle u ^ {*} Au = (1-t ^ {2}) lambda _ {1} + t ^ {2} lambda _ {2},}

поэтому приведенную выше оценку скорости сходимости алгоритма Ланцоша следует сравнить с

{ displaystyle lambda _ {1} -u ^ {*} Au = ( lambda _ {1} - lambda _ {2}) t ^ {2},}

который сжимается в раз { Displaystyle (1 + 2 rho) ^ {- 2}} для каждой итерации. Таким образом, разница сводится к тому, что между { displaystyle 1 + 2 rho} и { Displaystyle R = 1 + 2 rho +2 { sqrt { rho ^ {2} + rho}}}. в { displaystyle rho gg 1} регион, последний больше похож на { displaystyle 1 + 4 rho}, и работает так же, как и силовой метод, с вдвое большей собственной щелью; заметное улучшение. Однако более сложным является случай { displaystyle rho ll 1,} в котором { Displaystyle R приблизительно 1 + 2 { sqrt { rho}}} — еще большее улучшение собственной щели; в { displaystyle rho gg 1} область, в которой алгоритм Ланцоша делает самый маленький улучшение по силовому методу.

Численная стабильность

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

Для алгоритма Ланцоша можно доказать, что с точная арифметика, множество векторов v_ {1}, v_ {2}, cdots, v _ {{m + 1}} создает ортонормированный базис, и решенные собственные значения / векторы являются хорошими приближениями к исходной матрице. Однако на практике (поскольку вычисления выполняются в арифметике с плавающей запятой, где неточность неизбежна) ортогональность быстро теряется, и в некоторых случаях новый вектор может даже линейно зависеть от уже построенного набора. В результате некоторые собственные значения результирующей трехдиагональной матрицы могут не быть приближениями к исходной матрице. Следовательно, алгоритм Ланцоша не очень стабилен.

Пользователи этого алгоритма должны иметь возможность находить и удалять эти «ложные» собственные значения. Практические реализации алгоритма Ланцоша идут в трех направлениях для борьбы с этой проблемой стабильности:[6][7]

  1. Предотвратить потерю ортогональности,
  2. Восстановите ортогональность после создания основы.
  3. После того, как все хорошие и «ложные» собственные значения определены, удалите ложные.

Вариации

Существуют вариации алгоритма Ланцоша, где задействованные векторы представляют собой высокие узкие матрицы вместо векторов, а нормализующие константы представляют собой небольшие квадратные матрицы. Они называются «блочными» алгоритмами Ланцоша и могут быть намного быстрее на компьютерах с большим количеством регистров и длительным временем выборки из памяти.

Многие реализации алгоритма Ланцоша перезапускаются после определенного количества итераций. Одним из наиболее важных вариантов перезапуска является неявно перезапускаемый метод Ланцоша,[10] который реализован в ARPACK.[11] Это привело к ряду других перезапущенных вариаций, таких как перезапуск бидиагонализации Ланцоша.[12] Другой успешный вариант перезапуска — метод Ланцоша с толстым перезапуском,[13] который был реализован в программном пакете под названием TRLan.[14]

Нулевое пространство над конечным полем

В 1995 г. Питер Монтгомери опубликовал алгоритм, основанный на алгоритме Ланцоша, для поиска элементов пустое пространство большой разреженной матрицы над GF (2); поскольку множество людей, интересующихся большими разреженными матрицами над конечными полями, и множество людей, интересующихся большими проблемами собственных значений, почти не пересекаются, это часто также называют блочный алгоритм Ланцоша не вызывая необоснованной путаницы.[нужна цитата ]

Приложения

Алгоритмы Ланцоша очень привлекательны тем, что умножение на А , единственная крупномасштабная линейная операция.Поскольку механизмы взвешенного поиска текста реализуют именно эту операцию, алгоритм Ланцоша можно эффективно применять к текстовым документам (см. Скрытое семантическое индексирование ). Собственные векторы также важны для крупномасштабных методов ранжирования, таких как Алгоритм HITS разработан Джон Кляйнберг, или PageRank алгоритм, используемый Google.

Алгоритмы Ланцоша также используются в Физика конденсированного состояния как метод решения Гамильтонианы из сильно коррелированные электронные системы,[15] а также в модель оболочки коды в ядерная физика.[16]

Реализации

В Библиотека NAG содержит несколько процедур[17] для решения крупномасштабных линейных систем и собственных задач, использующих алгоритм Ланцоша.

MATLAB и GNU Octave поставляются со встроенным ARPACK. Как хранимые, так и неявные матрицы можно анализировать с помощью eigs () функция (Matlab /Октава ).

Реализация алгоритма Ланцоша в Matlab (проблемы с точностью примечания) доступна как часть Пакет Matlab для распространения веры по Гауссу. В GraphLab[18] Библиотека совместной фильтрации включает крупномасштабную параллельную реализацию алгоритма Ланцоша (на C ++) для многоядерных процессоров.

В ПРИММ библиотека также реализует алгоритм, подобный Ланцошу.

Примечания

Рекомендации

  1. ^ Ланцош, К. (1950). «Итерационный метод решения задачи на собственные значения линейных дифференциальных и интегральных операторов» (PDF). Журнал исследований Национального бюро стандартов. 45 (4): 255–282. Дои:10.6028 / jres.045.026.
  2. ^ а б Ojalvo, I.U .; Ньюман, М. (1970). «Режимы вибрации крупногабаритных конструкций методом автоматического уменьшения матриц». Журнал AIAA. 8 (7): 1234–1239. Bibcode:1970AIAAJ … 8.1234N. Дои:10.2514/3.5878.
  3. ^ Пейдж, К. С. (1971). Вычисление собственных значений и собственных векторов очень больших разреженных матриц (Кандидатская диссертация). Лондонский университет. OCLC  654214109.
  4. ^ Пейдж, К. С. (1972). «Вычислительные варианты метода Ланцоша для задачи собственных значений». J. Inst. Приложения по математике. 10 (3): 373–381. Дои:10.1093 / imamat / 10.3.373.
  5. ^ Оялво, И. У. (1988). «Происхождение и преимущества векторов Ланцоша для больших динамических систем». Proc. 6-я Конференция по модальному анализу (IMAC), Киссимми, Флорида. С. 489–494.
  6. ^ а б Cullum; Уиллоби. Алгоритмы Ланцоша для вычисления больших симметричных собственных значений. 1. ISBN  0-8176-3058-9.
  7. ^ а б Юсеф Саад (1992-06-22). Численные методы решения больших задач на собственные значения. ISBN  0-470-21820-7.
  8. ^ Coakley, Ed S .; Рохлин, Владимир (2013). «Быстрый алгоритм« разделяй и властвуй »для вычисления спектров вещественных симметричных трехдиагональных матриц». Прикладной и вычислительный гармонический анализ. 34 (3): 379–414. Дои:10.1016 / j.acha.2012.06.003.
  9. ^ а б Golub, Gene H .; Ван Лоан, Чарльз Ф. (1996). Матричные вычисления (3-е изд.). Балтимор: Johns Hopkins Univ. Нажмите. ISBN  0-8018-5413-X.
  10. ^ Д. Кальветти; Л. Райхель; Д.К. Соренсен (1994). «Неявно перезапущенный метод Ланцоша для больших симметричных задач на собственные значения». Электронные транзакции по численному анализу. 2: 1–21.
  11. ^ Р. Б. Лехук; Д. К. Соренсен; К. Ян (1998). Руководство пользователя ARPACK: решение крупномасштабных проблем собственных значений с помощью неявно перезапускаемых методов Арнольди. СИАМ. Дои:10.1137/1.9780898719628. ISBN  978-0-89871-407-4.
  12. ^ Э. Кокиопулу; К. Бекас; Э. Галлопулос (2004). «Вычисление наименьших сингулярных троек с неявно перезапущенной бидиагонализацией Ланцоша» (PDF). Appl. Нумер. Математика. 49: 39–61. Дои:10.1016 / j.apnum.2003.11.011.
  13. ^ Кешенг Ву; Хорст Саймон (2000). «Толстый перезапуск метода Ланцоша для больших симметричных задач на собственные значения». Журнал SIAM по матричному анализу и приложениям. СИАМ. 22 (2): 602–616. Дои:10.1137 / S0895479898334605.
  14. ^ Кешенг Ву; Хорст Саймон (2001). «Программный комплекс TRLan». Архивировано из оригинал на 2007-07-01. Получено 2007-06-30.
  15. ^ Чен, HY; Аткинсон, W.A .; Уортис, Р. (июль 2011 г.). «Вызванная беспорядком аномалия нулевого смещения в модели Андерсона-Хаббарда: численные и аналитические расчеты». Физический обзор B. 84 (4): 045113. arXiv:1012.1031. Bibcode:2011PhRvB..84d5113C. Дои:10.1103 / PhysRevB.84.045113.
  16. ^ Симидзу, Норитака (21 октября 2013 г.). «Код модели ядерной оболочки для массовых параллельных вычислений», KSHELL««. arXiv:1310.5431 [ядерный ].
  17. ^ Группа численных алгоритмов. «Указатель ключевых слов: Ланцош». Руководство библиотеки NAG, Mark 23. Получено 2012-02-09.
  18. ^ GraphLab В архиве 2011-03-14 на Wayback Machine

дальнейшее чтение

  • Голуб, Джин Х.; Ван Лоан, Чарльз Ф. (1996). «Методы Ланцоша». Матричные вычисления. Балтимор: Издательство Университета Джона Хопкинса. С. 470–507. ISBN  0-8018-5414-8.
  • Нг, Эндрю Ю.; Чжэн, Алиса X .; Джордан, Майкл И. (2001). «Анализ связей, собственные векторы и стабильность» (PDF). IJCAI’01 Труды 17-й международной совместной конференции по искусственному интеллекту. Том 2: 903–910.

Часто при получении технического задания на проведение расчета фигурирует условие, согласно которому проектируемую конструкцию необходимо подобрать или проверить по прочности, деформативности и устойчивости с учетом сейсмического воздействия. В текущей постановке задачи, сделать это совсем несложно, например, используя в качестве расчетного программный комплекс SCAD. Ранее уже была представлена статья с аналогичной тематикой, но в рамках программного комплекса ЛИРА-САПР. О том, как осуществить задание сейсмики в SCAD, пойдет речь в текущей статье.

Нюансы в подготовке расчетной схемы

Чтобы правильно применить сейсмику к расчетной схеме, необходимо уточнить несколько нюансов, касаемых граничных условий.

  • Если в расчетной схеме отражен свайный фундамент с помощью конечных элементов №51, которые их моделируют, то такие элементы следует заменить на жесткие связи во всех направлениях, ограничив так же и углы поворота.
  • Если же в расчетной схеме здания или сооружения присутствуют модель фундамента на естественном основании, то в этом случае следует увеличить в 10 раз модули деформации грунтов при назначении коэффициентов постели (например, в программе КРОСС).

Назначение к расчетной схеме сейсмического загружения

Сейсмику в SCAD можно задавать уже тогда, когда набрана геометрия расчетной схемы, установлены связи и назначены все остальные загружения на рассматриваемый объект. Так как сейсмика представляет из себя динамическое загружение, то активация окна настройки осуществляется по кнопке «Динамические воздействия» — «Создание нового загружения» (рис. 1).

Рис. 1. Кнопка создания нового динамического загружения

В новом окне в левом верхнем углу следует поставить галочку напротив «Сейсмические воздействия», затем появится перечень норм, согласно которым нужно делать расчет (рис. 2). На счет остальных настроек стоит остановиться поподробнее, чтобы более корректно осуществить задание сейсмики в SCAD.

Вкладка «Общие данные» при задании сейсмики в SCAD

  1. Преобразование статических нагрузок в массы – следует активировать этот пункт. Из-за того, что сейсмика учитывается только в особых сочетаниях, то от каждого типа нагрузок задается коэффициент пересчета, согласно следующим коэффициентам:
  • Постоянные — 0.9.
  • Длительные — 0.8.
  • Кратковременные — 0.5. Причем кратковременные нагрузки, не имеющие длительной части
    (например, ветровая нагрузка), не входят в особые сочетания.

2. Определение собственных форм и частот выполняется методом Ланцоша, согласно кеоторому происходит автоматическое определение количества форм, пока не наберется требуемая в СП 14.13330.2018, п.5.9 общая сумма масс системы по направлениям X=90% Y=90% Z=75%.

Окно настроек сейсмики в SCAD

Рис. 2. Окно настроек сейсмики в SCAD, первая вкладка

Вкладка с настройками, согласно выбранным нормам в SCAD

Остальные настройки назначаются во второй вкладке текущего окна (рис. 3).

  1. Число учитываемых частот колебаний определяется модальным анализом.
  2. Ориентация высоты здания на схеме – по оси Z.
  3. Категория грунта определяется из отчета по инженерно-геологическим изысканиям (СП 14.13330.2018, табл. 1).
  4. Сейсмичность — требуемая балльность, согласно техническому заданию или району предполагаемого размещению объекта.
  5. Поправочный коэффициент — обычно, 1. Можно усиливать влияние сейсмики на конструкцию, вплоть до назначения 10 баллов, введя коэффициент 2.
  6. Тип сооружения, назначается согласно СП14.13330.2018, табл. 5.3.
  7. Коэффициент допускаемых повреждений, назначается согласно СП14.13330.2018, табл. 5.4.
  8. Характеристика сооружения, назначается согласно СП14.13330.2018, табл. 5.5.

Рис. 3. Окно настроек сейсмики в SCAD, вторая вкладка

После нажатия «ОК» новое сейсмическое воздействие появится в общем списке загружений.

Чтобы задать сейсмику в SCAD в РСУ, нужно в дереве проекта нажать на соответствующую кнопку, после чего в появившейся таблице отредактировать список загружений, согласно ниженаписанным параметрам:

  1. У сейсмического загружения задать тип — особая нагрузка, а вид — сейсмическое воздействие.
  2. Сейсмика строго знакопеременна, отметить этот пункт галочкой.
  3. Сейсмика может входить в сочетание только с теми нагрузками, которые были пересчитаны при задании самого воздействия (постоянные и временные нагрузки, которые имеют длительную часть). Напротив сейсмического воздействия ставим галочку в желтом столбце; для постоянных и временных нагрузок с длительной частью (за исключением нагрузок, которые не имеют длительной составляющей, например ветровая нагрузка) – галочку в зеленном столбце напротив каждого загружения.
  4. При задании двух и более сейсмических воздействий необходимо задать взаимоисключение данных нагрузок.
  5. В области «Связи загружений» необходимо зайти в «Сопутствия» и поставить галочки по всем ячейкам.

Задание сейсмики в SCAD завершается на этапе получения результатов расчета. Анализ результатов от сейсмического воздействия в режиме «Графический анализ», во вкладке «Деформации» выполняется по нагрузке «SD –амплитуда от суммарной динамической нагрузки». Значение суммарной амплитуды в среде SCAD всегда несколько завышено в силу того, что программный комплекс складывает значения амплитуд по модулю, без учета знака. Следует учитывать, что при больших значениях перемещений узлов от сейсмического воздействия, результат может быть обусловлен наличием некоторых отдельных частей расчетной схемы (консольный стержень и т.п.). При удалении данных элементов перемещения, вероятнее всего, будут на порядок ниже.

Результаты армирования проводятся аналогичным образом, как и при решении стандартной классической задачи.

vk.com/club152685050ANSYS Mechanical. Верификационный| vk.com/id446425943отчет. Том 1

Элементы “узел-поверхность”

Элементы “узел-узел”

Контакт деформируемых тел

Контакт деформируемого тела с жестким

9 Граничные условия

Для геометрической и для КЭ-моделей (заданные перемещения и кинематические связи групп узлов)

Начальные условия

Ввод нагрузок в форме таблиц или функций

Тепловые нагрузки

Преднапряжение

9Модели материалов

Упругие изотропные, трансверсально-изотропные, ортотропные

Пластичность металлов (теория течения с различными упрочнениями)

Гиперупругость (несжимаемые резиноподобные)

Вязкопластичность металлов

Ползучесть металлов

Образование трещин в бетоне и железобетоне

Нелинейная модель грунта (Друкера-Прагера)

Пользовательские материалы (нелинейная модель кирпичной кладки, деревянные клееные)

9Конечные элементы

Объемные КЭ (“солиды”)

Оболочечные элементы

Балочные КЭ

Трубы

2D и 3D гиперупругие

2D и 3D оболочки и “солиды” для тепловых задач

Многоточечные MPC

2D и 3D контактные

2D и 3D поверхностного эффекта

Опция “рождение-смерть”

9Теплопередача

Стационарные и нестационарные задачи

Теплопроводность

Теплообмен конвекцией

9Многодисциплинарные связанные задачи

Теплообмен + Прочность

9Оптимизация

Оптимизация параметров

Параметрическое моделирование

9Дополнительные возможности

Циклическая симметрия

Субмоделирование (дополнительный анализ зон конструкции)

Модальный синтез

Суперэлементы/подконструкции

9Методы решения

СЛАУ

Прямой разреженный метод (Sparse)

Итерационный метод сопряженных градиентов с предобуславливанием

(PCG)

Решение задач на собственные значения

ЗАО НИЦ СтаДиО (www.stadyo.ru stadyo@stadyo.ru), МГСУ (niccm@mgsu.ru), 2009

12

vk.com/club152685050ANSYS Mechanical. Верификационный| vk.com/id446425943отчет. Том 1

Блочный метод Ланцоша

Метод Ланцоша-PCG

Метод итераций в подпространстве

Решение нелинейных задач

Метод Ньютона-Рафсона

Метод окаймляющих дуг (Arc-length)

Интегрирование нестационарных уравнений теории поля (теплопроводность и т.п.)

“Метод трапеций” (Hughes)

Интегрирование уравнений динамики

Метод Ньюмарка

Метод HHT (Hilbert-Hughes-Taylor)

Спектральный расчет

Суперэлементные алгоритмы

Контактные взаимодействия

Метод штрафных функций

Метод множителей Лагранжа

Расширенный метод множителей Лагранжа

Оптимизация

Метод аппроксимации подзадачи

Метод 1-го порядка

4.3Реализация верифицируемых типов решаемых задач (виды расчетов) в ПК

ANSYS Mechanical

Численное моделирование статического, температурного и динамического напряженно-деформированного состояния зданий, сооружений и конструкций без какихлибо существенных ограничений в ПК ANSYS основано на реализации метода конечных элементов (МКЭ) в форме перемещений. Для решения основной системы уравнений формируются глобальные матрицы жесткости [K], демпфирования [C] и матрицы масс [M], а также вектор внешней узловой нагрузки {F}.

4.3.1Линейная статика

Для задач линейной статики решается следующая система линейных алгебраических уравнений (СЛАУ):

или

[K ] {u}= {F a }+{F r },

(2)

где:

[K] – глобальная матрица жесткости

N

[K ]= [Ke ];

m=1

{u} – вектор узловых перемещений; N – количество элементов;

[Ke] – элементная матрица жесткости;

ЗАО НИЦ СтаДиО (www.stadyo.ru stadyo@stadyo.ru), МГСУ (niccm@mgsu.ru), 2009

13

vk.com/club152685050ANSYS Mechanical. Верификационный| vk.com/id446425943отчет. Том 1

{Fr} – вектор реакций от нагрузки;

{Fa} – вектор глобальной внешней нагрузки,

{F a }= {F nd }+{F ac }+ N ({Feth }+{Fepr })

m=1

где:

{Fnd} – вектор приложенной узловой нагрузки; {Fac} – вектор инерционных сил,

{F ac }= [M ] {ac }

где:

[M] – глобальная матрица масс,

N

[M ]= [Me ]

m=1

[Me] – элементная матрица масс; {ac} – глобальный вектор ускорений;

{Feth} – вектор температурной нагрузки в пределах одного элемента; {Fepr} – вектор давлений в пределах одного элемента.

Решение системы линейных уравнений (1) или (2) в программе осуществляется прямыми (Разреженный Sparse, Фронтальный Frontal) или итерационными (Сопряженных градиентов с предобуславливанием PCG, Сопряженных градиентов Якоби JCG, Сопряженных градиентов с неполным разложением Холецкого ICCG) методами.

В рамках верификации были рассмотрены наиболее эффективные универсальные схемы:

1)прямой разреженный метод (Sparse)

2)итерационный метод сопряженных градиентов с предобуславливанием (PCG).

4.3.1.1Прямой разреженный метод (Sparse Direct Solver)

Линейные матричные уравнения (1) решаются триангуляцией матрицы жесткости [K] для получения следующего уравнения:

[L] [U ] {u}= {F}

(3)

где:

[L] – нижняя матрица треугольного вида

[U] – верхняя матрица треугольного вида

Обозначим

[U ] {u}= {w}

(4)

Искомый вектор узловых перемещений {u} определяем, предварительно решив СЛАУ относительно {w}:

а затем

ЗАО НИЦ СтаДиО (www.stadyo.ru stadyo@stadyo.ru), МГСУ (niccm@mgsu.ru), 2009

14

ANSYS Mechanical. Верификационный отчет. Том 1

vk.com/club152685050 | vk.com/id446425943

[U ] {u}= {w}

(6)

Когда матрица жесткости [K] симметрична, ее можно записать в виде:

[K ]= [L] [L]T

(7)

в свою очередь

[K ]= [L

] [D][L ]

(8)

T

где [D] – диагональная матрица, члены которой могут быть отрицательными для некоторых нелинейных задач, что позволяет сформировать матрицу [L] без учета квадратного корня из отрицательного числа. Поэтому уравнения (3)-(6) можно представить в виде:

[L ] [D] [L ]

{u}= {F}

(9)

T

T

{u}

(10)

{w}= [D] [L ]

(11)

[L ] {w}= {F}

T

{u}= {F}

(12)

[D] [L ]

В том случае, когда матрица [K] редкозаполненная с коэффициентами, расположенными, в основном, вокруг главной диагонали, прямой разреженный метод предназначен для обработки только ненулевых элементов матрицы [K]. В целом, в ходе разложения Холецкого матрицы [K], (3) или (9), матрицы [L] или [L’] заполняются ненулевыми коэффициентами, расположенными на нулевых позициях матрицы [K]. Эффективность прямого разреженного метода определяется максимальной оптимизацией вышеописанного процесса.

4.3.1.2Итерационный метод сопряженных градиентов с предобуславливанием

(Preconditioned Conjugate Gradient)

Итерационный метод сопряженных градиентов с предобуславливанием (PCG) является эффективным и надежным для всех типов расчетов. PCG метод применим только для симметричных матриц жесткости.

Решается основная система линейных уравнений (1). Вектор узловых перемещений ищется в виде:

{u}=α1 {p1 }+α2 {p2 }++αm {pm }

(13)

где m n, где n – размер матрицы.

Алгоритм метода сопряженных градиентов реализован следующим образом (14):

{u0 }= {0} {R0 }= {F}

{z0 }= [Q]1 {F}

Do i = 1, n

If(Norm (R)ε 2 ) then

Set {u}={ui-1} Quit loop

Else

ЗАО НИЦ СтаДиО (www.stadyo.ru stadyo@stadyo.ru), МГСУ (niccm@mgsu.ru), 2009

15

vk.com/club152685050ANSYS Mechanical. Верификационный| vk.com/id446425943отчет. Том 1

If(i=1)then

β1=0

{p1}={R0}

α1 =

{z0 }T {R0 }

{p1 }T [K ] {p1 }

{R1 }={R0 }+α1 [K ] {p1 }

Else

Applying preconditioning:{zi-1}=[Q]-1{Ri-1}

β

=

{zi1 }T {Ri1 }

i

{zi2 }T {Ri2 }

{pi }= {zi1 }+ βi {pi1 }

α

=

{zi1 }T {Ri1 }

i

{pi }T [K ] {pi }

{Ri }= {Ri1 }+αi [K ] {pi }

Endif

Endif

End loop

Условие сходимости:

{Ri }T {Ri }

ε 2

(15)

{F}T {F}

где:

ε – точность, заданная пользователем;

{Ri }= {F}[K ] {ui }

{ui} – вектор решений на i-ой итерации. Вектор {u0} может быть нулевым.

4.3.2 Стационарные задачи теплопроводности (фильтрации)

Для стационарных задач теплопроводности (фильтрации) решаем СЛАУ (1) или (2), подставляя вместо глобальной матрицы [K ] матрицу теплопроводности, вместо вектора

перемещений {u} – искомый вектор узловых температур {T}, а вместо вектора приложенной глобальной внешней нагрузки {F a }{Qa }, где

{Qa }= {Qnd }+ N ({Qe }+{Qeg }+{Qec }), m=1

4.3.3Собственные частоты и формы колебаний

Уравнение движения для задач определения собственных частот и форм колебаний без учета демпфирования имеет вид:

[M ] {u}+[K ] {u}= {0}

(16)

Эффекты преднапряженного состояния могут быть учтены в матрице жесткости [K ]

(команда PSTRES,ON).

ЗАО НИЦ СтаДиО (www.stadyo.ru stadyo@stadyo.ru), МГСУ (niccm@mgsu.ru), 2009

16

ANSYS Mechanical. Верификационный отчет. Том 1

vk.com/club152685050 | vk.com/id446425943

Для линейных систем свободные колебания являются гармоническими:

{u}= {φ}i cosωi t

(17)

где:

{φ}i – собственный вектор, соответствующий i-ой собственной частоте;

ωi i-я собственная круговая частота (радиан в единицу времени);

t – время.

Таким образом, уравнение (16) примет вид:

(ω2 [M ]+[K ])

{φ} = {0}

(18)

i

i

Нетривиальным решением (18) является:

[K ]ω2 [M ]

= 0

(19)

Через полученные значения круговых частот собственных колебаний {ω} можно выразить частоты собственных колебаний {f}:

fi

=

ωi

(20)

2π

Проблема собственных частот и форм колебаний может быть решена одним из методов, реализованных в ПК ANSYS Mechanical:

Редуцированный метод;

Метод итераций в подпространстве;

Прямой блочный метод Ланцоша;

Метод Ланцоша–PCG;

Несимметричный метод;

Метод демпфирования;

QR-разложение для задач с демпфированием.

Врамках настоящей верификации рассмотрены наиболее эффективные для задач большой размерности:

1) метод итераций в подпространстве;

2) прямой блочный метод Ланцоша;

3) метод Ланцоша-PCG.

4.3.3.1Метод итераций в подпространстве

Основной алгоритм метода итераций в подпространстве выглядит следующим образом:

1.Определение так называемых «сдвигов» s. В случае частотного анализа (ANTYPE,MODAL),) s = FREQB – низшая частота в частотном диапазоне.

2.Инициализация начальных векторов [X 0 ].

Количество начальных векторов (итераций) определяется равенством

где:

p – необходимое количество вычисляемых форм;

d – дополнительное число итерируемых векторов (по умолчанию d = 4)

ЗАО НИЦ СтаДиО (www.stadyo.ru stadyo@stadyo.ru), МГСУ (niccm@mgsu.ru), 2009

17

vk.com/club152685050ANSYS Mechanical. Верификационный| vk.com/id446425943отчет. Том 1

3.

Триангуляция “сдвинутой” матрицы

[K ]= [K ]+ s [M ]

(22)

[K ] – глобальная матрица жесткости системы;

[M ] – глобальная матрица масс (для модального анализа).

В качестве проверки используется свойство последовательности Штурма со сдвигом

s.

4.Для каждой итерации в подпространстве n от 1 до NM выполняются нижеследующие пункты 5-14. NM – максимальное количество итераций в подпространстве.

5.Формируется

[F ]масштабируется по {λn1}, где {λn1} – предварительно оцениваемый вектор собственных значений.

6.Прямым фронтальным методом (EQSLV,FRONT) решается система уравнений

(29)относительно [X n ]:

7.Вектор [X n ] масштабируется {(λn1 s) / λn1}.

8.Для сохраниения численной устойчивости проводится ортогонализация по Граму-Шмидту.

9.Определяются матрицы подпространства [K ] и [M ]:

[

]= [

n ]T [K ] [

n ]

(25)

K

X

X

[

]= [

n ]T [M ] [

n ]

(26)

M

X

X

10.

С учетом сдвига, получается

[

]= [

]+ s [

]

(27)

K

K

M

11.

Вычисляются собственные значения и векторы

подпространства с

применением обобщенного метода Якоби:

[K ] [Q]= [

] [Q] {λn }

(28)

M

где:

[Q] – собственные вектора подпространства;

{λn } – обновленные собственные значения.

12.

Обновление приближения к собственным векторам:

[X n ]= [

n ] [Q]

(29)

X

13.Если найдены отрицательные или лишние формы колебаний, их нужно удалить

исоздать новый случайный вектор.

14.Анализ сходимости полученных приближений:

Если для всех форм сходимость достигается:

ЗАО НИЦ СтаДиО (www.stadyo.ru stadyo@stadyo.ru), МГСУ (niccm@mgsu.ru), 2009

18

vk.com/club152685050ANSYS Mechanical. Верификационный| vk.com/id446425943отчет. Том 1

ei

=

(λi )n (λi )n1

< tol

(30)

B

где:

(λi )n i-е собственное значение, вычисленное на n-ой итерации;

(λi )n1 i-е собственное значение, вычисленное на (n-1)-ой итерации;

1.0

B = ( ) – выбирается наибольшее значение;

λi n

tol – предел сходимости, равный 10-5, то переходим к пункту 15.

Если требуется задать новый сдвиг, возвращаемся к пункту 3.

Для перехода на следующую итерацию, переходим к пункту 4.

15.Выполняется последняя необходимая проверка с использованием свойства последовательности Штурма.

4.3.3.2Прямой блочный метод Ланцоша

Для решения большой симметричной проблемы собственных значений помимо метода итераций в подпространстве применяют прямой блочный метод Ланцоша, имеющий более быструю сходимость.

Алгоритм блочного метода Ланцоша со сдвигом подробно описан в [194]. Для получения требуемого количества собственных векторов в модальном анализе блочный метод Ланцоша применяется совместно с проверкой последовательности Штурма.

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

Альтернативой блочному методу Ланцоша является метод Ланцоша-PCG, требующий меньше вычислительных затрат.

4.3.3.3 Метод Ланцоша-PCG

Теоретические выкладки по реализации метода Ланцоша-PCG можно также найти в работе [194].

Несмотря на то, что данный метод основан на блочном методе Ланцоша, их реализация несколько отличается:

Значение сдвига в ходе вычислений остается неизменным;

Для решения уравнения (24) применяется метод PCG;

По умолчанию не выполняется проверка последовательности Штурма;

Не применим к задачам на устойчивость.

4.3.4Линейная устойчивость

Расчет на устойчивость в линейной постановке (частичная проблема собственных

значений) формулируется следующим образом:

([K ]+ λi [S]) {ψ}i ={0}

(31)

где:

[K ] – матрица жесткости системы;

[S] – матрица геометрической жесткости (stress stiffness matrix);

ЗАО НИЦ СтаДиО (www.stadyo.ru stadyo@stadyo.ru), МГСУ (niccm@mgsu.ru), 2009

19

vk.com/club152685050ANSYS Mechanical. Верификационный| vk.com/id446425943отчет. Том 1

λi i-е собственное значение (критическая нагрузка);

{ψ}i i-й собственный вектор перемещений (форма потери устойчивости).

Методы решения проблемы собственных значений, реализованных в ПК ANSYS Mechanical, перечислены в п. 3.3.3.

В рамках настоящей верификации применительно к задачам на линейную устойчивость рассмотрен прямой блочный метод Ланцоша (см. п. 3.3.3.2).

4.3.5Гармонический анализ (установившиеся вибрации)

При гармоническом анализе линейных систем с установившимися вибрациями решаются уравнения движения во времени:

[M ] {u}+[C] {u}+[K ] {u}= {F a }

(32)

где:

[M ] – матрица масс системы;

[C] – матрица демпфирования (диссипации) системы; [K ]– матрица жесткости системы;

{u} — вектор узловых ускорений; {u} — вектор узловых скоростей; {u} — вектор узловых перемещений;

{F a }— функция нагрузки, зависящая от времени.

Известно, что все точки системы движутся с одной частотой, но необязательно в одной фазе. Сдвиг по фазе объясняется наличием демпфирования. Поэтому перемещения могут быть представлены следующим образом:

{u}= {umax eiφ } eit

(33)

где:

umax

– максимальные перемещения;

i =

1 ;

Ω –круговая частота внешней нагрузки (радианы в единицу времени), Ω = 2πf ; f – вынуждающая частота;

t– время;

φ– сдвиг по фазе для перемещений (радианы).

Вкомплексной форме перемещения можно записать следующим образом:

{u}={umax (cosφ +isinφ)} eit

(34)

или

{u}={{u

}+i{u

2

}} eit

(35)

1

где:

{u1

}={umax cosφ} – вектор действительных значений перемещений;

{u2 }={umax sinφ} – вектор мнимых значений перемещений.

Вектор нагрузки может быть представлен по аналогии:

{F}={Fmax eiψ }eit

(36)

{F}={F

(cosψ +isinψ )} eit

(37)

max

ЗАО НИЦ СтаДиО (www.stadyo.ru stadyo@stadyo.ru), МГСУ (niccm@mgsu.ru), 2009

20

ANSYS Mechanical. Верификационный отчет. Том 1

vk.com/club152685050 | vk.com/id446425943

{F}={{F

}+i{F }} eit

(38)

1

2

где:

Fmax – амплитуда приложенной силы;

Ψ – сдвиг по фазе для нагрузки (радианы);

{F1}={Fmax cosψ} – вектор действительных значений нагрузки;

{F2 }={Fmax sinψ} – вектор мнимых значений нагрузки.

Подставив выражения (35) и (38) в (32), получим:

(−Ω2 [M ]+i[C]+[K ]) ({u1}+i{u2 }) eit = ({F1}+i{F2 }) eit

(39)

Выполнив необходимые преобразования, представим уравнение (39) в виде:

(− Ω2 [M ]+i[C]+[K ]) ({u1}+i{u2 })= ({F1}+ i{F2 })

(40)

Существует четыре метода решения представленной выше системы уравнений (40):

Полный метод решения (Full Solution Method);

Редуцированный метод решения (Reduced Solution Method);

Метод суперпозиций форм колебаний;

Вариационный метод решения (Variational Technology).

Врамках данной верификации остановимся на методе суперпозиций форм колебаний.

4.3.5.1Метод суперпозиций форм колебаний

Уравнение движения (32) в частотной (модальной) форме записывается следующим образом (подробнее см. “Documentation for ANSYS, Theory Reference, Chapter 15. Analysis Tools, 15.10 Mode Superposition Method”):

y j + 2ωjξj y j +ω2j y j = f j

(41)

где:

y j

– модальная (нормальная) координата (modal coordinate);

ωj

– собственная круговая частота j-й формы колебаний;

ξj

– коэффициент затухания для j-й формы колебаний;

fi – нагрузка в модальных координатах.

Вектор нагрузки в модальных координатах:

{F}= {F nd }+ s{F s }

(42)

где:

{F nd }– вектор узловых сил;

s – масштабный коэффициент нагрузки;

{F s } – вектор нагрузки из модального анализа (подробнее см. “Documentation for ANSYS,

Theory Reference, Chapter 15. Analysis Tools, 15.10 Mode Superposition Method” []).

Для установившихся гармонических колебаний

ЗАО НИЦ СтаДиО (www.stadyo.ru stadyo@stadyo.ru), МГСУ (niccm@mgsu.ru), 2009

21

Соседние файлы в предмете Информатика

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

The Lanczos algorithm is an iterative method devised by Cornelius Lanczos that is an adaptation of power methods to find the m «most useful» (tending towards extreme highest/lowest) eigenvalues and eigenvectors of an ntimes n Hermitian matrix, where m is often but not necessarily much smaller than n.[1] Although computationally efficient in principle, the method as initially formulated was not useful, due to its numerical instability.

In 1970, Ojalvo and Newman showed how to make the method numerically stable and applied it to the solution of very large engineering structures subjected to dynamic loading.[2] This was achieved using a method for purifying the Lanczos vectors (i.e. by repeatedly reorthogonalizing each newly generated vector with all previously generated ones)[2] to any degree of accuracy, which when not performed, produced a series of vectors that were highly contaminated by those associated with the lowest natural frequencies.

In their original work, these authors also suggested how to select a starting vector (i.e. use a random-number generator to select each element of the starting vector) and suggested an empirically determined method for determining m, the reduced number of vectors (i.e. it should be selected to be approximately 1.5 times the number of accurate eigenvalues desired). Soon thereafter their work was followed by Paige, who also provided an error analysis.[3][4] In 1988, Ojalvo produced a more detailed history of this algorithm and an efficient eigenvalue error test.[5]

The algorithm[edit]

Input a Hermitian matrix A of size ntimes n, and optionally a number of iterations m (as default, let m=n).
Output an ntimes m matrix V with orthonormal columns and a tridiagonal real symmetric matrix {displaystyle T=V^{*}AV} of size mtimes m. If m=n, then V is unitary, and {displaystyle A=VTV^{*}}.
Warning The Lanczos iteration is prone to numerical instability. When executed in non-exact arithmetic, additional measures (as outlined in later sections) should be taken to ensure validity of the results.

  1. Let {displaystyle v_{1}in mathbb {C} ^{n}} be an arbitrary vector with Euclidean norm 1.
  2. Abbreviated initial iteration step:
    1. Let {displaystyle w_{1}'=Av_{1}}.
    2. Let {displaystyle alpha _{1}=w_{1}'^{*}v_{1}}.
    3. Let {displaystyle w_{1}=w_{1}'-alpha _{1}v_{1}}.
  3. For {displaystyle j=2,dots ,m} do:
    1. Let {displaystyle beta _{j}=|w_{j-1}|} (also Euclidean norm).
    2. If {displaystyle beta _{j}neq 0}, then let {displaystyle v_{j}=w_{j-1}/beta _{j}},
      else pick as v_{j} an arbitrary vector with Euclidean norm 1 that is orthogonal to all of {displaystyle v_{1},dots ,v_{j-1}}.
    3. Let {displaystyle w_{j}'=Av_{j}}.
    4. Let {displaystyle alpha _{j}=w_{j}'^{*}v_{j}}.
    5. Let {displaystyle w_{j}=w_{j}'-alpha _{j}v_{j}-beta _{j}v_{j-1}}.
  4. Let V be the matrix with columns {displaystyle v_{1},dots ,v_{m}}. Let {displaystyle T={begin{pmatrix}alpha _{1}&beta _{2}&&&&0beta _{2}&alpha _{2}&beta _{3}&&&&beta _{3}&alpha _{3}&ddots &&&&ddots &ddots &beta _{m-1}&&&&beta _{m-1}&alpha _{m-1}&beta _{m}&&&&beta _{m}&alpha _{m}end{pmatrix}}}.
Note {displaystyle Av_{j}=w_{j}'=beta _{j+1}v_{j+1}+alpha _{j}v_{j}+beta _{j}v_{j-1}} for {displaystyle 1<j<m}.

There are in principle four ways to write the iteration procedure. Paige and other works show that the above order of operations is the most numerically stable.[6][7]
In practice the initial vector v_{1} may be taken as another argument of the procedure, with {displaystyle beta _{j}=0} and indicators of numerical imprecision being included as additional loop termination conditions.

Not counting the matrix–vector multiplication, each iteration does O(n) arithmetical operations. The matrix–vector multiplication can be done in {displaystyle O(dn)} arithmetical operations where d is the average number of nonzero elements in a row. The total complexity is thus {displaystyle O(dmn)}, or {displaystyle O(dn^{2})} if m=n; the Lanczos algorithm can be very fast for sparse matrices. Schemes for improving numerical stability are typically judged against this high performance.

The vectors v_{j} are called Lanczos vectors.
The vector {displaystyle w_{j}'} is not used after w_{j} is computed, and the vector w_{j} is not used after {displaystyle v_{j+1}} is computed. Hence one may use the same storage for all three. Likewise, if only the tridiagonal matrix T is sought, then the raw iteration does not need {displaystyle v_{j-1}} after having computed w_{j}, although some schemes for improving the numerical stability would need it later on. Sometimes the subsequent Lanczos vectors are recomputed from v_{1} when needed.

Application to the eigenproblem[edit]

The Lanczos algorithm is most often brought up in the context of finding the eigenvalues and eigenvectors of a matrix, but whereas an ordinary diagonalization of a matrix would make eigenvectors and eigenvalues apparent from inspection, the same is not true for the tridiagonalization performed by the Lanczos algorithm; nontrivial additional steps are needed to compute even a single eigenvalue or eigenvector. Nonetheless, applying the Lanczos algorithm is often a significant step forward in computing the eigendecomposition. If lambda is an eigenvalue of A, and if {displaystyle Tx=lambda x} (x is an eigenvector of T) then {displaystyle y=Vx} is the corresponding eigenvector of A (since {displaystyle Ay=AVx=VTV^{*}Vx=VTIx=VTx=V(lambda x)=lambda Vx=lambda y}). Thus the Lanczos algorithm transforms the eigendecomposition problem for A into the eigendecomposition problem for T.

  1. For tridiagonal matrices, there exist a number of specialised algorithms, often with better computational complexity than general-purpose algorithms. For example, if T is an mtimes m tridiagonal symmetric matrix then:
  2. Some general eigendecomposition algorithms, notably the QR algorithm, are known to converge faster for tridiagonal matrices than for general matrices. Asymptotic complexity of tridiagonal QR is {displaystyle O(m^{2})} just as for the divide-and-conquer algorithm (though the constant factor may be different); since the eigenvectors together have m^{2} elements, this is asymptotically optimal.
  3. Even algorithms whose convergence rates are unaffected by unitary transformations, such as the power method and inverse iteration, may enjoy low-level performance benefits from being applied to the tridiagonal matrix T rather than the original matrix A. Since T is very sparse with all nonzero elements in highly predictable positions, it permits compact storage with excellent performance vis-à-vis caching. Likewise, T is a real matrix with all eigenvectors and eigenvalues real, whereas A in general may have complex elements and eigenvectors, so real arithmetic is sufficient for finding the eigenvectors and eigenvalues of T.
  4. If n is very large, then reducing m so that T is of a manageable size will still allow finding the more extreme eigenvalues and eigenvectors of A; in the {displaystyle mll n} region, the Lanczos algorithm can be viewed as a lossy compression scheme for Hermitian matrices, that emphasises preserving the extreme eigenvalues.

The combination of good performance for sparse matrices and the ability to compute several (without computing all) eigenvalues are the main reasons for choosing to use the Lanczos algorithm.

Application to tridiagonalization[edit]

Though the eigenproblem is often the motivation for applying the Lanczos algorithm, the operation the algorithm primarily performs is tridiagonalization of a matrix, for which numerically stable Householder transformations have been favoured since the 1950s. During the 1960s the Lanczos algorithm was disregarded. Interest in it was rejuvenated by the Kaniel–Paige convergence theory and the development of methods to prevent numerical instability, but the Lanczos algorithm remains the alternative algorithm that one tries only if Householder is not satisfactory.[9]

Aspects in which the two algorithms differ include:

Derivation of the algorithm[edit]

There are several lines of reasoning which lead to the Lanczos algorithm.

A more provident power method[edit]

The power method for finding the eigenvalue of largest magnitude and a corresponding eigenvector of a matrix A is roughly

  1. Pick a random vector {displaystyle u_{1}neq 0}.
  2. For {displaystyle jgeqslant 1} (until the direction of u_{j} has converged) do:
    1. Let {displaystyle u_{j+1}'=Au_{j}.}
    2. Let {displaystyle u_{j+1}=u_{j+1}'/|u_{j+1}'|.}

A critique that can be raised against this method is that it is wasteful: it spends a lot of work (the matrix–vector products in step 2.1) extracting information from the matrix A, but pays attention only to the very last result; implementations typically use the same variable for all the vectors u_{j}, having each new iteration overwrite the results from the previous one. What if we instead kept all the intermediate results and organised their data?

One piece of information that trivially is available from the vectors u_{j} is a chain of Krylov subspaces. One way of stating that without introducing sets into the algorithm is to claim that it computes

a subset {displaystyle {v_{j}}_{j=1}^{m}} of a basis of {displaystyle mathbb {C} ^{n}} such that {displaystyle Axin operatorname {span} (v_{1},dotsc ,v_{j+1})} for every {displaystyle xin operatorname {span} (v_{1},dotsc ,v_{j})} and all {displaystyle 1leqslant j<m;}

this is trivially satisfied by {displaystyle v_{j}=u_{j}} as long as u_{j} is linearly independent of {displaystyle u_{1},dotsc ,u_{j-1}} (and in the case that there is such a dependence then one may continue the sequence by picking as v_{j} an arbitrary vector linearly independent of {displaystyle u_{1},dotsc ,u_{j-1}}). A basis containing the u_{j} vectors is however likely to be numerically ill-conditioned, since this sequence of vectors is by design meant to converge to an eigenvector of A. To avoid that, one can combine the power iteration with a Gram–Schmidt process, to instead produce an orthonormal basis of these Krylov subspaces.

  1. Pick a random vector u_{1} of Euclidean norm 1. Let {displaystyle v_{1}=u_{1}}.
  2. For {displaystyle j=1,dotsc ,m-1} do:
    1. Let {displaystyle u_{j+1}'=Au_{j}}.
    2. For all {displaystyle k=1,dotsc ,j} let {displaystyle g_{k,j}=v_{k}^{*}u_{j+1}'}. (These are the coordinates of {displaystyle Au_{j}=u_{j+1}'} with respect to the basis vectors {displaystyle v_{1},dotsc ,v_{j}}.)
    3. Let {displaystyle w_{j+1}=u_{j+1}'-sum _{k=1}^{j}g_{k,j}v_{k}}. (Cancel the component of {displaystyle u_{j+1}'} that is in {displaystyle operatorname {span} (v_{1},dotsc ,v_{j})}.)
    4. If {displaystyle w_{j+1}neq 0} then let {displaystyle u_{j+1}=u_{j+1}'/|u_{j+1}'|} and {displaystyle v_{j+1}=w_{j+1}/|w_{j+1}|},
      otherwise pick as {displaystyle u_{j+1}=v_{j+1}} an arbitrary vector of Euclidean norm 1 that is orthogonal to all of {displaystyle v_{1},dotsc ,v_{j}}.

The relation between the power iteration vectors u_{j} and the orthogonal vectors v_{j} is that

{displaystyle Au_{j}=|u_{j+1}'|u_{j+1}=u_{j+1}'=w_{j+1}+sum _{k=1}^{j}g_{k,j}v_{k}=|w_{j+1}|v_{j+1}+sum _{k=1}^{j}g_{k,j}v_{k}}.

Here it may be observed that we do not actually need the u_{j} vectors to compute these v_{j}, because {displaystyle u_{j}-v_{j}in operatorname {span} (v_{1},dotsc ,v_{j-1})} and therefore the difference between {displaystyle u_{j+1}'=Au_{j}} and {displaystyle w_{j+1}'=Av_{j}} is in {displaystyle operatorname {span} (v_{1},dotsc ,v_{j})}, which is cancelled out by the orthogonalisation process. Thus the same basis for the chain of Krylov subspaces is computed by

  1. Pick a random vector v_{1} of Euclidean norm 1.
  2. For {displaystyle j=1,dotsc ,m-1} do:
    1. Let {displaystyle w_{j+1}'=Av_{j}}.
    2. For all {displaystyle k=1,dotsc ,j} let {displaystyle h_{k,j}=v_{k}^{*}w_{j+1}'}.
    3. Let {displaystyle w_{j+1}=w_{j+1}'-sum _{k=1}^{j}h_{k,j}v_{k}}.
    4. Let {displaystyle h_{j+1,j}=|w_{j+1}|}.
    5. If {displaystyle h_{j+1,j}neq 0} then let {displaystyle v_{j+1}=w_{j+1}/h_{j+1,j}},
      otherwise pick as {displaystyle v_{j+1}} an arbitrary vector of Euclidean norm 1 that is orthogonal to all of {displaystyle v_{1},dotsc ,v_{j}}.

A priori the coefficients {displaystyle h_{k,j}} satisfy

{displaystyle Av_{j}=sum _{k=1}^{j+1}h_{k,j}v_{k}} for all {displaystyle j<m};

the definition {displaystyle h_{j+1,j}=|w_{j+1}|} may seem a bit odd, but fits the general pattern {displaystyle h_{k,j}=v_{k}^{*}w_{j+1}'} since

{displaystyle v_{j+1}^{*}w_{j+1}'=v_{j+1}^{*}w_{j+1}=|w_{j+1}|v_{j+1}^{*}v_{j+1}=|w_{j+1}|.}

Because the power iteration vectors u_{j} that were eliminated from this recursion satisfy {displaystyle u_{j}in operatorname {span} (v_{1},ldots ,v_{j}),} the vectors {displaystyle {v_{j}}_{j=1}^{m}} and coefficients {displaystyle h_{k,j}} contain enough information from A that all of u_{1},ldots ,u_{m} can be computed, so nothing was lost by switching vectors. (Indeed, it turns out that the data collected here give significantly better approximations of the largest eigenvalue than one gets from an equal number of iterations in the power method, although that is not necessarily obvious at this point.)

This last procedure is the Arnoldi iteration. The Lanczos algorithm then arises as the simplification one gets from eliminating calculation steps that turn out to be trivial when A is Hermitian—in particular most of the {displaystyle h_{k,j}} coefficients turn out to be zero.

Elementarily, if A is Hermitian then

{displaystyle h_{k,j}=v_{k}^{*}w_{j+1}'=v_{k}^{*}Av_{j}=v_{k}^{*}A^{*}v_{j}=(Av_{k})^{*}v_{j}.}

For {displaystyle k<j-1} we know that {displaystyle Av_{k}in operatorname {span} (v_{1},ldots ,v_{j-1})}, and since v_{j} by construction is orthogonal to this subspace, this inner product must be zero. (This is essentially also the reason why sequences of orthogonal polynomials can always be given a three-term recurrence relation.) For {displaystyle k=j-1} one gets

{displaystyle h_{j-1,j}=(Av_{j-1})^{*}v_{j}={overline {v_{j}^{*}Av_{j-1}}}={overline {h_{j,j-1}}}=h_{j,j-1}}

since the latter is real on account of being the norm of a vector. For {displaystyle k=j} one gets

{displaystyle h_{j,j}=(Av_{j})^{*}v_{j}={overline {v_{j}^{*}Av_{j}}}={overline {h_{j,j}}},}

meaning this is real too.

More abstractly, if V is the matrix with columns {displaystyle v_{1},ldots ,v_{m}} then the numbers {displaystyle h_{k,j}} can be identified as elements of the matrix {displaystyle H=V^{*}AV}, and {displaystyle h_{k,j}=0} for {displaystyle k>j+1;} the matrix H is upper Hessenberg. Since

{displaystyle H^{*}=left(V^{*}AVright)^{*}=V^{*}A^{*}V=V^{*}AV=H}

the matrix H is Hermitian. This implies that H is also lower Hessenberg, so it must in fact be tridiagional. Being Hermitian, its main diagonal is real, and since its first subdiagonal is real by construction, the same is true for its first superdiagonal. Therefore, H is a real, symmetric matrix—the matrix T of the Lanczos algorithm specification.

Simultaneous approximation of extreme eigenvalues[edit]

One way of characterising the eigenvectors of a Hermitian matrix A is as stationary points of the Rayleigh quotient

{displaystyle r(x)={frac {x^{*}Ax}{x^{*}x}},qquad xin mathbb {C} ^{n}.}

In particular, the largest eigenvalue lambda_max is the global maximum of r and the smallest eigenvalue lambda_min is the global minimum of r.

Within a low-dimensional subspace {mathcal {L}} of {displaystyle mathbb {C} ^{n}} it can be feasible to locate the maximum x and minimum y of r. Repeating that for an increasing chain {displaystyle {mathcal {L}}_{1}subset {mathcal {L}}_{2}subset cdots } produces two sequences of vectors: x_1, x_2, ldots and {displaystyle y_{1},y_{2},dotsc } such that {displaystyle x_{j},y_{j}in {mathcal {L}}_{j}} and

{displaystyle {begin{aligned}r(x_{1})&leqslant r(x_{2})leqslant cdots leqslant lambda _{max }r(y_{1})&geqslant r(y_{2})geqslant cdots geqslant lambda _{min }end{aligned}}}

The question then arises how to choose the subspaces so that these sequences converge at optimal rate.

From x_{j}, the optimal direction in which to seek larger values of r is that of the gradient {displaystyle nabla r(x_{j})}, and likewise from y_{j} the optimal direction in which to seek smaller values of r is that of the negative gradient {displaystyle -nabla r(y_{j})}. In general

{displaystyle nabla r(x)={frac {2}{x^{*}x}}(Ax-r(x)x),}

so the directions of interest are easy enough to compute in matrix arithmetic, but if one wishes to improve on both x_{j} and y_{j} then there are two new directions to take into account: {displaystyle Ax_{j}} and {displaystyle Ay_{j};} since x_{j} and y_{j} can be linearly independent vectors (indeed, are close to orthogonal), one cannot in general expect {displaystyle Ax_{j}} and {displaystyle Ay_{j}} to be parallel. Is it therefore necessary to increase the dimension of mathcal{L}_j by 2 on every step? Not if {displaystyle {{mathcal {L}}_{j}}_{j=1}^{m}} are taken to be Krylov subspaces, because then {displaystyle Azin {mathcal {L}}_{j+1}} for all {displaystyle zin {mathcal {L}}_{j},} thus in particular for both {displaystyle z=x_{j}} and {displaystyle z=y_{j}}.

In other words, we can start with some arbitrary initial vector {displaystyle x_{1}=y_{1},} construct the vector spaces

{displaystyle {mathcal {L}}_{j}=operatorname {span} (x_{1},Ax_{1},ldots ,A^{j-1}x_{1})}

and then seek {displaystyle x_{j},y_{j}in {mathcal {L}}_{j}} such that

{displaystyle r(x_{j})=max _{zin {mathcal {L}}_{j}}r(z)qquad {text{and}}qquad r(y_{j})=min _{zin {mathcal {L}}_{j}}r(z).}

Since the jth power method iterate u_{j} belongs to {displaystyle {mathcal {L}}_{j},} it follows that an iteration to produce the x_{j} and y_{j} cannot converge slower than that of the power method, and will achieve more by approximating both eigenvalue extremes. For the subproblem of optimising r on some {displaystyle {mathcal {L}}_{j}}, it is convenient to have an orthonormal basis {displaystyle {v_{1},ldots ,v_{j}}} for this vector space. Thus we are again led to the problem of iteratively computing such a basis for the sequence of Krylov subspaces.

Convergence and other dynamics[edit]

When analysing the dynamics of the algorithm, it is convenient to take the eigenvalues and eigenvectors of A as given, even though they are not explicitly known to the user. To fix notation, let {displaystyle lambda _{1}geqslant lambda _{2}geqslant dotsb geqslant lambda _{n}} be the eigenvalues (these are known to all be real, and thus possible to order) and let {displaystyle z_{1},dotsc ,z_{n}} be an orthonormal set of eigenvectors such that {displaystyle Az_{k}=lambda _{k}z_{k}} for all {displaystyle k=1,dotsc ,n}.

It is also convenient to fix a notation for the coefficients of the initial Lanczos vector v_{1} with respect to this eigenbasis; let {displaystyle d_{k}=z_{k}^{*}v_{1}} for all {displaystyle k=1,dotsc ,n}, so that {displaystyle textstyle v_{1}=sum _{k=1}^{n}d_{k}z_{k}}. A starting vector v_{1} depleted of some eigencomponent will delay convergence to the corresponding eigenvalue, and even though this just comes out as a constant factor in the error bounds, depletion remains undesirable. One common technique for avoiding being consistently hit by it is to pick v_{1} by first drawing the elements randomly according to the same normal distribution with mean {displaystyle 0} and then rescale the vector to norm 1. Prior to the rescaling, this causes the coefficients d_{k} to also be independent normally distributed stochastic variables from the same normal distribution (since the change of coordinates is unitary), and after rescaling the vector {displaystyle (d_{1},dotsc ,d_{n})} will have a uniform distribution on the unit sphere in mathbb {C} ^{n}. This makes it possible to bound the probability that for example {displaystyle |d_{1}|<varepsilon }.

The fact that the Lanczos algorithm is coordinate-agnostic – operations only look at inner products of vectors, never at individual elements of vectors – makes it easy to construct examples with known eigenstructure to run the algorithm on: make A a diagonal matrix with the desired eigenvalues on the diagonal; as long as the starting vector v_{1} has enough nonzero elements, the algorithm will output a general tridiagonal symmetric matrix as T.

Kaniel–Paige convergence theory[edit]

After m iteration steps of the Lanczos algorithm, T is an mtimes m real symmetric matrix, that similarly to the above has m eigenvalues {displaystyle theta _{1}geqslant theta _{2}geqslant dots geqslant theta _{m}.} By convergence is primarily understood the convergence of theta _{1} to lambda _{1} (and the symmetrical convergence of theta _{m} to lambda _{n}) as m grows, and secondarily the convergence of some range {displaystyle theta _{1},ldots ,theta _{k}} of eigenvalues of T to their counterparts {displaystyle lambda _{1},ldots ,lambda _{k}} of A. The convergence for the Lanczos algorithm is often orders of magnitude faster than that for the power iteration algorithm.[9]: 477 

The bounds for theta _{1} come from the above interpretation of eigenvalues as extreme values of the Rayleigh quotient r(x). Since lambda _{1} is a priori the maximum of r on the whole of {displaystyle mathbb {C} ^{n},} whereas theta _{1} is merely the maximum on an m-dimensional Krylov subspace, we trivially get {displaystyle lambda _{1}geqslant theta _{1}}. Conversely, any point x in that Krylov subspace provides a lower bound r(x) for theta _{1}, so if a point can be exhibited for which {displaystyle lambda _{1}-r(x)} is small then this provides a tight bound on theta _{1}.

The dimension m Krylov subspace is

{displaystyle operatorname {span} left{v_{1},Av_{1},A^{2}v_{1},ldots ,A^{m-1}v_{1}right},}

so any element of it can be expressed as {displaystyle p(A)v_{1}} for some polynomial p of degree at most m-1; the coefficients of that polynomial are simply the coefficients in the linear combination of the vectors {displaystyle v_{1},Av_{1},A^{2}v_{1},ldots ,A^{m-1}v_{1}}. The polynomial we want will turn out to have real coefficients, but for the moment we should allow also for complex coefficients, and we will write p^{*} for the polynomial obtained by complex conjugating all coefficients of p. In this parametrisation of the Krylov subspace, we have

{displaystyle r(p(A)v_{1})={frac {(p(A)v_{1})^{*}Ap(A)v_{1}}{(p(A)v_{1})^{*}p(A)v_{1}}}={frac {v_{1}^{*}p(A)^{*}Ap(A)v_{1}}{v_{1}^{*}p(A)^{*}p(A)v_{1}}}={frac {v_{1}^{*}p^{*}(A^{*})Ap(A)v_{1}}{v_{1}^{*}p^{*}(A^{*})p(A)v_{1}}}={frac {v_{1}^{*}p^{*}(A)Ap(A)v_{1}}{v_{1}^{*}p^{*}(A)p(A)v_{1}}}}

Using now the expression for v_{1} as a linear combination of eigenvectors, we get

{displaystyle Av_{1}=Asum _{k=1}^{n}d_{k}z_{k}=sum _{k=1}^{n}d_{k}lambda _{k}z_{k}}

and more generally

{displaystyle q(A)v_{1}=sum _{k=1}^{n}d_{k}q(lambda _{k})z_{k}}

for any polynomial q.

Thus

{displaystyle lambda _{1}-r(p(A)v_{1})=lambda _{1}-{frac {v_{1}^{*}sum _{k=1}^{n}d_{k}p^{*}(lambda _{k})lambda _{k}p(lambda _{k})z_{k}}{v_{1}^{*}sum _{k=1}^{n}d_{k}p^{*}(lambda _{k})p(lambda _{k})z_{k}}}=lambda _{1}-{frac {sum _{k=1}^{n}|d_{k}|^{2}lambda _{k}p(lambda _{k})^{*}p(lambda _{k})}{sum _{k=1}^{n}|d_{k}|^{2}p(lambda _{k})^{*}p(lambda _{k})}}={frac {sum _{k=1}^{n}|d_{k}|^{2}(lambda _{1}-lambda _{k})left|p(lambda _{k})right|^{2}}{sum _{k=1}^{n}|d_{k}|^{2}left|p(lambda _{k})right|^{2}}}.}

A key difference between numerator and denominator here is that the k=1 term vanishes in the numerator, but not in the denominator. Thus if one can pick p to be large at lambda _{1} but small at all other eigenvalues, one will get a tight bound on the error {displaystyle lambda _{1}-theta _{1}}.

Since A has many more eigenvalues than p has coefficients, this may seem a tall order, but one way to meet it is to use Chebyshev polynomials. Writing c_{k} for the degree k Chebyshev polynomial of the first kind (that which satisfies {displaystyle c_{k}(cos x)=cos(kx)} for all x), we have a polynomial which stays in the range [-1,1] on the known interval [-1,1] but grows rapidly outside it. With some scaling of the argument, we can have it map all eigenvalues except lambda _{1} into [-1,1]. Let

{displaystyle p(x)=c_{m-1}left({frac {2x-lambda _{2}-lambda _{n}}{lambda _{2}-lambda _{n}}}right)}

(in case {displaystyle lambda _{2}=lambda _{1}}, use instead the largest eigenvalue strictly less than lambda _{1}), then the maximal value of {displaystyle |p(lambda _{k})|^{2}} for {displaystyle kgeqslant 2} is 1 and the minimal value is {displaystyle 0}, so

{displaystyle lambda _{1}-theta _{1}leqslant lambda _{1}-r(p(A)v_{1})={frac {sum _{k=2}^{n}|d_{k}|^{2}(lambda _{1}-lambda _{k})|p(lambda _{k})|^{2}}{sum _{k=1}^{n}|d_{k}|^{2}|p(lambda _{k})|^{2}}}leqslant {frac {sum _{k=2}^{n}|d_{k}|^{2}(lambda _{1}-lambda _{k})}{|d_{1}|^{2}|p(lambda _{1})|^{2}}}leqslant {frac {(lambda _{1}-lambda _{n})sum _{k=2}^{n}|d_{k}|^{2}}{|p(lambda _{1})|^{2}|d_{1}|^{2}}}.}

Furthermore

{displaystyle p(lambda _{1})=c_{m-1}left({frac {2lambda _{1}-lambda _{2}-lambda _{n}}{lambda _{2}-lambda _{n}}}right)=c_{m-1}left(2{frac {lambda _{1}-lambda _{2}}{lambda _{2}-lambda _{n}}}+1right);}

the quantity

{displaystyle rho ={frac {lambda _{1}-lambda _{2}}{lambda _{2}-lambda _{n}}}}

(i.e., the ratio of the first eigengap to the diameter of the rest of the spectrum) is thus of key importance for the convergence rate here. Also writing

{displaystyle R=e^{operatorname {arcosh} (1+2rho )}=1+2rho +2{sqrt {rho ^{2}+rho }},}

we may conclude that

{displaystyle {begin{aligned}lambda _{1}-theta _{1}&leqslant {frac {(lambda _{1}-lambda _{n})left(1-|d_{1}|^{2}right)}{c_{m-1}(2rho +1)^{2}|d_{1}|^{2}}}[6pt]&={frac {1-|d_{1}|^{2}}{|d_{1}|^{2}}}(lambda _{1}-lambda _{n}){frac {1}{cosh ^{2}((m-1)operatorname {arcosh} (1+2rho ))}}[6pt]&={frac {1-|d_{1}|^{2}}{|d_{1}|^{2}}}(lambda _{1}-lambda _{n}){frac {4}{left(R^{m-1}+R^{-(m-1)}right)^{2}}}[6pt]&leqslant 4{frac {1-|d_{1}|^{2}}{|d_{1}|^{2}}}(lambda _{1}-lambda _{n})R^{-2(m-1)}end{aligned}}}

The convergence rate is thus controlled chiefly by R, since this bound shrinks by a factor {displaystyle R^{-2}} for each extra iteration.

For comparison, one may consider how the convergence rate of the power method depends on rho, but since the power method primarily is sensitive to the quotient between absolute values of the eigenvalues, we need {displaystyle |lambda _{n}|leqslant |lambda _{2}|} for the eigengap between lambda _{1} and lambda _{2} to be the dominant one. Under that constraint, the case that most favours the power method is that {displaystyle lambda _{n}=-lambda _{2}}, so consider that. Late in the power method, the iteration vector:

{displaystyle u=(1-t^{2})^{1/2}z_{1}+tz_{2}approx z_{1}+tz_{2},}[note 1]

where each new iteration effectively multiplies the z_{2}-amplitude t by

{displaystyle {frac {lambda _{2}}{lambda _{1}}}={frac {lambda _{2}}{lambda _{2}+(lambda _{1}-lambda _{2})}}={frac {1}{1+{frac {lambda _{1}-lambda _{2}}{lambda _{2}}}}}={frac {1}{1+2rho }}.}

The estimate of the largest eigenvalue is then

{displaystyle u^{*}Au=(1-t^{2})lambda _{1}+t^{2}lambda _{2},}

so the above bound for the Lanczos algorithm convergence rate should be compared to

{displaystyle lambda _{1}-u^{*}Au=(lambda _{1}-lambda _{2})t^{2},}

which shrinks by a factor of {displaystyle (1+2rho )^{-2}} for each iteration. The difference thus boils down to that between {displaystyle 1+2rho } and {displaystyle R=1+2rho +2{sqrt {rho ^{2}+rho }}}. In the {displaystyle rho gg 1} region, the latter is more like {displaystyle 1+4rho }, and performs like the power method would with an eigengap twice as large; a notable improvement. The more challenging case is however that of {displaystyle rho ll 1,} in which {displaystyle Rapprox 1+2{sqrt {rho }}} is an even larger improvement on the eigengap; the {displaystyle rho gg 1} region is where the Lanczos algorithm convergence-wise makes the smallest improvement on the power method.

Numerical stability[edit]

Stability means how much the algorithm will be affected (i.e. will it produce the approximate result close to the original one) if there are small numerical errors introduced and accumulated. Numerical stability is the central criterion for judging the usefulness of implementing an algorithm on a computer with roundoff.

For the Lanczos algorithm, it can be proved that with exact arithmetic, the set of vectors v_{1},v_{2},cdots ,v_{{m+1}} constructs an orthonormal basis, and the eigenvalues/vectors solved are good approximations to those of the original matrix. However, in practice (as the calculations are performed in floating point arithmetic where inaccuracy is inevitable), the orthogonality is quickly lost and in some cases the new vector could even be linearly dependent on the set that is already constructed. As a result, some of the eigenvalues of the resultant tridiagonal matrix may not be approximations to the original matrix. Therefore, the Lanczos algorithm is not very stable.

Users of this algorithm must be able to find and remove those «spurious» eigenvalues. Practical implementations of the Lanczos algorithm go in three directions to fight this stability issue:[6][7]

  1. Prevent the loss of orthogonality,
  2. Recover the orthogonality after the basis is generated.
  3. After the good and «spurious» eigenvalues are all identified, remove the spurious ones.

Variations[edit]

Variations on the Lanczos algorithm exist where the vectors involved are tall, narrow matrices instead of vectors and the normalizing constants are small square matrices. These are called «block» Lanczos algorithms and can be much faster on computers with large numbers of registers and long memory-fetch times.

Many implementations of the Lanczos algorithm restart after a certain number of iterations. One of the most influential restarted variations is the implicitly restarted Lanczos method,[10] which is implemented in ARPACK.[11] This has led into a number of other restarted variations such as restarted Lanczos bidiagonalization.[12] Another successful restarted variation is the Thick-Restart Lanczos method,[13] which has been implemented in a software package called TRLan.[14]

Nullspace over a finite field[edit]

In 1995, Peter Montgomery published an algorithm, based on the Lanczos algorithm, for finding elements of the nullspace of a large sparse matrix over GF(2); since the set of people interested in large sparse matrices over finite fields and the set of people interested in large eigenvalue problems scarcely overlap, this is often also called the block Lanczos algorithm without causing unreasonable confusion.[citation needed]

Applications[edit]

Lanczos algorithms are very attractive because the multiplication by A, is the only large-scale linear operation. Since weighted-term text retrieval engines implement just this operation, the Lanczos algorithm can be applied efficiently to text documents (see latent semantic indexing). Eigenvectors are also important for large-scale ranking methods such as the HITS algorithm developed by Jon Kleinberg, or the PageRank algorithm used by Google.

Lanczos algorithms are also used in condensed matter physics as a method for solving Hamiltonians of strongly correlated electron systems,[15] as well as in shell model codes in nuclear physics.[16]

Implementations[edit]

The NAG Library contains several routines[17] for the solution of large scale linear systems and eigenproblems which use the Lanczos algorithm.

MATLAB and GNU Octave come with ARPACK built-in. Both stored and implicit matrices can be analyzed through the eigs() function (Matlab/Octave).

Similarly, in Python, the SciPy package has scipy.sparse.linalg.eigsh which is also a wrapper for the SSEUPD and DSEUPD functions functions from ARPACK which use the Implicitly Restarted Lanczos Method.

A Matlab implementation of the Lanczos algorithm (note precision issues) is available as a part of the Gaussian Belief Propagation Matlab Package. The GraphLab[18] collaborative filtering library incorporates a large scale parallel implementation of the Lanczos algorithm (in C++) for multicore.

The PRIMME library also implements a Lanczos-like algorithm.

Notes[edit]

References[edit]

  1. ^ Lanczos, C. (1950). «An iteration method for the solution of the eigenvalue problem of linear differential and integral operators» (PDF). Journal of Research of the National Bureau of Standards. 45 (4): 255–282. doi:10.6028/jres.045.026.
  2. ^ a b Ojalvo, I. U.; Newman, M. (1970). «Vibration modes of large structures by an automatic matrix-reduction method». AIAA Journal. 8 (7): 1234–1239. Bibcode:1970AIAAJ…8.1234N. doi:10.2514/3.5878.
  3. ^ Paige, C. C. (1971). The computation of eigenvalues and eigenvectors of very large sparse matrices (Ph.D. thesis). U. of London. OCLC 654214109.
  4. ^ Paige, C. C. (1972). «Computational Variants of the Lanczos Method for the Eigenproblem». J. Inst. Maths Applics. 10 (3): 373–381. doi:10.1093/imamat/10.3.373.
  5. ^ Ojalvo, I. U. (1988). «Origins and advantages of Lanczos vectors for large dynamic systems». Proc. 6th Modal Analysis Conference (IMAC), Kissimmee, FL. pp. 489–494.
  6. ^ a b Cullum; Willoughby (1985). Lanczos Algorithms for Large Symmetric Eigenvalue Computations. Vol. 1. ISBN 0-8176-3058-9.
  7. ^ a b Yousef Saad (1992-06-22). Numerical Methods for Large Eigenvalue Problems. ISBN 0-470-21820-7.
  8. ^ Coakley, Ed S.; Rokhlin, Vladimir (2013). «A fast divide-and-conquer algorithm for computing the spectra of real symmetric tridiagonal matrices». Applied and Computational Harmonic Analysis. 34 (3): 379–414. doi:10.1016/j.acha.2012.06.003.
  9. ^ a b Golub, Gene H.; Van Loan, Charles F. (1996). Matrix computations (3. ed.). Baltimore: Johns Hopkins Univ. Press. ISBN 0-8018-5413-X.
  10. ^ D. Calvetti; L. Reichel; D.C. Sorensen (1994). «An Implicitly Restarted Lanczos Method for Large Symmetric Eigenvalue Problems». Electronic Transactions on Numerical Analysis. 2: 1–21.
  11. ^ R. B. Lehoucq; D. C. Sorensen; C. Yang (1998). ARPACK Users Guide: Solution of Large-Scale Eigenvalue Problems with Implicitly Restarted Arnoldi Methods. SIAM. doi:10.1137/1.9780898719628. ISBN 978-0-89871-407-4.
  12. ^ E. Kokiopoulou; C. Bekas; E. Gallopoulos (2004). «Computing smallest singular triplets with implicitly restarted Lanczos bidiagonalization» (PDF). Appl. Numer. Math. 49: 39–61. doi:10.1016/j.apnum.2003.11.011.
  13. ^ Kesheng Wu; Horst Simon (2000). «Thick-Restart Lanczos Method for Large Symmetric Eigenvalue Problems». SIAM Journal on Matrix Analysis and Applications. SIAM. 22 (2): 602–616. doi:10.1137/S0895479898334605.
  14. ^ Kesheng Wu; Horst Simon (2001). «TRLan software package». Archived from the original on 2007-07-01. Retrieved 2007-06-30.
  15. ^ Chen, HY; Atkinson, W.A.; Wortis, R. (July 2011). «Disorder-induced zero-bias anomaly in the Anderson-Hubbard model: Numerical and analytical calculations». Physical Review B. 84 (4): 045113. arXiv:1012.1031. Bibcode:2011PhRvB..84d5113C. doi:10.1103/PhysRevB.84.045113. S2CID 118722138.
  16. ^ Shimizu, Noritaka (21 October 2013). «Nuclear shell-model code for massive parallel computation, «KSHELL»«. arXiv:1310.5431 [nucl-th].
  17. ^ The Numerical Algorithms Group. «Keyword Index: Lanczos». NAG Library Manual, Mark 23. Retrieved 2012-02-09.
  18. ^ GraphLab Archived 2011-03-14 at the Wayback Machine

Further reading[edit]

  • Golub, Gene H.; Van Loan, Charles F. (1996). «Lanczos Methods». Matrix Computations. Baltimore: Johns Hopkins University Press. pp. 470–507. ISBN 0-8018-5414-8.
  • Ng, Andrew Y.; Zheng, Alice X.; Jordan, Michael I. (2001). «Link Analysis, Eigenvectors and Stability» (PDF). IJCAI’01 Proceedings of the 17th International Joint Conference on Artificial Intelligence. 2: 903–910.

Введение

При решении задач сейсмического анализа зданий и сооружений чаще всего применяется линейно-спектральный метод. Значительной по трудоемкости составляющей этого подхода является определение частот и форм собственных колебаний. При этом возникает вопрос: а сколько частот и форм собственных колебаний следует удерживать, чтобы результат был достоверным? В сейсмических нормах многих стран (Еврокод 8, UBC-97, сейсмические нормы Украины и др.) принято, что сумма модальных масс по каждому из направлений сейсмического воздействия должна быть не менее установленной границы. Обычно для горизонтальной составляющей сейсмического воздействия принимается 85−90%, для вертикальной — 70−90%. Под направлением сейсмического воздействия понимается направление, совпадающее с одной из осей глобальной системы координат OXYZ расчетной модели сооружения. Считается, что сейсмическое воздействие поочередно прикладывается вдоль каждой оси, причем принимается гипотеза об их статистической независимости [5, 8].

Модальной массой при сейсмическом воздействии в направлении dir (dir = OX, OY, OZ) называется величина

(1)

, где Гidir = (Mψi, Idir), M — матрица масс, ψi — собственный вектор (форма колебаний, отвечающая i-й частоте), Idir — вектор, компоненты которого равны 1, если соответствуют степени свободы сейсмического входа по направлению dir, и нулю в противном случае,

— общая масса, участвующая в движении по направлению dir.

Суммой модальных масс по направлению dir называется величина
, причем

(2)

, где N — количество степеней свободы дискретной модели [3, 5, 8], n — количество удерживаемых собственных форм, n < < N.

В [3] на примере простой задачи показана зависимость некоторых внутренних усилий от суммы модальных масс (рис. 1).


Рис. 1

Рис. 1

Здесь NΛ = NA ⁄ NA100; VΛ = V ⁄ V100; MΛ = Mov ⁄ Mov100, NA — продольная сила в стержне А, V — суммарная сдвигающая сила в основании, Mov — опрокидывающий момент. Символ 100 означает, что этот фактор получен при удержании в решении всех собственных форм дискретной модели (100% модальных масс).

Рис. 1 иллюстрирует тот факт, что для получения достоверной сейсмической реакции сооружения необходимо удерживать такое количество собственных форм, чтобы обеспечить высокий процент модальных масс (не менее 80%). При этом, разумеется, расчетная модель должна достаточно достоверно описывать поведение системы.

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

При решении ряда задач было обнаружено, что суммы модальных масс сходятся крайне неравномерно и очень медленно [2]. При работе с расчетными моделями, содержащими большое количество степеней свободы (несколько сот тысяч), возникает серьезная проблема определения большого количества частот и форм собственных колебаний (порядка нескольких тысяч), представляющая собой сложную вычислительную задачу.

В этой работе представлен один из методов решения — блочный метод Ланцоша со сдвигами, реализованный автором в программном комплексе SCAD.

Блочный метод Ланцоша со сдвигами

В основу этой статьи положена работа Р. Граймса, Дж. Льюиса и Г. Саймона «A shifted block Lanczos algorithm for solving sparse symmetric generalized eigenproblems» [7]. Алгоритм данной реализации метода приведен в [4], а ее внедрение в программный комплекс SCAD представлено в [1]. Отметим, что блочная версия алгоритма позволяет сократить медленные операции ввода-вывода по сравнению с классической (неблочной) версией. Введение сдвигов существенно улучшает сходимость, а в случае определения большого количества собственных пар разделяет длинный частотный интервал на относительно короткие подинтервалы, ограничивая тем самым размерность пространства Крылова и заменяя экспоненциальный рост количества вычислений квазилинейным. Если исходная задача на собственные значения представляется как
(3)

, где K, M — соответственно положительно определенная разреженная матрица жесткости и полуопределенная матрица масс, {λ, ψ} — собственная пара. Вводя сдвиги σ12,…,σk, разбиваем этот частотный интервал на к+1 подинтервалов, на каждом из которых решаем задачу

(4)

где Kσ = K — σkM, λk = 1 ⁄ (ω2 — σk).

Таким образом, на каждом частотном подинтервале решается отдельная задача (4). Алгоритм выглядит так: при отсутствии какой-либо информации о спектре собственных частот полагаем σ1 = 0. Затем выполняем L шагов блочного метода Ланцоша и определяем сошедшиеся собственные пары. Далее анализируется сумма модальных масс для сошедшихся собственных пар. Если хотя бы по одному из направлений сейсмического входа сумма модальных масс меньше указанной, осуществляется переход к новому частотному интервалу. Кроме сошедшихся собственных пар имеются приближения собственных частот, которые еще не сошлись. Именно они используются для прогнозирования нового значения параметра сдвига σ2. Приняв сдвиг на основе такого прогноза, продолжаем вычисления на новом частотном интервале до тех пор, пока не определим все собственные числа, лежащие слева от сдвига и справа от последнего собственного числа, соответствующего сошедшейся собственной паре с предыдущего частотного интервала. Затем снова определяем суммы модальных масс. И так до тех пор, пока не будет достигнута достаточная сумма модальных масс.

Пример расчета

На рис. 2 приведена расчетная модель здания, включающая 8937 узлов, 9073 конечных элементов и 52 572 уравнения.


Рис. 2. Расчетная модель здания

Рис. 2. Расчетная модель здания

По количеству уравнений эта задача на сегодняшний день относится к классу средних, однако по сложности решения обобщенной проблемы собственных значений она очень трудна, так как вследствие значительной жесткости несущих конструкций в нижней части спектра расположены локальные формы колебаний (рис. 3, 4), и только форма колебаний, соответствующая 522-й частоте (рис. 5), существенно влияет на сейсмическую реакцию сооружения (m522ox = 29%, тогда как
).


Рис. 3. Первая форма колебаний, частота 4,183 Гц

Рис. 3. Первая форма колебаний, частота 4,183 Гц


Рис. 4. Четвертая форма колебаний, частота 4,365 Гц

Рис. 4. Четвертая форма колебаний, частота 4,365 Гц

Наибольший вклад дает 523-я форма колебаний, представленная на рис. 5.


Рис. 5. 523-я форма колебаний, частота 5,756 Гц

Рис. 5. 523-я форма колебаний, частота 5,756 Гц

Для обеспечения требуемых сумм модальных масс пришлось определить 2398 собственных пар.


Спектр собственных частот для этой задачи очень густой — в интервале [4.183, 5.756] Гц лежит 523 собственных частоты.
Зависимость сумм модальных масс от количества удерживаемых собственных форм приведена на рис. 6.


Рис. 6. Зависимость сумм модальных масс (Mx, My, Mz) от количества удерживаемых собственных форм

Рис. 6. Зависимость сумм модальных масс (Mx, My, Mz) от количества удерживаемых собственных форм

Выводы

При расчетах зданий и сооружений на сейсмику периодически встречаются задачи, в которых в нижней части спектра лежит большое количество локальных форм колебаний, причем спектр собственных частот является очень густым. Такие задачи создают серьезные проблемы, поскольку вычислительные алгоритмы, реализованные в современных компьютерных системах МКЭ-анализа, как правило, в таких случаях оказываются малоэффективными. Разработанный в программном комплексе SCAD алгоритм блочного метода Ланцоша со сдвигами, реализующий сейсмический режим, позволяет значительно продвинуться в решении этой проблемы.

Литература

  1. Карпиловский В.С., Криксунов Э.З., Фиалко С.Ю. Блочный метод Ланцоша со спектральными трансформациями для решения больших МКЭ задач собственных колебаний. — Вісник Одеського національного морського університету. — 2003, № 10, с. 93−99.
  2. Перельмутер А.В., Карпиловский В.С., Фиалко С.Ю., Егупов К.В. Опыт реализации проекта МСН СНГ «Строительство в сейсмических районах» в программной системе SCAD. — Вісник Одеської державної академії будівництва та архітектури. — 2003, випуск 9, с. 147−159.
  3. Фиалко С.Ю. Некоторые особенности анализа частот и форм собственных колебаний при расчете сооружений на сейсмические воздействия. — Вісник Одеської державної академії будівництва та архітектури. — 2002, випуск 8, с. 193−201.
  4. Фиалко С.Ю. О решении обобщенной проблемы собственных значений. — В кн. Перельмутер А.В., Сливкер В.И. Расчетные модели сооружений и возможность их анализа. — Издание второе. К.: Сталь, 2002, с. 570−597.
  5. Clough R., Penzien J. Dynamics of structures. — New York: McGraw-Hill, Inc., 1975. — 527 p.
  6. Fialko S.Yu., Kriksunov E.Z. and Karpilovskyy V.S. A block Lanczos method with spectral transformations for natural vibrations and seismic analysis of large structures in SCAD software. Proceedings of the CMM-2003 — Computer Methods in Mechanics, June 3−6, 2003. Gliwice, Poland, р. 129−130.
  7. Grimes R.G., Lewis J.G., Simon H.D. A shifted block Lanczos algorithm for solving sparse symmetric generalized eigenproblems. SIAM J. Matrix Anal. Appl. V. 15, 1: pp. 1−45, 1994.
  8. Wilson E.L. Three dimensional dynamic analysis of structures. California, Computers and Structures, Inc., Berkeley, USA, 1996. — 261 p.

Сергей Фиалко

д.т.н., с.н.с., проф.

Киевский национальный университет

строительства и архитектуры

Недостаточное количество итераций при определении собственных векторов скад

blank

Да, в новом так не работает, но легко решается через «Спектр жесткостных характеристик».

blank

При возможности посмотрю на очередном расчёте. Не пытались писать письма в SCAD?

blank

Собственно, справка скада:
В случаях, когда выполняется проверка устойчивости по комбинациям загружений, среди которых имеются динамические, требуется проявить некоторую осторожность, связанную с двумя обстоятельствами:

результаты динамического нагружения являются знакопеременными;
в тех случаях, когда результаты динамического расчета сформированы как корень квадратный из суммы квадратов (ККСК) модальных вкладов, нарушены условия равновесия и геометрической связности узловых перемещений.
Рассмотрим эти обстоятельства порознь.

Поскольку заранее неизвестно, какой знак результата динамического расчета является более опасным с точки зрения проверки устойчивости, то следует рассмотреть обе возможности. Так, например, если при расчете устойчивости рассматривается комбинация (L1)*1+(L2)*0.9+(L3)*0.7+(L4)*0.8, в которой нагружение (L3) является динамическим, то следует также выполнить проверку на комбинацию (L1)*1+(L2)*0.9+(L3)*(-0.7)+(L4)*0.8. При наличии нескольких динамических нагружений приходится перебирать все варианты знаков для их результатов.

Несовместность усилий связанная с использованием ККСК (естественно, если учтена не только одна форма собственных колебаний), вообще говоря, никаких неприятностей не вызывает. Просто проверяется коэффициент запаса устойчивости при пропорциональном росте всех внутренних усилий, игнорируя тот факт, что эти усилия нарушают условия равновесия.

Но несовместность узловых перемещений приводит к тому, что имеющиеся в схеме абсолютно жесткие тела получают искажения (по сути, они деформируются, что не соответствует их физической природе). Сложность состоит в том, что для этих элементов матрица К1(λ), не определяется внутренними силами или напряжениями, а вычисляется по значениям узловых перемещений, которые определяют изменение пространственной ориентации бесконечно жесткого конечного элемента (см. 9.5.1 в работе [3]). Несовместность узловых перемещений может привести к фатальной ошибке при вычислении К1(λ).

В связи с этим программа предусматривает обнуление матрицы К1(λ) при проверке устойчивости для комбинаций содержащих динамическое нагружение с более чем одной учитываемой формой собственных колебаний. Об этом в протоколе расчета появляется соответствующее предупреждение.

Источник

CADmaster

cm 40 scad.pdfpage0

Реализация в программном комплексе SCAD блочного метода Ланцоша со сдвигами применительно к сейсмическому анализу сооружений

Как избежать проблем, возникающих из-за большого количества локальных форм колебаний при расчетах зданий и сооружений на сейсмику? Разработанный в программном комплексе SCAD алгоритм блочного метода Ланцоша со сдвигами, реализующий сейсмический режим, позволяет значительно продвинуться в решении этой задачи.

Скачать статью в формате PDF — 793.8 Кбайт

Главная » CADmaster №5(40) 2007 » Архитектура и строительство Реализация в программном комплексе SCAD блочного метода Ланцоша со сдвигами применительно к сейсмическому анализу сооружений

Введение

cm40 scad form 1 prev

cm40 scad form 31 prev

Суммой модальных масс по направлению dir называется величина cm40 scad form 7 prev, причем

cm40 scad form 8 prev

Рис. 1 иллюстрирует тот факт, что для получения достоверной сейсмической реакции сооружения необходимо удерживать такое количество собственных форм, чтобы обеспечить высокий процент модальных масс (не менее 80%). При этом, разумеется, расчетная модель должна достаточно достоверно описывать поведение системы.

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

При решении ряда задач было обнаружено, что суммы модальных масс сходятся крайне неравномерно и очень медленно [2]. При работе с расчетными моделями, содержащими большое количество степеней свободы (несколько сот тысяч), возникает серьезная проблема определения большого количества частот и форм собственных колебаний (порядка нескольких тысяч), представляющая собой сложную вычислительную задачу.

В этой работе представлен один из методов решения — блочный метод Ланцоша со сдвигами, реализованный автором в программном комплексе SCAD.

Блочный метод Ланцоша со сдвигами

, где K, M — соответственно положительно определенная разреженная матрица жесткости и полуопределенная матрица масс, <λ, ψ>— собственная пара. Вводя сдвиги σ12,…,σk, разбиваем этот частотный интервал на к+1 подинтервалов, на каждом из которых решаем задачу

cm40 scad form 19 prev

Таким образом, на каждом частотном подинтервале решается отдельная задача (4). Алгоритм выглядит так: при отсутствии какой-либо информации о спектре собственных частот полагаем σ1 = 0. Затем выполняем L шагов блочного метода Ланцоша и определяем сошедшиеся собственные пары. Далее анализируется сумма модальных масс для сошедшихся собственных пар. Если хотя бы по одному из направлений сейсмического входа сумма модальных масс меньше указанной, осуществляется переход к новому частотному интервалу. Кроме сошедшихся собственных пар имеются приближения собственных частот, которые еще не сошлись. Именно они используются для прогнозирования нового значения параметра сдвига σ2. Приняв сдвиг на основе такого прогноза, продолжаем вычисления на новом частотном интервале до тех пор, пока не определим все собственные числа, лежащие слева от сдвига и справа от последнего собственного числа, соответствующего сошедшейся собственной паре с предыдущего частотного интервала. Затем снова определяем суммы модальных масс. И так до тех пор, пока не будет достигнута достаточная сумма модальных масс.

Пример расчета

По количеству уравнений эта задача на сегодняшний день относится к классу средних, однако по сложности решения обобщенной проблемы собственных значений она очень трудна, так как вследствие значительной жесткости несущих конструкций в нижней части спектра расположены локальные формы колебаний (рис. 3, 4), и только форма колебаний, соответствующая 522-й частоте (рис. 5), существенно влияет на сейсмическую реакцию сооружения (m522 ox = 29%, тогда как cm40 scad form 26 prev).

Реальный размер: 1344×1014. Рис. 3. Первая форма колебаний, частота 4,183 Гц’>)» title=»Рис. 3. Первая форма колебаний, частота 4,183 Гц»> cm40 scad ris 3Рис. 3. Первая форма колебаний, частота 4,183 Гц Реальный размер: 1344×1014. Рис. 4. Четвертая форма колебаний, частота 4,365 Гц’>)» title=»Рис. 4. Четвертая форма колебаний, частота 4,365 Гц»> cm40 scad ris 4Рис. 4. Четвертая форма колебаний, частота 4,365 Гц

Наибольший вклад дает 523-я форма колебаний, представленная на рис. 5.

Для обеспечения требуемых сумм модальных масс пришлось определить 2398 собственных пар.

cm40 scad form 28 prev cm40 scad form 29 prev

Спектр собственных частот для этой задачи очень густой — в интервале [4.183, 5.756] Гц лежит 523 собственных частоты.
Зависимость сумм модальных масс от количества удерживаемых собственных форм приведена на рис. 6.

Источник

Методы решения задач о собственных
значениях и векторах матриц

Постановка задачи

Равенство (2.1) равносильно однородной относительно [math]X[/math] системе:

являются собственными векторами.

Требуется найти собственные значения и собственные векторы заданной матрицы. Поставленная задача часто именуется второй задачей линейной алгебры.

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

2. Попарно различным собственным значениям соответствуют линейно независимые собственные векторы; k-кратному корню характеристического уравнения соответствует не более [math]k[/math] линейно независимых собственных векторов.

3. Симметрическая матрица имеет полный спектр [math]lambda_i,

4. Положительно определенная симметрическая матрица имеет полный спектр действительных положительных собственных значений.

Метод непосредственного развертывания

Полную проблему собственных значений для матриц невысокого порядка [math](nleqslant10)[/math] можно решить методом непосредственного развертывания. В этом случае будем иметь

Алгоритм метода непосредственного развертывания

3. Для каждого собственного значения составить систему (2.4):

Замечание. Каждому собственному значению соответствует один или несколько векторов. Поскольку определитель [math]|A-lambda_iE|[/math] системы равен нулю, то ранг матрицы системы меньше числа неизвестных: [math]operatorname(A-lambda_iE)=r и в системе имеется ровно [math]r[/math] независимых уравнений, а [math](n-r)[/math] уравнений являются зависимыми. Для нахождения решения системы следует выбрать [math]r[/math] уравнений с [math]r[/math] неизвестными так, чтобы определитель составленной системы был отличен от нуля. Остальные [math](n-r)[/math] неизвестных следует перенести в правую часть и считать параметрами. Придавая параметрам различные значения, можно получить различные решения системы. Для простоты, как правило, попеременно полагают значение одного параметра равным 1, а остальные равными 0.

2. Находим его корни (собственные значения): [math]lambda_1=5,

3. Составим систему [math](A-lambda_iE)X^i=0,

Для [math]lambda_2=-1[/math] имеем

1. Запишем характеристическое уравнение (2.5):

2. Корни характеристического уравнения: [math]lambda_<1,2>=1[/math] (кратный корень), [math]lambda_3=3[/math] — собственные значения матрицы.

3. Найдем собственные векторы.

Для [math]lambda_<1,2>=1[/math] запишем систему [math](A-lambda_<1,2>E)cdot X^<1,2>=0colon[/math]

Для собственного значения [math]lambda_3=3[/math] запишем систему [math](A-lambda_3E)cdot X^3=0colon[/math]

Метод итераций для нахождения собственных значений и векторов

Пусть матрица [math]A[/math] имеет [math]n[/math] линейно независимых собственных векторов [math]X^i,

Алгоритм метода итераций

1. Процесс последовательных приближений

2. Вместо применяемой в пункте 4 алгоритма формулы для [math]lambda_1^<(k+1)>[/math] можно взять среднее арифметическое соответствующих отношений для разных координат.

3. Метод может использоваться и в случае, если наибольшее по модулю собственное значение матрицы [math]A[/math] является кратным, т.е.

4. При неудачном выборе начального приближения [math]X^<1(0)>[/math] предел отношения [math]frac>>[/math] может не существовать. В этом случае следует задать другое начальное приближение.

5. Рассмотренный итерационный процесс для [math]lambda_1[/math] сходится линейно, с параметром [math]c=frac<lambda_2><lambda_1>[/math] и может быть очень медленным. Для его ускорения используется алгоритм Эйткена.

6. Если [math]A=A^T[/math] (матрица [math]A[/math] симметрическая), то сходимость процесса при определении [math]rho(A)[/math] может быть ускорена.

Так как собственный вектор определяется с точностью до постоянного множителя, то [math]X^1[/math] лучше пронормировать, т.е. поделить все его компоненты на величину нормы. Для рассматриваемого примера получим

Согласно замечаниям, в качестве собственного значения [math]lambda_1[/math] матрицы можно взять не только отношение

Выполним расчеты согласно методике (табл. 10.11).

В результате получено собственное значение [math]lambda_1cong 3,!00003[/math] и собственный вектор [math]X^1= begin 88573&-88573&1end^T[/math] или после нормировки

Метод вращений для нахождения собственных значений

При реализации метода вращений преобразование подобия применяется к исходной матрице [math]A[/math] многократно:

Угол поворота [math]varphi^<(k)>[/math] определяется по формуле

где [math]|2varphi^<(k)>|leqslant frac<pi><2>,

i ( [math]a_[/math] выбирается в верхней треугольной наддиагональной части матрицы [math]A[/math] ).

Замечание. В двумерном пространстве с введенной в нем системой координат [math]Oxy[/math] с ортонормированным базисом [math]<vec,vec>[/math] матрица вращения легко получается из рис. 2.1, где система координат [math]Ox’y'[/math] повернута на угол [math]varphicolon[/math]

Алгоритм метода вращений

2. Выделить в верхней треугольной наддиагональной части матрицы [math]A^<(k)>[/math] максимальный по модулю элемент [math]a_^<(k)>,

Собственные векторы [math]X^i[/math] находятся как i-e столбцы матрицы, получающейся в результате перемножения:

2. Контроль правильности выполнения действий по каждому повороту осуществляется путем проверки сохранения следа преобразуемой матрицы.

3. При [math]n=2[/math] для решения задачи требуется одна итерация.

Пример 2.5. Для матрицы [math]A=begin 2&1\1&3 end[/math] методом вращений найти собственные значения и собственные векторы.

3°. Находим угол поворота матрицы по формуле (2.7), используя в расчетах 11 цифр после запятой в соответствии с заданной точностью:

4°. Сформируем матрицу вращения:

5°. Выполним первую итерацию:

2. Максимальный по модулю наддиагональный элемент [math]|a_<12>|= 4,!04620781325cdot10^ <-12>. Для решения задачи (подчеркнем, что [math]n=2[/math] ) с принятой точностью потребовалась одна итерация, полученную матрицу можно считать диагональной. Найдены следующие собственные значения и собственные векторы:

3°. Находим угол поворота:

3(1). Найдем угол поворота:

3(2). Найдем угол поворота:

5(2). Выполним третью итерацию и положим [math]k=3[/math] и перейдем к пункту 2:

3(3). Найдем угол поворота:

5(3). Выполним четвертую итерацию и положим [math]k=4[/math] и перейдем к пункту 2:

3(4). Найдем угол поворота

5(4). Выполним пятую итерацию и положим [math]k=5[/math] и перейдем к пункту 2:

Собственные значения: [math]lambda_1cong a_<11>^<(5)>= 6,!895,,

X^3=begin-0,!473\-0,!171\0,!864 end[/math] или после нормировки

Источник

n17.doc

6. Управление расчетом

В главе 1 уже отмечалось, что выполнение расчета возможно только при условии, когда исходные данные текущего проекта содержат обязательный минимум информации, т.е. геометрию расчетной схемы, описание жесткостных характеристик всех элементов и, по крайней мере, одно загружение. Так как полный контроль исходных данных выполняется на первом шаге расчета, то при наличии этой информации процессор стартует.
Рfile17 html m24ebbc9ис. 6.1. Диалоговое окно

Активизация расчета выполняется из соответству­ющего раздела Дерева проекта. После чего появляется диалоговое окно Параметры расчета (рис. 6.1), в котором следует выбрать режим работы процессора (Полный расчет или Продолжение расчета) и нажать кнопку Выполнить расчет. Как правило, режим Продолжение расчета используется в тех случаях, когда по какой-либо причине был прерван расчет задачи. Им можно воспользоваться и после модификации исходных данных, которые не затрагивали узлы, связи и элементы (например, после корректировки нагрузок).

Для изменения параметров настройки вычисли­тель­ного процесса используется кнопка Параметры, после нажа­тия которой в диалоговом окне становятся доступными поля ввода данных и опции управления расчетом (рис. 6.2).

file17 html 3cb11bb1Рис. 6.2. Диалоговое окно

Параметры расчета с доступными полями ввода данных и опциями управления расчетом
Параметры настройки условно можно разделить на шесть групп.

В первой находятся параметры управления процессом оптимизации матрицы жесткости.

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

В третьей сосредоточены параметры настройки процесса анализа устойчивости.

Пятую составляют параметры управления ходом вычислений.

В шестой находятся параметры управления протоколом выполнения расчета.

Значения параметров управления расчетом, исполь­зуемые по умолчанию, соответствуют значениям, заданным при настройке комплекса (пункт меню Параметры расчета в разделе Опции окна управления проектом). Изменения, вносимые в эти данные при запуске на расчет конкретной задачи, запоминаются только для этой задачи.

Рассмотрим назначение основных параметров управления расчетом.

Точность разложения матрицы – определяет минимальную величину по диагонали треугольного разложения матрицы жесткости, появление которой следует рассматривать как признак геометрической изменяемости системы.

Точность решения собственной проблемы – определяет точность решения задачи на собственные значения.

Допустимая погрешность при решении системы уравнений – определяет допустимую погрешность в режиме контроля решения системы уравнений.

Масштабный множитель – используется для ограничения интервала поиска коэффициента запаса устойчивости. Если значение коэффициента больше заданного значения параметра, система считается устойчивой.

Точность вычислений – параметр задает критерий окончания итерационного процесса поиска коэффициента запаса устойчивости. При очень малых значениях этого параметра время расчета может существенно увеличиться.

Последние два параметра имеют приоритет перед аналогичными параметрами, заданными при подготовке исходных данных для постпроцессора анализа устойчивости.

Точность определения формы потери устойчивости – допустимая погрешность при определении формы потери устойчивости.

Кроме того могут быть заданы метод оптимизации матрицы жесткости, ширина ленты и порядок системы, при которых не выполняется оптимизация матрицы жесткости и максимальное количество итераций при определении форм потери устойчивости.

Три параметра используются для управления формированием протокола выполнения расчета:

Максимальное количество ошибок – количество ошибок в исходных данных, сообщения о которых попадают в протокол.

Максимальное количество предупреждений – количество предупреждений о возможных ошибках в исходных данных, сообщения о которых попадает в протокол.

Учет нагрузок в связях – при активизации этой опции в протокол попадают значения суммарных нагрузок в узлах с учетом нагрузок, приходящих в узлы с наложенными связями.

Опция Автоматический вызов расчетных постпроцессоров позволяет включить или отключить вычисление расчетных сочетаний усилий, комбинаций загружений, анализ устойчивости и другие задачи, для которых подготовлены исходные данные, после выполнения статического и динамического расчетов.

Источник

Результаты расчета в SCAD: инструменты анализа

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

Цветовая шкала проверки элементов в SCAD.

Для всех заданных в расчете конструктивных элементов (тех, у кого задан материал) могут отображаться результаты проверки несущей способности. Чтобы произвести визульный просмотр результатов, необходимо в дереве управления проектом перейти в раздел «Графический анализ» (рис. 1).

В появившемся окне будет доступна так же расчетная схема. Например, чтобы наглядно увидеть проходит сечение или нет, нужно сделать расчет профилей, щелкнув по одноименной кнопке (рис. 2).

После расчета появится возможность отображения степени использования элементов по множеству параметров. Этот режим открывается нажатием кнопки «Отображение результатов проверки на схеме» (рис. 3). Конструктивные элементы ото­бражаются на схеме тремя цветами: зеленым, если несущая способность достаточна, красным — в противном случае или желтым, если несущая способность находится вблизи критического значения (фактор близок к 1,0), а красным — если элемент не проходит.

В случае, если проверяемый элемент красного цвета, то чтобы проверить причину его неудовлетворительного назначения, следует воспользоваться инструментом «Информация об элементе» — «Сталь. Факторы» — «Диаграмма факторов». В этом окне представлены всевозможные проверки действия назначенного сечения, а так же комбинация нагрузок, при котором достигаются наивысшие значения каждой из проверок (рис. 4.)

Анализ деформаций и перемещений в SCAD

Анализ перемещений в SCAD выполняется с помощью операций одноименного раздела (рис. 5) инструментальной панели. Для этого необходимо выполнить следующие действия:

Набор операций отображения позволяет получить различные формы представления резуль­татов расчета перемещений. Каждой форме соответствует кнопка в инструментальной панели. При анализе перемещений от статических нагрузок в стержневых конструкциях можно восполь­зоваться кнопками:

При этом допускается совместное отображение деформированной схемы и одного из видов цветовой индикации. Узлы имеют цветовую идентификацию согласно определенному промежутку перемещений при выбранном направлении.

Эпюры усилий в SCAD

Поскольку независимо от режима в комплексе сохра­ня­ется преемственность функций управления, то анализ силовых факторов (в данном случае — построение эпюр) выполняется по тем же правилам, что и анализ перемещений (рис. 6).

Таким образом можно осуществлять анализ перемещений в SCAD.

Источник

Понравилась статья? Поделить с друзьями:

Ошибка в матрице жесткости при определении собственных векторов scad как исправить

blank

Да, в новом так не работает, но легко решается через «Спектр жесткостных характеристик».

blank

При возможности посмотрю на очередном расчёте. Не пытались писать письма в SCAD?

blank

Собственно, справка скада:
В случаях, когда выполняется проверка устойчивости по комбинациям загружений, среди которых имеются динамические, требуется проявить некоторую осторожность, связанную с двумя обстоятельствами:

результаты динамического нагружения являются знакопеременными;
в тех случаях, когда результаты динамического расчета сформированы как корень квадратный из суммы квадратов (ККСК) модальных вкладов, нарушены условия равновесия и геометрической связности узловых перемещений.
Рассмотрим эти обстоятельства порознь.

Поскольку заранее неизвестно, какой знак результата динамического расчета является более опасным с точки зрения проверки устойчивости, то следует рассмотреть обе возможности. Так, например, если при расчете устойчивости рассматривается комбинация (L1)*1+(L2)*0.9+(L3)*0.7+(L4)*0.8, в которой нагружение (L3) является динамическим, то следует также выполнить проверку на комбинацию (L1)*1+(L2)*0.9+(L3)*(-0.7)+(L4)*0.8. При наличии нескольких динамических нагружений приходится перебирать все варианты знаков для их результатов.

Несовместность усилий связанная с использованием ККСК (естественно, если учтена не только одна форма собственных колебаний), вообще говоря, никаких неприятностей не вызывает. Просто проверяется коэффициент запаса устойчивости при пропорциональном росте всех внутренних усилий, игнорируя тот факт, что эти усилия нарушают условия равновесия.

Но несовместность узловых перемещений приводит к тому, что имеющиеся в схеме абсолютно жесткие тела получают искажения (по сути, они деформируются, что не соответствует их физической природе). Сложность состоит в том, что для этих элементов матрица К1(λ), не определяется внутренними силами или напряжениями, а вычисляется по значениям узловых перемещений, которые определяют изменение пространственной ориентации бесконечно жесткого конечного элемента (см. 9.5.1 в работе [3]). Несовместность узловых перемещений может привести к фатальной ошибке при вычислении К1(λ).

В связи с этим программа предусматривает обнуление матрицы К1(λ) при проверке устойчивости для комбинаций содержащих динамическое нагружение с более чем одной учитываемой формой собственных колебаний. Об этом в протоколе расчета появляется соответствующее предупреждение.

Источник

SCAD Office 11.5, ���������� ������ , ��������, �������

��������� 24.10.2005 — 10:18

�����������
������ ������

������: ������������
������������ �: 8234

���������: 469
�����������: 7.11.2004

���������:

����
�������: ����
�����������: —
������� �������: 43 ���(�)

� ������ 2006 ���� ������� ����� ������ ������� ������� � ������� ������������ ����������� SCAD 11.1.
� ����� ������ SCAD ����� ����������� �� ���������� ����� � ��������� � ��������� ������, ���������� �������������� ����� ������ ��������� �������� � �������������� (UNDO/REDO), ���������� ����� ����� ������������ ��������� ��������� ������, ����������� ����������� ������������� � �������� �������� ��������� �������� ����, ���������� ����� ��������� ���������� ������� ��������������� �� ���- � ��������������� � ��.

��������������� ��������� ��������� SCAD Office ����� �������� ����� ��� �������. ��������� ����� ��������� «������», �������������� ������ ��������� ��������� � �����������. � ��������� ����� ����������� ���������� ����� ���� � ��. ��������� ����� ����� ���������� ��������� ������.

��������� _http://www.pss.spb.ru/news_soft.shtml#04_47

���� � WareZ-�.

������� � ������ ��������

�������� ���

+���������� ���������

�������

��������� 6.12.2006 — 23:33

�����������
������ ������

������: ������������
������������ �: 40764

���������: 123
�����������: 13.08.2006
��: Vrn
���������:

����
�������: ����
�����������: —
������� �������: 3 ���(�)

������� � ��� � ����� ������� ���� ����������� ���������, � ������������ ��� � ������� ����������?
(��� ����� ������� ��������� � ������ ������������ ��� ������� � ��������������)

������� � ������ ��������

�������� ���

+���������� ���������

��������� 8.12.2006 — 18:04

�������
������ ������

������: ������������
������������ �: 40270

���������: 9
�����������: 4.08.2006

���������:

����
�������: ����
�����������: —
������� �������: 0 ���(�)

������(depak @ 7.12.2006 — 00:33) *

������� � ��� � ����� ������� ���� ����������� ���������, � ������������ ��� � ������� ����������?
(��� ����� ������� ��������� � ������ ������������ ��� ������� � ��������������)

� ����� � �������� «���������� ����������» ���� ����� ������� «������������ �������». ��������� � � ��� ���� ����� ������� ��������� � ������� �������, ������ � ������������ �������», �� ��� ������ ��� ��������, � �� ��� �������.

��������� �������������� Ustas — 8.12.2006 — 18:36

������� � ������ ��������

�������� ���

+���������� ���������

��������� 8.12.2006 — 18:39

�����������
������ ������

������: ������������
������������ �: 40764

���������: 123
�����������: 13.08.2006
��: Vrn
���������:

����
�������: ����
�����������: —
������� �������: 3 ���(�)

Ustas �������! �� ��������� � ������� �������� ����� � ��������� �������. ������ ��� ������ ������� ������ �������. �������!

������� � ������ ��������

�������� ���

+���������� ���������

��������� 18.12.2006 — 10:42

�������
������ ������

������: ������������
������������ �: 52378

���������: 14
�����������: 18.12.2006

���������:

����
�������: ����
�����������: —
������� �������: 0 ���(�)

��� ����� ����������,������ � S�AD� ��������� ������:
«������ ��� ���������� ������� 99.00%.
���������� ����� ��������� 21.
����� ���� 6. ��������� ����� ��������� 3.»
������ �� ��������. ��� ���� ����������?

������� � ������ ��������

�������� ���

+���������� ���������

��������� 18.12.2006 — 11:34

��������
������ ������

������: ������������
������������ �: 41425

���������: 30
�����������: 21.08.2006

���������:

����
�������: ����
�����������: —
������� �������: 0 ���(�)

��� ����� ���� ������� � ������������ �������� ����������, ��������, ���� � ���� ��������������� �������, �� ������� ����������� �������, ��� ����� �������� � ��, ���� �� ����� �������� ������� ������� 0,4�0,4, �� ��� � � ����� � ��!!!!!
������ ������� ���������.
� ������ ���� ����� ������ ��� � ���� ���������� ���� �� �� ����������� ����������� � � ���������� ���������� ������� ����� ��������� ���� ����������� � 99%
� ����� ����� � ������������ ������� �� ������

������� � ������ ��������

�������� ���

+���������� ���������

��������� 18.12.2006 — 14:57

�������
������ ������

������: ������������
������������ �: 52378

���������: 14
�����������: 18.12.2006

���������:

����
�������: ����
�����������: —
������� �������: 0 ���(�)

� ����������� � ���� ��� ������. � ����� �������� ������: ���� ���������� �/� ������ ������. ������ ����������� ����.����� ������� ������ � �������.� ������ ���� �������� �������������� �������� �� ����,������������ � �.�. � ������ ������ � ���, ��� ������� ��������(���������,�������),������� ��������� ��� ���� � ���������� �����������(���� � ������ — ��� �����,� �� �����- ������� �� ��������.� �������� �� ���� ��� ������).���-�� ������,������� ��� �������,��� ������������ ������ ������� ���������� ��� EF=EI=1? ��� ����� �������?� ������ ��� ����� ��� �������?
� ��� ����� �������,��������,������ ������ �������������� ������������.
«������������� ���������� ������� �� ����������� 1 � �����:
16 22 544″
� ����� ������������ ���� ����,� ������ ������ � ���� �����. ����� ���-�� ������� � ��������� ����,������ ��� ������ �� ����.
� ������ �� ���� �������� �������������� ������������? ���� � ��� �� �����,� �������, ������ �� �������� ������� �� ��� 6. ��� � ���� �� ��������?

������� � ������ ��������

�������� ���

+���������� ���������

��������� 18.12.2006 — 16:00

��������
������ ������

������: ������������
������������ �: 41425

���������: 30
�����������: 21.08.2006

���������:

����
�������: ����
�����������: —
������� �������: 0 ���(�)

� ���� �������� ������� ������ ���������, � ����� ����� �������� �������
��������� �������������� ��������� �����, �� ���� �������������� ���� �������� ������� ����� �����, ������� ������ ���������� ��� �� ������ ����� ����, � ��� ���� ������� ������ �������� ����� �������� ���������. ����������� ������� ������ ��� ������������ ����������� ������� � ��������������, ��� ��������� ������� 0,4-0,5 � (� ��������� ������� ��� � 0,2 ����� ����, �� ������ ��� ������ ������, ��� ��� ��� ���� ���������� ���� �������� ��������� � �������� � ����� ������������ ���������� ����������).
����� �������� ����� �������� �����, �������� ��� ��� �����������, ����� ������ �� ��� �������� ��� �������������� �� ������� �� ������= ������ ����������� ��� �����,
� ���� ������� �� �������� ��������, ������� ��������� ������ ������� �� ���������� ����� ������� � �������� ������� ������� (�� ����), �������� � ���������� �������, ������ ��� ������ ������� �������, � ������ ��� 1,5 ������� �������. �������� ��� ��� ���� ����� �������� �������� ����� ����� �������� �������� � ���� ����� (����), ��� ��� �������� �������� �������� ������ ���������� ���������� � ����� � ���� ��������.
�������� ����������� ��������� «������������» ���������� ��������� ����� ��� � (��� �������������� ����), ����� �������� ��…�� � �� �����������, ��� ����� �������� ��� �����.
��� ��� ������� ������� ������� �� ������������ ����� �� �����, ������� �� ����� 0,3 ��� 0,4, � ��� � �����������, � ���� ����������� ����� ����������, ��� ��� ������� � 4 ���������, — ��� ���� ���� ��� ���������. (����� ���������� ��� ���������).
����� �� �������� ��� ������ ������� � ������� 5, ������ ���� ������ �� ���� 6 �������! ����������!.
����������� �������� ������ ���������� ���� ����� — ����������� ����������� ��������� � �������� ������ (�� ��� ���� ������� ������� �� ���� �� ������������� ���������.).
�������� ��� ����� � ������� � ��������� ��� ������, ����� ��� ������ ����������� ������� � ������ ��� ������� (������� ������ ���������), ����� �� ����� ���� ������ ����������� ���, ������ ��������� ���������, �� �������� ��������� �� �������� � «�����».
�������� — ���� ����������� ����������������!, �� ��� ����� ���������� ���������, ����������� ��� ������ �� ��������� ������ ����� ������, � ����� — �����! ������!

P.S. ������ �������� �� Sergeyka_@tut.by ��� ��������, — ����� ������ ����� ��������� ��� � ���� �����

������� � ������ ��������

�������� ���

+���������� ���������

��������� 18.12.2006 — 16:22

�������
������ ������

������: ������������
������������ �: 52378

���������: 14
�����������: 18.12.2006

���������:

����
�������: ����
�����������: —
������� �������: 0 ���(�)

������� �������! �� ��� �������. ��� ����������, ��� � ����� ����� ��� �������� �� ���� ����,� �� ������������� ������ �����…
��� ����� ���������� ������� ���������� ���� � ������? � ���������� ��� ���� �� ������ �������. ��� ���������� �������� ����� ���� ���� � ���������� ����������� � �������? ��� ����� �������?

������� � ������ ��������

�������� ���

+���������� ���������

��������� 18.12.2006 — 16:35

��������
������ ������

������: ������������
������������ �: 41425

���������: 30
�����������: 21.08.2006

���������:

����
�������: ����
�����������: —
������� �������: 0 ���(�)

����� ���� � ����� �������, �� �� ����� ��������, ��� ������ ��������� �����, � �������� � ��� ��� ���� ������������ �������� ��������� ����� ���������� ������, � ��� ������ ������� ����� ��������� ���������� ���� �� ��������� �������
� ����������� ��� � ��� ��������� ��� �� ��������� � � ��� ��� ������ � ����������� ��������� (��� ������ �� ������ ����� ��� ��������� ������ ����, ���� ��� �� �������� �����, ��� ������� ��� ����������� ����� ������, � ����� ��� ����������� ������������, �� ��� ���������� ��� ������ ���!).
�������� �� �������������� �������� ����� �������, � ����������� ��������� ���� ����� ����� �����, �� ��� ������ ������ ������������, � ������������� ����� (����� ���������� �� ���������).
������ �������� � ��� ��� �������� �� �������� ������� �������� ������ � ���� �� ����������, �� ����� ����� ����������� ������ ������� ���� �� n-�� ���-�� ��������� � ���� ���� ����������� ��������� ������ ������ �� ������� (������). � ��� ��������� ������� �� ����� ���������������, ����� ������ ������ ���������� ������� ���������� ������ (�� ��������� — 3).

���������, ����������� ��������, ��! ���� ���������� ����� � ������ ������ ���������, — ���������� ����� ��������� ���� � ���������� ����������� �����, � �� ���� ������� ��� � ������, ����� ������� ���� � �� ������, �� �� ��� ������� ����� ����� — ���������

��������� �������������� Seroga — 18.12.2006 — 18:31

������� � ������ ��������

�������� ���

+���������� ���������

��������� 18.12.2006 — 16:46

�������
������ ������

������: ������������
������������ �: 52378

���������: 14
�����������: 18.12.2006

���������:

����
�������: ����
�����������: —
������� �������: 0 ���(�)

�� ����� �����.
��� ���� ��� ���� ��������. ��������������� ��������� ���������!!! � �������� ��� ��������. � �� ������������� �� �������� ���� �������. �������� ��� ����,��� ���������� ������ � ��������� ������� ��������� � �������,����� ��� ��������� ����� ����������. ��,��, ���� ��� ������� ������� ���������?��� ��� ����� ����������� ����������?
�.�. ��������� ��� ������,� ���� �� ������ ���� �����- ����� �� @.

������� � ������ ��������

�������� ���

+���������� ���������

��������� 18.12.2006 — 17:02

��������
������ ������

������: ������������
������������ �: 41425

���������: 30
�����������: 21.08.2006

���������:

����
�������: ����
�����������: —
������� �������: 0 ���(�)

���������, ��� ���������� ������ �� ���������, ����� �������� �� ��������� ����� ��������� � �����������, � ������������ �����, � ���������� ������ �� ��������� �� ��������� � ������� ������� «�������� �� ��������� �����». ����� �������, ��� ����� ����� ������

������� � ������ ��������

�������� ���

+���������� ���������

��������� 18.12.2006 — 17:10

�������
������ ������

������: ������������
������������ �: 52378

���������: 14
�����������: 18.12.2006

���������:

����
�������: ����
�����������: —
������� �������: 0 ���(�)

��� �� �� ������ �����,����� ��� ������� ����������….

������� � ������ ��������

�������� ���

+���������� ���������

��������� 18.12.2006 — 18:05

��������
������ ������

������: ������������
������������ �: 41425

���������: 30
�����������: 21.08.2006

���������:

����
�������: ����
�����������: —
������� �������: 0 ���(�)

���� ����� ��� ���� ��������� � ����������� ��������� �� ���������� �� ���������, � ����������� ����������� ����������� ��� ����� , ��� � ������ ��������� ��������� ������. ���������� � �������� �������� ������ ������, �� ���� �������� ������� ����������� ��������� ���������� ��������� (��������� ������� ����� ��� �� ��� � ������� ����� �������������)
� ���� ��� ����� ��� ��������, ��� ��� �����, ��� �� ��� �������,
����� ��������� ��� ������� ������ ��� �������,� 7,31 ��� �� ������ ����� ������ ���, � 11 ������� � ���� �� ���������, ��� ����������� ������� � ���, ����� ���� 11 ����, ������� ����� �������, ��������� ������ ���….

������� ���������� ��� �� � ��� ������� ��� ���������.
�������� ������� ��� ���������� �������� � ����� ����� ������:
1.����� �����
2.����� �������
3. �� ���� ������
4. ��� ��������� �������� ���� ������ ��� ����� ��������, ��� ��������������…
�� ��������
-��� ������������ ������ ��������� ����� ������� ��� ������� ������������ �������������� �� ����� ��� Z
-��������� ����� ������ �� ������ 2,3, ������ � ����� ��������� ��� ��� �����,
� ���� � ������������, �� ����� �� �����������, ��� ����� ������ �������������, � ��� �� ������� �� �� ������ ���� ������� � � ���� ����� ������� ���������. ��� ���� ����� ��������� ��� ��������� ����, �� ������ ������ 1,23 ������ ���������� �� 100%
��� ��� ������� ����� ������� ������� �������� � �������� ���� ��� � ���� ������� ����������, � ������ ���� ����������� �������.
������� ��� �������� �������� �������� � ������������ ���ר�� �������!!!! ���� ��� ������������ �� ������� ���������� ������� ����������!
����� ����� �����, �������� ����������� �������, ������ ������� ��� �� ����� ������ �������!

������� � ������ ��������

�������� ���

+���������� ���������

��������� 19.12.2006 — 09:21

�������
������ ������

������: ������������
������������ �: 52378

���������: 14
�����������: 18.12.2006

���������:

����
�������: ����
�����������: —
������� �������: 0 ���(�)

������ ������� ���� �������� �������������,������� �������� �� �������!!! �������� �������� ����� ��������������….
�������� ��� ��������� ��������…

������� � ������ ��������

�������� ���

+���������� ���������

��������� 19.12.2006 — 10:52

�������
������ ������

������: ������������
������������ �: 31132

���������: 13
�����������: 30.03.2006

���������:

����
�������: ����
�����������: —
������� �������: 0 ���(�)

mel
������, ���� ������������ �������� ������, �� ��� ���������� ���� ������� ���������.
� � ���� ������ ����� �� �������� � �������������� ���������� � ���� �������.
������ ���������� ���������� ��������� �������� ����� ����������, �.�. ������������� ������ �� ���������. ��������, ��������� � ��������� �� Y � Z � ���������� ~ �� ������� ���� ����������� ���������� �������. ��� ������� �������� ������� �� ���� ����� ������������. ���� �������� ������� ���, �� ����� �� �������������, ��� �������� � ��������� � ����������, ������ ��������� ~ 1/4 ������ ����������. ���� ��������� ������������� � ���� �����, �� ��� ������� �������� ������ ���������

������� � ������ ��������

�������� ���

+���������� ���������

��������� 19.12.2006 — 11:09

�������
������ ������

������: ������������
������������ �: 52378

���������: 14
�����������: 18.12.2006

���������:

����
�������: ����
�����������: —
������� �������: 0 ���(�)

����� � ������ � ���� ��� �� ����������…….
��� ������������� �������� �����…
� �� ������ ��������� ����� ��������.� � ����� ������ ���������� ��������� ����������� ����,� ������ ������ 6�6�(����) ��������� �� ��������� ��������� ������� � ���������� (������)�10?
�������� ������� ���… ��� ���������� �������� �� ������� ������� �� �������� ��� ����� ���� �������?

� � ������ ����(�������) -«������» � ����� ���������..?

������� � ������ ��������

�������� ���

+���������� ���������

��������� 19.12.2006 — 11:32

�������
������ ������

������: ������������
������������ �: 31132

���������: 13
�����������: 30.03.2006

���������:

����
�������: ����
�����������: —
������� �������: 0 ���(�)

������(mel @ 19.12.2006 — 11:09) *

����� � ������ � ���� ��� �� ����������…….
��� ������������� �������� �����…
� �� ������ ��������� ����� ��������.� � ����� ������ ���������� ��������� ����������� ����,� ������ ������ 6�6�(����) ��������� �� ��������� ��������� ������� � ���������� (������)�10?
�������� ������� ���… ��� ���������� �������� �� ������� ������� �� �������� ��� ����� ���� �������?

� � ������ ����(�������) -«������» � ����� ���������..?

���������� �� �������� � ����� �������� �������� ��� �������������� ��������� ���������, �.�. ������������ ���������� ������ ������. ���������� ���������� �� ������� ������ ����� ������� �������� � �������� �������������� �������� ���������. � � ����������� ���������� �������� �� ����������-������. ���������� ����� ��� �� ��������, ������� �������� ��� ���������� ��������� �������� ������ ��� �������� �����, ������� ����������� ����� ������� ����� �����. �� ������ �������� ���� �����.
������� ���������� ������� ����� ��������� ������� � ����� �����������.
����� ����� � ����� �������, ���������� ������� ������ � ���������� �������, ������������ ������ �������� ����. � ��� ���������� �� ��������� ���������� ��������� � ��������� � ����� ��������� ��������� ���. �������. ����� ��� �� �������� ������ �������, �������� ������� �� ������.

������� � ������ ��������

�������� ���

+���������� ���������

��������� 19.12.2006 — 11:41

�������
������ ������

������: ������������
������������ �: 52378

���������: 14
�����������: 18.12.2006

���������:

����
�������: ����
�����������: —
������� �������: 0 ���(�)

�������,�����. � ������ ������������� ������� ������ ��� ���� ����� ������.
�! � ��� ����� ���� � ���������..:��� �������� ������� ��� ���� ������� �� ���������� ������.� ����������(����. �����)? �� ��� ���� ��� �����.����� �� �������� ��������� � �������?
� ������������? �����= ������*10? � ������� �� ����� ��������…..

������� � ������ ��������

�������� ���

+���������� ���������

��������� 19.12.2006 — 12:21

�������
������ ������

������: ������������
������������ �: 31132

���������: 13
�����������: 30.03.2006

���������:

����
�������: ����
�����������: —
������� �������: 0 ���(�)

������(mel @ 19.12.2006 — 11:41) *

�������,�����. � ������ ������������� ������� ������ ��� ���� ����� ������.
�! � ��� ����� ���� � ���������..:��� �������� ������� ��� ���� ������� �� ���������� ������.� ����������(����. �����)? �� ��� ���� ��� �����.����� �� �������� ��������� � �������?
� ������������? �����= ������*10? � ������� �� ����� ��������…..

����� ����� ��� ���������.

�� ���������� ����� �����, ��� � �� �����. ��� �� ����� �������������. �������-���������� ������������� ����� ������ ������ � �������������� ���������. �����������, ��� ������ ��� �������� ��������.

������� � ������ ��������

�������� ���

+���������� ���������

��������� 19.12.2006 — 12:26

�������
������ ������

������: ������������
������������ �: 52378

���������: 14
�����������: 18.12.2006

���������:

����
�������: ����
�����������: —
������� �������: 0 ���(�)

� � ������� �� ����� ��������,������� ���������.
� ��� ������ ��� � �������� » ������ �� ����� 1,020-1/83″ ������ ��� ��������� ������� �� �� �����,�����..

������� � ������ ��������

�������� ���

+���������� ���������

1 ���. ������ ��� ���� (������: 1, ������� �������������: 0)

�������������: 0

blank

Да, в новом так не работает, но легко решается через «Спектр жесткостных характеристик».

blank

При возможности посмотрю на очередном расчёте. Не пытались писать письма в SCAD?

blank

Собственно, справка скада:
В случаях, когда выполняется проверка устойчивости по комбинациям загружений, среди которых имеются динамические, требуется проявить некоторую осторожность, связанную с двумя обстоятельствами:

результаты динамического нагружения являются знакопеременными;
в тех случаях, когда результаты динамического расчета сформированы как корень квадратный из суммы квадратов (ККСК) модальных вкладов, нарушены условия равновесия и геометрической связности узловых перемещений.
Рассмотрим эти обстоятельства порознь.

Поскольку заранее неизвестно, какой знак результата динамического расчета является более опасным с точки зрения проверки устойчивости, то следует рассмотреть обе возможности. Так, например, если при расчете устойчивости рассматривается комбинация (L1)*1+(L2)*0.9+(L3)*0.7+(L4)*0.8, в которой нагружение (L3) является динамическим, то следует также выполнить проверку на комбинацию (L1)*1+(L2)*0.9+(L3)*(-0.7)+(L4)*0.8. При наличии нескольких динамических нагружений приходится перебирать все варианты знаков для их результатов.

Несовместность усилий связанная с использованием ККСК (естественно, если учтена не только одна форма собственных колебаний), вообще говоря, никаких неприятностей не вызывает. Просто проверяется коэффициент запаса устойчивости при пропорциональном росте всех внутренних усилий, игнорируя тот факт, что эти усилия нарушают условия равновесия.

Но несовместность узловых перемещений приводит к тому, что имеющиеся в схеме абсолютно жесткие тела получают искажения (по сути, они деформируются, что не соответствует их физической природе). Сложность состоит в том, что для этих элементов матрица К1(λ), не определяется внутренними силами или напряжениями, а вычисляется по значениям узловых перемещений, которые определяют изменение пространственной ориентации бесконечно жесткого конечного элемента (см. 9.5.1 в работе [3]). Несовместность узловых перемещений может привести к фатальной ошибке при вычислении К1(λ).

В связи с этим программа предусматривает обнуление матрицы К1(λ) при проверке устойчивости для комбинаций содержащих динамическое нагружение с более чем одной учитываемой формой собственных колебаний. Об этом в протоколе расчета появляется соответствующее предупреждение.

Источник

Ниже приведен список цифровых кодов ошибок, которые могут появиться в процессе расчета конструкции

100

Неправильный номер узла

101

Неправильный номер элемента

102

Недостаточно памяти

ВАНТЫ

300

Не хватает памяти во время анализа элементов каната

301

Не хватает памяти во время анализа элементов каната

302

Не хватает памяти во время анализа элементов каната

303

Не хватает памяти во время анализа элементов каната

304

Не хватает памяти во время анализа элементов каната

305

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

ОШИБКИ В СИСТЕМЕ ВВОДА/ВЫВОДА

500

Внутренняя ошибка при обработке имен файлов

501

Внутренняя ошибка при обработке имен файлов

502

Внутренняя ошибка при обработке имен файлов

503

Внутренняя ошибка при обработке имен файлов

504

Ошибка в данных, испорчены файлы данных

505

Не хватает памяти для прогона задачи

506

Ошибка в данных, нет информации о вариантах нагрузки

507

Противоречивые данные о совместимых узлах

508

Внутренняя ошибка во время анализа жестких связей

509

Внутренняя ошибка во время анализа повернутых узлов

510

Внутренняя ошибка во время анализа повернутых узлов

511

Внутренняя ошибка во время анализа упругих опор

512

Внутренняя ошибка во время анализа упругих опор

513

Внутренняя ошибка во время анализа совместимости

514

Внутренняя ошибка во время анализа упругих совместимости

690

Внутренняя ошибка во время анализа жестких связей

МОДАЛЬНЫЙ РАСЧЕТ

900

Ошибка ввода при чтении временных результатов модального анализа

901

Ошибка вывода при сохранении результатов модального анализа

902

Получено отрицательное собственное значение

903

Не хватает памяти во время анализа концентрированных весов узлов

904

Не хватает памяти во время анализа концентрированных весов узлов

905

Внутренняя ошибка во время анализа концентрированных весов узлов

СПЕКТРАЛЬНЫЙ РАСЧЕТ

920

Ошибка ввода при чтении временных результатов во время спектрального или сейсмического анализа

921

Ошибка вывода при сохранении результатов спектрального или сейсмического анализа

922

Ошибка ввода при чтении временных результатов во время спектрального или сейсмического анализа

923

Ошибка вывода при сохранении результатов спектрального или сейсмического анализа

924

Внутренняя ошибка во время спектрального или сейсмического анализа

925

Ошибка вывода при сохранении результатов спектрального или сейсмического анализа

930

Ошибка во время сохранения результатов анализа демпфирования и энергии

940

Ошибка в данных при сейсмическом анализе

950

Не хватает памяти для загрузки спектра при спектральном анализе

951

Ошибка в данных при спектральном анализе

ВРЕМЕННОЙ РАСЧЕТ

960

Внутренняя ошибка при анализе переходных процессов

961

Ошибка в данных при анализе переходных процессов, недействительный файл конфигурации

962

Ошибка в данных при анализе переходных процессов, недействительный временной шаг

970

Внутренняя ошибка при анализе переходных процессов

971

Внутренняя ошибка при анализе переходных процессов, неправильная формула

972

Ошибка в данных при анализе переходных процессов

973

Ошибка в данных при анализе переходных процессов

974

Ошибка вывода при сохранении результатов анализа переходных процессов

980

Не хватает памяти для анализа переходных процессов

981

Не хватает памяти для анализа переходных процессов

982

Ошибка в данных при анализе переходных процессов

983

Ошибка в данных при анализе переходных процессов

984

Ошибка в данных при анализе переходных процессов

985

Ошибка в данных при анализе переходных процессов

986

Ошибка в данных при анализе переходных процессов

ПАМЯТЬ

1000

Не хватает памяти для прогона задачи

1001

Не хватает памяти для прогона задачи

1010

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

1011

Не хватает памяти для прогона задачи

1100

Не хватает памяти для прогона задачи, очень серьезная проблема

1101

Не хватает памяти для прогона задачи, очень серьезная проблема

1102

Не хватает памяти для прогона задачи, очень серьезная проблема

1103

Не хватает памяти для прогона задачи, очень серьезная проблема

1104

Не хватает памяти, слишком много изолированных узлов

РЕЗУЛЬТАТЫ ДЛЯ КОНЕЧНЫХ ЭЛЕМЕНТОВ

1230

Ошибка ввода при чтении временных результатов для конечных элементов

1231

Ошибка вывода при чтении временных результатов для конечных элементов

ФРОНТАЛЬНЫЙ РЕШАТЕЛЬ

1310

Ошибка ввода при записи в рабочий файл во время фронтального анализа

1311

Ошибка ввода/вывода при открытии рабочего файла во время фронтального анализа

1320

Ошибка ввода при чтении рабочего файла во время фронтального анализа

1321

Ошибка ввода/вывода при открытии рабочего файла во время фронтального анализа

1330

Ошибка ввода при сохранении матрицы во время фронтального анализа

1340

Не хватает памяти для выполнения фронтального анализа

1350

Внутренняя ошибка при открытии рабочего файла во время фронтального анализа

1360

Не хватает памяти для выполнения фронтального анализа

1361

Не хватает памяти для выполнения фронтального анализа

1370

Внутренняя ошибка при фронтальном анализе, очень серьезная проблема

1400

Не хватает буферной памяти для матрицы

1401

Ошибка ввода при чтении матрицы

ПАМЯТЬ

1410

Не хватает буферной памяти для решения задачи о собственных значениях

1420

Не хватает памяти для прогона задачи, сократить размер задачи

1421

Не хватает памяти для прогона задачи, сократить размер задачи

1422

Не хватает памяти для прогона задачи, сократить размер задачи

ЗАДАЧА О СОБСТВЕННЫХ ЗНАЧЕНИЯХ

1430

Внутренняя ошибка во время анализа задачи о собственных значениях.

1431

Не хватает памяти во время анализа задачи о собственных значениях

1450

Не хватает памяти во время анализа задачи о собственных значениях

1451

Ошибка вывода при сохранении результатов анализа задачи о собственных значениях

РЕШАТЕЛЬ SKYLINE

1900

Внутренняя ошибка в решателе skyline, переключитесь на фронтальный метод, если возможно

1901

Ошибка вывода при сохранении матрицы в решателе skyline

1902

Ошибка вывода при сохранении матрицы в решателе skyline

1903

Не хватает памяти в решателе skyline

1904

Ошибка ввода при чтении в матрицу в контурной программе

1905

Ошибка ввода при чтении в матрицу в контурной программе

1906

Ошибка вывода при сохранении матрицы в решателе skyline

1920

Не хватает памяти для прогона задачи

1921

Не хватает памяти для прогона задачи

1922

Не хватает памяти для прогона задачи

1923

Не хватает памяти для прогона задачи

1930

Проблема с открытием рабочего файла во время решения методом skyline

1940

Ошибка ввода при чтении в матрицу в контурной программе

1941

Ошибка ввода при чтении в матрицу в контурной программе

1950

Ошибка ввода при чтении в матрицу в контурной программе

1951

Ошибка ввода при чтении в матрицу в контурной программе

1960

Внутренняя ошибка в контурной программе

2010

Не хватает памяти для прогона задачи

2011

Ошибка ввода при чтении в матрицу в контурной программе

2020

Внутренняя ошибка в контурной программе

2021

Ошибка ввода при чтении в матрицу в контурной программе

2030

Внутренняя ошибка в контурной программе

2031

Ошибка вывода при сохранении матрицы на диске

2040

Внутренняя ошибка в контурной программе

2041

Ошибка ввода при чтении в матрицу в контурной программе

2050

Ошибка ввода при чтении в матрицу в контурной программе

ЗАДАЧА О СОБСТВЕННЫХ ЗНАЧЕНИЯХ

2051

Не хватает памяти во время анализа задачи о собственных значениях

2052

Проблема выполнения во время анализа задачи о собственных значениях, нулевые элементы по диагонали матрицы жесткости

2053

Проблема выполнения во время анализа задачи о собственных значениях, вычисленные нулевые собственные значения

2054

Проблема выполнения, пропуск собственных значений

2055

Не хватает памяти во время анализа задачи о собственных значениях

2070

Проблема выполнения во время анализа задачи о собственных значениях

2080

Внутренняя ошибка во время анализа задачи о собственных значениях.

2081

Не хватает памяти во время анализа задачи о собственных значениях

2082

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

2083

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

2084

Проблема выполнения во время анализа задачи о собственных значениях

2085

Проблема выполнения во время анализа задачи о собственных значениях

2086

Проблема выполнения во время анализа задачи о собственных значениях

2095

Проблема выполнения во время анализа задачи о собственных значениях

2110

Ошибка в данных, линейная нагрузка, не влияющая (нулевая длина сегмента) на определение плоской нагрузки

2120

Ошибка в данных, файл данных записи нагрузки испорчен

2300

Внутренняя ошибка при обработке реакций элемента

2400

Не хватает памяти для секторного буфера

2500

Не хватает памяти для рабочего буфера

2505

Внутренняя ошибка, недействительная ссылка

2520

Ошибка вывода при хранении результатов на диске

2521

Внутренняя ошибка, недействительная ссылка

ЗАДАЧА О СОБСТВЕННЫХ ЗНАЧЕНИЯХ

2540

Ошибка ввода/вывода при открытии рабочего файла во время анализа задачи о собственных значениях

2550

Внутренняя ошибка при чтении из рабочего файла во время анализа задачи о собственных значениях

2551

Ошибка ввода при чтении из рабочего файла во время анализа задачи о собственных значениях

2560

Внутренняя ошибка при записи в рабочий файл во время анализа задачи о собственных значениях

2561

Ошибка вывода при записи в рабочий файл во время анализа задачи о собственных значениях

2570

Внутренняя ошибка во время анализа задачи о собственных значениях.

2571

Внутренняя ошибка во время анализа задачи о собственных значениях.

2572

Ошибка вывода при записи в рабочий файл во время анализа задачи о собственных значениях

2573

Ошибка ввода при чтении из рабочего файла во время анализа задачи о собственных значениях

2580

Внутренняя ошибка во время анализа задачи о собственных значениях.

2590

Внутренняя ошибка во время анализа задачи о собственных значениях.

2650

Ошибка в данных при анализе односторонних заделок, нагрузки в узле без опоры

МОДАЛЬНЫЙ МЕТОД РАЗЛОЖЕНИЯ

2701

Ошибка в данных при использовании модального метода разложения

2702

Ошибка в данных при использовании модального метода разложения

2703

Ошибка в данных при использовании модального метода разложения

2704

Ошибка в данных при использовании модального метода разложения

МЕТОД ЛАНЦОША

2800

Ошибка в данных при использовании метода Ланцоша

2801

Внутренняя ошибка при использовании метода Ланцоша; в настоящее время не используется (Lanc_Ritz_Ort_Type)

2802

Внутренняя ошибка при использовании метода Ланцоша; в настоящее время не используется (Lanc_Ritz_Ort_Type)

2803

Внутренняя ошибка при использовании метода Ланцоша: Число требуемых векторов Ритца > текущего шага Ланцоша

2804

Ошибка размещения памяти при использовании метода Ланцоша

2805

Ошибка, вызванная открытием файлов для дополнительной системы ввода/вывода

2806

Ошибка, вызванная чтением/записью в дополнительной системе файлов

2807

Ошибка дополнительной системы I/O: массив, связанный с буфером, не размещен

2808

Ошибка, вызванная при i > j для параметра. Tau_3;

2809

Нет сходимости для итераций QR – режим определения. Возможно – отсутствие положительной определенности K

2810

Ошибка выполнения, вызванная делением на ноль для back_go. Возможно – отсутствие положительной определенности K

2811

Ошибка выполнения, вызванная делением на ноль для TR_Transf. Возможно – отсутствие положительной определенности K

ОСНОВНОЙ МЕТОД ПРИВЕДЕНИЯ

2850

Ошибка размещения при использовании основного метода приведения

2851

Задача Якоби при использовании основного метода приведения: возможно неправильное размещение главных степеней свободы

2852

Ошибка источника данных: число требуемых режимов > число главных степеней свободы

2653

Ошибка при использовании основного метода приведения: отсутствие симметрии приведенного эффекта и матриц масс. Возможно неправильное размещение главных степеней свободы или матрица, плохо обусловленная из-за грубых ошибок в модели метода конечных элементов

ОШИБКИ ИТЕРАЦИОННОГО РЕШАТЕЛЯ

3000

Ошибка распределения памяти

3001

Ошибка при открытии дополнительно файла вывода =3002, // нулевая длина текущего элемента: ELE_MatrEvaluation returns 0

3002

3009 Слишком много совокупных уровней – приведение невозможно – уменьшить число совокупных уровней Внутренняя ошибка при оценивании памяти IВнутренняя ошибка приsymbolical factorization

3010

I/O ошибка при сохранении разложенной части матрицы Недостаток памяти при запуске

3011

Ошибка при открытии файла для коэффициента матрицы

3012

Ошибка при открытии файла для коэффициента матрицы

3013

Ошибка ввода/вывода во время выполнения итерационного решателя итерационное решение: j<i

3014

Ошибка во время выполнения итерационного решателя: Решатель

3015

Ошибка при открытии файла во время выполнения итерационного решателя

3016

Ошибка ввода/вывода во время выполнения итерационного решателя 3016 Ошибка во время выполнения итерационного решателя

3017

Этот метод не доступен

3018

Neq_Old!= Last Neq при перенумерации

3019

Число блоков nblck > MAX_BLOCKS для Kc

3020

Ошибка ввода/вывода при грубых матричных операциях с файлом

3021

Совместимый узел устанавливается на опоре; это временно невозможно

3050

Ошибка распределения памяти при ITER_Eigen

3060

Ошибка времени прогона при Jacobi fo ITER_Eigen

3061

Итеративный решатель: число требуемых форм > MAX_SIZE_SUBSP_PROB

3065

Невозможно использовать метод PCG_Ritz при nModes = 1 (Должно быть: nModes > 1)

3070

Ошибка времени при обработке заполнения модели грубой матрицы: подчиненный узел является первым узлом в заполнении

3080

Ошибка времени во время правильности контроля: никакие узлы не содержатся в заполнениях

3090

Отсутствуют элементы плосконапряженного состояния

3200

Ошибка во время открытия файла для системы ввода/вывода

3210

Метод итерации блочного подпространства неэффективный. Выберите другой метод

3220

Ошибка размера блока для метода итерации блочного подпространства – внутренняя ошибка

3230

Ошибка не положительно определенной матрицы масс: (V*M*V) <= 0

3240

Слишком много форм: lastvect > NoOfLegalDOF

ОШИБКИ РАЗРЕЖЕННОГО РЕШАТЕЛЯ

3300

Ошибка при открытии файла

3301

Начальный класс CSparse для разреженного прямого решателя

3302

Число уравнений впереди равно нулю

3303

Внутренняя ошибка прогона при оценке памяти

3304

Внутренняя ошибка при символической факторизации

3305

Внутренняя ошибка прогона во время окончательной стадии

3305

Внутренняя ошибка при символической факторизации

3306

Ошибка I/O во время хранения разложенной части матрицы

3307

Недостаточно памяти во время прогона

3308

Пропущенный элемент при шаге = 0

3309

Ошибка прогона

3310

Ошибка при открытии файла для матричного фактора

3311

Число требуемых r.h.s > числа вычисленных r.h.s

3312

Ошибка во время инициализации второй матрицы

3313

Недопустимый тип решателя

3320

Ошибка во время инициализации смежного графа

3321

Неизвестный метод пере упорядочивания

3322

Ошибка при пере упорядочивании MDA

3323

Ошибка при выполнении мультифронтального решателя

3324

Слишком много предыдущих фронтов — мультифронтальный решатель

3325

Ошибка при создании нового фронта

3326

Ошибка при заполнения фронта

3327

Ошибка при подготовке фронта

3328

Ошибка установки разложенной части

3329

Ошибка во время мультифронтального решателя — renum. NDM

5000

Ошибка главной страницы (если возможно, сохраните пример и вышлите его в отдел технической поддержки)

Валянцiна

*
Участник форумов

Сейчас отсутствует Сейчас отсутствует


Помогите пожалуйста!! скад ругается, что система геометрически изменяема( посмотрите пожалуйста что там не так…  


Инженер-конструктор (Минск, Беларусь)

Miko (Тарантул)

***
Куратор подраздела «Основания и фундаменты, механика грунтов»

http://revitconsalting.blogspot.ru/

Сейчас отсутствует Сейчас отсутствует


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


Инженер-конструктор (Москва, Россия)

Валянцiна

*
Участник форумов

Сейчас отсутствует Сейчас отсутствует


мне сказали просто отключить расчет на устойчивость  [доволен]


Инженер-конструктор (Минск, Беларусь)

Miko (Тарантул)

***
Куратор подраздела «Основания и фундаменты, механика грунтов»

http://revitconsalting.blogspot.ru/

Сейчас отсутствует Сейчас отсутствует


[улыбка] так в логе так и написано что не реализован расчет на устойчивость для металла, а Вы паникуете. Лог расчета это первая вещь которую нужно внимательно изучить даже если результат положительный и расчет выполнен.


Инженер-конструктор (Москва, Россия)

Валянцiна

*
Участник форумов

Сейчас отсутствует Сейчас отсутствует


[улыбка] так в логе так и написано что не реализован расчет на устойчивость для металла, а Вы паникуете. Лог расчета это первая вещь которую нужно внимательно изучить даже если результат положительный и расчет выполнен.

ну я начинающий пользователь скад)))


Инженер-конструктор (Минск, Беларусь)

Miko (Тарантул)

***
Куратор подраздела «Основания и фундаменты, механика грунтов»

http://revitconsalting.blogspot.ru/

Сейчас отсутствует Сейчас отсутствует


Тогда лучше сначала посчитайте вручную(такое маленькое здание не долго) и в скад и сравните результат, не стоит слепо верить этому инженерному калькулятору слепо, он способен считать лишь определенные вещи с некой долей точности. Для пример посчитайте ферму свою методом Риттера или Кремона и сравните с SCAD, в частности свой опорный раскос, разница будет.


Инженер-конструктор (Москва, Россия)

Валянцiна

*
Участник форумов

Сейчас отсутствует Сейчас отсутствует


ок спасибо)


Инженер-конструктор (Минск, Беларусь)

Seminar

Участник форумов

Сейчас отсутствует Сейчас отсутствует


5-6 ноября в Минске по адресу ул. Берсона, 1А, актовый зал (пл. Независимости, за Красным костёлом) пройдет БЕСПЛАТНЫЙ семинар, посвященный новой версии SCAD Office 21.1. В программе обсуждение новых возможностей, мастер-класс и многое другое.

Докладчики:
Карпиловский Виктор Семенович, канд. техн. наук — директор компании SCAD Group
Криксунов Эдуард Зиновьевич, канд. техн. наук — директор компании SCAD Soft
Скорук Леонид Николаевич, канд. техн. наук — ведущий научный сотрудник SCAD Soft
Юрченко Виталина Витальевна, канд. техн. наук — ведущий научный сотрудник SCAD Soft

Пожалуйста, звоните Ольге, она Вас зарегистрирует на мероприятие: (029) 3 999 252


? (Минск, Беларусь)

Фома

*
Участник форумов

Сейчас отсутствует Сейчас отсутствует


СКАД не любит, когда много шарниров сходится в одном узле. Как вариант — а) убрать лишние шарниры; б) если по результатам расчёт перемещения адекватные — забить на ругань СКАДа.


? (Тюмень, Россия)


Сейчас Вы — Гость на форумах «Проектант». Гости не могут писать сообщения и создавать новые темы.
Преодолейте несложную формальность — зарегистрируйтесь! И у Вас появится много больше возможностей на форумах «Проектант».

Последние сообщения на Строительном форуме

18 Января 2023 года, 10:03

17 Января 2023 года, 08:04

12 Января 2023 года, 11:49

12 Января 2023 года, 10:59

04 Января 2023 года, 13:41

28 Декабря 2022 года, 16:08

20 Декабря 2022 года, 16:16

20 Декабря 2022 года, 15:02

08 Декабря 2022 года, 16:29

04 Декабря 2022 года, 14:42

01 Декабря 2022 года, 11:02

23 Ноября 2022 года, 16:34

23 Ноября 2022 года, 15:48

21 Ноября 2022 года, 08:56

21 Ноября 2022 года, 08:55

1 3 . У с т о й ч и в о с т ь

13. Устойчивость

Для каждого указанного пользователем загружения (или комбинации загружений) SCAD позволяет определить:

коэффициент запаса устойчивости;

первую форму потери устойчивости (без анализа кратности);

свободные длины стержневых элементов.

13.1 Постановка задачи

Задача устойчивости решается в классической

постановке для упругой системы и в предположении, что все

приложенные к системе внешние нагрузки (следовательно, и

внутренние силы) растут пропорционально одному и тому же

параметру λ. То значение параметра λ, при котором матрица

жесткости системы А(λ) впервые

перестает быть положи

тельно определенной, является критическим, а соответ

ствующее значение λ — коэффициентом запаса устойчивости

(КЗУ).

Матрица жесткости А(λ) =

Ao — B(λ) состоит из

обычнойматрицы жесткости Ao и матрицы толкающихреакций B(λ), которые определяются сжимающими силами в стержнях, напряжениями сжатия в конечных элементах оболочечного типа и т.п. Напоминаем, что положительная определенность матрицы жесткости означает, что при любых

значениях узловых перемещений и поворотов u потенциальная энергия системы положительна (это значит, что для деформирования системы необходимо затратить энергию и, следовательно, она оказывает сопротивление деформированию,

она является отпорной).

Если система теряет устойчивость, она теряет отпорность и ее матрица жесткости становится вырожденной (с нулевым детерминантом), а в закритическом состоянии система получает отрицательную отпорность (при ее принуди

тельном деформировании выделяется ранее накопленная потенциальная энергия толкающихреакций) и ее матрица жесткости становится знаконеопределенной.

Таким образом, задача оценки устойчивости равно

весия сводится к проверке положительной определенности матрицы жесткости при пробном значении коэффициента λ .

Необходимо отметить, что с помощью проверок

матрицы жесткости можно отыскать только те критические состояния, при которых потеря устойчивости происходит по

251

1 3 . У с т о й ч и в о с т ь

13.2 Поиск коэффициента запаса устойчивости

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

конечного элемента и не вызывает узловых перемещений и поворотов. Поскольку для всех типов конечных элементов соответствующие критические величины λкр известны (они вычисляются по простым формулам), то это значит, что следует, кроме всего прочего, проверить неравенство λ > λкр для всех конечных элементов.

Поиск коэффициента запаса устойчивости (КЗУ) ведется в интервале [0,Λ], где Λ — число, заданное пользователем, (оценка того значения КЗУ, которое считается уже безразличным для оценки качества системы) и с точностью ε, которая также задается пользователем.

При этом решается задача определения минимального λ, при котором происходит вырождение матрицы А(λ).

Матрица А(λ) составляется из матриц устойчивости отдельных конечных элементов. Если в системе нет ни одного элемента, способного терять устойчивость (например, в стержневой системе все стержни растянуты), то выдается сообщение, что система «абсолютно устойчива«.

Далее проверяется устойчивость системы при λ = Λ (т.е. положительная определенность матрицы А(Λ)). Если это условие выполнено, то выдается сообщение о том, что КЗУ больше заданного максимума.

Если условие положительной определенности А(Λ) не выполнено (об этом свидетельствуют отрицательные значения на главной диагонали матрицы жесткости, преобразованной в процессе решения системы уравнений), производится анализ положительной определенности матрицы А(Λ/2),…, т.е. используется стандартный метод половинного деления. Этот процесс продолжается до тех пор, пока не найден интервал 1, λ2) такой, что λ2 — λ1 ≤ ε и матрица А1) положительно определена, а матрица А2) этим свойством не обладает. При этом величина λ1 считается КЗУ.

При составлении матрицы устойчивости для каждого конечного элемента (способного терять устойчивость) вычисляется значение λкр, которое приводит к потере устойчивости КЭ. Если min λкр < Λ, интервал поиска сокращается, а номер элемента, для которого достигается min λкр, сообщается в протоколе.

252

1 3 . У с т о й ч и в о с т ь

13.3 Форма потери устойчивости

В предположении, что определенный на первом этапе коэффициент запаса устойчивости является точным, SCAD

производит решение задачи об определении собственного вектора при известном собственном значении задачи

Заметим, что правые части системы равны нулю, т.е. отыскиваются такие значения узловых перемещений и поворотов u, которые вызываются только внутренними сжимающими напряжениями и усилиями. Поперечные нагрузки, как известно, не влияют на значения критических сил и вид формы потери устойчивости. Поскольку уравнение (а) решено при нулевой правой части, то форма потери устойчивости определена лишь с точностью до множителя. Ее уменьшение или увеличение в любое число раз не нарушает условие (а).

Если в системе имеются стержневые элементы, то

13.4 Свободные длины

можно определить их свободные длины, т.е. длины таких же,

но шарнирно опертых стержней, у которых критическая

сила Nкр совпадает с продольным усилием в стержне

системы в момент потери устойчивости (Nкр=λ1*N).

Поскольку по формуле Эйлера Nкр = π2EJ / l2, свободная

длина будет lo = (λ1N / π2EJ )1/2,

где EJ — жесткости стержней в главных плоскостях инерции

(для пространственной задачи по две для каждого стержня).

253

1 3 . У с т о й ч и в о с т ь

13.5 Ввод данных

Рис. 13.5.1. Диалоговое окно

Проверка устойчивости

Ввод данных для проверки устойчивости выполняется в одноименном диалоговом окне (рис. 13.5.1), которое

вызывается из раздела Специальные исходные данные в Дереве проекта. Для ввода данных необходимо выполнить такие операции:

Äс помощью комбинаторных кнопок задать режим проверки вычисление коэффициента запаса устойчивости, форм потери устойчивости и свободных длин стержневых элементов;

Äв полях Масштабный множитель и Точность вычислений следует ввести соответствующие значения (по умолчанию приняты 2 и 0.01);

Äактивизировать опции, определяющие вид данных, для которых выполняется проверка устойчивости: по загружениям или по комбинациям загружений, для всех загружений (комбинаций) или только для выбранных; в последнем случае выбор нужных

данных выполняется в списке загружений (комбинаций).

Масштабный множитель параметр используется

для ограничения интервала поиска коэффициента запаса устойчивости. Если его значение больше заданного, система считается устойчивой.

Точность вычислений параметр задает критерий

окончания итерационного процесса поиска коэффициента запаса устойчивости. При очень малых значениях этого параметра время расчета может существенно увеличиться.

Для удаления подготовленных данных и отказа от анализа устойчивости используется кнопка Удаление данных.

254

1 4 . С п е к т р ы о т в е т а

14.Спектры ответа

14.1Расчет на сейсмические воздействия

Выведенный из положения равновесия линейный неконсервативный осциллятор совершает затухающие колебания, которые описываются дифференциальным

уравнением

&&

&

2

x = 0,

(14.1)

x

+ 2ϕ ω x + ω

где

ω – собственная круговая частота системы без затухания (рад/с);

ϕ – относительное демпфирование. При ϕ < 1 решение уравнения (1) имеет вид

x = Ae−ϕωt sin(ωD t + α) ,

где

ωD = ω1 − ϕ2 частота с учетом затухания,

А, α – коэффициенты, которые зависят от начальных условий.

Обычно для строительных конструкций ϕ<<1 и

практически ωD

≈ ω .

Если на массу действует сила F(t), то ее перемещения

описываются уравнением

2

&&

&

x = F(t) / m,

(14.2)

x + 2ϕ ω x + ω

общее решение которого при нулевых начальных условиях можно записать с помощью интеграла Дюамeля

1

t

x =

òF (t)exp[−ρω(t z)]sin ωD (t z)dz

(14.3)

mωD

0

При

движении основания

&&

с ускорением x0 (t)

(кинематическое

возмущение)

на

массу

m

действует

переносная

сила

инерции

&&

(t) .

Поэтому

F(t) = −mx0

уравнение, описывающее относительные перемещения массы в системе координат, связанной с основанием, имеет вид

&&

&

+ ω

2

x

&&

(t) ,

(14.4)

x

+ 2ϕω x

= −x 0

а его решение

t

1

−ϕω(tz)

x = −

ωD

ò

x(t)e

sin ωD (t z)dz

(14.5)

0

&&

При

определении

абсолютного ускорения

массы

&&

&&

получаем при обычных малых значениях ϕ, что

xα

= x + x0

&&

2

(14.6)

x

α ≈ −ωD x

Нами

рассматриваются

колебания

линейных

255

1 4 . С п е к т р ы о т в е т а

дискретных систем со многими степенями свободы,

полученные из любых континуальных или комбинированных систем после применения к ним процедуры дискретизации метода конечных элементов (МКЭ). При этом решается

система обыкновенных дифференциальных уравнений

[

M

]{ }

+

[

K

]{ }

{ }

(14.7)

u&&

u =

0 ,

где

{u} – вектор перемещений;

[M] – матрица массы;

[K] – матрица жесткости.

Вынужденные колебания линейной дискретной системы с затуханием по гипотезе ФойгтаКельвина описываются

системой обыкновенных дифференциальных уравнений

[M ]{u} + [C ]{u} + [K ]{u} = {F(t)} ,

(14.8)

&&

&

где

[C] – матрица диссипации энергии;

{F(t)} – вектор нагрузки.

В случае

кинематического возмущения в

качестве

нагрузки выступают переносные силы инерции и

система

уравнений (14.8) записывается в виде

0(t) ,

(14.9)

[M ]{u} + [C ]{u} + [K ]{u} = -[M ]{I}x

&&

&

&&

где {u} – вектор относительных перемещений (например, в системе координат xOy, связанной с основанием);

{I} – вектор, компонентами которого являются

косинусы углов между направлениями перемещений по координатам и вектором ускорения основания;

x&&0 (t) ускорение основания.

Решение уравнения (14.9) отыскивается в виде

разложения его по формам собственных колебаний системы (так называемая модальная суперпозиция”)

n

{u} = å{F j }Yj (t) ,

(14.10)

j=1

где n – число степеней свободы системы (учитываемых собственных чисел и векторов);

F j j-я форма собственных свободных колебаний

дискретной системы;

Yj (t)

неизвестные функции

времени,

которые

необходимо определить.

Будем предполагать, что для матрицы диссипации [С]

выполняется условие

T

[C ]{F j } =

ì0 ,

i ¹ j

{Fi }

ï

í

T

[M ]{Fi } , i = j

ï2ji wi {Fi }

î

где wi i-я собственная частота дискретной системы.

После подстановки (14.10) в (14.9) и умножения (14.9)

на вектор

{Fi }T

для

нахождения

Yi (t)

получаем

дифференциальное уравнение

256

1 4 . С п е к т р ы о т в е т а

&&

2

Ψi

= −D i x

0

(t) ,

(14.11)

Ψ + 2ϕi ωi Ψi + ωi

&&

D i =

{Φi }T [M ]{I}

&&

где

{Φi }T [M ]{Φi }

x0

(t)

Для

определения

инерционных

нагрузок на

конструкцию необходимо знать абсолютные ускорения ее точек:

{ a} { }

n

i }(

)

n

0

å

j

i 0

å

ja

{

&&

{ i }

&&

u

= u

+ {}Ix (t) =

Φ

Ψ (t) + D x

(t)

=

Φ Ψ (t)

&&

&&

&&

&&

i=1

i=1

Сейсмические колебания дискретных систем описываются

&&

&

&

&&

&

&&

&

&&

(t) ,

(14.12)

[M]{u}+[C]{u}+[K]{u}=−[M]({Ix}x0(t) +{Iy}y0(t) +{Iz}z0

где

&&

&&

и

&&

компоненты

расчетной

x

0 (t) , y0 (t)

z0 (t)

акселерограммы. Если какаялибо из компонент не учитывается, то соответствующая часть нагрузки из (14.12) исключается.

257

1 4 . С п е к т р ы о т в е т а

14.2 Поэтажные акселерограммы и спектры ответа

При анализе сейсмостойкости оборудования необходимо определить действующие на него инерционные сейсмические нагрузки. Принят метод раздельного рассмотрения

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

Расчет производится следующим образом:

определяются (вычисляются) вынужденные колебания сооружения при сейсмическом воздействии, заданном расчетной акселерограммой на грунте;

определяются законы изменения абсолютных ускорений выбранных точек конструкции;

принимая акселерограммы в качестве возмущающего воздействия, рассчитывают вынужденные линейные колебания линейных неконсервативных осцилляторов, и

находят зависимость модулей их максимальных абсолютных ускорений от их собственных частот и коэффициентов диссипации.

Таким образом, для каждой исследуемой точки решается

уравнение (2), в котором:

зафиксирован коэффициент диссипации ϕ;

нагрузкой является вычисленное возмущающее воздействие от расчетной акселерограммы;

наборы собственных частот осциляторов при расчете спектра ответа зафиксированы и приведены в таблице 14.1.

Таблица 14.1.

Частотный диапазон (гц)

Приращения (гц)

0.2

– 3.0

0.10

3.0

– 3.6

0.15

3.6

– 5.0

0.20

5.0

– 8.0

0.25

8.0

– 15.0

0.5

15.0 – 18.0

1.0

18.0 – 22.0

2.0

22.0 – 34.0

3.0

К приведенным в табл. 14.1 значениям частот

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

Для каждого указанного осцилятора находятся решения на всем диапазоне действия акселерограммы и выбирается максимальное по абсолютной величине, которое и

является спектром ответа данной точки на действие данной акселерограммы.

258

1 4 . С п е к т р ы о т в е т а

14.3 Ввод данных и анализ результатов

Рис. 14.3.1. Диалоговое окно

Спектры ответа

Рис. 14.3.2. Диалоговое окно

Результаты

Окно постпроцессора Спектры ответа (рис. 14.3.1) содержит список с номерами узлов, для которых необходимо вычислить спектры ответа (Список узлов). Имена акселерограмм, по которым необходимо выполнить расчет спектров, выбираются из списка имеющихся (Исходные) и переносятся в список используемых в расчете (Выбранные) с помощью кнопки Добавить. Если случайно выбрана не та акселерограмма, то ее можно убрать из списка Выбранные кнопкой Вернуть. Кроме того для расчета необходимо установить направление действия, ввести коэффициент диссипации (в диапазоне от 0 до 1) и, если это необходимо, задать коэффициенты диссипации по формам (например, для 4-х форм следует ввести через пробел четыре числа). Если введено меньше значений, чем задано форм, то последнее

введенное значение будет отнесено ко всем последующим формам.

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

Расчет выполняется после подготовки всех данных нажатием кнопки ОК. После окончания расчета открывается доступ к кнопке Результаты.

Просмотр результатов и их документирование выполняется в диалоговом окне Результаты. Для построения спектров необходимо назначить номер узла, номер загружения и имя акселерограммы. Программа позволяет получить на

одном графике спектры по одному или нескольким направлениям, во всем диапазоне частот или в заданном.

Полученные графики и результаты расчета могут быть выведены на принтер кнопками Печать графиков и Результаты (таблицы) соответственно.

259

1 4 . С п е к т р ы о т в е т а

14.4Подготовка файлов акселерограмм

Файлы акселерограмм находятся в корневом каталоге ПВК SCAD и имеют расширение SPC. При передаче

пользователям постпроцессора поставляются для примера четыре стандартные акселерограммы.

Рассмотрим пример задания акселерограммы:

Расчетная акселерограмма в cм/(c*c) для ПЗ на площадке атомного реактора.

Компонента – SH. Mодель – 1c. Amax = 45.1 cм/(c*c).

Количество точек N = 2047; Шаг по времени Dt = 0.05000 c.

#

0.01 2047 0.05

0.0

0.0

0.1

0.3

0.4

0.6

0.5

0.0

–2.1

–2.6 …

После символа # следуют:

коэффициент перевода заданных ускорений в м/ceк2 ;

количество точек;

шаг по времени;

значения ускорений.

Аналогичным образом может быть подготовлен файл с нужной акселерограммой (файл с расширением SPC следует поместить в каталог с исходными данными). Для использования акселерограмм, поставляемых в составе комплекса, соответствующие файлы необходимо скопировать из каталога SCAD в каталог с исходными данными.

260

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Косяки SCAD

Неточности, ошибки, косяки SCAD — 6 шт


№6 Реакции в связях или нагрузки от фрагмента схемы от сейсмических загружний или комбинаций с ними.
Проблема возникает в «вылеченных» версиях программы, и в старых и в новых. Заключается в следующем — когда вы хотите посмотреть нагрузки на фрагмент схемы или реакции в связях от комбинации загружений, в которую входит сейсмической, то программа вам их покажет, только неверно.

До обнаружения проблемы я выдавал задание трижды, а Вы?

№5 Стержни (колонны и балки) в узлах стыка с пластинчатыми элементами 
Проблема присутствует во всех версиях.
Если вертикальный стержень имеет стык с пластинчатым элементом и речь идет о стальном каркасе и железобетонном перекрытии, то в этом месте иногда возникают усилия, которые приводят к увеличению сечения вертикального стержня.

Зачастую проблема возникает в местах несимметричного примыкания пластинчатых элементов к вертикальному стержню. 

Так же проблема может возникать и при примыкании пластинчатого элемента к горизонтальному стержню, особенно если с двух сторон несимметричная сетка или примыкают к стержню трех узловые элементы, или как в №1

№4 РСУ и динамические загружения при использовании расчётных схем SCAD 11 в SCAD 21
Проиллюстрировать невозможно, суть заключается в следующем: если мы используем файл с уже полностью готовой расчётной схемой из 11 версии в 21, то необходимо пересохранить все загружения (естественно с вводом типов и видов нагрузок), пересоздать динамические загружения заново, удалить и создать заново РСУ.

Выявлено следующим образом: существовало два снеговых загружения — на всю ферму и на половину. В РСУ загружения были как взаимоисключающие. Однако при проверке, половина фермы «краснела», и как раз та половина, которая была нагружена во втором снеговом загружении. Увидеть это в отчёте или в формуле РСУ невозможно (что оба загружения суммировались), но при удалении второго загружении (дезактивация загружения не помогает) все элементы фермы проходили снова.

Динамические загружения (ветер и сейсмика) искажаются. В частности это касается преобразования статических нагрузок в массы (некоторые строки пропадают) и, для пульсации ветра, слетает выбранное статическое ветровое загружение. При восстановлении этих данных результаты неудовлетворительные, так как многие элементы, ранее удовлетворяющие проверки сечений, более не удовлетворяют («краснеют»)
№3 При копировании фрагмента схемы не все связи в узлах копируются вместе с элементами SCAD 21

№2 Смена типов жесткостей при «удаление дублирующихся типов жесткостей» SCAD 21
Иногда, при удаление дублирующих жесткостей происходит произвольная замена.

№1 Совместная работа пластинчатого элемента и стержня SCAD 21 
при расчёте схемы каркасного металлического здания
При определённом соотношении толщины к длине пластины или при непосредственной близости к узлу стыка горизонтального стержня (балки) с вертикальным (колонной), пластинчатый элемент создаёт пиковую поперечную силу, что приводит к увеличению сечения горизонтального стержня.

FAQ 004657 RU


  • Перейти к
  • События

  • Видео

  • Модели

  • База знаний

  • Снимки экрана

  • Функции продукта

  • Часто задаваемые вопросы

  • Проекты заказчиков

    Рекомендуемые события

    Видео

    Модели для скачивания

    Статьи из Базы знаний

    Снимки экрана

    Статьи в Функциях продукта

    Отображение топологии на деформированной конструкции

    При активации флажка «Топология на объектe с поиском формы» в навигаторе Изобразить, будет отображение модели оптимизировано на основе геометрии поиска формы. Таким образом, будут, например, нагрузки всегда отображаться в соответствии с деформированной конструкцией.

    Часто задаваемые вопросы (FAQ)

    • Хотя я смоделировал две идентичные конструктивные системы, у меня получилась другая форма. Почему?

    • Каким образом можно составить факторизованные сочетания постоянной нагрузки в контексте поиска формы?

    • Похоже, что после моего расчета в модуле RF-FORM-FINDING стержни не деформировались. Что я сделал не так?

    • Как смоделировать шатровую крышу с двумя конусами?

    • Как смоделировать подвесную мембранную конструкцию кровли с линейными опорами?

    • Как можно в программе RFEM смоделировать воздухоопорный объект?

    • Как смоделировать вантовую сеть в дополнительном модуле RF-FORM-FINDING?

    • Какие программы Dlubal необходимы для расчета мембранных и натяжных конструкций?

    • Мне нужно проанализировать вантовые и натяжные конструкции. Можно ли это сделать в программе RFEM или RSTAB?

    • Модель вантовой конструкции, созданную в программе RFEM 5.13, нельзя рассчитать в текущей версии программы. Программа все время отображает сообщение о том, что «Матрица жесткости сингулярна», хотя в исходной версии программы можно было модель нормально рассчитать. Как это можно исправить?

    Другие часто задаваемые вопросы

    Проекты заказчиков

    Валянцiна

    *
    Участник форумов

    Сейчас отсутствует Сейчас отсутствует


    Помогите пожалуйста!! скад ругается, что система геометрически изменяема( посмотрите пожалуйста что там не так…  


    Инженер-конструктор (Минск, Беларусь)

    Miko (Тарантул)

    ***
    Куратор подраздела «Основания и фундаменты, механика грунтов»

    http://revitconsalting.blogspot.ru/

    Сейчас отсутствует Сейчас отсутствует


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


    Инженер-конструктор (Москва, Россия)

    Валянцiна

    *
    Участник форумов

    Сейчас отсутствует Сейчас отсутствует


    мне сказали просто отключить расчет на устойчивость  [доволен]


    Инженер-конструктор (Минск, Беларусь)

    Miko (Тарантул)

    ***
    Куратор подраздела «Основания и фундаменты, механика грунтов»

    http://revitconsalting.blogspot.ru/

    Сейчас отсутствует Сейчас отсутствует


    [улыбка] так в логе так и написано что не реализован расчет на устойчивость для металла, а Вы паникуете. Лог расчета это первая вещь которую нужно внимательно изучить даже если результат положительный и расчет выполнен.


    Инженер-конструктор (Москва, Россия)

    Валянцiна

    *
    Участник форумов

    Сейчас отсутствует Сейчас отсутствует


    [улыбка] так в логе так и написано что не реализован расчет на устойчивость для металла, а Вы паникуете. Лог расчета это первая вещь которую нужно внимательно изучить даже если результат положительный и расчет выполнен.

    ну я начинающий пользователь скад)))


    Инженер-конструктор (Минск, Беларусь)

    Miko (Тарантул)

    ***
    Куратор подраздела «Основания и фундаменты, механика грунтов»

    http://revitconsalting.blogspot.ru/

    Сейчас отсутствует Сейчас отсутствует


    Тогда лучше сначала посчитайте вручную(такое маленькое здание не долго) и в скад и сравните результат, не стоит слепо верить этому инженерному калькулятору слепо, он способен считать лишь определенные вещи с некой долей точности. Для пример посчитайте ферму свою методом Риттера или Кремона и сравните с SCAD, в частности свой опорный раскос, разница будет.


    Инженер-конструктор (Москва, Россия)

    Валянцiна

    *
    Участник форумов

    Сейчас отсутствует Сейчас отсутствует


    ок спасибо)


    Инженер-конструктор (Минск, Беларусь)

    Seminar

    Участник форумов

    Сейчас отсутствует Сейчас отсутствует


    5-6 ноября в Минске по адресу ул. Берсона, 1А, актовый зал (пл. Независимости, за Красным костёлом) пройдет БЕСПЛАТНЫЙ семинар, посвященный новой версии SCAD Office 21.1. В программе обсуждение новых возможностей, мастер-класс и многое другое.

    Докладчики:
    Карпиловский Виктор Семенович, канд. техн. наук — директор компании SCAD Group
    Криксунов Эдуард Зиновьевич, канд. техн. наук — директор компании SCAD Soft
    Скорук Леонид Николаевич, канд. техн. наук — ведущий научный сотрудник SCAD Soft
    Юрченко Виталина Витальевна, канд. техн. наук — ведущий научный сотрудник SCAD Soft

    Пожалуйста, звоните Ольге, она Вас зарегистрирует на мероприятие: (029) 3 999 252


    ? (Минск, Беларусь)

    Фома

    *
    Участник форумов

    Сейчас отсутствует Сейчас отсутствует


    СКАД не любит, когда много шарниров сходится в одном узле. Как вариант — а) убрать лишние шарниры; б) если по результатам расчёт перемещения адекватные — забить на ругань СКАДа.


    ? (Тюмень, Россия)


    Сейчас Вы — Гость на форумах «Проектант». Гости не могут писать сообщения и создавать новые темы.
    Преодолейте несложную формальность — зарегистрируйтесь! И у Вас появится много больше возможностей на форумах «Проектант».

    Последние сообщения на Строительном форуме

    18 Января 2023 года, 10:03

    17 Января 2023 года, 08:04

    12 Января 2023 года, 11:49

    12 Января 2023 года, 10:59

    04 Января 2023 года, 13:41

    28 Декабря 2022 года, 16:08

    20 Декабря 2022 года, 16:16

    20 Декабря 2022 года, 15:02

    08 Декабря 2022 года, 16:29

    04 Декабря 2022 года, 14:42

    01 Декабря 2022 года, 11:02

    23 Ноября 2022 года, 16:34

    23 Ноября 2022 года, 15:48

    21 Ноября 2022 года, 08:56

    21 Ноября 2022 года, 08:55

    SCAD Office 11.5, ���������� ������ , ��������, �������

    ��������� 24.10.2005 — 10:18

    �����������
    ������ ������

    ������: ������������
    ������������ �: 8234

    ���������: 469
    �����������: 7.11.2004

    ���������:

    ����
    �������: ����
    �����������: —
    ������� �������: 43 ���(�)

    � ������ 2006 ���� ������� ����� ������ ������� ������� � ������� ������������ ����������� SCAD 11.1.
    � ����� ������ SCAD ����� ����������� �� ���������� ����� � ��������� � ��������� ������, ���������� �������������� ����� ������ ��������� �������� � �������������� (UNDO/REDO), ���������� ����� ����� ������������ ��������� ��������� ������, ����������� ����������� ������������� � �������� �������� ��������� �������� ����, ���������� ����� ��������� ���������� ������� ��������������� �� ���- � ��������������� � ��.

    ��������������� ��������� ��������� SCAD Office ����� �������� ����� ��� �������. ��������� ����� ��������� «������», �������������� ������ ��������� ��������� � �����������. � ��������� ����� ����������� ���������� ����� ���� � ��. ��������� ����� ����� ���������� ��������� ������.

    ��������� _http://www.pss.spb.ru/news_soft.shtml#04_47

    ���� � WareZ-�.

    ������� � ������ ��������

    �������� ���

    +���������� ���������

    �������

    ��������� 6.12.2006 — 23:33

    �����������
    ������ ������

    ������: ������������
    ������������ �: 40764

    ���������: 123
    �����������: 13.08.2006
    ��: Vrn
    ���������:

    ����
    �������: ����
    �����������: —
    ������� �������: 3 ���(�)

    ������� � ��� � ����� ������� ���� ����������� ���������, � ������������ ��� � ������� ����������?
    (��� ����� ������� ��������� � ������ ������������ ��� ������� � ��������������)

    ������� � ������ ��������

    �������� ���

    +���������� ���������

    ��������� 8.12.2006 — 18:04

    �������
    ������ ������

    ������: ������������
    ������������ �: 40270

    ���������: 9
    �����������: 4.08.2006

    ���������:

    ����
    �������: ����
    �����������: —
    ������� �������: 0 ���(�)

    ������(depak @ 7.12.2006 — 00:33) *

    ������� � ��� � ����� ������� ���� ����������� ���������, � ������������ ��� � ������� ����������?
    (��� ����� ������� ��������� � ������ ������������ ��� ������� � ��������������)

    � ����� � �������� «���������� ����������» ���� ����� ������� «������������ �������». ��������� � � ��� ���� ����� ������� ��������� � ������� �������, ������ � ������������ �������», �� ��� ������ ��� ��������, � �� ��� �������.

    ��������� �������������� Ustas — 8.12.2006 — 18:36

    ������� � ������ ��������

    �������� ���

    +���������� ���������

    ��������� 8.12.2006 — 18:39

    �����������
    ������ ������

    ������: ������������
    ������������ �: 40764

    ���������: 123
    �����������: 13.08.2006
    ��: Vrn
    ���������:

    ����
    �������: ����
    �����������: —
    ������� �������: 3 ���(�)

    Ustas �������! �� ��������� � ������� �������� ����� � ��������� �������. ������ ��� ������ ������� ������ �������. �������!

    ������� � ������ ��������

    �������� ���

    +���������� ���������

    ��������� 18.12.2006 — 10:42

    �������
    ������ ������

    ������: ������������
    ������������ �: 52378

    ���������: 14
    �����������: 18.12.2006

    ���������:

    ����
    �������: ����
    �����������: —
    ������� �������: 0 ���(�)

    ��� ����� ����������,������ � S�AD� ��������� ������:
    «������ ��� ���������� ������� 99.00%.
    ���������� ����� ��������� 21.
    ����� ���� 6. ��������� ����� ��������� 3.»
    ������ �� ��������. ��� ���� ����������?

    ������� � ������ ��������

    �������� ���

    +���������� ���������

    ��������� 18.12.2006 — 11:34

    ��������
    ������ ������

    ������: ������������
    ������������ �: 41425

    ���������: 30
    �����������: 21.08.2006

    ���������:

    ����
    �������: ����
    �����������: —
    ������� �������: 0 ���(�)

    ��� ����� ���� ������� � ������������ �������� ����������, ��������, ���� � ���� ��������������� �������, �� ������� ����������� �������, ��� ����� �������� � ��, ���� �� ����� �������� ������� ������� 0,4�0,4, �� ��� � � ����� � ��!!!!!
    ������ ������� ���������.
    � ������ ���� ����� ������ ��� � ���� ���������� ���� �� �� ����������� ����������� � � ���������� ���������� ������� ����� ��������� ���� ����������� � 99%
    � ����� ����� � ������������ ������� �� ������

    ������� � ������ ��������

    �������� ���

    +���������� ���������

    ��������� 18.12.2006 — 14:57

    �������
    ������ ������

    ������: ������������
    ������������ �: 52378

    ���������: 14
    �����������: 18.12.2006

    ���������:

    ����
    �������: ����
    �����������: —
    ������� �������: 0 ���(�)

    � ����������� � ���� ��� ������. � ����� �������� ������: ���� ���������� �/� ������ ������. ������ ����������� ����.����� ������� ������ � �������.� ������ ���� �������� �������������� �������� �� ����,������������ � �.�. � ������ ������ � ���, ��� ������� ��������(���������,�������),������� ��������� ��� ���� � ���������� �����������(���� � ������ — ��� �����,� �� �����- ������� �� ��������.� �������� �� ���� ��� ������).���-�� ������,������� ��� �������,��� ������������ ������ ������� ���������� ��� EF=EI=1? ��� ����� �������?� ������ ��� ����� ��� �������?
    � ��� ����� �������,��������,������ ������ �������������� ������������.
    «������������� ���������� ������� �� ����������� 1 � �����:
    16 22 544″
    � ����� ������������ ���� ����,� ������ ������ � ���� �����. ����� ���-�� ������� � ��������� ����,������ ��� ������ �� ����.
    � ������ �� ���� �������� �������������� ������������? ���� � ��� �� �����,� �������, ������ �� �������� ������� �� ��� 6. ��� � ���� �� ��������?

    ������� � ������ ��������

    �������� ���

    +���������� ���������

    ��������� 18.12.2006 — 16:00

    ��������
    ������ ������

    ������: ������������
    ������������ �: 41425

    ���������: 30
    �����������: 21.08.2006

    ���������:

    ����
    �������: ����
    �����������: —
    ������� �������: 0 ���(�)

    � ���� �������� ������� ������ ���������, � ����� ����� �������� �������
    ��������� �������������� ��������� �����, �� ���� �������������� ���� �������� ������� ����� �����, ������� ������ ���������� ��� �� ������ ����� ����, � ��� ���� ������� ������ �������� ����� �������� ���������. ����������� ������� ������ ��� ������������ ����������� ������� � ��������������, ��� ��������� ������� 0,4-0,5 � (� ��������� ������� ��� � 0,2 ����� ����, �� ������ ��� ������ ������, ��� ��� ��� ���� ���������� ���� �������� ��������� � �������� � ����� ������������ ���������� ����������).
    ����� �������� ����� �������� �����, �������� ��� ��� �����������, ����� ������ �� ��� �������� ��� �������������� �� ������� �� ������= ������ ����������� ��� �����,
    � ���� ������� �� �������� ��������, ������� ��������� ������ ������� �� ���������� ����� ������� � �������� ������� ������� (�� ����), �������� � ���������� �������, ������ ��� ������ ������� �������, � ������ ��� 1,5 ������� �������. �������� ��� ��� ���� ����� �������� �������� ����� ����� �������� �������� � ���� ����� (����), ��� ��� �������� �������� �������� ������ ���������� ���������� � ����� � ���� ��������.
    �������� ����������� ��������� «������������» ���������� ��������� ����� ��� � (��� �������������� ����), ����� �������� ��…�� � �� �����������, ��� ����� �������� ��� �����.
    ��� ��� ������� ������� ������� �� ������������ ����� �� �����, ������� �� ����� 0,3 ��� 0,4, � ��� � �����������, � ���� ����������� ����� ����������, ��� ��� ������� � 4 ���������, — ��� ���� ���� ��� ���������. (����� ���������� ��� ���������).
    ����� �� �������� ��� ������ ������� � ������� 5, ������ ���� ������ �� ���� 6 �������! ����������!.
    ����������� �������� ������ ���������� ���� ����� — ����������� ����������� ��������� � �������� ������ (�� ��� ���� ������� ������� �� ���� �� ������������� ���������.).
    �������� ��� ����� � ������� � ��������� ��� ������, ����� ��� ������ ����������� ������� � ������ ��� ������� (������� ������ ���������), ����� �� ����� ���� ������ ����������� ���, ������ ��������� ���������, �� �������� ��������� �� �������� � «�����».
    �������� — ���� ����������� ����������������!, �� ��� ����� ���������� ���������, ����������� ��� ������ �� ��������� ������ ����� ������, � ����� — �����! ������!

    P.S. ������ �������� �� Sergeyka_@tut.by ��� ��������, — ����� ������ ����� ��������� ��� � ���� �����

    ������� � ������ ��������

    �������� ���

    +���������� ���������

    ��������� 18.12.2006 — 16:22

    �������
    ������ ������

    ������: ������������
    ������������ �: 52378

    ���������: 14
    �����������: 18.12.2006

    ���������:

    ����
    �������: ����
    �����������: —
    ������� �������: 0 ���(�)

    ������� �������! �� ��� �������. ��� ����������, ��� � ����� ����� ��� �������� �� ���� ����,� �� ������������� ������ �����…
    ��� ����� ���������� ������� ���������� ���� � ������? � ���������� ��� ���� �� ������ �������. ��� ���������� �������� ����� ���� ���� � ���������� ����������� � �������? ��� ����� �������?

    ������� � ������ ��������

    �������� ���

    +���������� ���������

    ��������� 18.12.2006 — 16:35

    ��������
    ������ ������

    ������: ������������
    ������������ �: 41425

    ���������: 30
    �����������: 21.08.2006

    ���������:

    ����
    �������: ����
    �����������: —
    ������� �������: 0 ���(�)

    ����� ���� � ����� �������, �� �� ����� ��������, ��� ������ ��������� �����, � �������� � ��� ��� ���� ������������ �������� ��������� ����� ���������� ������, � ��� ������ ������� ����� ��������� ���������� ���� �� ��������� �������
    � ����������� ��� � ��� ��������� ��� �� ��������� � � ��� ��� ������ � ����������� ��������� (��� ������ �� ������ ����� ��� ��������� ������ ����, ���� ��� �� �������� �����, ��� ������� ��� ����������� ����� ������, � ����� ��� ����������� ������������, �� ��� ���������� ��� ������ ���!).
    �������� �� �������������� �������� ����� �������, � ����������� ��������� ���� ����� ����� �����, �� ��� ������ ������ ������������, � ������������� ����� (����� ���������� �� ���������).
    ������ �������� � ��� ��� �������� �� �������� ������� �������� ������ � ���� �� ����������, �� ����� ����� ����������� ������ ������� ���� �� n-�� ���-�� ��������� � ���� ���� ����������� ��������� ������ ������ �� ������� (������). � ��� ��������� ������� �� ����� ���������������, ����� ������ ������ ���������� ������� ���������� ������ (�� ��������� — 3).

    ���������, ����������� ��������, ��! ���� ���������� ����� � ������ ������ ���������, — ���������� ����� ��������� ���� � ���������� ����������� �����, � �� ���� ������� ��� � ������, ����� ������� ���� � �� ������, �� �� ��� ������� ����� ����� — ���������

    ��������� �������������� Seroga — 18.12.2006 — 18:31

    ������� � ������ ��������

    �������� ���

    +���������� ���������

    ��������� 18.12.2006 — 16:46

    �������
    ������ ������

    ������: ������������
    ������������ �: 52378

    ���������: 14
    �����������: 18.12.2006

    ���������:

    ����
    �������: ����
    �����������: —
    ������� �������: 0 ���(�)

    �� ����� �����.
    ��� ���� ��� ���� ��������. ��������������� ��������� ���������!!! � �������� ��� ��������. � �� ������������� �� �������� ���� �������. �������� ��� ����,��� ���������� ������ � ��������� ������� ��������� � �������,����� ��� ��������� ����� ����������. ��,��, ���� ��� ������� ������� ���������?��� ��� ����� ����������� ����������?
    �.�. ��������� ��� ������,� ���� �� ������ ���� �����- ����� �� @.

    ������� � ������ ��������

    �������� ���

    +���������� ���������

    ��������� 18.12.2006 — 17:02

    ��������
    ������ ������

    ������: ������������
    ������������ �: 41425

    ���������: 30
    �����������: 21.08.2006

    ���������:

    ����
    �������: ����
    �����������: —
    ������� �������: 0 ���(�)

    ���������, ��� ���������� ������ �� ���������, ����� �������� �� ��������� ����� ��������� � �����������, � ������������ �����, � ���������� ������ �� ��������� �� ��������� � ������� ������� «�������� �� ��������� �����». ����� �������, ��� ����� ����� ������

    ������� � ������ ��������

    �������� ���

    +���������� ���������

    ��������� 18.12.2006 — 17:10

    �������
    ������ ������

    ������: ������������
    ������������ �: 52378

    ���������: 14
    �����������: 18.12.2006

    ���������:

    ����
    �������: ����
    �����������: —
    ������� �������: 0 ���(�)

    ��� �� �� ������ �����,����� ��� ������� ����������….

    ������� � ������ ��������

    �������� ���

    +���������� ���������

    ��������� 18.12.2006 — 18:05

    ��������
    ������ ������

    ������: ������������
    ������������ �: 41425

    ���������: 30
    �����������: 21.08.2006

    ���������:

    ����
    �������: ����
    �����������: —
    ������� �������: 0 ���(�)

    ���� ����� ��� ���� ��������� � ����������� ��������� �� ���������� �� ���������, � ����������� ����������� ����������� ��� ����� , ��� � ������ ��������� ��������� ������. ���������� � �������� �������� ������ ������, �� ���� �������� ������� ����������� ��������� ���������� ��������� (��������� ������� ����� ��� �� ��� � ������� ����� �������������)
    � ���� ��� ����� ��� ��������, ��� ��� �����, ��� �� ��� �������,
    ����� ��������� ��� ������� ������ ��� �������,� 7,31 ��� �� ������ ����� ������ ���, � 11 ������� � ���� �� ���������, ��� ����������� ������� � ���, ����� ���� 11 ����, ������� ����� �������, ��������� ������ ���….

    ������� ���������� ��� �� � ��� ������� ��� ���������.
    �������� ������� ��� ���������� �������� � ����� ����� ������:
    1.����� �����
    2.����� �������
    3. �� ���� ������
    4. ��� ��������� �������� ���� ������ ��� ����� ��������, ��� ��������������…
    �� ��������
    -��� ������������ ������ ��������� ����� ������� ��� ������� ������������ �������������� �� ����� ��� Z
    -��������� ����� ������ �� ������ 2,3, ������ � ����� ��������� ��� ��� �����,
    � ���� � ������������, �� ����� �� �����������, ��� ����� ������ �������������, � ��� �� ������� �� �� ������ ���� ������� � � ���� ����� ������� ���������. ��� ���� ����� ��������� ��� ��������� ����, �� ������ ������ 1,23 ������ ���������� �� 100%
    ��� ��� ������� ����� ������� ������� �������� � �������� ���� ��� � ���� ������� ����������, � ������ ���� ����������� �������.
    ������� ��� �������� �������� �������� � ������������ ���ר�� �������!!!! ���� ��� ������������ �� ������� ���������� ������� ����������!
    ����� ����� �����, �������� ����������� �������, ������ ������� ��� �� ����� ������ �������!

    ������� � ������ ��������

    �������� ���

    +���������� ���������

    ��������� 19.12.2006 — 09:21

    �������
    ������ ������

    ������: ������������
    ������������ �: 52378

    ���������: 14
    �����������: 18.12.2006

    ���������:

    ����
    �������: ����
    �����������: —
    ������� �������: 0 ���(�)

    ������ ������� ���� �������� �������������,������� �������� �� �������!!! �������� �������� ����� ��������������….
    �������� ��� ��������� ��������…

    ������� � ������ ��������

    �������� ���

    +���������� ���������

    ��������� 19.12.2006 — 10:52

    �������
    ������ ������

    ������: ������������
    ������������ �: 31132

    ���������: 13
    �����������: 30.03.2006

    ���������:

    ����
    �������: ����
    �����������: —
    ������� �������: 0 ���(�)

    mel
    ������, ���� ������������ �������� ������, �� ��� ���������� ���� ������� ���������.
    � � ���� ������ ����� �� �������� � �������������� ���������� � ���� �������.
    ������ ���������� ���������� ��������� �������� ����� ����������, �.�. ������������� ������ �� ���������. ��������, ��������� � ��������� �� Y � Z � ���������� ~ �� ������� ���� ����������� ���������� �������. ��� ������� �������� ������� �� ���� ����� ������������. ���� �������� ������� ���, �� ����� �� �������������, ��� �������� � ��������� � ����������, ������ ��������� ~ 1/4 ������ ����������. ���� ��������� ������������� � ���� �����, �� ��� ������� �������� ������ ���������

    ������� � ������ ��������

    �������� ���

    +���������� ���������

    ��������� 19.12.2006 — 11:09

    �������
    ������ ������

    ������: ������������
    ������������ �: 52378

    ���������: 14
    �����������: 18.12.2006

    ���������:

    ����
    �������: ����
    �����������: —
    ������� �������: 0 ���(�)

    ����� � ������ � ���� ��� �� ����������…….
    ��� ������������� �������� �����…
    � �� ������ ��������� ����� ��������.� � ����� ������ ���������� ��������� ����������� ����,� ������ ������ 6�6�(����) ��������� �� ��������� ��������� ������� � ���������� (������)�10?
    �������� ������� ���… ��� ���������� �������� �� ������� ������� �� �������� ��� ����� ���� �������?

    � � ������ ����(�������) -«������» � ����� ���������..?

    ������� � ������ ��������

    �������� ���

    +���������� ���������

    ��������� 19.12.2006 — 11:32

    �������
    ������ ������

    ������: ������������
    ������������ �: 31132

    ���������: 13
    �����������: 30.03.2006

    ���������:

    ����
    �������: ����
    �����������: —
    ������� �������: 0 ���(�)

    ������(mel @ 19.12.2006 — 11:09) *

    ����� � ������ � ���� ��� �� ����������…….
    ��� ������������� �������� �����…
    � �� ������ ��������� ����� ��������.� � ����� ������ ���������� ��������� ����������� ����,� ������ ������ 6�6�(����) ��������� �� ��������� ��������� ������� � ���������� (������)�10?
    �������� ������� ���… ��� ���������� �������� �� ������� ������� �� �������� ��� ����� ���� �������?

    � � ������ ����(�������) -«������» � ����� ���������..?

    ���������� �� �������� � ����� �������� �������� ��� �������������� ��������� ���������, �.�. ������������ ���������� ������ ������. ���������� ���������� �� ������� ������ ����� ������� �������� � �������� �������������� �������� ���������. � � ����������� ���������� �������� �� ����������-������. ���������� ����� ��� �� ��������, ������� �������� ��� ���������� ��������� �������� ������ ��� �������� �����, ������� ����������� ����� ������� ����� �����. �� ������ �������� ���� �����.
    ������� ���������� ������� ����� ��������� ������� � ����� �����������.
    ����� ����� � ����� �������, ���������� ������� ������ � ���������� �������, ������������ ������ �������� ����. � ��� ���������� �� ��������� ���������� ��������� � ��������� � ����� ��������� ��������� ���. �������. ����� ��� �� �������� ������ �������, �������� ������� �� ������.

    ������� � ������ ��������

    �������� ���

    +���������� ���������

    ��������� 19.12.2006 — 11:41

    �������
    ������ ������

    ������: ������������
    ������������ �: 52378

    ���������: 14
    �����������: 18.12.2006

    ���������:

    ����
    �������: ����
    �����������: —
    ������� �������: 0 ���(�)

    �������,�����. � ������ ������������� ������� ������ ��� ���� ����� ������.
    �! � ��� ����� ���� � ���������..:��� �������� ������� ��� ���� ������� �� ���������� ������.� ����������(����. �����)? �� ��� ���� ��� �����.����� �� �������� ��������� � �������?
    � ������������? �����= ������*10? � ������� �� ����� ��������…..

    ������� � ������ ��������

    �������� ���

    +���������� ���������

    ��������� 19.12.2006 — 12:21

    �������
    ������ ������

    ������: ������������
    ������������ �: 31132

    ���������: 13
    �����������: 30.03.2006

    ���������:

    ����
    �������: ����
    �����������: —
    ������� �������: 0 ���(�)

    ������(mel @ 19.12.2006 — 11:41) *

    �������,�����. � ������ ������������� ������� ������ ��� ���� ����� ������.
    �! � ��� ����� ���� � ���������..:��� �������� ������� ��� ���� ������� �� ���������� ������.� ����������(����. �����)? �� ��� ���� ��� �����.����� �� �������� ��������� � �������?
    � ������������? �����= ������*10? � ������� �� ����� ��������…..

    ����� ����� ��� ���������.

    �� ���������� ����� �����, ��� � �� �����. ��� �� ����� �������������. �������-���������� ������������� ����� ������ ������ � �������������� ���������. �����������, ��� ������ ��� �������� ��������.

    ������� � ������ ��������

    �������� ���

    +���������� ���������

    ��������� 19.12.2006 — 12:26

    �������
    ������ ������

    ������: ������������
    ������������ �: 52378

    ���������: 14
    �����������: 18.12.2006

    ���������:

    ����
    �������: ����
    �����������: —
    ������� �������: 0 ���(�)

    � � ������� �� ����� ��������,������� ���������.
    � ��� ������ ��� � �������� » ������ �� ����� 1,020-1/83″ ������ ��� ��������� ������� �� �� �����,�����..

    ������� � ������ ��������

    �������� ���

    +���������� ���������

    1 ���. ������ ��� ���� (������: 1, ������� �������������: 0)

    �������������: 0

    Ошибка при разложении матрицы 99%

    Автор: Dmitry Rudenko

    Если при расчёте в SCAD у Вас появляется сообщение: «Ошибка при разложении матрицы 99%», значит Ваша система — геометрически изменяемая, т.е. перемещения каких-то элементов расчётной модели стремятся к бесконечности.

    Проверьте следующее:

    • Правильно ли заданы граничные условия? Начинающие пользователи часто забывают закрепить модель по направлениям X и Y после назначения коэффициентов постели

    • Все ли элементы расчётной модели имеют связь друг с другом?

    • Проверьте наличие в схеме совпадающих элементов или совпадающих узлов. Если они есть, выполните их объединение, после чего сделайте «упаковку схемы»

    Косяки SCAD

    Неточности, ошибки, косяки SCAD — 6 шт


    №6 Реакции в связях или нагрузки от фрагмента схемы от сейсмических загружний или комбинаций с ними.
    Проблема возникает в «вылеченных» версиях программы, и в старых и в новых. Заключается в следующем — когда вы хотите посмотреть нагрузки на фрагмент схемы или реакции в связях от комбинации загружений, в которую входит сейсмической, то программа вам их покажет, только неверно.

    До обнаружения проблемы я выдавал задание трижды, а Вы?

    №5 Стержни (колонны и балки) в узлах стыка с пластинчатыми элементами 
    Проблема присутствует во всех версиях.
    Если вертикальный стержень имеет стык с пластинчатым элементом и речь идет о стальном каркасе и железобетонном перекрытии, то в этом месте иногда возникают усилия, которые приводят к увеличению сечения вертикального стержня.

    Зачастую проблема возникает в местах несимметричного примыкания пластинчатых элементов к вертикальному стержню. 

    Так же проблема может возникать и при примыкании пластинчатого элемента к горизонтальному стержню, особенно если с двух сторон несимметричная сетка или примыкают к стержню трех узловые элементы, или как в №1

    №4 РСУ и динамические загружения при использовании расчётных схем SCAD 11 в SCAD 21
    Проиллюстрировать невозможно, суть заключается в следующем: если мы используем файл с уже полностью готовой расчётной схемой из 11 версии в 21, то необходимо пересохранить все загружения (естественно с вводом типов и видов нагрузок), пересоздать динамические загружения заново, удалить и создать заново РСУ.

    Выявлено следующим образом: существовало два снеговых загружения — на всю ферму и на половину. В РСУ загружения были как взаимоисключающие. Однако при проверке, половина фермы «краснела», и как раз та половина, которая была нагружена во втором снеговом загружении. Увидеть это в отчёте или в формуле РСУ невозможно (что оба загружения суммировались), но при удалении второго загружении (дезактивация загружения не помогает) все элементы фермы проходили снова.

    Динамические загружения (ветер и сейсмика) искажаются. В частности это касается преобразования статических нагрузок в массы (некоторые строки пропадают) и, для пульсации ветра, слетает выбранное статическое ветровое загружение. При восстановлении этих данных результаты неудовлетворительные, так как многие элементы, ранее удовлетворяющие проверки сечений, более не удовлетворяют («краснеют»)
    №3 При копировании фрагмента схемы не все связи в узлах копируются вместе с элементами SCAD 21

    №2 Смена типов жесткостей при «удаление дублирующихся типов жесткостей» SCAD 21
    Иногда, при удаление дублирующих жесткостей происходит произвольная замена.

    №1 Совместная работа пластинчатого элемента и стержня SCAD 21 
    при расчёте схемы каркасного металлического здания
    При определённом соотношении толщины к длине пластины или при непосредственной близости к узлу стыка горизонтального стержня (балки) с вертикальным (колонной), пластинчатый элемент создаёт пиковую поперечную силу, что приводит к увеличению сечения горизонтального стержня.

    1 3 . У с т о й ч и в о с т ь

    13. Устойчивость

    Для каждого указанного пользователем загружения (или комбинации загружений) SCAD позволяет определить:

    коэффициент запаса устойчивости;

    первую форму потери устойчивости (без анализа кратности);

    свободные длины стержневых элементов.

    13.1 Постановка задачи

    Задача устойчивости решается в классической

    постановке для упругой системы и в предположении, что все

    приложенные к системе внешние нагрузки (следовательно, и

    внутренние силы) растут пропорционально одному и тому же

    параметру λ. То значение параметра λ, при котором матрица

    жесткости системы А(λ) впервые

    перестает быть положи

    тельно определенной, является критическим, а соответ

    ствующее значение λ — коэффициентом запаса устойчивости

    (КЗУ).

    Матрица жесткости А(λ) =

    Ao — B(λ) состоит из

    обычнойматрицы жесткости Ao и матрицы толкающихреакций B(λ), которые определяются сжимающими силами в стержнях, напряжениями сжатия в конечных элементах оболочечного типа и т.п. Напоминаем, что положительная определенность матрицы жесткости означает, что при любых

    значениях узловых перемещений и поворотов u потенциальная энергия системы положительна (это значит, что для деформирования системы необходимо затратить энергию и, следовательно, она оказывает сопротивление деформированию,

    она является отпорной).

    Если система теряет устойчивость, она теряет отпорность и ее матрица жесткости становится вырожденной (с нулевым детерминантом), а в закритическом состоянии система получает отрицательную отпорность (при ее принуди

    тельном деформировании выделяется ранее накопленная потенциальная энергия толкающихреакций) и ее матрица жесткости становится знаконеопределенной.

    Таким образом, задача оценки устойчивости равно

    весия сводится к проверке положительной определенности матрицы жесткости при пробном значении коэффициента λ .

    Необходимо отметить, что с помощью проверок

    матрицы жесткости можно отыскать только те критические состояния, при которых потеря устойчивости происходит по

    251

    1 3 . У с т о й ч и в о с т ь

    13.2 Поиск коэффициента запаса устойчивости

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

    конечного элемента и не вызывает узловых перемещений и поворотов. Поскольку для всех типов конечных элементов соответствующие критические величины λкр известны (они вычисляются по простым формулам), то это значит, что следует, кроме всего прочего, проверить неравенство λ > λкр для всех конечных элементов.

    Поиск коэффициента запаса устойчивости (КЗУ) ведется в интервале [0,Λ], где Λ — число, заданное пользователем, (оценка того значения КЗУ, которое считается уже безразличным для оценки качества системы) и с точностью ε, которая также задается пользователем.

    При этом решается задача определения минимального λ, при котором происходит вырождение матрицы А(λ).

    Матрица А(λ) составляется из матриц устойчивости отдельных конечных элементов. Если в системе нет ни одного элемента, способного терять устойчивость (например, в стержневой системе все стержни растянуты), то выдается сообщение, что система «абсолютно устойчива«.

    Далее проверяется устойчивость системы при λ = Λ (т.е. положительная определенность матрицы А(Λ)). Если это условие выполнено, то выдается сообщение о том, что КЗУ больше заданного максимума.

    Если условие положительной определенности А(Λ) не выполнено (об этом свидетельствуют отрицательные значения на главной диагонали матрицы жесткости, преобразованной в процессе решения системы уравнений), производится анализ положительной определенности матрицы А(Λ/2),…, т.е. используется стандартный метод половинного деления. Этот процесс продолжается до тех пор, пока не найден интервал 1, λ2) такой, что λ2 — λ1 ≤ ε и матрица А1) положительно определена, а матрица А2) этим свойством не обладает. При этом величина λ1 считается КЗУ.

    При составлении матрицы устойчивости для каждого конечного элемента (способного терять устойчивость) вычисляется значение λкр, которое приводит к потере устойчивости КЭ. Если min λкр < Λ, интервал поиска сокращается, а номер элемента, для которого достигается min λкр, сообщается в протоколе.

    252

    1 3 . У с т о й ч и в о с т ь

    13.3 Форма потери устойчивости

    В предположении, что определенный на первом этапе коэффициент запаса устойчивости является точным, SCAD

    производит решение задачи об определении собственного вектора при известном собственном значении задачи

    Заметим, что правые части системы равны нулю, т.е. отыскиваются такие значения узловых перемещений и поворотов u, которые вызываются только внутренними сжимающими напряжениями и усилиями. Поперечные нагрузки, как известно, не влияют на значения критических сил и вид формы потери устойчивости. Поскольку уравнение (а) решено при нулевой правой части, то форма потери устойчивости определена лишь с точностью до множителя. Ее уменьшение или увеличение в любое число раз не нарушает условие (а).

    Если в системе имеются стержневые элементы, то

    13.4 Свободные длины

    можно определить их свободные длины, т.е. длины таких же,

    но шарнирно опертых стержней, у которых критическая

    сила Nкр совпадает с продольным усилием в стержне

    системы в момент потери устойчивости (Nкр=λ1*N).

    Поскольку по формуле Эйлера Nкр = π2EJ / l2, свободная

    длина будет lo = (λ1N / π2EJ )1/2,

    где EJ — жесткости стержней в главных плоскостях инерции

    (для пространственной задачи по две для каждого стержня).

    253

    1 3 . У с т о й ч и в о с т ь

    13.5 Ввод данных

    Рис. 13.5.1. Диалоговое окно

    Проверка устойчивости

    Ввод данных для проверки устойчивости выполняется в одноименном диалоговом окне (рис. 13.5.1), которое

    вызывается из раздела Специальные исходные данные в Дереве проекта. Для ввода данных необходимо выполнить такие операции:

    Äс помощью комбинаторных кнопок задать режим проверки вычисление коэффициента запаса устойчивости, форм потери устойчивости и свободных длин стержневых элементов;

    Äв полях Масштабный множитель и Точность вычислений следует ввести соответствующие значения (по умолчанию приняты 2 и 0.01);

    Äактивизировать опции, определяющие вид данных, для которых выполняется проверка устойчивости: по загружениям или по комбинациям загружений, для всех загружений (комбинаций) или только для выбранных; в последнем случае выбор нужных

    данных выполняется в списке загружений (комбинаций).

    Масштабный множитель параметр используется

    для ограничения интервала поиска коэффициента запаса устойчивости. Если его значение больше заданного, система считается устойчивой.

    Точность вычислений параметр задает критерий

    окончания итерационного процесса поиска коэффициента запаса устойчивости. При очень малых значениях этого параметра время расчета может существенно увеличиться.

    Для удаления подготовленных данных и отказа от анализа устойчивости используется кнопка Удаление данных.

    254

    1 4 . С п е к т р ы о т в е т а

    14.Спектры ответа

    14.1Расчет на сейсмические воздействия

    Выведенный из положения равновесия линейный неконсервативный осциллятор совершает затухающие колебания, которые описываются дифференциальным

    уравнением

    &&

    &

    2

    x = 0,

    (14.1)

    x

    + 2ϕ ω x + ω

    где

    ω – собственная круговая частота системы без затухания (рад/с);

    ϕ – относительное демпфирование. При ϕ < 1 решение уравнения (1) имеет вид

    x = Ae−ϕωt sin(ωD t + α) ,

    где

    ωD = ω1 − ϕ2 частота с учетом затухания,

    А, α – коэффициенты, которые зависят от начальных условий.

    Обычно для строительных конструкций ϕ<<1 и

    практически ωD

    ≈ ω .

    Если на массу действует сила F(t), то ее перемещения

    описываются уравнением

    2

    &&

    &

    x = F(t) / m,

    (14.2)

    x + 2ϕ ω x + ω

    общее решение которого при нулевых начальных условиях можно записать с помощью интеграла Дюамeля

    1

    t

    x =

    òF (t)exp[−ρω(t z)]sin ωD (t z)dz

    (14.3)

    mωD

    0

    При

    движении основания

    &&

    с ускорением x0 (t)

    (кинематическое

    возмущение)

    на

    массу

    m

    действует

    переносная

    сила

    инерции

    &&

    (t) .

    Поэтому

    F(t) = −mx0

    уравнение, описывающее относительные перемещения массы в системе координат, связанной с основанием, имеет вид

    &&

    &

    + ω

    2

    x

    &&

    (t) ,

    (14.4)

    x

    + 2ϕω x

    = −x 0

    а его решение

    t

    1

    −ϕω(tz)

    x = −

    ωD

    ò

    x(t)e

    sin ωD (t z)dz

    (14.5)

    0

    &&

    При

    определении

    абсолютного ускорения

    массы

    &&

    &&

    получаем при обычных малых значениях ϕ, что

    xα

    = x + x0

    &&

    2

    (14.6)

    x

    α ≈ −ωD x

    Нами

    рассматриваются

    колебания

    линейных

    255

    1 4 . С п е к т р ы о т в е т а

    дискретных систем со многими степенями свободы,

    полученные из любых континуальных или комбинированных систем после применения к ним процедуры дискретизации метода конечных элементов (МКЭ). При этом решается

    система обыкновенных дифференциальных уравнений

    [

    M

    ]{ }

    +

    [

    K

    ]{ }

    { }

    (14.7)

    u&&

    u =

    0 ,

    где

    {u} – вектор перемещений;

    [M] – матрица массы;

    [K] – матрица жесткости.

    Вынужденные колебания линейной дискретной системы с затуханием по гипотезе ФойгтаКельвина описываются

    системой обыкновенных дифференциальных уравнений

    [M ]{u} + [C ]{u} + [K ]{u} = {F(t)} ,

    (14.8)

    &&

    &

    где

    [C] – матрица диссипации энергии;

    {F(t)} – вектор нагрузки.

    В случае

    кинематического возмущения в

    качестве

    нагрузки выступают переносные силы инерции и

    система

    уравнений (14.8) записывается в виде

    0(t) ,

    (14.9)

    [M ]{u} + [C ]{u} + [K ]{u} = -[M ]{I}x

    &&

    &

    &&

    где {u} – вектор относительных перемещений (например, в системе координат xOy, связанной с основанием);

    {I} – вектор, компонентами которого являются

    косинусы углов между направлениями перемещений по координатам и вектором ускорения основания;

    x&&0 (t) ускорение основания.

    Решение уравнения (14.9) отыскивается в виде

    разложения его по формам собственных колебаний системы (так называемая модальная суперпозиция”)

    n

    {u} = å{F j }Yj (t) ,

    (14.10)

    j=1

    где n – число степеней свободы системы (учитываемых собственных чисел и векторов);

    F j j-я форма собственных свободных колебаний

    дискретной системы;

    Yj (t)

    неизвестные функции

    времени,

    которые

    необходимо определить.

    Будем предполагать, что для матрицы диссипации [С]

    выполняется условие

    T

    [C ]{F j } =

    ì0 ,

    i ¹ j

    {Fi }

    ï

    í

    T

    [M ]{Fi } , i = j

    ï2ji wi {Fi }

    î

    где wi i-я собственная частота дискретной системы.

    После подстановки (14.10) в (14.9) и умножения (14.9)

    на вектор

    {Fi }T

    для

    нахождения

    Yi (t)

    получаем

    дифференциальное уравнение

    256

    1 4 . С п е к т р ы о т в е т а

    &&

    2

    Ψi

    = −D i x

    0

    (t) ,

    (14.11)

    Ψ + 2ϕi ωi Ψi + ωi

    &&

    D i =

    {Φi }T [M ]{I}

    &&

    где

    {Φi }T [M ]{Φi }

    x0

    (t)

    Для

    определения

    инерционных

    нагрузок на

    конструкцию необходимо знать абсолютные ускорения ее точек:

    { a} { }

    n

    i }(

    )

    n

    0

    å

    j

    i 0

    å

    ja

    {

    &&

    { i }

    &&

    u

    = u

    + {}Ix (t) =

    Φ

    Ψ (t) + D x

    (t)

    =

    Φ Ψ (t)

    &&

    &&

    &&

    &&

    i=1

    i=1

    Сейсмические колебания дискретных систем описываются

    &&

    &

    &

    &&

    &

    &&

    &

    &&

    (t) ,

    (14.12)

    [M]{u}+[C]{u}+[K]{u}=−[M]({Ix}x0(t) +{Iy}y0(t) +{Iz}z0

    где

    &&

    &&

    и

    &&

    компоненты

    расчетной

    x

    0 (t) , y0 (t)

    z0 (t)

    акселерограммы. Если какаялибо из компонент не учитывается, то соответствующая часть нагрузки из (14.12) исключается.

    257

    1 4 . С п е к т р ы о т в е т а

    14.2 Поэтажные акселерограммы и спектры ответа

    При анализе сейсмостойкости оборудования необходимо определить действующие на него инерционные сейсмические нагрузки. Принят метод раздельного рассмотрения

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

    Расчет производится следующим образом:

    определяются (вычисляются) вынужденные колебания сооружения при сейсмическом воздействии, заданном расчетной акселерограммой на грунте;

    определяются законы изменения абсолютных ускорений выбранных точек конструкции;

    принимая акселерограммы в качестве возмущающего воздействия, рассчитывают вынужденные линейные колебания линейных неконсервативных осцилляторов, и

    находят зависимость модулей их максимальных абсолютных ускорений от их собственных частот и коэффициентов диссипации.

    Таким образом, для каждой исследуемой точки решается

    уравнение (2), в котором:

    зафиксирован коэффициент диссипации ϕ;

    нагрузкой является вычисленное возмущающее воздействие от расчетной акселерограммы;

    наборы собственных частот осциляторов при расчете спектра ответа зафиксированы и приведены в таблице 14.1.

    Таблица 14.1.

    Частотный диапазон (гц)

    Приращения (гц)

    0.2

    – 3.0

    0.10

    3.0

    – 3.6

    0.15

    3.6

    – 5.0

    0.20

    5.0

    – 8.0

    0.25

    8.0

    – 15.0

    0.5

    15.0 – 18.0

    1.0

    18.0 – 22.0

    2.0

    22.0 – 34.0

    3.0

    К приведенным в табл. 14.1 значениям частот

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

    Для каждого указанного осцилятора находятся решения на всем диапазоне действия акселерограммы и выбирается максимальное по абсолютной величине, которое и

    является спектром ответа данной точки на действие данной акселерограммы.

    258

    1 4 . С п е к т р ы о т в е т а

    14.3 Ввод данных и анализ результатов

    Рис. 14.3.1. Диалоговое окно

    Спектры ответа

    Рис. 14.3.2. Диалоговое окно

    Результаты

    Окно постпроцессора Спектры ответа (рис. 14.3.1) содержит список с номерами узлов, для которых необходимо вычислить спектры ответа (Список узлов). Имена акселерограмм, по которым необходимо выполнить расчет спектров, выбираются из списка имеющихся (Исходные) и переносятся в список используемых в расчете (Выбранные) с помощью кнопки Добавить. Если случайно выбрана не та акселерограмма, то ее можно убрать из списка Выбранные кнопкой Вернуть. Кроме того для расчета необходимо установить направление действия, ввести коэффициент диссипации (в диапазоне от 0 до 1) и, если это необходимо, задать коэффициенты диссипации по формам (например, для 4-х форм следует ввести через пробел четыре числа). Если введено меньше значений, чем задано форм, то последнее

    введенное значение будет отнесено ко всем последующим формам.

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

    Расчет выполняется после подготовки всех данных нажатием кнопки ОК. После окончания расчета открывается доступ к кнопке Результаты.

    Просмотр результатов и их документирование выполняется в диалоговом окне Результаты. Для построения спектров необходимо назначить номер узла, номер загружения и имя акселерограммы. Программа позволяет получить на

    одном графике спектры по одному или нескольким направлениям, во всем диапазоне частот или в заданном.

    Полученные графики и результаты расчета могут быть выведены на принтер кнопками Печать графиков и Результаты (таблицы) соответственно.

    259

    1 4 . С п е к т р ы о т в е т а

    14.4Подготовка файлов акселерограмм

    Файлы акселерограмм находятся в корневом каталоге ПВК SCAD и имеют расширение SPC. При передаче

    пользователям постпроцессора поставляются для примера четыре стандартные акселерограммы.

    Рассмотрим пример задания акселерограммы:

    Расчетная акселерограмма в cм/(c*c) для ПЗ на площадке атомного реактора.

    Компонента – SH. Mодель – 1c. Amax = 45.1 cм/(c*c).

    Количество точек N = 2047; Шаг по времени Dt = 0.05000 c.

    #

    0.01 2047 0.05

    0.0

    0.0

    0.1

    0.3

    0.4

    0.6

    0.5

    0.0

    –2.1

    –2.6 …

    После символа # следуют:

    коэффициент перевода заданных ускорений в м/ceк2 ;

    количество точек;

    шаг по времени;

    значения ускорений.

    Аналогичным образом может быть подготовлен файл с нужной акселерограммой (файл с расширением SPC следует поместить в каталог с исходными данными). Для использования акселерограмм, поставляемых в составе комплекса, соответствующие файлы необходимо скопировать из каталога SCAD в каталог с исходными данными.

    260

    Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

    • #
    • #
    • #
    • #
    • #
    • #
    • #
    • #
    • #
    • #
    • #
    Валянцiна

    *
    Участник форумов

    Сейчас отсутствует Сейчас отсутствует


    Помогите пожалуйста!! скад ругается, что система геометрически изменяема( посмотрите пожалуйста что там не так…  


    Инженер-конструктор (Минск, Беларусь)

    Miko (Тарантул)

    ***
    Куратор подраздела «Основания и фундаменты, механика грунтов»

    http://revitconsalting.blogspot.ru/

    Сейчас отсутствует Сейчас отсутствует


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


    Инженер-конструктор (Москва, Россия)

    Валянцiна

    *
    Участник форумов

    Сейчас отсутствует Сейчас отсутствует


    мне сказали просто отключить расчет на устойчивость  [доволен]


    Инженер-конструктор (Минск, Беларусь)

    Miko (Тарантул)

    ***
    Куратор подраздела «Основания и фундаменты, механика грунтов»

    http://revitconsalting.blogspot.ru/

    Сейчас отсутствует Сейчас отсутствует


    [улыбка] так в логе так и написано что не реализован расчет на устойчивость для металла, а Вы паникуете. Лог расчета это первая вещь которую нужно внимательно изучить даже если результат положительный и расчет выполнен.


    Инженер-конструктор (Москва, Россия)

    Валянцiна

    *
    Участник форумов

    Сейчас отсутствует Сейчас отсутствует


    [улыбка] так в логе так и написано что не реализован расчет на устойчивость для металла, а Вы паникуете. Лог расчета это первая вещь которую нужно внимательно изучить даже если результат положительный и расчет выполнен.

    ну я начинающий пользователь скад)))


    Инженер-конструктор (Минск, Беларусь)

    Miko (Тарантул)

    ***
    Куратор подраздела «Основания и фундаменты, механика грунтов»

    http://revitconsalting.blogspot.ru/

    Сейчас отсутствует Сейчас отсутствует


    Тогда лучше сначала посчитайте вручную(такое маленькое здание не долго) и в скад и сравните результат, не стоит слепо верить этому инженерному калькулятору слепо, он способен считать лишь определенные вещи с некой долей точности. Для пример посчитайте ферму свою методом Риттера или Кремона и сравните с SCAD, в частности свой опорный раскос, разница будет.


    Инженер-конструктор (Москва, Россия)

    Валянцiна

    *
    Участник форумов

    Сейчас отсутствует Сейчас отсутствует


    ок спасибо)


    Инженер-конструктор (Минск, Беларусь)

    Seminar

    Участник форумов

    Сейчас отсутствует Сейчас отсутствует


    5-6 ноября в Минске по адресу ул. Берсона, 1А, актовый зал (пл. Независимости, за Красным костёлом) пройдет БЕСПЛАТНЫЙ семинар, посвященный новой версии SCAD Office 21.1. В программе обсуждение новых возможностей, мастер-класс и многое другое.

    Докладчики:
    Карпиловский Виктор Семенович, канд. техн. наук — директор компании SCAD Group
    Криксунов Эдуард Зиновьевич, канд. техн. наук — директор компании SCAD Soft
    Скорук Леонид Николаевич, канд. техн. наук — ведущий научный сотрудник SCAD Soft
    Юрченко Виталина Витальевна, канд. техн. наук — ведущий научный сотрудник SCAD Soft

    Пожалуйста, звоните Ольге, она Вас зарегистрирует на мероприятие: (029) 3 999 252


    ? (Минск, Беларусь)

    Фома

    *
    Участник форумов

    Сейчас отсутствует Сейчас отсутствует


    СКАД не любит, когда много шарниров сходится в одном узле. Как вариант — а) убрать лишние шарниры; б) если по результатам расчёт перемещения адекватные — забить на ругань СКАДа.


    ? (Тюмень, Россия)


    Сейчас Вы — Гость на форумах «Проектант». Гости не могут писать сообщения и создавать новые темы.
    Преодолейте несложную формальность — зарегистрируйтесь! И у Вас появится много больше возможностей на форумах «Проектант».

    Последние сообщения на Строительном форуме

    07 Апреля 2023 года, 17:11

    06 Апреля 2023 года, 10:44

    04 Апреля 2023 года, 17:06

    04 Апреля 2023 года, 16:16

    02 Апреля 2023 года, 08:56

    29 Марта 2023 года, 10:24

    29 Марта 2023 года, 07:15

    27 Марта 2023 года, 14:38

    23 Марта 2023 года, 16:56

    23 Марта 2023 года, 13:50

    22 Марта 2023 года, 08:05

    16 Марта 2023 года, 17:41

    01 Марта 2023 года, 15:01

    27 Февраля 2023 года, 12:05

    09 Февраля 2023 года, 16:20

    приобрести
    SCAD — Проектно-вычислительный комплекс Structure CAD (SCAD) для расчета конструкций методом конечных элементов
    скачать (3820.1 kb.)
    Доступные файлы (22):

    n1.doc 3919kb. 25.03.2005 02:19 скачать
    n2.doc 30kb. 20.07.2005 16:09 скачать
    n3.doc 104kb. 20.07.2005 16:21 скачать
    n4.doc 918kb. 22.07.2005 10:32 скачать
    n5.doc 49kb. 03.08.2005 23:08 скачать
    n6.doc 135kb. 02.09.2005 17:32 скачать
    n7.doc 55kb. 02.09.2005 17:39 скачать
    n8.doc 8739kb. 07.09.2005 12:51 скачать
    n9.doc 373kb. 07.09.2005 13:18 скачать
    n10.doc 50kb. 27.09.2005 18:59 скачать
    n11.doc 1568kb. 01.10.2005 16:11 скачать
    n12.doc 3579kb. 02.10.2005 11:43 скачать
    n13.doc 4146kb. 02.10.2005 16:04 скачать
    n14.doc 486kb. 25.03.2005 16:44 скачать
    n15.doc 313kb. 31.03.2005 23:26 скачать
    n16.doc 1198kb. 01.04.2005 00:02 скачать
    n17.doc 59kb. 01.04.2005 09:30 скачать
    n18.doc 1216kb. 01.04.2005 11:23 скачать
    n19.doc 1507kb. 20.04.2005 19:04 скачать
    n20.doc 224kb. 20.07.2005 15:53 скачать
    n21.doc 81kb. 02.10.2005 15:42 скачать
    n22.doc 20kb. 02.10.2005 16:27 скачать

    n5.doc

    13. Устойчивость

    Для каждого указанного пользователем загружения (или комбинации загружений) SCAD позволяет определить:

    • коэффициент запаса устойчивости;
    • первую форму потери устойчивости (без анализа кратности);

    свободные длины стержневых элементов.
    13.1 Постановка задачи
    Задача устойчивости решается в классической постановке для упругой системы и в предположении, что все приложенные к системе внешние нагрузки (следовательно, и внутренние силы) растут пропорционально одному и тому же параметру . То значение параметра , при котором матрица жесткости системы А() впервые перестает быть положи­тельно определенной, является критическим, а соответ­ствующее значение  — коэффициентом запаса устойчивости (КЗУ). Матрица жесткости А() = Ao — B() состоит из “обычной” матрицы жесткости Ao и матрицы “толкающих” реакций B(), которые определяются сжимающими силами в стержнях, напряжениями сжатия в конечных элементах оболо­чечного типа и т.п. Напоминаем, что положительная опреде­лен­ность матрицы жесткости означает, что при любых значениях узловых перемещений и поворотов u потенциальная энергия системы положительна (это значит, что для деформирования системы необходимо затратить энергию и, следовательно, она оказывает сопротивление деформированию, она является отпорной).

    Если система теряет устойчивость, она теряет отпорность и ее матрица жесткости становится вырожденной (с нулевым детерминантом), а в закритическом состоянии система получает отрицательную отпорность (при ее принуди­тельном деформировании выделяется ранее накопленная потенциальная энергия “толкающих” реакций) и ее матрица жесткости становится знаконеопределенной.

    Таким образом, задача оценки устойчивости равно­весия сводится к проверке положительной определен­ности матрицы жесткости при пробном значении коэффициента .

    Необходимо отметить, что с помощью проверок матрицы жесткости можно отыскать только те критические состояния, при которых потеря устойчивости происходит по форме, когда узловые перемещения и повороты не все вместе равны нулю (это так называемая явная форма потери устойчивости). Нужно еще проверить, что при пробном значении  не может произойти так называемая скрытая форма потери устойчивости, которая реализуется в пределах одного конечного элемента и не вызывает узловых перемещений и поворотов. Поскольку для всех типов конечных элементов соответствующие критические величины кр известны (они вычисляются по простым формулам), то это значит, что следует, кроме всего прочего, проверить неравенство  > кр для всех конечных элементов.
    13.2 Поиск коэффициента запаса устойчивости
    Поиск коэффициента запаса устойчивости (КЗУ) ведется в интервале [0,], где    число, заданное пользователем, (оценка того значения КЗУ, которое считается уже безразличным для оценки качества системы) и с точностью , которая также задается пользователем.

    При этом решается задача определения минимального , при котором происходит вырождение матрицы А().

    Матрица А() составляется из матриц устойчивости отдельных конечных элементов. Если в системе нет ни одного элемента, способного терять устойчивость (например, в стержневой системе все стержни растянуты), то выдается сообщение, что система «абсолютно устойчива».

    Далее проверяется устойчивость системы при  =  (т.е. положительная определенность матрицы А()). Если это условие выполнено, то выдается сообщение о том, что КЗУ больше заданного максимума.

    Если условие положительной определенности А() не выполнено (об этом свидетельствуют отрицательные значения на главной диагонали матрицы жесткости, преобразованной в процессе решения системы уравнений), производится анализ положительной определенности матрицы А(/2),…, т.е. используется стандартный метод половинного деления. Этот процесс продолжается до тех пор, пока не найден интервал (1, 2) такой, что 2 — 1   и матрица А(1) положительно определена, а матрица А(2) этим свойством не обладает. При этом величина 1 считается КЗУ.

    При составлении матрицы устойчивости для каждого конечного элемента (способного терять устойчивость) вычисляется значение кр, которое приводит к потере устойчивости КЭ. Если min кр < , интервал поиска сокращается, а номер элемента, для которого достигается min кр, сообщается в протоколе.

    13.3 Форма потери устойчивости
    В предположении, что определенный на первом этапе коэффициент запаса устойчивости является точным, SCAD производит решение задачи об определении собственного вектора при известном собственном значении задачи

    (A — B(1)) u = 0. (а)

    Заметим, что правые части системы равны нулю, т.е. отыскиваются такие значения узловых перемещений и пово­ротов u, которые вызываются только внутренними сжимающи­ми напряжениями и усилиями. Поперечные нагрузки, как известно, не влияют на значения критических сил и вид формы потери устойчивости. Поскольку уравнение (а) решено при нулевой правой части, то форма потери устойчивости определена лишь с точностью до множителя. Ее уменьшение или увеличение в любое число раз не нарушает условие (а).
    13.4 Свободные длины
    Если в системе имеются стержневые элементы, то можно определить их свободные длины, т.е. длины таких же, но шарнирно опертых стержней, у которых критическая сила Nкр совпадает с продольным усилием в стержне системы в момент потери устойчивости (Nкр=1*N). Поскольку по формуле Эйлера Nкр = 2EJ / l2, свободная длина будет lo = (1N / 2EJ )1/2,

    где EJ   жесткости стержней в главных плоскостях инер­ции (для пространственной задачи   по две для каждого стержня).
    13.5 Ввод данных

    Ввод данных для проверки устойчивости выполняется в одноименном диалоговом окне (рис. 13.5.1), которое вызывается из раздела Специальные исходные данные в Дереве проекта. Для ввода данных необходимо выполнить такие операции:

    • с помощью комбинаторных кнопок задать режим проверки   вычисление коэффициента запаса устойчи­вости, форм потери устойчивости и свободных длин стержневых элементов;
    • в полях Масштабный множитель и Точность вычислений следует ввести соответствующие значения (по умолчанию приняты 2 и 0.01);
    • активизировать опции, определяющие вид данных, для которых выполняется проверка устойчивости: по загруже­ниям или по комбинациям загружений, для всех загружени­й (комбинаций) или только для выбранных; в послед­нем случае выбор нужных данных выполняется в списке загружений (комбинаций).

    Масштабный множитель   параметр используется для ограничения интервала поиска коэффициента запаса устойчивости. Если его значение больше заданного, система считается устойчивой.

    Точность вычислений — параметр задает критерий окончания итерационного процесса поиска коэффициента запаса устойчивости. При очень малых значениях этого параметра время расчета может существенно увеличиться.

    Для удаления подготовленных данных и отказа от анализа устойчивости используется кнопка Удаление данных.

    Рис. 13.5.1. Диалоговое окно
    Проверка устойчивости


    13. Устойчивость

    Алгоритм Ланцоша — это прямой алгоритм, поиск Корнелиусом Ланцошем, который является адаптацией методов мощности для нахождения m { displaystyle m}m«наиболее полезных» (стремящихся к экстремально высоким / наименьшим) собственных имеющихся и собственных матрицы n × n { displaystyle n times n}п  раз п эрмитовой матрицы, где m { displaystyle m}mчасто, но не обязательно намного меньше, чем n { displaystyle n}n . В принципе вычислительно эффективный метод, в его первоначальной формулировке не был полезен из-за его числовой нестабильности.

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

    В своей первоначальной работе эти авторы также предложили, как выбрать начальный вектор (т. Е. Использовать генератор случайных чисел для выбора каждого элемента начального события), и предложили эмпирический метод определения m { displaystyle m }m, уменьшенное количество векторов (то есть должно быть выбрано примерно в 1,5 раза больше желаемого точного количества собственных значений). Вскоре после их работы последовала Пейдж, которая также представила анализ ошибок. В 1988 году Оялво представил более подробную историю этого алгоритма и эффективный тест на ошибку значений.

    Содержание

    • 1 Алгоритм
      • 1.1 Применение к задаче собственных значений
      • 1.2 Применение к тридиагонализации
    • 2 Вывод алгоритм
      • 2.1 Более предусмотрительный степенной метод
      • 2.2 Одновременная аппроксимация крайних собственных значений
    • 3 Сходимость и другая динамика
      • 3.1 Теория сходимости Каниэля — Пейджа
    • 4 Числовая устойчивость
    • 5 Вариации
      • 5.1 Пустое пространство над конечным полем
    • 6 Приложения
    • 7 Реализации
    • 8 Примечания
    • 9 Ссылки
    • 10 Дополнительная литература

    Алгоритм

    Вход a Эрмитов матрица A { displaystyle A}A размера n × n { displaystyle n times n}п  раз п и, необязательно, количество итераций m { displaystyle m}m(по умолчанию пусть m = n { displaystyle m = n}m = n ).
    Вывод an n × m { displaystyle n times m}п  умножить на м матрица V { displaystyle V}V с ортонормированными столбцами и трехдиагональной действительной симметричной матрицей T = V ∗ AV { displaystyle T = V ^ {*} AV}{ displaystyle T = V ^ {*} AV} размером m × m { displaystyle м раз м}m  раз m . Если m = n { displaystyle m = n}m = n , то V { displaystyle V}V является унитарным и A = VTV ∗ { displaystyle A = VTV ^ {*}}{ displaystyle A = VTV ^ {*}} .
    Предупреждение Итерация Ланцоша подвержена числовой нестабильности. При выполнении неточной арифметики необходимо выполнить дополнительные меры (как в следующих разделах) для достоверности результатов.

    1. Пусть v 1 ∈ C n { displaystyle v_ {1} in mathbb {C} ^ {n}}{ displaystyle v_ {1}  in  mathbb {C} ^ {n}} — произвольный вектор с евклидовой нормой. 1 { displaystyle 1}1 .
    2. Сокращенный шаг начальной итерации:
      1. Пусть w 1 ′ = A v 1 { displaystyle w_ {1} ‘= Av_ {1} }{displaystyle w_{1}'=Av_{1}}.
      2. Пусть α 1 = вес 1 ′ ∗ v 1 { displaystyle alpha _ {1} = w_ {1} ‘^ {*} v_ {1}}{displaystyle alpha _{1}=w_{1}'^{*}v_{1}}.
      3. w 1 знак равно w 1 ′ — α 1 v 1 { displaystyle w_ {1} = w_ {1} ‘- alpha _ {1} v_ {1}}{displaystyle w_{1}=w_{1}'-alpha _{1}v_{1}}.
    3. Для j = 2,…, m { displaystyle j = 2, dots, m}{ displ aystyle j = 2,  точки, m} do:
      1. Пусть β j = ‖ wj — 1 ‖ { displaystyle beta _ {j} = | w_ {j-1} |}{ displaystyle  beta _ {j} =  | w_ {j-1}  |} (также Евклидова норма ).
      2. Если β j ≠ 0 { displaystyle beta _ {j} neq 0}{ displaystyle  бета _ {j}  neq 0} , тогда пусть vj = wj — 1 / β j { displaystyle v_ {j} = w_ {j-1} / beta _ {j}}{ displaystyle v_ {j} = w_ {j-1} /  beta _ {j}} ,
        иначе выберет как vj { displaystyle v_ {j}}v_ {j} произвольный вектор с евклидовой нормой 1 { displaystyle 1}1 , который ортогонален всем v 1,…, vj — 1 { displaystyle v_ {1}, dots, v_ {j-1}}{  displaystyle v_ {1},  dots, v_ {j-1}} .
      3. Пусть wj ′ = A vj { disp laystyle w_ {j} ‘= Av_ {j}}{displaystyle w_{j}'=Av_{j}}.
      4. Пусть α j = wj ′ ∗ vj { displaystyle alpha _ {j} = w_ {j} ‘^ {*} v_ {j}}{displaystyle alpha _{j}=w_{j}'^{*}v_{j}}.
      5. Пусть wj = wj ′ — α jvj — β jvj — 1 { displaystyle w_ {j} = w_ {j} ‘- alpha _ {j} v_ {j} — beta _ {j} v_ {j-1}}{displaystyle w_{j}=w_{j}'-alpha _{j}v_{j}-beta _{j}v_{j-1}}.
    4. Пусть V { displaystyle V}V будет матрицей со столбцами v 1,…, vm { displaystyle v_ {1}, dots, v_ {m}}{ displaystyle v_ {1},  dots, v_ {m}} . Пусть T = (α 1 β 2 0 β 2 α 2 β 3 β 3 α 3 ⋱ ⋱ ⋱ β м — 1 β м — 1 α м — 1 β м 0 β м α м) { displaystyle T = { begin {pmatrix} alpha _ {1} beta _ {2} 0 \ beta _ {2} alpha _ {2} beta _ {3} \ beta _ {3} alpha _ {3 } ddots \ ddots ddots beta _ {m-1} \ beta _ {m-1} alpha _ {m-1} beta _ {m} \ 0 beta _ {m} alpha _ {m} \ end {pmatrix}}}{ displaystyle T = { begin {pmatrix}  alpha _ {1}  beta _ {2} 0 \ beta _ {2}  alpha _ {2}  beta _ {3} \  beta _ {3}  alpha _ {3}  ddots \  ddots  ddots  beta _ {m-1} \  beta _ {m-1}  alpha _ {m-1}  beta _ {m} \ 0  beta _ {m}  alpha _ {m} \ end {pmatrix }}} .
    ПримечаниеA vj = wj ′ = β j + 1 vj + 1 + α jvj + β jvj — 1 { displaystyle Av_ {j} = w_ {j} ‘= beta _ {j + 1} v_ {j + 1} + alpha _ {j} v_ {j} + beta _ {j} v_ {j-1}}{displaystyle Av_{j}=w_{j}'=beta _{j+1}v_{j+1}+alpha _{j}v_{j}+beta _{j}v_{j-1}}для 1 < j < m {displaystyle 1{ displaystyle 1 <j <m} .

    В принципе существует четыре способа написать итерационные полномочия. Пейдж и другие работы показывают, что приведенный выше порядок наиболее устойчиво устойчивым. На практике начальный вектор v 1 { displaystyle v_ {1}}v_ {1} может быть взят как другой аргумент процедуры с β j = 0 { displaystyle beta _ {j} = 0}{ displaystyle  beta _ {j} = 0 } и индикаторы числовой неточности включены в качестве дополнительных условий завершения цикла.

    Не считая умножения матрицы на вектор, каждая итерация действия O (n) { displaystyle O (n)}O (n) арифметических операций. Умножение матрицы на вектор может быть выполнено в O (dn) { displaystyle O (dn)}{ displaystyle O (dn)} арифметических операциях, где d { displaystyle d}d— это среднее количество ненулевых элементов в строке. Таким образом, общая сложность составляет O (dmn) { displaystyle O (dmn)}{ displaystyle O ( dmn)} или O (dn 2) { displaystyle O (dn ^ {2})}{ displaystyle O (dn ^ {2})} если m = n { displaystyle m = n}m = n ; алгоритм Ланцоша может быть очень быстрым для разреженных матриц. Схемы для улучшения числовой стабильности обычно оцениваются по этой высокой производительности.

    Векторы v j { displaystyle v_ {j}}v_ {j} называются явлениями Ланцоша. Вектор wj ′ { displaystyle w_ {j} ‘}{displaystyle w_{j}'}не используется после вычислений wj { displaystyle w_ {j}}w_ {j} , а вектор wj { displaystyle w_ {j}}w_ {j} не используется после вычислений vj + 1 { displaystyle v_ {j + 1}}{ displaystyle v_ {j + 1}} . Следовательно, можно использовать одно и то же хранилище для всех трех. Аналогичным образом, если ищется только трехдиагональная матрица T { displaystyle T}T , тогда исходная итерация не требует vj — 1 { displaystyle v_ {j-1}}{ displaystyle v_ {j -1}} после вычислений wj { displaystyle w_ {j}}w_ {j} , хотя для некоторых схем повышения числовой стабильности это позже. Иногда последующие пересадки Ланцоша при необходимости читаются из v 1 { displaystyle v_ {1}}v_ {1} .

    Применение к задаче собственных значений

    Алгоритм Ланцоша чаще всего используется в контексте поиска собственные значения и собственных векторов матрицы, но в то время как обычная диагонализация матрицы сделала бы трех проверенные конструкции и собственные значения очевидными прике, это не верно для выполняемой алгоритмом Ланцоша; Для вычисления даже одного собственного значения или вектора необходимы нетривиальные дополнительные шаги. Тем не менее, применение алгоритма Ланцоша часто является значительным шагом вперед в вычислении собственного разложения. Если λ { displaystyle lambda} lambda является собственным значением A { displaystyle A}A , и если T x = λ x { displaystyle Tx = lambda x}{ displaystyle Tx =  lambda x} (x { displaystyle x}x затем является собственным вектором T { displaystyle T}T ), y = V x { displaystyle y = Vx}{ displaystyle y = Vx} — собственный собственный вектор A { displaystyle A}A (поскольку A y = AV x = VTV ∗ V x = VTI x Знак равно VT Икс = В (λ Икс) = λ В Икс = λ Y { Displaystyle Ay = AVx = VTV ^ {*} Vx = VTIx = VTx = V ( lambda x) = lambda Vx = lambda y}{ displaystyle Ay = AVx = VTV ^ {*} Vx = VTIx = VTx = V ( lambda x) =  lambda Vx =  lambda y} ). Таким образом, алгоритм Ланцоша преобразует проблему собственного разложения для A { displaystyle A}A в задачу собственного разложения для T { displaystyle T}T .

    1. Для трехдиагональных матриц существует ряд специализированных алгоритмов, часто с большей вычислительной сложностью, чем алгоритмы общего назначения. Например, если T { displaystyle T}T представляет собой трехдиагональную симметричную матрицу m × m { displaystyle m times m}m  раз m , тогда:
    2. Известно, некоторые общие алгоритмы разложения на собственные числа, в частности, QR-алгоритм, сход быстрее для трехдиагональных матриц, чем для обычных матриц. Асимптотическая сложность трехдиагонального QR составляет O (m 2) { displaystyle O (m ^ {2})}{ displaystyle O (m ^ {2})} , как и для алгоритма «разделяй и властвуй» (хотя постоянный множитель может быть другим.) ; так как собственные конструкции вместе имеют m 2 { displaystyle m ^ {2}}m ^ {2} элементов, это асимптотически оптимально.
    3. Даже алгоритмы, скорость сходимости которых не зависит от унитарных преобразователей, таких как метод мощности и обратная итерация, может иметь преимущества на низком уровне производительности от применения к трехдиагональной матрице T { displaystyle T}T чем скорее исходная матрица A { displaystyle A}A . Время T { displaystyle T}T очень разрежен, все ненулевые элементы находятся в хорошо предсказуемых позициях, обеспечивает компактное хранение с превосходной производительностью по сравнению с кэшированием. Аналогично, T { displaystyle T}T — это вещественная матрица со всеми собственными объектами и собственными значениями действительными, тогда как A { displaystyle A}A как правило, может иметь сложные элементы и существующие, поэтому достаточно вещественной арифметики для собственных векторов и собственных значений T { displaystyle T}T .
    4. Если n { displaystyle n}n равно очень большой, то уменьшение m { displaystyle m}mтак, чтобы T { displaystyle T}T имел управляемый размер, все равно позволит найти более экстремальные собственные значения и конструктивные элементы A { displaystyle A}A ; в области m ≪ n { displaystyle m ll n}{ displaystyle m  ll n} алгоритм Ланцоша можно рассматривать как схему сжатие с потерянными для эрмитовых матриц, которая подчеркивает сохранение крайних собственных значений.

    Сочетание хорошей производительности для разреженных матриц и способности вычислять несколько (без всех вычислений) значений собственных показателей использования алгоритма Ланцоша.

    Применение к трехдиагонализации

    Хотя проблема собственных значений часто является мотивацией для применения алгоритма Ланцоша, операция, которая в первую очередь выполняет алгоритм, представляет собой трехдиагонализацию матрицы, для которой численно стабильны преобразования Хаусхолдера Популярностью с 1950-х годов. В 60-е годы алгоритм Ланцоша не принимался во внимание. Интерес к нему был возрожден теорией конвергенции Каниэля — Пейджа и разработала методы предотвращения числовой нестабильности, но алгоритм Ланцоша является альтернативным алгоритмом, который можно пробовать только в том случае, если Хаусхолдер не удовлетворителен.

    два алгоритма различаются: использует

    • Ланцош то, что A { displaystyle A}A является разреженным матрицей, тогда как Хаусхолдер этого не делает, и генерирует заполнение.
    • Ланцоша работает с исходной матрицей A { displaystyle A}A (и не имеет проблем с тем, что она известна только неявно), тогда как необработанный Хаусхолдер хочет изменить матрицу во время вычислений (хотя это может быть
    • Каждая итера алгоритма Ланцоша создает другой столбец матрицы окончательного преобразования V { displaystyle V}V , тогда итерация Хаусхолдера еще один множитель в унитарной факторизации Q 1 Q 2… Q n { displaystyle Q_ {1} Q_ {2} dots Q_ {n}}{  displaystyle Q_ {1} Q_ {2}  dots Q_ {n}} из V { displaystyle V}V . Однако каждый фактор определяется одним вектором, поэтому требования к памяти одинаковы для обоих алгоритмов, и V = Q 1 Q 2… Q n { displaystyle V = Q_ {1} Q_ {2} dots Q_ {n}}{ displaystyle V = Q_ {1} Q_ { 2}  точки Q_ {n}} можно вычислить в O (n 3) { displaystyle O (n ^ {3})}O (n ^ {3}) time.
    • Домохозяин — это численно стабильный, тогда как исходный Ланцош — нет.
    • Ланцош очень параллелен, только с O (n) { displaystyle O (n)}O (n) точками синхронизации (вычисления α j { displaystyle alpha _ {j}} alpha _ {j} и β j { displaystyle beta _ {j}} beta _ {j} ). Хаусхолдер менее параллелен, поскольку имеет последовательность O (n 2) { displaystyle O (n ^ {2})}O (n ^ {2}) вычисленных скалярных величин, каждая из которых зависит от предыдущей величины в последовательности.

    Вывод алгоритма

    Есть несколько аргументов, которые приводят к алгоритму Ланцоша.

    Более предусмотрительный метод мощности

    Метод мощности для нахождения собственного значения наибольшей величины и соответствующей матрицы матрицы A { displaystyle A}A является примерно

    1. Выберите случайный вектор u 1 ≠ 0 { displaystyle u_ {1} neq 0}{ displaystyle u_ {1}  neq 0} .
    2. для j ⩾ 1 { displaystyle j geqslant 1}{ displaystyle j  geqslant 1} (пока направление uj { displaystyle u_ {j}}u_ {j} не сойдется) do:
      1. Пусть uj + 1 ′ = A uj. { displaystyle u_ {j + 1} ‘= Au_ {j}.}{displaystyle u_{j+1}'=Au_{j}.}
      2. Пусть u j + 1 = u j + 1 ′ / ‖ u j + 1 ′ ‖. { displaystyle u_ {j + 1} = u_ {j + 1} ‘/ | u_ {j + 1} ‘ |.}{displaystyle u_{j+1}=u_{j+1}'/|u_{j+1}'|.}

    Этот метод может быть подвергнут критике за его расточительность: он тратит много работы (произведение матрица-вектор на шаге 2.1), извлекая информация из матрицы A { displaystyle A}A , но обращает внимание только на самый последний результат; обычно используют одну и ту же переменную для всех векторов u j { displaystyle u_ {j}}u_ {j} , при этом новая итерация перезаписывает результаты предыдущей. Что, если вместо этого мы сохраним все промежуточные результаты и систематизируем их данные?

    Одна часть информации, которая тривиально доступна из векторов u j { displaystyle u_ {j}}u_ {j} , представляет собой цепочку подпространств Крылова. Один из способов заявить, что без введения наборов в алгоритме — заявить, что он вычисляет

    подмножество {vj} j = 1 m { displaystyle {v_ {j} } _ {j = 1} ^ { m}}{ displaystyle  {v_ {j} } _ {j = 1} ^ {m}} основы C n { displaystyle mathbb {C} ^ {n}}{ displaystyle  mathbb {C} ^ {n}} такой, что A x ∈ span ⁡ (v 1,…, vj + 1) { displaystyle Ax in operatorname {span} (v_ {1}, dotsc, v_ {j + 1})}{ displaystyle Ax  in  operatorname { span} (v_ {1},  dotsc, v_ {j + 1})} для каждого x ∈ span ⁡ (v 1,…, vj) { displaystyle x in operatorname {span} (v_ {1}, dotsc, v_ {j})}{ displaystyle x  in  operatorname { span} (v_ {1},  dotsc, v_ {j})} и все 1 ⩽ j < m ; {displaystyle 1leqslant j{ displaystyle 1  leqslant j <m;}

    это тривиально удовлетворяется vj = uj { displaystyle v_ {j} = u_ {j}}{ displaystyle v_ {j} = u_ {j}} до тех пор, пока uj { displaystyle u_ {j}}u_ {j} линейно не зависит от u 1,…, uj — 1 { displaystyle u_ {1}, dotsc, u_ {j-1}}{  displaystyle u_ {1},  dotsc, u_ {j-1}} (и в случае такой зависимости, то можно продолжить последовательность, выбрав в качестве vj { displaystyle v_ {j}}v_ {j} произвольный вектор, линейно независимый от u 1,…, uj — 1 { displaystyle u_ {1}, dotsc, u_ {j-1}}{  displaystyle u_ {1},  dotsc, u_ {j-1}} ). Однако базис быстро обусловлен uj { displaystyle u_ {j}}u_ {j} , скорее всего, будет численно плохо обусловлен, поскольку эта последовательность векторов по замыслу обеспечивает схождения в собственном векторе А { displaystyle A}A . Чтобы избежать этого, можно комбинировать степенную итерацию с процессом Грама — Шмидта, чтобы вместо этого получить ортонормированный базис этих подпространств Крылова.

    1. Выберите случайный вектор u 1 { displaystyle u_ {1}}u_ {1} евклидовой нормы 1 { displaystyle 1}1 . Пусть v 1 = u 1 { displaystyle v_ {1} = u_ {1}}{ displaystyle v_ {1} = u_ {1}} .
    2. для j = 1,…, m — 1 { displaystyle j = 1, dotsc, m- 1}{ displaystyle j = 1,  dotsc, m-1} do:
      1. Пусть uj + 1 ′ = A uj { displaystyle u_ {j + 1} ‘= Au_ {j}}{displaystyle u_{j+1}'=Au_{j}}.
      2. Для всех к = 1,…, j { displaystyle k = 1, dotsc, j}{ displaystyle k = 1,  dotsc, j} пусть gk, j = vk ∗ uj + 1 ′ { displaystyle g_ {k, j} = v_ {k} ^ {*} u_ {j + 1} ‘}{displaystyle g_{k,j}=v_{k}^{*}u_{j+1}'}. (Это координаты A uj = uj + 1 ′ { displaystyle Au_ {j} = u_ {j + 1} ‘}{displaystyle Au_{j}=u_{j+1}'}относительно базисных векторов v 1,…, Vj { displaystyle v_ {1}, dotsc, v_ {j}}{ displaystyle v_ {1},  dotsc, v_ {j}} .)
      3. Пусть wj + 1 = uj + 1 ′ — ∑ k = 1 jgk, jvk { displaystyle w_ {j + 1} = u_ {j + 1} ‘- sum _ {k = 1} ^ {j} g_ {k, j} v_ {k}}{displaystyle w_{j+1}=u_{j+1}'-sum _{k=1}^{j}g_{k,j}v_{k}}. (Отменить компонент uj + 1 ′ { displaystyle u_ {j + 1} ‘}{displaystyle u_{j+1}'}, который находится в span ⁡ (v 1,…, vj) { displaystyle operatorname {span} (v_ {1}, dotsc, v_ {j}) }{ displaystyle  operatorname {span} (v_ {1},  dotsc, v_ {j})} .)
      4. Если wj + 1 ≠ 0 { displaystyle w_ {j + 1} neq 0}{  displaystyle w_ {j + 1}  neq 0} , тогда пусть uj + 1 = uj + 1 ′ / ‖ uj + 1 ′ ‖ { displaystyle u_ {j + 1} = u_ {j + 1} ‘/ | u_ {j + 1}’ |}{displaystyle u_{j+1}=u_{j+1}'/|u_{j+1}'|}и vj + 1 = wj + 1 / ‖ Wj + 1 ‖ { displaystyle v_ {j + 1} = w_ {j + 1} / | w_ {j + 1} |}{ displaystyle v_ {j + 1} = w_ {j + 1} /  | w_ {j + 1}  |} ,
        в случае опасности uj + 1 = vj + 1 { displaystyle u_ {j + 1} = v_ {j + 1}}{ displaystyle u_ {j + 1} = v_ {j + 1}} произвольный вектор евклидовой нормы 1 { displaystyle 1}1 который ортогонал ен всем из v 1,…, vj { displaystyle v_ {1}, dotsc, v_ {j}}{ displaystyle v_ {1},  dotsc, v_ {j}} .

    соотношение между вектором степенных итераций uj { displaystyle u_ {j}}u_ {j} и ортогон векторами vj { displaystyle v_ {j}}v_ {j} таково, что

    A uj знак равно ‖ uj + 1 ′ ‖ uj + 1 = uj + 1 ′ = wj + 1 + ∑ К знак равно 1 jgk, jvk = ‖ wj + 1 ‖ vj + 1 + ∑ k = 1 jgk, jvk { displaystyle Au_ {j} = | u_ {j + 1} ‘ | u_ {j + 1} = u_ {j + 1} ‘= w_ {j + 1} + sum _ {k = 1} ^ {j} g_ {k, j} v_ {k} = | w_ {j + 1} | v_ {j + 1} + sum _ {k = 1} ^ {j} g_ {k, j} v_ {k}}{displaystyle Au_{j}=|u_{j+1}'|u_{j+1}=u_{j+1}'=w_{j+1}+sum _{k=1}^{j}g_{k,j}v_{k}=|w_{j+1}|v_{j+1}+sum _{k=1}^{j}g_{k,j}v_{k}}.

    Здесь можно заметить, что нам на самом деле не нужна конструкция uj { displaystyle u_ {j}}u_ {j} для вычислений этих vj { displaystyle v_ {j}}v_ {j} , потому что uj — vj ∈ span ⁡ (v 1,…, vj — 1) { displaystyle u_ {j} -v_ {j} in operatorname {span} (v_ {1}, dotsc, v_ {j-1})}{ displaystyle u_ {j} -v_ {j}  in  operatorname {span} (v_ {1},  dotsc, v_ {j-1})} и, следовательно, разница между uj + 1 ′ = A uj { displaystyle u_ {j + 1} ‘= Au_ {j}}{displaystyle u_{j+1}'=Au_{j}}и wj + 1 ′ = A vj { displaystyle w_ {j + 1} ‘= Av_ {j}}{displaystyle w_{j+1}'=Av_{j}}находится в <358 диапазоне ⁡ (v 1,…, Vj) { displaystyle operatorname {span} (v_ {1}, dotsc, v_ {j})}{ displaystyle  operatorname {span} (v_ {1},  dotsc, v_ {j})} , который отменяется процесс ортогонализации. Таким образом, тот же самый базис для цепочки подпространств Крылова вычисляется с помощью

    1. Выбрать случайный вектор v 1 { displaystyle v_ {1}}v_ {1} евклидовой нормы 1 { displaystyle 1}1 .
    2. Для j = 1,…, m — 1 { displaystyle j = 1, dotsc, m-1}{ displaystyle j = 1,  dotsc, m-1} do:
      1. Пусть wj + 1 ′ = A vj { displaystyle w_ {j + 1} ‘= Av_ {j}}{displaystyle w_{j+1}'=Av_{j}}.
      2. Для всех k = 1,…, j { displaystyle k = 1, dotsc, j}{ displaystyle k = 1,  dotsc, j} пусть hk, j = vk ∗ wj + 1 ′ { displaystyle h_ {k, j} = v_ {k} ^ {*} w_ {j + 1} ‘}{displaystyle h_{k,j}=v_{k}^{*}w_{j+1}'}.
      3. Пусть wj + 1 = wj + 1 ′ — ∑ К = 1 jhk, jvk { displaystyle w_ {j + 1} = w_ {j + 1} ‘- sum _ {k = 1} ^ {j} h_ {k, j} v_ {k}}{displaystyle w_{j+1}=w_{j+1}'-sum _{k=1}^{j}h_{k,j}v_{k}}.
      4. Пусть hj + 1, j = ‖ wj + 1 ‖ { displaystyle h_ {j + 1, j} = | w_ {j + 1} |}{ displaystyle h_ {j + 1, j} =  | w_ {j + 1}  |} .
      5. Если hj + 1, j ≠ 0 { displaystyle h_ {j + 1, j} neq 0}{  displaystyle h_ {j + 1, j}  neq 0} , тогда пусть vj + 1 = wj + 1 / hj + 1, j { displaystyle v_ {j + 1} = w_ {j + 1} / h_ {j + 1, j}}{ displaystyle v_ {j + 1} = w_ {j + 1} / h_ {j + 1, j}} ,
        в противном случае получить как vj + 1 { displaystyle v_ {j + 1}}{ displaystyle v_ {j + 1}} произвольный вектор евклидовой нормы 1 { displaystyle 1}1 , который ортогонален всем из v 1,…, vj { displaystyle v_ {1}, dotsc, v_ {j}}{ displaystyle v_ {1},  dotsc, v_ {j}} .

    Априори коэффициенты hk, j { displaystyle h_ {k, j}}{ displaystyle h_ {k, j}} удовлетворяет

    A vj знак равно ∑ К знак равно 1 j + 1 hk, jvk { displaystyle Av_ {j} = sum _ {k = 1} ^ {j + 1} h_ {k, j} v_ {k}}{ displaystyle Av_ {j} =  sum _ {k = 1} ^ {j + 1} h_ {k, j} v_ {k}} для всех j < m {displaystyle j{ displaystyle j <m } ;

    определение hj + 1, j = ‖ wj + 1 ‖ { displaystyle h_ {j + 1, j} = | w_ {j + 1} |}{ displaystyle h_ {j + 1, j} =  | w_ {j + 1}  |} может показаться немного странным, но соответствует общему шаблону hk, j = vk ∗ wj + 1 ′ { displaystyle h_ {k, j} = v_ {k } ^ {*} w_ {j + 1} ‘}{displaystyle h_{k,j}=v_{k}^{*}w_{j+1}'}, поскольку

    vj + 1 ∗ wj + 1 ′ = vj + 1 ∗ wj + 1 = ‖ wj + 1 ‖ vj + 1 ∗ vj + 1 = ‖ Wj + 1 ‖. { Displaystyle v_ {j + 1} ^ {*} w_ {j + 1} ‘= v_ {j + 1} ^ {*} w_ {j + 1} = | w_ {j + 1} | v_ {j + 1} ^ {*} v_ {j + 1} = | w_ {j + 1} |.}{displaystyle v_{j+1}^{*}w_{j+1}'=v_{j+1}^{*}w_{j+1}=|w_{j+1}|v_{j+1}^{*}v_{j+1}=|w_{j+1}|.}

    Технических степенных итераций uj { displaystyle u_ {j}}u_ {j} , которые были исключены из этой рекурсии, удовлетворяют uj ∈ span ⁡ (v 1,…, vj), { displaystyle u_ {j} in operatorname {span} (v_ {1}, ldots, v_ {j}),}{ displaystyle u_ {j}  in  operatorname {span} (v_ {1},  ldots, v_ {j}),} векторы {vj} j = 1 m { displaystyle {v_ {j} } _ {j = 1} ^ {m}}{ displaystyle  {v_ {j} } _ {j = 1} ^ {m}} и коэффициенты hk, j { displaystyle h_ {k, j}}{ displaystyle h_ {k, j}} содержат достаточно информации из A { displaystyle A}A , что все из u 1,…, um { displaystyle u_ {1}, ldots, u_ {m}}u_ {1},  ldots, u_ {m} можно вычислить, поэтому при переключении векторов ничего не потеряно. (Действительно, оказывается, что собранные здесь данные дают значительно лучшее приближение к наибольшему собственному значению, чем получается при равном количестве итераций в степенном методе, хотя на данном этапе это не обязательно очевидно.)

    Эта последняя процедура является итерацией Арнольди. Алгоритм Ланцоша возникает как упрощение, которое можно получить за счет исключения этапов вычисления, которые оказываются тривиальными, когда A { displaystyle A}A эрмитово, в частности, большая часть hk, j Коэффициенты { displaystyle h_ {k, j}}{ displaystyle h_ {k, j}} оказываются равными нулю.

    Элементарно, если A { displaystyle A}A эрмитово, то

    hk, j = vk ∗ wj + 1 ′ = vk ∗ A vj = vk ∗ A ∗ vj = (A vk) ∗ vj. { displaystyle h_ {k, j} = v_ {k} ^ {*} w_ {j + 1} ‘= v_ {k} ^ {*} Av_ {j} = v_ {k} ^ {*} A ^ { *} v_ {j} = (Av_ {k}) ^ {*} v_ {j}.}{displaystyle h_{k,j}=v_{k}^{*}w_{j+1}'=v_{k}^{*}Av_{j}=v_{k}^{*}A^{*}v_{j}=(Av_{k})^{*}v_{j}.}

    Для k < j − 1 {displaystyle k{ displaystyle k <j-1} мы знаем, что A vk ∈ span ⁡ (v 1,…, vj — 1) { displaystyle Av_ {k} in operatorname {span} (v_ {1}, ldots, v_ {j-1})}{ displaystyle Av_ {k}  in  operatorname {span} (v_ {1},  ldots, v_ {j- 1})} , а поскольку vj { displaystyle v_ { j}}v_ {j} по построению ортогонален этому подпространству, это внутреннее произведение должно быть нулевым. (По сути, это также причина того, почему последовательностям ортогональных многочленов всегда можно задать трехчленное рекуррентное соотношение.) Для k = j — 1 { displaystyle k = j-1}{ displaystyle к = j-1} получается

    hj — 1, j = (A vj — 1) ∗ vj = vj ∗ A vj — 1 ¯ = hj, j — 1 ¯ = hj, j — 1 { displaystyle h_ {j -1, j} = (Av_ {j-1}) ^ {*} v_ {j} = { overline {v_ {j} ^ {*} Av_ {j-1}}} = { overline {h_ { j, j-1}}} = h_ {j, j-1}}{ displaystyle h_ {j-1, j} = (Av_ {j-1}) ^ {*} v_ {j} = { overline {v_ {j} ^ {*} Av_ {j-1 }}} = { overline {h_ {j, j- 1}}} = h_ {j, j-1}}

    , поскольку последний является действительным, поскольку является нормой вектора. Для k = j { displaystyle k = j}{ displaystyle k = j} получается

    hj, j = (A vj) ∗ vj = vj ∗ A vj ¯ = hj, j ¯, { displaystyle h_ {j, j} = (Av_ {j}) ^ {*} v_ {j} = { overline {v_ {j} ^ {*} Av_ {j}}} = { overline {h_ {j, j }}},}{ displaystyle h_ {j, j} = (Av_ {j}) ^ {* } v_ {j} = { overline {v_ {j} ^ {*} Av_ {j}}} = { overline {h_ {j, j}}},}

    означает, что это тоже реально.

    Более абстрактно, если V { displaystyle V}V представляет собой матрицу со столбцами v 1,…, vm { displaystyle v_ {1}, ldots, v_ {m}}{ displaystyle v_ {1},  ldot s, v_ {m}} , то числа hk, j { displaystyle h_ {k, j}}{ displaystyle h_ {k, j}} могут быть идентифицированы как элементы матрицы H = V ∗ AV { displaystyle H = V ^ {*} AV}{ displaystyle H = V ^ {*} AV} и hk, j = 0 { displaystyle h_ {k, j} = 0}{ displaystyle h_ {k, j} = 0} для к>j + 1; { displaystyle k>j + 1;}{displaystyle k>j + 1;} матрица H { displaystyle H}H является верхним Hessenberg. Поскольку

    H ∗ = (V ∗ AV) * = V * A * V = V * AV = H { Displaystyle H ^ {*} = left (V ^ {*} AV right) ^ {*} = V ^ {*} A ^ {*} V = V ^ {*} AV = H}{ displaystyle H ^ {*} =  left (V ^ {*} AV  right) ^ {*} = V ^ {*} A ^ {*} V = V ^ {*} AV = H}

    матрица H { displaystyle H}H эрмитова. Это означает, что H { displaystyle H}H также является нижним по Гессенбергу, поэтому на самом деле он должен быть трехдиагональным. Поскольку его главная диагональ является эрмитовой, ее главная диагональ действительна, а поскольку ее первая поддиагональ реальна по конструкции, то же самое верно и для ее первой наддиагонали. Следовательно, H { displaystyle H}H — это действительная симметричная матрица — матрица T { displaystyle T}T из спецификации алгоритма Ланцоша.

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

    Один из способов охарактеризовать собственные векторы эрмитова матрица A { displaystyle A}A — это как стационарные точки из частного отношения Рэлея

    r (x) = x ∗ A xx ∗ x, x ∈ C n. { displaystyle r (x) = { frac {x ^ {*} Ax} {x ^ {*} x}}, qquad x in mathbb {C} ^ {n}.}{ displaystyle r (x) = { frac {x ^ {*} Ax} {x ^ {*} x }},  qquad x  in  mathbb {C} ^ {n}.}

    В частности, наибольшее собственное значение λ max { displaystyle lambda _ { max}} lambda_  max — это глобальный максимум r { displaystyle r}r и наименьшее собственное значение λ min { displaystyle lambda _ { min}} lambda_  min — это глобальный минимум r { displaystyle r}r .

    в подпространстве низкой размерности L { displaystyle { mathcal {L}}}{ mathcal {L}} из C n { displaystyle mathbb {C} ^ {n}}{ displaystyle  mathbb {C} ^ {n}} может оказаться возможным найти максимум x { displaystyle x}x и минимум y { displaystyle y}Y из r { displaystyle r}r . Повторяя это для возрастающей цепочки L 1 ⊂ L 2 ⊂ ⋯ { displaystyle { mathcal {L}} _ {1} subset { mathcal {L}} _ {2} subset cdots}{ displaystyle { mathcal {L}} _ {1}  subset { mathcal {L}} _ {2}  subset  cdots} производит две последовательности векторов: x 1, x 2,… { displaystyle x_ {1}, x_ {2}, ldots}x_1, x_2,  ldots и y 1, y 2,… { displaystyle y_ {1}, y_ {2}, dotsc}{ displaystyle y_ {1}, y_ {2},  dotsc} такие, что xj, yj ∈ L j { displaystyle x_ {j}, y_ {j} in { mathcal {L}} _ {j}}{ displaystyle x_ {j}, y_ {j}  in { mathcal {L}} _ {j}} и

    r (x 1) ⩽ r (x 2) ⩽ ⋯ ⩽ λ max r (y 1) ⩾ r (y 2) ⩾ ⋯ ⩾ λ мин { Displaystyle { begin {align} r (x_ {1}) leqslant r (x_ {2}) leqslant cdots leqslant lambda _ { max} \ r (y_ {1 }) geqslant r (y_ {2}) geqslant cdots geqslant lambda _ { min} end {align}}}{ displaystyle { begin {align} r (x_ {1})  leqslant r (x_ {2})  leqslant  cdots  leqslant  lambda _ { max} \ r (y_ {1})  geqslant r (y_ {2})  geqslant  cdots  geqslant  lambda _ { min}  end {align}}}

    Тогда возникает вопрос, как выбрать подпространства, чтобы эти последовательности сходились в оптимальная скорость.

    Из xj { displaystyle x_ {j}}x_ {j} , оптимальное направление для поиска больших значений r { displaystyle r}r — это градиент ∇ r (xj) { displaystyle nabla r (x_ {j})}{ displaystyl е  набла г (x_ {j})} , а также от yj { displaystyle y_ {j}}y_ {j} оптимальным направлением поиска меньших значений r { displaystyle r}r является направление отрицательного градиента — ∇ r (yj) { displaystyle — nabla r (y_ {j})}{ displaystyle -  nabla r (y_ {j})} . В общем

    ∇ r (x) = 2 x ∗ x (A x — r (x) x) { displaystyle nabla r (x) = { frac {2} {x ^ {*} x}} (Ax-r (x) x)}{ displaystyle  nabla r (x) = { гидроразрыв {2} {x ^ {*} x}} (Ax-r (x) x)} ,

    поэтому интересующие направления достаточно легко вычислить в матричной арифметике, но если кто-то хочет улучшить оба, xj { displaystyle x_ {j}}x_ {j} и yj { displaystyle y_ {j}}y_ {j} то есть два новых направления, которые следует учитывать: A xj { displaystyle Ax_ {j}}{ displaystyle Ax_ {j}} и A yj; { displaystyle Ay_ {j};}{ displaystyle Ay_ {j};} начиная с xj { displaystyle x_ {j}}x_ {j} и yj { displaystyle y_ {j}}y_ {j} могут быть линейно независимыми векторами (действительно, близкими к ортогональным), в общем случае нельзя ожидать A xj { displaystyle Ax_ {j}}{ displaystyle Ax_ {j}} и A yj { displaystyle Ay_ {j}}{ displaystyle Ay_ {j}} быть параллельным. Следовательно, необходимо ли увеличивать размер L j { displaystyle { mathcal {L}} _ {j}} mathcal {L} _j на 2 { displaystyle 2}2 на каждом шагу? Нет, если взять {L j} j = 1 m { displaystyle {{ mathcal {L}} _ {j} } _ {j = 1} ^ {m}}{ displaystyle  {{ mathcal {L}} _ {j} } _ {j = 1} ^ {m }} быть подпространствами Крылова, потому что тогда A z ∈ L j + 1 { displaystyle Az in { mathcal {L}} _ {j + 1}}{ displaystyle Az  in { mathcal {L}} _ { j + 1}} для всех z ∈ L j, { displaystyle z in { mathcal {L}} _ {j},}{ displaystyle z  in { mathcal {L}} _ {j},} таким образом, в частности, для обоих z = xj { displaystyle z = x_ {j}}{ displaystyle z = x_ {j}} и z = yj { displaystyle z = y_ {j}}{ displaystyle z = y_ {j}} .

    Другими словами, мы можем начать с некоторого произвольного начального вектора x 1 = y 1, { displaystyle x_ {1} = y_ {1},}{ displaystyle x_ {1} = y_ {1},} построить векторные пространства

    L j = span ⁡ (x 1, A x 1,…, A j — 1 x 1) { displaystyle { mathcal {L}} _ {j} = operatorname {span} (x_ {1}, Ax_ {1}, ldots, A ^ {j-1} x_ {1})}{ displaystyle { mathcal {L}} _ {j} =  operatorname {span} (x_ { 1}, Ax_ {1},  ldots, A ^ {j -1} x_ {1})}

    и затем искать xj, yj ∈ L j { displaystyle x_ {j}, y_ {j} in { mathcal {L}} _ {j}}{ displaystyle x_ {j}, y_ {j}  in { mathcal {L}} _ {j}} такие, что

    r (xj) = max z ∈ L jr (z) и r (yj) = min z ∈ L jr (z). { displaystyle r (x_ {j}) = max _ {z in { mathcal {L}} _ {j}} r (z) qquad { text {and}} qquad r (y_ {j }) = min _ {z in { mathcal {L}} _ {j}} r (z).}{ displaystyle r ( x_ {j}) =  max _ {z  in { mathcal {L}} _ {j}} r (z)  qquad { text {и}}  qquad r (y_ {j}) =  min _ {z  in { mathcal {L}} _ {j}} r (z).}

    Поскольку j { displaystyle j}j th степень метод итерации uj { displaystyle u_ {j}}u_ {j} принадлежит L j, { displaystyle { mathcal {L}} _ {j},}{ displaystyle { mathcal {L}} _ {j},} из этого следует, что итерация для создания xj { displaystyle x_ {j}}x_ {j} и yj { displaystyle y_ {j}}y_ {j} не может сходиться медленнее, чем это метода мощности и достигнет большего, аппроксимируя оба крайних значения собственных значений. Для подзадачи оптимизации r { displaystyle r}r на некотором L j { displaystyle { mathcal {L}} _ {j}}{ displaystyle { mathcal {L}} _ {j}} он удобно иметь ортонормированный базис {v 1,…, vj} { displaystyle {v_ {1}, ldots, v_ {j} }}{ displaystyle  {v_ {1},  ldots, v_ {j} }} для этого векторного пространства. Таким образом, мы снова приходим к проблеме и проблеме такого базиса для поставляемого подпространств Крылова.

    Сходимость и другая динамика

    При анализе динамики алгоритма удобно брать собственные значения и собственные векторы A { displaystyle A}A как заданы, даже если они явно не известны пользователю. Чтобы зафиксировать обозначение, пусть λ 1 ⩾ λ 2 ⩾ ⋯ ⩾ λ n { displaystyle lambda _ {1} geqslant lambda _ {2} geqslant dotsb geqslant lambda _ {n}}{ displaystyle  lambda _ {1}  geqslant  lambda _ {2}  geqslant  dotsb  geqslant  lambda _ {n}} будет собственными значениями (все они известны, и поэтому их можно упорядочить), и пусть z 1,…, zn { displaystyle z_ {1}, dotsc, z_ {n}}{ displaystyle z_ {1},  dotsc, z_ {n}} быть ортонормированным набором собственных векторов такой, что A zk = λ kzk { displaystyle Az_ {k} = lambda _ {k} z_ {k}}{ displaystyle Az_ {k} =  lambda _ {k} z_ {k}} для всех k = 1,…, n { displaystyle k = 1, dotsc, n}{ displ aystyle k = 1,  dotsc, n} .

    Также удобно зафиксировать обозначение для коэффициентов исходного вектора Ланцоша v 1 { displaystyle v_ {1 }}v_ {1} относительно этого собственного базиса; пусть dk = zk ∗ v 1 { displaystyle d_ {k} = z_ {k} ^ {*} v_ {1}}{ displaystyle d_ {k} = z_ {k} ^ {*} v_ {1}} для всех k = 1,…, n { displaystyle k = 1, dotsc, n}{ displ aystyle k = 1,  dotsc, n} , так что v 1 = ∑ k = 1 ndkzk { displaystyle textstyle v_ {1} = sum _ {k = 1} ^ {n} d_ {k} z_ {k}}{ displaystyle  textstyle v_ {1} =  sum _ {k = 1} ^ {n} d_ {k} z_ {k}} . Начальный вектор v 1 { displaystyle v_ {1}}v_ {1} , лишенный некоторого собственного значения, будет задерживать сходимость к соответствующему собственному значению, и даже несмотря на то, что это просто оказывается постоянным фактором в границах ошибки, истощение остается нежелательным. Один из распространенных методов, позволяющих избежать постоянного удара, — выбрать v 1 { displaystyle v_ {1}}v_ {1} , сначала отрисовав элементы случайным образом в соответствии с тем же нормальным распределением со средним значением 0 { displaystyle 0}{ displaystyle 0} , а затем масштабируйте вектор до нормы 1 { displaystyle 1}1 . Prior to the rescaling, this causes the coefficients d k {displaystyle d_{k}}d_{k}to also be independent normally distributed stochastic variables from the same normal distribution (since the change of coordinates is unitary), and after rescaling the vector ( d 1, …, d n) {displaystyle (d_{1},dotsc,d_{n})}{ displaystyle (d_ {1},  dotsc, d_ {n})} will have a uniform distribution on the unit sphere in C n {displaystyle mathbb {C} ^{n}} mathbb {C} ^ {n} . This makes it possible to bound the probability that for example | d 1 | < ε {displaystyle |d_{1}|<varepsilon }{ displaystyle | d_ {1} | < varepsilon} .

    The fact that the Lanczos algorithm is coordinate-agnostic – operations only look at inner products of vectors, never at individual elements of vectors – makes it easy to construct examples with known eigenstructure to run the algorithm on: make A {displaystyle A}A a diagonal matrix with the desired eigenvalues on the diagonal; as long as the starting vector v 1 {displaystyle v_{1}}v_ {1} has enough nonzero elements, the algorithm will output a general tridiagonal symmetric матрица как T { displaystyle T}T .

    Теория сходимости Каниэля – Пейдж

    После m { displaystyle m}mитерационных шагов алгоритма Ланцоша, T { displaystyle T}T — это m × m { displaystyle m times m}m  раз m вещественная симметричная матрица, которая, как и в предыдущем случае, имеет m { displaystyle m}mсобственные значения θ 1 ⩾ θ 2 ⩾ ⋯ ⩾ θ m. { displaystyle theta _ {1} geqslant theta _ {2} geqslant dots geqslant theta _ {m}.}{ displaystyle  theta _ {1}  geqslant  theta _ {2}  geqslant  dots  geqslant  theta _ {m}.} Под конвергенцией в первую очередь понимается конвергенция θ 1 { displaystyle theta _ {1}} theta _ {1} до λ 1 { displaystyle lambda _ {1}} lambda _ {1} (и симметричная сходимость θ m { displaystyle theta _ {m}} theta _ {m} до λ n { displaystyle lambda _ {n}} lambda _ {n} ) как m { displaystyle m}mрастет, и, во-вторых, сходимость некоторого диапазона θ 1,…, θ k { displaystyle theta _ {1}, ldots, theta _ {k}}{ displaystyle  theta _ {1},  ldots,  theta _ { k}} собственные значения T { displaystyle T}T на их аналоги λ 1,…, λ k { displaystyle lambda _ {1}, ldots, lambda _ {k}}{ displaystyle  lambda _ {1},  ldots,  lambda _ {k}} из A { displaystyle A}A . Сходимость для алгоритма Ланцоша часто на порядки быстрее, чем для алгоритма степенной итерации.

    Границы для θ 1 { displaystyle theta _ {1}} theta _ {1} исходят из приведенной выше интерпретации собственных значений как крайних значений коэффициента Рэлея r (x) { displaystyle r (x)}r (x) . Поскольку λ 1 { displaystyle lambda _ {1}} lambda _ {1} априори является максимумом r { displaystyle r}r на всем C n, { displaystyle mathbb {C} ^ {n},}{ displaystyle  mathbb {C} ^ {n},} , тогда как θ 1 { displaystyle theta _ {1}} theta _ {1} — это просто максимум на an m { displaystyle m}m-мерное подпространство Крылова, мы тривиально получаем λ 1 ⩾ θ 1 { displaystyle lambda _ {1} geqslant theta _ {1}}{ displaystyle  lambda _ {1}  geqslant  theta _ {1}} . И наоборот, любая точка x { displaystyle x}x в этом подпространстве Крылова обеспечивает нижнюю границу r (x) { displaystyle r (x)}r (x) для θ 1 { displaystyle theta _ {1}} theta _ {1} , поэтому, если можно выставить точку, для которой λ 1 — r (x) { displaystyle lambda _ {1} — r (x)}{ displaystyle  lambda _ {1} -r (x)} мало, тогда это обеспечивает жесткую границу θ 1 { displaystyle theta _ {1}} theta _ {1} .

    Размер m { displaystyle m}mПодпространство Крылова — это

    span ⁡ {v 1, A v 1, A 2 v 1,…, A m — 1 v 1}, { displayst yle operatorname {span} left {v_ {1}, Av_ {1}, A ^ {2} v_ {1}, ldots, A ^ {m-1} v_ {1} right },}{ displaystyle  operatorname {span}  влево  {v_ {1}, Av_ {1}, A ^ {2} v_ {1},  ldots, A ^ {m-1} v_ {1}  right },}

    , поэтому любой его элемент может быть выражен как p (A) v 1 { displaystyle p (A) v_ {1}}{ displaystyle p (A) v_ {1}} для некоторого полинома p { displaystyle p}p степени не более м — 1 { displaystyle m-1}m-1 ; коэффициенты этого многочлена — это просто коэффициенты в линейной комбинации векторов v 1, A v 1, A 2 v 1,…, A m — 1 v 1 { displaystyle v_ {1}, Av_ {1}, A ^ { 2} v_ {1}, ldots, A ^ {m-1} v_ {1}}{ displaystyle v_ {1}, Av_ {1}, A ^ {2} v_ {1},  ldots, A ^ {m-1} v_ {1}} . У желаемого многочлена обеспечивают действующие коэффициенты, но на данный момент мы должны учитывать комплексные коэффициенты, и мы напишем p ∗ { displaystyle p ^ {*}}p ^ {*} для многочлен, полученный комплексным сопряжением всех коэффициентов п { displaystyle p}p . В этом параметре подпространства Крылова имеет

    r (p (A) v 1) = (p (A) v 1) ∗ A p (A) v 1 (p (A) v 1) ∗ p (A) v 1 = v 1 ∗ p (A) ∗ A p (A) v 1 v 1 ∗ p (A) ∗ p (A) v 1 = v 1 ∗ p ∗ (A ∗) A p (A) v 1 v 1 ∗ p * (A *) p (A) v 1 знак равно v 1 * p * (A) A p (A) v 1 v 1 * p * (A) p (A) v 1 { displaystyle r (p ( A) v_ {1}) = { frac {(p (A) v_ {1}) ^ {*} Ap (A) v_ {1}} {(p (A) v_ {1}) ^ {*} p (A) v_ {1}}} = { frac {v_ {1} ^ {*} p (A) ^ {*} Ap (A) v_ {1}} {v_ {1} ^ {*} p (A) ^ {*} p (A) v_ {1}}} = { frac {v_ {1} ^ {*} p ^ {*} (A ^ {*}) Ap (A) v_ {1} } {v_ {1} ^ {*} p ^ {*} (A ^ {*}) p (A) v_ {1}}} = { frac {v_ {1} ^ {*} p ^ {*} (A) Ap (A) v_ {1}} {v_ {1} ^ {*} p ^ {*} (A) p (A) v_ {1}}}}{ displaystyle r (p (A) v_ {1}) = { frac { (p (A) v_ {1}) ^ {*} Ap (A) v_ {1}} {(p (A) v_ {1}) ^ {*} p (A) v_ {1}}} = {  frac {v_ {1} ^ {*} p (A) ^ {*} Ap (A) v_ {1}} {v_ {1} ^ {*} p (A) ^ {*} p (A) v_ {1}}} = { frac {v_ {1} ^ {*} p ^ {*} (A ^ {*}) Ap (A) v_ {1}} {v_ {1} ^ {*} p ^ {*} (A ^ {*}) p (A) v_ {1}}} = { frac {v_ {1} ^ {*} p ^ {*} (A) Ap (A) v_ {1}} {v_ {1} ^ {*} p ^ {*} (A) p (A) v_ {1}}}}

    Используя теперь выражение для v 1 { displaystyle v_ {1}}v_ {1} как линейной комбинации собственных векторов мы получаем

    A v 1 = A ∑ k = 1 ndkzk = ∑ k = 1 ndk λ kzk { displaystyle Av_ {1 } = A sum _ {k = 1} ^ {n} d_ {k} z_ {k} = sum _ {k = 1} ^ {n} d_ {k} lambda _ {k} z_ { k}}{ displaystyle Av_ {1} = A  sum _ {k = 1} ^ {n} d_ {k} z_ {k} =  sum _ {k = 1} ^ {n} d_ { k}  lambda _ {k} z_ {k}}

    и в более общем плане

    q (A) v 1 = ∑ k = 1 ndkq (λ k) zk { displaystyle q (A) v_ {1} = sum _ {k = 1 } ^ {n} d_ {k} q ( lambda _ {k}) z_ {k}}{ displaystyle q (A) v_ {1} =  sum _ {k = 1} ^ {n} d_ {k} q ( lambda _ {k}) z_ {k}}

    для любого полинома q { displaystyle q}q .

    Таким образом,

    λ 1 — r (p (A) v 1) = λ 1 — v 1 ∗ ∑ k = 1 ndkp ∗ (λ k) λ kp (λ k) zkv 1 ∗ ∑ k = 1 ndkp ∗ (λ k) p (λ k) zk = λ 1 — ∑ k = 1 n | d k | 2 λ k p (λ k) ∗ p (λ k) ∑ k = 1 n | d k | 2 p (λ k) ∗ p (λ k) = ∑ k = 1 n | d k | 2 (λ 1 — λ k) | p (λ k) | 2 ∑ k = 1 n | d k | 2 | p (λ k) | 2. { displaystyle lambda _ {1} -r (p (A) v_ {1}) = lambda _ {1} — { frac {v_ {1} ^ {*} sum _ {k = 1 } ^ {n} d_ {k} p ^ {*} ( lambda _ {k}) lambda _ {k} p ( lambda _ {k}) z_ {k}} {v_ {1} ^ {* } сумма _ {k = 1} ^ {n} d_ {k} p ^ {*} ( lambda _ {k}) p ( lambda _ {k}) z_ {k}}} = lambda _ { 1} — { frac { sum _ {k = 1} ^ {n} | d_ {k} | ^ {2} lambda _ {k} p ( lambda _ {k}) ^ {*} p ( lambda _ {k})} { sum _ {k = 1} ^ {n} | d_ {k} | ^ {2} p ( lambda _ {k}) ^ {*} p ( lambda _ {k})}} = { frac { sum _ {k = 1} ^ {n} | d_ {k} | ^ {2} ( lambda _ {1} — lambda _ {k}) left | p ( lambda _ {k}) right | ^ {2}} { sum _ {k = 1} ^ {n} | d_ {k} | ^ {2} left | p ( lambda _ {k}) right | ^ {2}}}.}{ displaystyle  lambda _ {1} -r (p (A) v_ {1}) =  lambda _ {1} - { frac {v_ {1} ^ {*}  sum _ {k = 1} ^ {n} d_ {k} p ^ {*} ( lambda _ {k})  лямбда _ {k} p ( lambda _ {k}) z_ {k}} {v_ {1} ^ {*}  sum _ {k = 1} ^ {n} d_ {k} p ^ {*} (  lambda _ {k}) p ( lambda _ {k}) z_ {k}}} =  lambda _ {1} - { frac { sum _ {k = 1} ^ {n} | d_ {k} | ^ {2}  lambda _ {k} p ( lambda _ {k}) ^ {*} p ( lambda _ {k})} { sum _ {k = 1} ^ {n} | d_ {k} | ^ {2} p ( lambda _ {k}) ^ {*} p ( lambda _ {k})}} = { frac { sum _ {k = 1} ^ {n} | d_ {k} | ^ {2} ( lambda _ {1} -  lambda _ {k})  left | p ( lambda _ {k})  right | ^ {2}} { sum _ {k = 1} ^ {n} | d_ {k} | ^ {2}  left | p ( lambda _ {k})  right | ^ {2}}}.}

    Ключевое различие между числителем и знаменателем в том, что член k = 1 { displaystyle k = 1}k = 1 в числителе исчезает, но не в знаменателе. Таким образом, если можно выбрать p { displaystyle p}p большим на λ 1 { displaystyle lambda _ {1}} lambda _ {1} , но маленьким на всех остальных собственных значений, мы получим жесткую границу ошибки λ 1 — θ 1 { displaystyle lambda _ {1} — theta _ {1}}{ displaystyle  lambda _ {1} -  theta _ {1}} .

    Бук A { displaystyle A}A имеет намного больше значений, чем p { displaystyle p}p имеет коэффициенты, это может показаться сложным требованием, но один из способов удовлетворить это — использовать полиномы Чебышева. Запись ck { displaystyle c_ {k}}c_ {k} для степени k { displaystyle k}k полином Чебышева первого рода (который удовлетворяет ck (соз ⁡ х) = соз ⁡ (kx) { displaystyle c_ {k} ( cos x) = cos (kx)}{ displaystyle c_ {k} ( cos x) =  cos (kx)} для всех x { displaystyle x}x ), у нас естьчлен, который находится в диапазоне [- 1, 1] { displaystyle [-1,1]}[-1,1] на известном интервале [- 1, 1] { displaystyle [-1,1]}[-1,1] , но быстро растет за его пределами. При некотором масштабировании аргумента мы можем показать все собственные значения, кроме λ 1 { displaystyle lambda _ {1}} lambda _ {1} в [- 1, 1] { displaystyle [-1, 1]}[-1,1] . Пусть

    p (x) = см — 1 (2 x — λ 2 — λ n λ 2 — λ n) { displaystyle p (x) = c_ {m-1} left ({ frac {2x- lambda _ {2} — lambda _ {n}} { lambda _ {2} — lambda _ {n}}} right)}{ displaystyle p (x) = c_ {m-1}  left ({ frac {2x-  lambda _ {2 } -  lambda _ {n}} { lambda _ {2} -  lambda _ {n}}}  right)}

    (в случае λ 2 = λ 1 { displaystyle lambda _ {2} = lambda _ {1}}{ displaystyle  lambda _ {2} =  lambda _ {1}} , використовуйте вместо этого наибольшее собственное значение строго меньше, чем λ 1 { displaystyle lambda _ {1}} lambda _ {1} ), то максимальное значение | p (λ k) | 2 { displaystyle | p ( lambda _ {k}) | ^ {2}}{ displaystyle | p ( lambda _ {k}) | ^ {2}} для k ⩾ 2 { displaystyle k geqslant 2}{ displaystyle k  geqslant 2} равно 1 { displaystyle 1}1 и минимальное = равно 0 { displaystyle 0}{ displaystyle 0} , поэтому

    λ 1 — θ 1 ⩽ λ 1 — r (p (A) v 1) = ∑ k = 2 n | d k | 2 (λ 1 — λ k) | p (λ k) | 2 ∑ k = 1 n | d k | 2 | p (λ k) | 2 ⩽ ∑ k = 2 n | d k | 2 (λ 1 — λ k) | d 1 | 2 | p (λ 1) | 2 ⩽ (λ 1 — λ n) ∑ k = 2 n | d k | 2 | p (λ 1) | 2 | d 1 | 2. { displaystyle lambda _ {1} — theta _ {1} leqslant lambda _ {1} -r (p (A) v_ {1}) = { frac { sum _ {k = 2 } ^ {n} | d_ {k} | ^ {2} ( lambda _ {1} — lambda _ {k}) | p ( lambda _ {k}) | ^ {2}} { sum _ {k = 1} ^ {n} | d_ {k} | ^ {2} | p ( lambda _ {k}) | ^ {2}}} leqslant { frac { sum _ {k = 2} ^ {n} | d_ {k} | ^ {2} ( lambda _ {1} — lambda _ {k})} {| d_ {1} | ^ {2} | p ( lambda _ {1}) | ^ {2}}} leqslant { frac {( lambda _ {1} — lambda _ {n}) sum _ {k = 2} ^ {n} | d_ {k} | ^ {2}} {| p ( lambda _ {1}) | ^ {2} | d_ {1} | ^ {2}}}.}{ displaystyle  lambda _ {1} -  theta _ {1}  leqslant  lambda _ {1} -r (p (A) v_ {1}) = { frac { sum _ {k = 2} ^ {n} | d_ {k} | ^ {2} ( lambda _ {1} -  lambda _ {k}) | p ( lambda _ {k}) | ^ {2}} { sum _ {k = 1} ^ {n} | d_ {k} | ^ {2} | p ( lambda _ {k}) | ^ {2}}}  leqslant { frac { sum _ {k = 2} ^ {n} | d_ {k} | ^ {2} ( lambda _ {1} -  lambda _ {k})} {| d_ {1} | ^ {2} | p ( lambda _ {1}) | ^ {2}}}  leqslant { frac {( lambda _ {1} -  lambda _ {n})  sum _ {k = 2} ^ {n} | d_ {k} | ^ {2}} {| p ( lambda _ {1}) | ^ {2} | d_ {1} | ^ {2}}}.}

    Кроме того,

    p (λ 1) = см — 1 (2 λ 1 — λ 2 — λ n λ 2 — λ n) = см — 1 (2 λ 1 — λ 2 λ 2 — λ n + 1); { displaystyle p ( lambda _ {1}) = c_ {m-1} left ({ frac {2 lambda _ {1} — lambda _ {2} — lambda _ {n}} { lambda _ {2} — lambda _ {n}}} right) = c_ {m-1} left (2 { frac { lambda _ {1} — lambda _ {2}} { lambda _ {2} — lambda _ {n}}} + 1 right);}{ displaystyle p ( lambda _ {1}) = c_ {m-1}  left ({ frac {2  lambda _ {1} -  lambda _ { 2} -  lambda _ {n}} { lambda _ {2} -  lambda _ {n}}}  right) = c_ {m-1}  left (2 { frac { lambda _ {1} -  lambda _ {2}} { lambda _ {2} -  lambda _ {n}}} + 1  right);}

    величина

    ρ = λ 1 — λ 2 λ 2 — λ n { displaystyle rho = { frac { lambda _ {1} — lambda _ {2}} { lambda _ {2} — lambda _ {n}}}}{ displaystyle  rho = { frac { lambda _ {1} -  lam bda _ {2}} { lambda _ {2} -  lambda _ {n}}}}

    (т. Е. Отношение первой собственной щели к диаметру остальной части тип ), таким образом, имеет значение для скорости сходимости здесь. Также пишем

    R = e arcosh ⁡ (1 + 2 ρ) = 1 + 2 ρ + 2 ρ 2 + ρ, { displaystyle R = e ^ { operatorname {arcosh} (1 + 2 rho)} = 1 + 2 rho +2 { sqrt { rho ^ {2} + rho}},}{ displaystyle R = e ^ { operatorname { arcosh} (1 + 2  rho)} = 1 + 2  rho +2 { sqrt { rho ^ {2} +  rho}},}

    мы можем заключить, что

    λ 1 — θ 1 ⩽ (λ 1 — λ n) (1 — | d 1 | 2) см — 1 (2 ρ + 1) 2 | d 1 | 2 = 1 — | d 1 | 2 | d 1 | 2 (λ 1 — λ n) 1 ch 2 ⁡ ((m — 1) arcosh ⁡ (1 + 2 ρ)) = 1 — | d 1 | 2 | d 1 | 2 (λ 1 — λ n) 4 (R m — 1 + R — (m — 1)) 2 ⩽ 4 1 — | d 1 | 2 | d 1 | 2 (λ 1 — λ N) р — 2 (м — 1) { displaystyle { begin {выровнено} lambda _ {1} — theta _ {1} leqslant { frac {( lambda _ { 1} — lambda _ {n}) left (1- | d_ {1} | ^ {2} right)} {c_ {m-1} (2 rho +1) ^ {2} | d_ {1} | ^ {2}}} \ [6pt] = { frac {1- | d_ {1} | ^ {2}} {| d_ {1} | ^ {2}}} ( lambda _ {1} — lambda _ {n}) { frac {1} { cosh ^ {2} ((m-1) operatorname {arcosh} (1 + 2 rho))}} \ [6pt] = { frac {1- | d_ {1} | ^ {2}} {| d_ {1} | ^ {2}}} ( lambda _ {1} — lambda _ {n}) { frac {4} { left (R ^ {m-1} + R ^ {- (m-1)} справа) ^ {2}}} \ [6pt] leqslant 4 { frac {1- | d_ {1} | ^ {2}} {| d_ {1} | ^ {2}}} ( lambda _ {1} — lambda _ {n}) R ^ {- 2 (m-1)} end {align}}}{ displaystyle { begin {align}  lam bda _ {1} -  theta _ {1}  leqslant { frac {( lambda _ {1} -  lambda _ {n})  left (1- | d_ {1} | ^ {2}  справа)} {c_ {m -1} (2  rho +1) ^ {2} | d_ {1} | ^ {2}}} \ [6pt] = { frac {1- | d_ {1} | ^ {2}} {| d_ {1} | ^ {2}}} ( lambda _ {1} -  lambda _ {n}) { frac {1} { cosh ^ {2} ((m-1)  operatorname {arcosh} (1 + 2  rho))}} \ [6pt] = { frac {1- | d_ {1} | ^ {2}} {| d_ {1} | ^ {2}}} ( lambda _ {1} -  lambda _ {n}) { frac {4} { left (R ^ {m-1} + R ^ {- (m-1)}  справа) ^ {2}}} \ [6pt]  leqslant 4 { frac {1- | d_ {1} | ^ {2}} {| d_ {1} | ^ {2}}} ( lambda _ {1} -  lambda _ {n}) R ^ {- 2 (m-1)}  end {align}}}

    Таким образом, скорость сходимости контролируется главным образом R { displaystyle R}R , так как эта граница уменьшается в R — 2 { displaystyle R ^ {- 2}}{ displaystyle R ^ {- 2}} для каждой дополнительной итерации.

    Для сравнения можно рассмотреть, как скорость сходимости степенного метода зависит от ρ { displaystyle rho} rho , но поскольку степенной метод в первую очередь чувствителен к частному между модулями собственных значений нам нужно | λ n | ⩽ | λ 2 | { displaystyle | lambda _ {n} | leqslant | lambda _ {2} |}{ displaystyle |  lambda _ {n} |  leqslant |  lambda _ {2} |} для собственного промежутка между λ 1 { displaystyle lambda _ {1}} lambda _ {1} и λ 2 { displaystyle lambda _ {2}} lambda _ {2} , чтобы быть доминирующим. При этом ограничении наиболее благоприятного для степенного метода является случай λ n = — λ 2 { displaystyle lambda _ {n} = — lambda _ {2}}{ displaystyle  lambda _ {n} = -  lambda _ {2}} , поэтому рассмотрим что. В конце метода мощности вектор итерации:

    u = (1 — t 2) 1/2 z 1 + tz 2 ≈ z 1 + tz 2, { displaystyle u = (1-t ^ {2}) ^ {1 / 2} z_ {1} + tz_ {2} приблизительно z_ {1} + tz_ {2},}{ displaystyle u = (1-t ^ {2}) ^ {1/2} z_ {1} + tz_ { 2}  приблизительно z_ {1} + tz_ {2},}

    , каждая где новая итерация эффективно умножает z 2 { displaystyle z_ {2}}z_ {2} -амплитуда t { displaystyle t}t на

    λ 2 λ 1 = λ 2 λ 2 + (λ 1 — λ 2) = 1 1 + λ 1 — λ 2 λ 2 знак равно 1 1 + 2 ρ. { displaystyle { frac { lambda _ {2}} { lambda _ {1}}} = { frac { lambda _ {2}} { lambda _ {2} + ( lambda _ {1} — lambda _ {2})}} = { frac {1} {1 + { frac { lambda _ {1} — lambda _ {2}} { lambda _ {2}}}}} = { frac {1} {1 + 2 rho}}.}{ displaystyle { frac { lambda _ {2}} { lambda _ {1}}} = { frac {  lambda _ {2}} { lambda _ {2} + ( lambda _ {1} -  lambda _ {2})}} = { frac {1} {1 + { frac { lambda _ { 1} -  lambda _ {2}} { lambda _ {2}}}}} = { frac {1} {1 + 2  rho}}.}

    Тогда оценка наибольшего собственного значения будет

    u ∗ A u = (1 — t 2) λ 1 + t 2 λ 2, { displaystyle u ^ {*} Au = (1-t ^ {2}) lambda _ {1} + t ^ {2} lambda _ {2},}{ displaystyle u ^ { *} Au = (1-t ^ {2})  lambda _ {1} + t ^ {2}  lambda _ {2},}

    , поэтому указанная выше граница сходимости алгоритма Ланцоша скорость следует сравнить с

    λ 1 — u ∗ A U знак равно (λ 1 — λ 2) t 2, { displaystyle lambda _ {1} -u ^ {*} Au = ( lambda _ {1} — lambda _ {2}) t ^ {2},}{ displaystyle  lambda _ {1} -u ^ {*} Au = ( lambda _ {1 } -  lambda _ {2}) t ^ {2},}

    , который сжимается в (1 + 2 ρ) — 2 { displaystyle (1 + 2 rho) ^ {- 2}}{ displaystyle (1 + 2  rho) ^ {- 2}} для каждой итерации. Таким образом, разница сводится к разнице между 1 + 2 ρ { displaystyle 1 + 2 rho}{ displaystyle 1 + 2  rho} и R = 1 + 2 ρ + 2 ρ 2 + ρ { displaystyle R = 1 + 2 rho +2 { sqrt { rho ^ {2} + rho}}}{ displaystyle R = 1 + 2  rho +2 { sqrt { rho ^ {2} +  rho}}} . В области ρ ≫ 1 { displaystyle rho gg 1}{ displaystyle  rho  gg 1} последнее больше похоже на 1 + 4 ρ { displaystyle 1 + 4 rho}{ displaystyle 1 + 4  rho} и работает так же, как и силовой метод, с вдвое большей собственной щелью; заметное улучшение. Однако более сложным является случай ρ ≪ 1, { displaystyle rho ll 1,}{ displaystyle  rho  ll 1,} , в котором R ≈ 1 + 2 ρ { displaystyle R приблизительно 1+ 2 { sqrt { rho}}}{ displaystyle R  приблизительно 1 + 2 { sqrt { rho}}} — еще большее улучшение собственной щели; область ρ ≫ 1 { displaystyle rho gg 1}{ displaystyle  rho  gg 1} — это область, в которой алгоритм Ланцоша с точки зрения сходимости дает наименьшее улучшение по сравнению с методом мощности.

    Числовая стабильность

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

    Для алгоритма Ланцоша можно доказать, что с помощью точной арифметики векторов наборов v 1, v 2, ⋯, vm + 1 { displaystyle v_ {1}, v_ {2}, cdots, v_ {m + 1}}v_ {1}, v_ {2},  cdots, v _ {{m + 1}} строит ортонормированный базис, вычисленные собственные значения / основы хорошими приближениями к значениям исходной матрицы. Однако на практике (вычисления выполняются в арифметике с плавающей запятой, где неточность неизбежна) ортогональность быстро теряется, и в некоторых случаях новый вектор может даже линейно зависеть от уже построенного набора. В результате некоторых собственных значений результирующей трехдиагональной матрицы могут быть приближения к исходной матрице. Следовательно, алгоритм Ланцоша не очень стабилен.

    Пользователи этого алгоритма должны иметь возможность находить и удалить эти «ложные» собственные значения. Практические алгоритмы реализации Ланцоша идут в трех направлениях для борьбы с этой проблемой стабильности:

    1. Предотвратить потерю ортогональности,
    2. Восстановить ортогональность после создания основы.
    3. После Все «ложные» собственные значения идентифицируют, ложные удаляются.

    Варианты

    Существуют варианты алгоритма Ланцоша, которые задействованные обеспечивают высокие узкие матрицы вместо векторов, а нормализующие константы представляют собой небольшие квадратные матрицы. Они называются «блочными» алгоритмами Ланцоша и могут быть намного быстрее на компьютере с большим количеством регистров и длительным временем выборки из памяти.

    Многие реализации алгоритма Ланцоша перезапускаются после определенного количества итераций. Одним из наиболее важных вариантов перезапуска является неявно перезапускаемый метод Ланцоша, который реализован в ARPACK. Это привело к ряду других перезапущенных вариаций, таких как перезапуск бидиагонализации Ланцоша. Другой успешный вариант с перезапуском — это метод Ланцоша с толстым перезапуском, который был реализован в программном пакете под названием TRLan.

    Пустое пространство над конечным полем

    В 1995 году Питер Монтгомери опубликовал алгоритм, основанный на алгоритме Ланцоша, для поиска элементов нулевого пространства большой разреженной матрицы над GF (2) ; как множество людей, интересующихся большими разреженными матрицами над конечными полями и множеством людей, интересующимися большими проблемами собственных значений, почти не пересекаются, это часто также называют блочным алгоритмом Ланцоша, не вызывая необоснованной путаницы.

    Приложения

    Алгоритмы Ланцоша очень привлекательны, потому что умножение на A { displaystyle A ,}A , является единственной крупномасштабной операцией. Временной алгоритм поиска текста с взвешенными терминами реализуют именно этот механизм, алгоритм Ланцоша может эффективно использовать текстовым документам (см. Скрытое семантическое индексирование ). Собственные рекомендации также важны для крупномасштабных методов ранжирования, таких как алгоритм HITS, примеры Джоном Клейнбергом, или алгоритм PageRank, инструмент Google.

    Алгоритмы Ланцоша также используются в Физике конденсированных сред как методы решения гамильтонианов сильно коррелированных электронных систем, а также в модели оболочки коды в ядерной физике.

    Реализации

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

    MATLAB и GNU Octave поставляются со встроенным ARPACK. Как сохраненные, так и неявные матрицы могут быть проанализированы с помощью функций eigs () (Matlab / Octave ).

    Реализация алгоритма Ланцоша в Matlab (обратите внимание на проблемы с точностью) доступна как часть пакета Matlab для распространения веры по Гауссу. Библиотека совместной фильтрации GraphLab включает крупномасштабную параллельную реалима Ланцоша (на C ++) для многоядерных процессоров.

    Библиотека PRIMME также реализует алгоритм типа Ланцоша.

    Примечания

    Ссылки

    Дополнительная литература

    • Голуб, Джин Х. ; Ван Лоан, Чарльз Ф. (1996). «Методы Ланцоша». Матричные вычисления. Балтимор: Издательство Университета Джона Хопкинса. С. 470–507. ISBN 0-8018-5414-8.
    • Нг, Эндрю Ю. ; Чжэн, Алиса X.; Джордан, Майкл И. (2001). «Анализ связи, собственные основы и стабильность» (PDF). IJCAI’01 Труды 17-й международной совместной конференции по искусственному интеллекту. Том 2: 903–910.

  • Ошибка sc681 07 ricoh
  • Ошибка s05 котел висман
  • Ошибка sc545 как сбросить
  • Ошибка s0062 бмв е60
  • Ошибка sc545 ricoh сброс