Метод Простых Итераций для Решения СЛАУ: От Теории к Практической Реализации в Курсовой Работе

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

Введение: Актуальность Численных Методов в Современной Математике и Технике

В эпоху цифровизации и высокопроизводительных вычислений способность эффективно решать комплексные математические задачи является краеугольным камнем научно-технического прогресса. Системы линейных алгебраических уравнений (СЛАУ) — это не просто абстрактные математические конструкции, а математическое описание огромного спектра реальных процессов и явлений. От расчёта напряжений в конструкциях мостов до моделирования потоков жидкости в трубах, от анализа экономических моделей до обработки больших объемов данных в машинном обучении — всюду мы сталкиваемся с необходимостью решения СЛАУ, и, что важно, их эффективное и точное решение непосредственно влияет на надежность и предсказуемость результатов в этих критически важных областях.

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

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

Теоретические Основы и Математическая Формулировка Метода Простых Итераций

Определение СЛАУ и Общие Понятия Итерационных Методов

В своей основе, система линейных алгебраических уравнений (СЛАУ) представляет собой набор из m линейных уравнений с n неизвестными, который в матричной форме записывается как Ax = b. Здесь A — это матрица коэффициентов размером m × n, x — вектор неизвестных размером n × 1, а b — вектор свободных членов размером m × 1. Решение такой системы означает нахождение такого вектора x, который удовлетворяет всем уравнениям одновременно.

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

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

Преобразование СЛАУ к Итерационному Виду X = ΒX + d

Для того чтобы применить итерационные методы к СЛАУ вида Ax = b, необходимо преобразовать её к эквивалентной форме, пригодной для итераций: x = Βx + d. Это преобразование является ключевым шагом, поскольку от способа его выполнения зависят свойства итерационной матрицы Β, а следовательно, и сходимость всего процесса.

Один из наиболее распространённых способов такого преобразования основан на матричном расщеплении. Исходную матрицу A можно представить как сумму трёх компонент:

A = D - L - U

где:

  • D — диагональная матрица, содержащая диагональные элементы матрицы A.
  • L — строго нижняя треугольная матрица (элементы выше главной диагонали равны нулю, диагональные — тоже).
  • U — строго верхняя треугольная матрица (элементы ниже главной диагонали равны нулю, диагональные — тоже).

Исходное уравнение Ax = b можно переписать:

(D - L - U)x = b
Dx = (L + U)x + b

Теперь, если матрица D обратима (то есть все её диагональные элементы не равны нулю), мы можем умножить обе части уравнения на D-1:

x = D-1(L + U)x + D-1b

Таким образом, мы получаем итерационную форму x = Βx + d, где:

  • Β = D-1(L + U) — итерационная матрица.
  • d = D-1b — вектор свободных членов.

Этот конкретный способ расщепления и построения итерационной матрицы Β соответствует методу Якоби.
В покоординатной форме это означает, что из i-го уравнения исходной системы мы выражаем xi через остальные неизвестные:

xi = (bi - Σj≠i aijxj) / aii

Если же расщепление производится иначе, например, для метода Зейделя, итерационная матрица Β формируется по-другому. Метод Зейделя использует уже обновлённые на текущей итерации значения неизвестных, что обычно обеспечивает более быструю сходимость. В этом случае, система Ax = b преобразуется как (D - L)x = Ux + b, откуда x = (D - L)-1Ux + (D - L)-1b. Здесь Β = (D — L)-1U, а d = (D — L)-1b.

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

Математическая Формулировка Метода Простых Итераций в Матричной и Покоординатной Форме

После того как СЛАУ Ax = b приведена к итерационному виду x = Βx + d, сам итерационный процесс описывается следующей рекуррентной формулой:

В матричной форме:

x(k+1) = Βx(k) + d

где:

  • k — номер итерации (k = 0, 1, 2, ...).
  • x(k) — вектор приближений на k-м шаге итерации.
  • x(k+1) — вектор приближений на (k+1)-м шаге.
  • Β — итерационная матрица, полученная в результате преобразования исходной системы.
  • d — вектор свободных членов, также полученный при преобразовании.

Для начала итерационного процесса требуется задать начальное приближение x(0).

В покоординатной форме:
Если система имеет размерность n × n, то итерационные формулы для каждой компоненты вектора x будут выглядеть следующим образом:

x1(k+1) = b11x1(k) + b12x2(k) + ... + b1nxn(k) + d1
x2(k+1) = b21x1(k) + b22x2(k) + ... + b2nxn(k) + d2
...
xn(k+1) = bn1x1(k) + bn2x2(k) + ... + bnnxn(k) + dn

Здесь bij — элементы итерационной матрицы Β, а di — элементы вектора d. Важно подчеркнуть, что в методе простых итераций (который часто отождествляется с методом Якоби) для вычисления всех компонент x(k+1) используются только значения x(k), полученные на предыдущей итерации. Это отличает его от метода Зейделя, где при вычислении xi(k+1) уже используются обновленные значения xj(k+1) для j < i.

Основные Определения: Нормы Вектора и Матрицы, Спектральный Радиус

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

1. Норма вектора:
Норма вектора — это функция, которая присваивает каждому вектору из векторного пространства неотрицательное число, интуитивно представляющее его "длину" или "величину". Формально, норма p: V → ℝ+, заданная на векторном пространстве V, удовлетворяет следующим аксиомам:

  • p(x) ≥ 0, и p(x) = 0 ⇔ x = 0V (неотрицательность и положительная определённость).
  • p(αx) = |α|p(x) для любого скаляра α (однородность).
  • p(x + y) ≤ p(x) + p(y) (неравенство треугольника).

Наиболее распространённые векторные нормы:

  • L1-норма (манхэттенская норма, сумма модулей):
    ||x||1 = Σi=1n |xi|
    Представляет собой сумму абсолютных значений компонент вектора.
  • L2-норма (евклидова норма):
    ||x||2 = √(Σi=1n xi2)
    Это стандартное понятие длины вектора в евклидовом пространстве.
  • L-норма (чебышёвская норма, максимум модуля):
    ||x|| = maxi |xi|
    Равна максимальному абсолютному значению компоненты вектора.

2. Норма матрицы (подчинённая векторной норме):
Норма матрицы — это обобщение понятия нормы вектора для матриц. Особое значение имеют подчинённые (или согласованные) матричные нормы, которые определяются через соответствующие векторные нормы. Норма матрицы A называется подчиненной векторной норме ||⋅||, если:

||A|| = supx≠0 (||Ax|| / ||x||)
Эта норма показывает максимально возможное "растяжение" вектора x при умножении его на матрицу A.

Примеры подчиненных матричных норм:

  • ||A||1 (столбцовая норма):
    ||A||1 = maxj Σi=1n |aij|
    Равна максимальной сумме абсолютных значений элементов по столбцам.
  • ||A|| (строчная норма):
    ||A|| = maxi Σj=1n |aij|
    Равна максимальной сумме абсолютных значений элементов по строкам.
  • ||A||2 (спектральная норма):
    ||A||2 = √[ρ(ATA)]
    Равна наибольшему сингулярному числу матрицы A (или корню из наибольшего собственного значения ATA). Для симметричных матриц ||A||2 = ρ(A).

3. Спектральный радиус матрицы (ρ(A)):
Спектральный радиус квадратной матрицы A — это максимум абсолютных значений её собственных чисел (λi).

ρ(A) = maxii|
где λi — собственные значения матрицы A.
Спектральный радиус играет ключевую роль в теории сходимости итерационных методов. Существует важное свойство, связывающее норму матрицы и её спектральный радиус: для любой подчиненной матричной нормы ||A|| всегда выполняется неравенство ρ(A) ≤ ||A||. Этот факт означает, что спектральный радиус является своего рода "нижней границей" для всех подчиненных норм.

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

Условия Сходимости Метода Простых Итераций: Гарантии и Практические Аспекты

Вопрос о сходимости итерационного метода — ключевой. Нет смысла применять метод, если он не гарантирует приближение к истинному решению. Для метода простых итераций существуют четкие математические критерии, которые позволяют определить, будет ли последовательность приближений сходиться к решению СЛАУ.

Достаточные Условия Сходимости

Достаточные условия сходимости — это условия, при выполнении которых метод обязательно сходится. Если эти условия не выполняются, это ещё не означает расходимость, но и не гарантирует сходимости.

1. Критерий сжимающего отображения (Принцип Банаха о неподвижной точке):
Этот фундаментальный принцип является одним из наиболее общих для итерационных процессов. Метод простых итераций x(k+1) = Φ(x(k)), где Φ(x) = Βx + d, сходится, если отображение Φ является сжимающим. Это означает, что существует константа q ∈ (0,1) такая, что для любых двух векторов x' и x'' из некоторой области определения:

||Φ(x'') - Φ(x')|| ≤ q ||x'' - x'||
где ||⋅|| — любая векторная норма.
Применительно к линейному случаю Φ(x) = Βx + d, это условие эквивалентно тому, что норма итерационной матрицы Β строго меньше единицы (||Β|| < 1) для любой согласованной (подчиненной) матричной нормы. Если это условие выполняется, то существует единственное решение, и итерационный процесс будет сходиться к нему из любой начальной точки, что является мощной гарантией корректности.

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

||Β|| < 1
где ||Β|| — любая подчинённая матричная норма.
Это условие является мощным инструментом, поскольку его относительно легко проверить на практике. Чем меньше значение ||Β||, тем быстрее будет сходиться метод. Если, например, ||Β|| = 0.1, то на каждой итерации ошибка будет уменьшаться примерно в 10 раз.

3. Критерий диагонального преобладания:
Этот критерий часто используется для преобразования исходной системы Ax = b к итерационному виду, чтобы гарантировать сходимость. Он гласит, что метод простых итераций (в форме Якоби) сходится, если матрица A исходной системы обладает строгим диагональным преобладанием. Это означает, что для каждой строки i абсолютное значение диагонального элемента aii больше суммы абсолютных значений всех остальных элементов в этой строке:

|aii| > Σj≠i |aij|
Если это условие выполняется, то норма ||Β|| (или ||Β||1, в зависимости от того, как выражать неизвестные) будет меньше единицы, что гарантирует сходимость. Важно отметить, что если исходная матрица A не обладает диагональным преобладанием, иногда можно добиться его перестановкой строк или столбцов, но это не всегда возможно или эффективно.

Необходимое и Достаточное Условие Сходимости по Спектральному Радиусу

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

Спектральный радиус итерационной матрицы Β должен быть строго меньше единицы: ρ(Β) < 1.

Это условие является наиболее общим и строгим. Если ρ(Β) ≥ 1, то метод простых итераций не будет сходиться к решению, или будет сходиться только для очень специфических начальных приближений (что непрактично). Помня, что ρ(Β) ≤ ||Β|| для любой согласованной нормы, мы видим, что условие ||Β|| < 1 влечет за собой ρ(Β) < 1. Однако обратное не всегда верно: может быть ρ(Β) < 1, но ||Β|| ≥ 1 для некоторых норм. В таких случаях м��тод всё равно сходится, хотя проверка по конкретной норме могла бы этого не показать. Это показывает, что спектральный радиус является самым точным индикатором сходимости.

Влияние Обусловленности Матрицы на Скорость Сходимости

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

Однако существует еще один фактор, влияющий на устойчивость и скорость решения СЛАУ: число обусловленности матрицы. Число обусловленности (cond(A)) является мерой чувствительности решения СЛАУ Ax = b к изменениям в исходных данных (матрице A или векторе b). Оно определяется как произведение нормы матрицы A на норму её обратной матрицы A-1:

cond(A) = ||A|| ⋅ ||A-1||
Если число обусловленности велико, матрица называется плохо обусловленной, и малые возмущения в исходных данных могут привести к большим изменениям в решении.
Хотя число обусловленности относится к исходной матрице A, а не к итерационной Β, оно косвенно влияет на скорость сходимости итерационных методов. Для плохо обусловленных систем часто характерно, что спектральный радиус итерационной матрицы Β оказывается близким к единице.

Практические последствия этого очевидны:

  • Медленная сходимость: Если ρ(Β) ≈ 1, то множитель сходимости q ≈ 1, и для достижения даже умеренной точности потребуется огромное количество итераций, что делает метод неэффективным.
  • Чувствительность к ошибкам округления: В процессе итераций, особенно для плохо обусловленных систем, накопление машинных ошибок округления может замедлить или даже предотвратить сходимость, если требуемая точность слишком высока.
  • Необходимость предобуславливания: Для плохо обусловленных систем часто используются техники предобуславливания, которые преобразуют исходную систему в эквивалентную, но с лучшим числом обусловленности, тем самым ускоряя сходимость итерационных методов.

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

Алгоритмическая Реализация Метода: От Блок-схемы до Критериев Остановки

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

Подготовка Системы и Выбор Начального Приближения

1. Преобразование СЛАУ:
Первый и самый важный шаг — это приведение исходной СЛАУ Ax = b к итерационному виду x = Βx + d. Как было показано ранее, это может быть достигнуто путём матричного расщепления A = D - L - U и последующего умножения на D-1 (для метода Якоби) или (D - L)-1 (для метода Зейделя).
В покоординатной форме это означает, что для каждого уравнения системы необходимо выразить i-ю переменную xi через остальные. Это требует, чтобы диагональные элементы aii были ненулевыми. Если aii = 0, или если они слишком малы, что приводит к большим значениям в матрице Β, может потребоваться перестановка строк или столбцов.

Пример преобразования:
Исходная система:
a11x1 + a12x2 + ... + a1nxn = b1
a21x1 + a22x2 + ... + a2nxn = b2
...
an1x1 + an2x2 + ... + annxn = bn

Преобразуется в:

x1 = (b1 - a12x2 - ... - a1nxn) / a11
x2 = (b2 - a21x1 - ... - a2nxn) / a22
...
xn = (bn - an1x1 - ... - an(n-1)xn-1) / ann

2. Выбор начального приближения x(0):
Выбор начального приближения не влияет на сам факт сходимости (если условия сходимости итерационной матрицы Β выполняются), но существенно влияет на количество итераций, необходимых для достижения заданной точности.
Чем ближе начальное приближение к истинному решению, тем меньше итераций потребуется, что экономит вычислительные ресурсы.

  • Нулевой вектор: Самый простой, но не всегда самый эффективный выбор — x(0) = (0, 0, ..., 0)T.
  • Вектор свободных членов d: Часто используется в качестве начального приближения, особенно если система уже приведена к виду x = Βx + d. Например, x(0) = d.
  • Произвольный вектор: Можно выбрать произвольный вектор, но чем ближе он к истинному решению, тем быстрее сходимость.
  • Продвинутые подходы (для больших задач):
    • Использование результатов с грубой сетки: В задачах, возникающих из дискретизации дифференциальных уравнений, часто используют многосеточные методы. Начальное приближение может быть получено путём решения той же задачи на более грубой сетке, что дает достаточно хорошее начальное приближение и значительно ускоряет сходимость на основной, более точной сетке.
    • Предварительное решение упрощенной задачи: Если доступно аналитическое или численное решение близкой по свойствам, но более простой задачи, его можно использовать как начальное приближение.

Итерационный Процесс: Пошаговое Вычисление Приближений

После подготовки системы и выбора начального приближения, алгоритм переходит к итерационному циклу. На каждом шаге k вычисляется новое приближение x(k+1) из предыдущего x(k).

Формула:

x(k+1) = Βx(k) + d

Это матричное умножение и сложение векторов. В покоординатной форме для каждого i от 1 до n:

xi(k+1) = Σj=1n bijxj(k) + di

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

Критерии Остановки Итерационного Процесса

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

1. Критерий по разности последовательных приближений:
Наиболее распространенный и практичный критерий. Итерационный процесс прекращается, когда норма разности между двумя последовательными приближениями становится меньше заданной точности ε:

||x(k+1) - x(k)|| < ε
В качестве нормы обычно используется L-норма (максимум модуля разности компонент) из-за её простоты вычисления.

2. Критерий по невязке (residual):
Невязка r(k) на k-й итерации определяется как:

r(k) = Ax(k) - b
Идеально, если x(k) является точным решением, то r(k) = 0. Итерации могут быть остановлены, когда норма невязки становится меньше заданной точности:

||r(k)|| < ε
Этот критерий часто более надежен, поскольку он непосредственно измеряет, насколько хорошо текущее приближение x(k) удовлетворяет исходной системе уравнений.

3. Апостериорная оценка погрешности (последующая):
Эта оценка позволяет оценить ошибку между текущим приближением и точным решением x* уже после выполнения нескольких итераций:

||x(k) - x*|| ≤ (||Β|| / (1 - ||Β||)) ||x(k) - x(k-1)||
Этот критерий более точен, но требует знания нормы итерационной матрицы ||Β||, что не всегда удобно для вычисления на каждой итерации. На практике чаще используют более простой критерий по разности последовательных приближений, считая, что если ||x(k+1) - x(k)|| достаточно мало, то и ||x(k) - x*|| тоже мало.

4. Априорная оценка погрешности (предварительная):
Эта оценка позволяет заранее определить максимальное число итераций k, необходимых для достижения заданной точности, если известны ||Β|| и начальная ошибка:

||x(k) - x*|| ≤ (||Β||k / (1 - ||Β||)) ||x(1) - x(0)||
На практике эта оценка используется редко, так как она часто дает завышенное число итераций, и для её применения также требуется знание ||Β||.

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

Блок-схема Алгоритма Метода Простых Итераций

Наглядное представление алгоритма в виде блок-схемы помогает понять логику его работы:

graph TD
    A[Начало] --> B{Ввод: Исходная матрица A, вектор b, точность ε, макс. число итераций MaxIter};
    B --> C[Преобразование СЛАУ Ax=b к итерационному виду x = Βx + d];
    C --> D[Выбор начального приближения x_curr = x^(0)];
    D --> E[k = 0];
    E --> F{Цикл: k < MaxIter?};
    F -- Да --> G[Вычисление нового приближения x_next = Β * x_curr + d];
    G --> H[Вычисление нормы разности: diff_norm = ||x_next - x_curr||];
    H --> I{diff_norm < ε?};
    I -- Да --> J[Вывод результата x_next];
    J --> K[Конец];
    I -- Нет --> L[x_curr = x_next];
    L --> M[k = k + 1];
    M --> F;
    F -- Нет --> N[Вывод: "Сходимость не достигнута за MaxIter итераций"];
    N --> K;

Описание элементов блок-схемы:

  • Начало/Конец: Стандартные маркеры начала и завершения алгоритма.
  • Ввод: Блок для ввода всех необходимых исходных данных и параметров.
  • Преобразование СЛАУ: Процесс формирования итерационной матрицы Β и вектора d.
  • Выбор начального приближения: Инициализация вектора текущего приближения.
  • k = 0: Инициализация счетчика итераций.
  • Цикл: Основной итерационный цикл, ограниченный максимальным числом итераций.
  • Вычисление нового приближения: Основной шаг итерации по формуле x(k+1) = Βx(k) + d.
  • Вычисление нормы разности: Расчет величины ||x(k+1) - x(k)||.
  • diff_norm < ε?: Проверка условия останова.
  • Вывод результата: Если условие останова выполнено, выводится найденное приближенное решение.
  • x_curr = x_next, k = k + 1: Обновление текущего приближения для следующей итерации и увеличение счетчика.
  • Вывод: "Сходимость не достигнута...": Сообщение, если метод не сошелся за отведенное число итераций.

Эта блок-схема предоставляет четкую структуру для программной реализации метода простых итераций.

Сравнительный Анализ и Особенности Применения Метода Простых Итераций

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

Преимущества и Недостатки Метода

Преимущества:

  1. Простота реализации: Концептуально метод очень прост. Его алгоритмическая структура прямолинейна, что делает его одним из первых итерационных методов, изучаемых в курсах по численным методам. Кодирование метода не требует сложных логических конструкций.
  2. Эффективность для больших разреженных систем: Это одно из ключевых достоинств. Для СЛАУ с миллионами уравнений, где матрица A имеет очень мало ненулевых элементов (разреженная матрица), прямые методы становятся непрактичными из-за огромных требований к памяти и вычислительной мощности. Итерационные методы, в том числе метод простых итераций, позволяют выполнять операции только с ненулевыми элементами, что значительно снижает объем хранимых данных и количество арифметических операций. Для таких систем они часто являются единственным жизнеспособным решением, поскольку позволяют решать задачи, недоступные для других подходов.
  3. Самоисправляемость: Сходящийся итерационный процесс обладает замечательным свойством самоисправляемости. Если в ходе вычислений произошла небольшая ошибка (например, из-за округления), то последующие итерации постепенно "исправят" её, возвращаясь на путь к истинному решению. Это отличает его от прямых методов, где ошибка, допущенная на одном шаге, может необратимо распространиться.
  4. Параллелизация: Вычисление каждой компоненты x(k+1) в методе простых итераций (и Якоби) на k-й итерации зависит только от значений x(k). Это означает, что вычисления для различных компонент могут выполняться независимо и параллельно. Такая высокая степень параллелизма делает метод привлекательным для использования на многопроцессорных системах, кластерах и графических процессорах, значительно сокращая время выполнения для больших задач.

Недостатки:

  1. Приближенное решение: Метод не дает точного решения СЛАУ, а лишь приближение с заданной точностью. В большинстве инженерных и научных задач это допустимо, но в некоторых случаях требуется максимально точное решение.
  2. Проблема сходимости: Сходимость метода не гарантирована всегда и требует выполнения строгих условий (например, ||Β|| < 1 или строгое диагональное преобладание). Если эти условия не выполняются, метод может расходиться, то есть приближения будут удаляться от истинного решения, или сходиться слишком медленно. Необходимость проверки сходимости является дополнительным этапом в анализе.
  3. Скорость сходимости: Метод простых итераций обладает линейной скоростью сходимости, что означает, что погрешность на каждой итерации уменьшается в постоянное число раз (множитель сходимости q = ||Β||). Если этот множитель близок к единице (например, ||Β|| = 0.99), то сходимость будет очень медленной, требуя огромного числа итераций для достижения даже умеренной точности. Это может свести на нет преимущества простоты реализации.

Сравнение с Прямыми Методами (Метод Гаусса)

Прямые методы (например, метод Гаусса, метод Крамера, LU-разложение) и итерационные методы представляют собой два фундаментально разных подхода к решению СЛАУ.

Характеристика Метод Простых Итераций (итерационные) Прямые Методы (например, Гаусса)
Природа решения Приближенное решение с заданной точностью. Точное решение (с учетом машинной точности) за конечное число шагов.
Вычислительная сложность Зависит от ρ(Β) и требуемой точности. Для разреженных систем может быть O(N) на итерацию. Общая сложность может быть высокой при медленной сходимости. Типично O(N3) для плотных систем, где N — размерность.
Требования к памяти Низкие, особенно для разреженных матриц (хранятся только ненулевые элементы и несколько векторов). Высокие, требуется хранение всей матрицы (O(N2)), может быть проблема "fill-in" для разреженных матриц.
Накопление ошибок Самоисправляющийся процесс, ошибки округления не накапливаются критически (при сходимости). Ошибки округления могут накапливаться, особенно для плохо обусловленных систем.
Условия применения Требует условий сходимости (||Β|| < 1). Особенно эффективен для больших разреженных систем. Всегда применим, если матрица невырождена. Менее эффективен для больших разреженных систем.
Параллелизация Хорошо параллелизуется. Хуже параллелизуется, хотя существуют параллельные реализации.

Сравнение с Другими Итерационными Методами (Якоби, Зейделя, Верхних Релаксаций)

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

  • Метод Якоби (Jacobi Method):
    Это фактически частный случай метода простых итераций, где итерационная матрица Β формируется как D-1(L + U). Вычисление каждой новой компоненты xi(k+1) использует только значения xj(k) с предыдущей итерации. Сходимость гарантируется при строгом диагональном преобладании.
  • Метод Зейделя (Gauss-Seidel Method):
    Можно рассматривать как модификацию метода Якоби. Основное отличие — при вычислении xi(k+1) уже используются обновленные значения xj(k+1) для j < i, которые были вычислены на текущей итерации. Это ускоряет передачу информации по системе и, как правило, приводит к более быстрой сходимости по сравнению с методом Якоби. Условия сходимости метода Зейделя часто менее строги, чем для Якоби (например, для симметричной положительно определенной матрицы он всегда сходится).
  • Метод Верхних Релаксаций (SOR - Successive Over-Relaxation):
    Это дальнейшая модификация метода Зейделя, предназначенная для ускорения сходимости. Вводится параметр релаксации ω (от 0 до 2), который позволяет "пересчитывать" новое приближение с определ��нным весом. Если ω = 1, метод SOR сводится к методу Зейделя. Правильный выбор ω может существенно ускорить сходимость, но его оптимальное значение часто трудно определить заранее и может требовать эмпирического подбора.

Заключение по сравнению: Метод простых итераций (Якоби) — это базовая отправная точка. Метод Зейделя обычно лучше по скорости сходимости, а SOR может быть ещё быстрее при оптимальном параметре релаксации. Выбор между ними зависит от свойств матрицы системы и требований к производительности. А как понять, какой из этих методов будет наиболее эффективным в вашей конкретной задаче?

Ограничения Метода Простых Итераций и Контекст Продвинутых Подходов

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

  • Плохо обусловленные системы: Для систем, где число обусловленности велико, спектральный радиус итерационной матрицы Β часто близок к единице. Это приводит к крайне медленной сходимости или её отсутствию, делая метод непрактичным.
  • Отсутствие сходимости: Если условия сходимости не выполняются, метод просто расходится, и его применение бесполезно.

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

  • Методы с предобуславливанием (Preconditioned Methods): Идея состоит в том, чтобы преобразовать исходную систему Ax = b в эквивалентную A'x = b', где A' имеет лучшие свойства обусловленности или более подходящую итерационную матрицу, что ускоряет сходимость. Предобуславливатель M выбирается так, чтобы M-1A была "близка" к единичной матрице.
  • Методы Крыловского подпространства (Krylov Subspace Methods): Это класс мощных итерационных методов, таких как GMRES (Generalized Minimal Residual), BiCGSTAB (Biconjugate Gradient Stabilized), CG (Conjugate Gradient, для симметричных положительно определенных матриц). Они строят приближения в последовательности Крыловских подпространств и обладают более быстрой сходимостью по сравнению с методом простых итераций, особенно для несимметричных и плохо обусловленных систем.
  • Многосеточные методы (Multigrid Methods): Эти методы особенно эффективны для решения СЛАУ, возникающих из дискретизации дифференциальных уравнений. Они используют итерации на нескольких сетках (разрешениях) для эффективного устранения ошибок как высокой, так и низкой частоты, обеспечивая очень быструю сходимость, часто независимую от размера задачи.

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

Практический Пример Решения СЛАУ Методом Простых Итераций

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

Пошаговое Решение СЛАУ Небольшой Размерности

Дана система уравнений:
20x1 + x2 - x3 = 17
x1 - 10x2 + x3 = 13
-x1 + x2 + 10x3 = 8

Требуется найти решение с точностью ε = 0.01.

Шаг 1: Приведение системы к итерационному виду x = Βx + d.
Выразим каждую переменную из соответствующего уравнения, стремясь к диагональному преобладанию:
Из первого уравнения: x1 = (17 - x2 + x3) / 20 = 0.85 - 0.05x2 + 0.05x3
Из второго уравнения: x2 = (13 - x1 - x3) / (-10) = -1.3 + 0.1x1 + 0.1x3
Из третьего уравнения: x3 = (8 + x1 - x2) / 10 = 0.8 + 0.1x1 - 0.1x2

Таким образом, итерационные формулы для k+1-й итерации будут:

x1(k+1) = 0.85 - 0.05x2(k) + 0.05x3(k)
x2(k+1) = -1.3 + 0.1x1(k) + 0.1x3(k)
x3(k+1) = 0.8 + 0.1x1(k) - 0.1x2(k)

Шаг 2: Формирование итерационной матрицы Β и вектора d, и проверка условия сходимости.
На основе итерационных формул запишем матрицу Β и вектор d:
Β =
| 0 -0.05 0.05 |
| 0.1 0 0.1 |
| 0.1 -0.1 0 |

d = (0.85, -1.3, 0.8)T

Проверим условие сходимости ||Β|| < 1. Используем строчную норму (L-норму):
||Β|| = max (Σj |b1j|, Σj |b2j|, Σj |b3j|)
Строка 1: |0| + |-0.05| + |0.05| = 0.1
Строка 2: |0.1| + |0| + |0.1| = 0.2
Строка 3: |0.1| + |-0.1| + |0| = 0.2
Следовательно, ||Β|| = max(0.1, 0.2, 0.2) = 0.2.
Так как 0.2 < 1, условие сходимости выполняется, и метод будет сходиться.

Шаг 3: Выбор начального приближения.
В качестве начального приближения x(0) примем вектор d:
x(0) = (0.85, -1.3, 0.8)T

Шаг 4: Выполнение итераций.

Итерация 1 (k=0):
x1(1) = 0.85 - 0.05(-1.3) + 0.05(0.8) = 0.85 + 0.065 + 0.04 = 0.955
x2(1) = -1.3 + 0.1(0.85) + 0.1(0.8) = -1.3 + 0.085 + 0.08 = -1.135
x3(1) = 0.8 + 0.1(0.85) - 0.1(-1.3) = 0.8 + 0.085 + 0.13 = 1.015
Таким образом, x(1) = (0.955, -1.135, 1.015)T.

Проверка критерия останова (||x(k+1) - x(k)|| < ε):
x(1) - x(0) = (0.955 - 0.85, -1.135 - (-1.3), 1.015 - 0.8)T = (0.105, 0.165, 0.215)T
||x(1) - x(0)|| = max(|0.105|, |0.165|, |0.215|) = 0.215
Так как 0.215 ≥ 0.01, продолжаем итерации.

Итерация 2 (k=1):
x1(2) = 0.85 - 0.05(-1.135) + 0.05(1.015) = 0.85 + 0.05675 + 0.05075 = 0.9575
x2(2) = -1.3 + 0.1(0.955) + 0.1(1.015) = -1.3 + 0.0955 + 0.1015 = -1.103
x3(2) = 0.8 + 0.1(0.955) - 0.1(-1.135) = 0.8 + 0.0955 + 0.1135 = 1.009
Таким образом, x(2) = (0.9575, -1.103, 1.009)T.

Проверка критерия останова:
x(2) - x(1) = (0.9575 - 0.955, -1.103 - (-1.135), 1.009 - 1.015)T = (0.0025, 0.032, -0.006)T
||x(2) - x(1)|| = max(|0.0025|, |0.032|, |-0.006|) = 0.032
Так как 0.032 ≥ 0.01, продолжаем итерации.

Итерация 3 (k=2):
x1(3) = 0.85 - 0.05(-1.103) + 0.05(1.009) = 0.85 + 0.05515 + 0.05045 = 0.9556
x2(3) = -1.3 + 0.1(0.9575) + 0.1(1.009) = -1.3 + 0.09575 + 0.1009 = -1.10335
x3(3) = 0.8 + 0.1(0.9575) - 0.1(-1.103) = 0.8 + 0.09575 + 0.1103 = 1.00605
Таким образом, x(3) = (0.9556, -1.10335, 1.00605)T.

Проверка критерия останова:
x(3) - x(2) = (0.9556 - 0.9575, -1.10335 - (-1.103), 1.00605 - 1.009)T = (-0.0019, -0.00035, -0.00295)T
||x(3) - x(2)|| = max(|-0.0019|, |-0.00035|, |-0.00295|) = 0.00295
Так как 0.00295 < 0.01, заданная точность достигнута.

Шаг 5: Вывод результата.
Приближенное решение СЛАУ с точностью ε = 0.01 составляет:
x ≈ (0.9556, -1.1034, 1.0061)T

Анализ Полученных Результатов и Сходимости в Примере

Проведенный пример демонстрирует, как метод простых итераций постепенно приближается к решению. За три итерации мы достигли заданной точности ε = 0.01.

  • Сходимость: Подтвержденное условие сходимости (||Β|| = 0.2 < 1) гарантировало, что итерационный процесс не будет расходиться.
  • Скорость сходимости: Сравнительно небольшое значение нормы итерационной матрицы (0.2) обеспечило достаточно быструю сходимость. На каждой итерации максимальная разность между компонентами уменьшалась примерно в 0.2 раза, что соответствует теоретическим предсказаниям линейной сходимости.
  • Выбор начального приближения: Использование вектора d в качестве начального приближения оказалось достаточно эффективным в данном случае, поскольку он уже содержит информацию о масштабе и направлении решения.
  • Критерий останова: Критерий по норме разности последовательных приближений (L-норма) оказался простым и эффективным способом контроля точности. В реальных задачах, особенно для больших систем, это предпочтительный подход.

Для сравнения, точное решение данной системы: x = (1, -1, 1)T.
Полученное нами приближение x ≈ (0.9556, -1.1034, 1.0061)T достаточно близко к точному решению, что подтверждает корректность работы метода.

Итерация (k) x1(k) x2(k) x3(k) ||x(k) - x(k-1)||
0 0.85 -1.3 0.8 -
1 0.955 -1.135 1.015 0.215
2 0.9575 -1.103 1.009 0.032
3 0.9556 -1.10335 1.00605 0.00295

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

Программная Реализация Метода Простых Итераций

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

Выбор Языка Программирования и Структур Данных

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

  • Python: Отличный выбор для прототипирования, обучения и задач, где удобство разработки и читаемость кода важнее абсолютной скорости. Обладает мощными библиотеками NumPy и SciPy, которые предоставляют высокооптимизированные функции для работы с матрицами и векторами, включая их нормы, спектральный радиус и операции умножения. Для разреженных систем SciPy.sparse предлагает специализированные структуры данных (например, CSR, COO форматы).
  • C++: Выбор для высокопроизводительных вычислений, когда требуется максимальная скорость и контроль над памятью. Может использоваться с библиотеками для линейной алгебры, такими как Eigen, Armadillo или BLAS/LAPACK (через обертки). Реализация работы с разреженными матрицами потребует больше усилий, но обеспечит максимальную эффективность.
  • MATLAB/Octave: Идеален для численных методов благодаря встроенной поддержке матричных операций. Очень удобен для быстрого тестирования алгоритмов, визуализации результатов и решения задач, где производительность на больших данных не является критической, но важна скорость разработки. MATLAB имеет обширный инструментарий для работы с разреженными матрицами и выполнения итерационных методов.

Структуры данных:

  • Плотные матрицы/векторы: Для небольших и средних систем (до нескольких тысяч уравнений) можно использовать стандартные двумерные массивы или встроенные типы данных для матриц/векторов. В Python это numpy.ndarray.
  • Разреженные матрицы (Sparse Matrices): Для больших систем с высоким процентом нулевых элементов крайне важно использовать специализированные структуры данных для разреженных матриц. Они хранят только ненулевые элементы, что значительно экономит память и ускоряет операции умножения матрица-вектор. Примеры форматов:
    • COO (Coordinate Format): Хранит тройки (строка, столбец, значение) для каждого ненулевого элемента. Хорошо подходит для построения разреженной матрицы.
    • CSR (Compressed Sparse Row) / CSC (Compressed Sparse Column): Более эффективны для умножения матрица-вектор и других линейно-алгебраических операций, поскольку они хранят данные, сжатые по строкам или столбцам.

Особенности Кодирования Алгоритма

Реализация метода простых итераций включает следующие ключевые этапы:

1. Функция преобразования системы:
На вход: исходная матрица A и вектор b.
На выходе: итерационная матрица Beta и вектор d.
Пример псевдокода для преобразования в метод Якоби:

Функция ПреобразоватьВЯкоби(A, b):
  n = размерность(A)
  Beta = матрица_нулей(n, n)
  d = вектор_нулей(n)

  Для i от 0 до n-1:
    Если A[i][i] == 0:
      // Обработка ошибки: деление на ноль или невозможность преобразования
      Вывести "Ошибка: Диагональный элемент A[i][i] равен нулю."
      Вернуть ОШИБКА

    d[i] = b[i] / A[i][i]
    Для j от 0 до n-1:
      Если i != j:
        Beta[i][j] = -A[i][j] / A[i][i]
      Иначе:
        Beta[i][j] = 0 // Диагональные элементы Beta равны нулю для Якоби

  Вернуть Beta, d

2. Основная функция итерации:
На вход: Beta, d, начальное приближение x_initial, точность epsilon, max_iterations.
На выходе: вектор решения x или сообщение об ошибке.

Функция РешитьМетодомИтераций(Beta, d, x_initial, epsilon, max_iterations):
  x_current = копировать(x_initial)
  Для k от 0 до max_iterations-1:
    x_next = умножить_матрицу_на_вектор(Beta, x_current) + d
    
    // Проверка критерия останова
    разность = x_next - x_current
    норма_разности = норма_вектора_бесконечность(разность)

    Если норма_разности < epsilon:
      Вернуть x_next // Решение найдено с заданной точностью

    x_current = копировать(x_next)

  Вывести "Превышено максимальное число итераций. Сходимость не достигнута."
  Вернуть ОШИБКА

3. Вспомогательные функции:

  • норма_вектора_бесконечность(вектор): Вычисляет L-норму вектора.
  • умножить_матрицу_на_вектор(матрица, вектор): Выполняет матрично-векторное умножение.
  • копировать(вектор): Создает копию вектора, чтобы избежать изменения ссылок.

Обработка Ошибок и Контроль Точности Вычислений

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

1. Деление на ноль:
При преобразовании системы (особенно для метода Якоби) может возникнуть деление на ноль, если диагональный элемент A[i][i] равен нулю. Это критическая ошибка, которая должна быть обработана. Программа должна либо выдать ошибку, либо попытаться переставить строки для устранения проблемы (если это возможно и не нарушает условия сходимости).

2. Бесконечный цикл и отсутствие сходимости:

  • Максимальное число итераций: Всегда устанавливайте max_iterations, чтобы предотвратить бесконечный цикл, если метод расходится или сходится крайне медленно.
  • Проверка условий сходимости: В идеале, перед началом итерационного процесса можно программно проверить достаточные условия сходимости (например, норму итерационной матрицы ||Β|| < 1). Если условие не выполняется, можно выдать предупреждение пользователю.

3. Потеря точности (Floating Point Precision):
Вычисления с плавающей точкой могут приводить к накоплению ошибок округления.

  • Типы данных: Используйте типы данных с двойной точностью (double в C++, float64 в Python NumPy) для всех численных вычислений.
  • Эпсилон (epsilon): Выбор значения epsilon должен быть реалистичным. Слишком малое epsilon может привести к тому, что метод никогда не достигнет заданной точности из-за ограничений машинной арифметики, либо потребует огромного числа итераций.
  • Устойчивость: Для плохо обусловленных систем, даже при сходимости, решение может быть чувствительно к шумам и ошибкам округления. В таких случаях может потребоваться использование более устойчивых методов или предобуславливания.

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

Заключение

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

Мы систематизировали теоретические основы, подробно рассмотрев процесс преобразования исходной СЛАУ к итерационному виду x = Βx + d и дав строгие определения ключевых понятий, таких как нормы векторов и матриц, а также спектральный радиус. Особое внимание было уделено условиям сходимости, где принципы сжимающих отображений, условия по норме итерационной матрицы и критерий диагонального преобладания были проанализированы как достаточные гарантии, а спектральный радиус — как необходимое и достаточное условие. Мы также подчеркнули критическую связь между обусловленностью матрицы и скоростью сходимости, объяснив, почему для плохо обусловленных систем метод может оказаться неэффективным.

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

Метод простых итераций является незаменимой отправной точкой для изучения итерационных алгоритмов. Он учит фундаментальным принципам, которые лежат в основе значительно более сложных и мощных численных методов, таких как методы Крыловского подпространства или многосеточные методы. Понимание его механики, условий применимости и ограничений позволяет студенту не только успешно выполнить курсовую работу, но и заложить прочный фундамент для дальнейшего освоения вычислительной математики. В мире, где задачи становятся всё масштабнее и сложнее, способность эффективно и точно решать СЛАУ с помощью таких инструментов, как метод простых итераций, остаётся ключевым навыком для каждого специалиста в области науки и техники.

Список использованной литературы

  1. Мудров, А. Э. Численные методы на ЭВМ. Раско, 1991.
  2. Итерационные методы решения СЛАУ: метод Якоби, Зейделя, простой итерации. URL: https://www.mathprofi.ru/iteracionnye_metody_resheniya_slau.html (дата обращения: 04.11.2025).
  3. Метод простых итераций. URL: https://machinelearning.ru/wiki/index.php?title=%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%BF%D1%80%D0%BE%D1%81%D1%82%D1%8B%D1%85_%D0%B8%D1%82%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B9 (дата обращения: 04.11.2025).
  4. Метод простой итерации. URL: https://sggu.ru/upload/iblock/c38/c38a37f5d491f2780e5509b2e008a0d7.doc (дата обращения: 04.11.2025).
  5. Метод простых итераций для решения линейных систем. URL: https://www.hse.ru/data/2012/05/29/1252199047/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%BF%D1%80%D0%BE%D1%81%D1%82%D1%8B%D1%85_%D0%B8%D1%82%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B9.pdf (дата обращения: 04.11.2025).
  6. Лекция №5. Итерационные методы решения СЛАУ. URL: https://intuit.ru/studies/courses/106/106/lecture/3074 (дата обращения: 04.11.2025).
  7. Итерационные методы решения СЛАУ: метод Якоби, Зейделя, простой итерации. URL: https://zaochnik.com/spravochnik/matematika/chisl-metody/iteracionnye-metody-resheniya-slau/ (дата обращения: 04.11.2025).
  8. § 4.4. Метод простой итерации. URL: https://uchebnik.online/matematika/metod-prostoy-iteratsii-11818.html (дата обращения: 04.11.2025).
  9. 2.2.2. Итерационные методы решения слау. URL: https://elib.bsuir.by/bitstream/123456789/2026/1/2.2.2.%20%D0%98%D1%82%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B5%20%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B%20%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F%20%D1%81%D0%BB%D0%B0%D1%83.pdf (дата обращения: 04.11.2025).
  10. Пример решения СЛАУ методом итераций. URL: https://www.math-pr.com/primer-resheniya-slau-metodom-iteratsij (дата обращения: 04.11.2025).
  11. Сходимость итерационных методов. URL: https://analiticheskayageometriya.ru/shodimost-iteratsionnykh-metodov/ (дата обращения: 04.11.2025).
  12. Итерация: что такое, принципы и применение. URL: https://skyeng.ru/articles/iteraciya/ (дата обращения: 04.11.2025).
  13. Теория. URL: https://e.lanbook.com/reader/book/36881/#192 (дата обращения: 04.11.2025).
  14. Метод простой итерации. URL: https://studfile.net/preview/4282539/page:10/ (дата обращения: 04.11.2025).
  15. 3.1. Нормы векторов и матриц. Понятие согласованности и подчиненности матричных норм. URL: https://elib.bsuir.by/bitstream/123456789/16281/1/3.1.%20%D0%9D%D0%BE%D1%80%D0%BC%D1%8B%20%D0%B2%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2%20%D0%B8%20%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86.%20%D0%9F%D0%BE%D0%BD%D1%8F%D1%82%D0%B8%D0%B5%20%D1%81%D0%BE%D0%B3%D0%BB%D0%B0%D1%81%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8%20%D0%B8%20%D0%BF%D0%BE%D0%B4%D1%87%D0%B8%D0%BD%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8%20%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%87%D0%BD%D1%8B%D1%85%20%D0%BD%D0%BE%D1%80%D0%BC.pdf (дата обращения: 04.11.2025).
  16. Лекция № 10. URL: http://www.e-college.ru/xbooks/xbook028/cont/part4/page_4.htm (дата обращения: 04.11.2025).
  17. 3.3. Норма вектора и норма матрицы. URL: https://elib.bsuir.by/bitstream/123456789/15983/1/3.3.%20%D0%9D%D0%BE%D1%80%D0%BC%D0%B0%20%D0%B2%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%B0%20%D0%B8%20%D0%BD%D0%BE%D1%80%D0%BC%D0%B0%20%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86%D1%8B.pdf (дата обращения: 04.11.2025).
  18. Решение СЛАУ методом простой итерации : Численные и вычислительные методы, оптимизация. URL: https://dxdy.ru/topic44474.html (дата обращения: 04.11.2025).
  19. №3 Метод простой итерации. URL: https://www.fptl.ru/docs/chm/n3_iter.pdf (дата обращения: 04.11.2025).
  20. Метод простых итераций. URL: https://studfile.net/preview/4414761/page:13/ (дата обращения: 04.11.2025).
  21. 3 Метод простой итерации Блок-схема Решение системы линейных уравнений СЛАУ. URL: https://www.youtube.com/watch?v=GxLpKod_T1A (дата обращения: 04.11.2025).
  22. Численные методы линейной и нелинейной алгебры. URL: https://window.edu.ru/catalog/pdf2txt/464/22464/10404?p_page=14 (дата обращения: 04.11.2025).
  23. Численные методы решения СЛАУ (Систем линейных алгебраических уравнений). URL: https://spravochnick.ru/matematika/chisl_metody/chislennye_metody_resheniya_slau_sistem_lineynyh_algebraicheskih_uravneniy/ (дата обращения: 04.11.2025).
  24. Решение систем нелинейных уравнений методом простых итераций: Методические указания для выполнения курсовой работы. URL: https://www.elib.psu.by/bitstream/123456789/22938/1/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5%20%D1%83%D0%BA%D0%B0%D0%B7%D0%B0%D0%BD%D0%B8%D1%8F%20%D0%B4%D0%BB%D1%8F%20%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%BA%D1%83%D1%80%D1%81%D0%BE%D0%B2%D0%BE%D0%B9%20%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B.pdf (дата обращения: 04.11.2025).
  25. НЕОБХОДИМЫЕ И ДОСТАТОЧНЫЕ УСЛОВИЯ СХОДИМОСТИ ИТЕРАЦИОННОГО ПРОЦЕСС. URL: https://scienceforum.ru/2018/article/2018002674 (дата обращения: 04.11.2025).
  26. Решения СЛАУ методом простой итерации. URL: https://www.math-pr.com/reshenie-slau-metodom-prostoj-iteracii (дата обращения: 04.11.2025).
  27. Бенедиктович, В. И. Спектральный радиус неотрицательной матрицы. Доклады Национальной академии наук Беларуси. URL: https://elib.bsu.by/bitstream/123456789/178351/1/%D0%91%D0%B5%D0%BD%D0%B5%D0%B4%D0%B8%D0%BA%D1%82%D0%BE%D0%B2%D0%B8%D1%87%20%D0%92.%D0%98.%20%D0%A1%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9%20%D1%80%D0%B0%D0%B4%D0%B8%D1%83%20%D0%BD%D0%B5%D0%BE%D1%82%D1%80%D0%B8%D1%86%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9%20%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86%D1%8B.pdf (дата обращения: 04.11.2025).
  28. СРАВНЕНИЕ ПРОСТЫХ И ИТЕРАЦИОННЫХ МЕТОДОВ РЕШЕНИЯ СИСТЕМ ЛИНЕЙНЫХ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ. URL: https://scienceforum.ru/2017/article/2017036655 (дата обращения: 04.11.2025).

Похожие записи