Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методы численного моделирования. Учебно-методическое пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
71
2) в ячейках В12:Е15, В17:Е20, В22:Е25 и В27:Е30 значения мат-
рицы коэффициентов при неизвестных заменить столбцом свободных членов и вычислить дополнительные определители в ячейках G13, G18,
G 23 и G28;
3) в ячейках I4:L4 вычислить значения неизвестных.
И т е р а ц и о н н ы е м е т о д ы р е ш е н и я С Л А У
При большом числе уравнений прямые методы решения СЛАУ
становятся труднореализуемыми на компьютере прежде всего из-за сложности хранения и обработки матриц большой размерности. В то же время характерной особенностью ряда часто встречающихся в приклад­ных задачах СЛАУ является разреженность матриц. Число ненулевых элементов таких матриц мало по сравнению с их размерностью. Для ре­шения СЛАУ с разреженными матрицами предпочтительнее использо­вать итерационные методы.
Методы последовательных приближений, в которых при вычисле-
нии последующего приближения решения используются предыдущие, уже известные приближения решения, называются итерационными. К ним относятся метод простой итерации, метод Гаусса–Зейделя. Важ­ной чертой этих методов является их самоисправляемость и простота реализации. В случае сходящегося итерационного процесса ошибка в каком-то приближении исправляется в последующих вычислениях, и такое исправление требует только несколько лишних шагов единооб­разных вычислений. Итерационные методы часто используются для уточнения решения, найденного с помощью прямого метода.
Условия и скорость сходимости каждого итерационного процесса
существенно зависят от свойств уравнений, т. е. от свойств матрицы си­стемы и от выбора начальных приближений.
Рассмотрим подробнее вопрос о погрешностях. Существуют две
характеристики:
– погрешность 
, где  – точные значения, 
– полу-
ченные приближенные значения;
– невязка – разность между правой и левой частями уравнения при
подстановке в них полученного решения: 
.
72
Доказано, что если одна из этих характеристик точно равна нулю,
то и другая точно равна нулю. Однако из малости одной из них не сле­дует малости другой. При ε ≈ 0 обычно r ≈ 0, но обратное справедливо не всегда. Для плохо обусловленных систем при r ≈ 0 погрешность ре­шения может быть большой. Но в практических расчетах, если система не является плохо обусловленной, контроль точности можно осуществ­лять с помощью невязки.
Метод простых итераций. Рассмотрим СЛАУ
󰇱
    
    
      
    
с невырожденной матрицей (detA ≠ 0).
Приводим СЛАУ к эквивалентному виду:
󰇱
     
     
      
     
Такое приведение может быть выполнено различными способами. Од­ним из наиболее распространенных является следующий.
Решаем исходную систему относительно неизвестных при нену-
левых диагональных элементах   
(если какой-либо коэф-
фициент на главной диагонали равен нулю, достаточно соответствую­щее уравнение поменять местами с любым другим уравнением). Полу­чаем следующие выражения для компонентов вектора β и мат­рицы α эквивалентной системы:





 
При таком способе приведения исходной СЛАУ к эквивалентному
виду метод простых итераций носит название метода Якоби.
В качестве нулевого приближения
󰇛󰇜
вектора неизвестных принимаем
вектор свободных членов
󰇛󰇜
󰇡
󰇛󰇜

󰇛󰇜

󰇛󰇜
󰇢
󰇛󰇜. То-
гда на первой итерации вычисляем первое приближение значения неиз­вестных:
73
󰇛󰇜
 
󰇛󰇜
 
󰇛󰇜
 
󰇛󰇜
  
󰇛󰇜
󰇛󰇜
 
󰇛󰇜
 
󰇛󰇜
 
󰇛󰇜
  
󰇛󰇜
      
󰇛󰇜
 
󰇛󰇜
 
󰇛󰇜
 
󰇛󰇜
  
󰇛󰇜
На второй итерации вычисляем второе приближение решения:
󰇛󰇜
 
󰇛󰇜
 
󰇛󰇜
 
󰇛󰇜
  
󰇛󰇜
󰇛󰇜
 
󰇛󰇜
 
󰇛󰇜
 
󰇛󰇜
  
󰇛󰇜
      
󰇛󰇜
 
󰇛󰇜
 
󰇛󰇜
 
󰇛󰇜
  
󰇛󰇜
На k-й итерации вычисляем k-е приближение решения:
󰇛󰇜
 
󰇛󰇜
 
󰇛󰇜
 
󰇛󰇜
 
󰇛󰇜
󰇛󰇜
 
󰇛󰇜
 
󰇛󰇜
 
󰇛󰇜
 
󰇛󰇜
      
󰇛󰇜
 
󰇛󰇜
 
󰇛󰇜
 
󰇛󰇜
   
󰇛

󰇜
Тогда метод простых итераций примет вид
󰇛󰇜

󰇛󰇜
 
󰇛󰇜
󰇛󰇜
 
󰇛󰇜
 
󰇛󰇜
 
󰇛󰇜
Отсюда видно преимущество итерационных методов по сравне­нию, например, с методом Гаусса. В вычислительном процессе участ­вуют только произведения матрицы на вектор, что позволяет работать с ненулевыми элементами матрицы, при этом значительно упрощается процесс хранения и обработки матриц.
Достаточным условием сходимости метода простых итераций яв­ляется следующее условие. Метод простых итераций сходится к един­ственному решению СЛАУ при любом начальном приближении, если какая-либо норма матрицы α эквивалентной системы меньше единицы:

.
74
Если используется метод Якоби, то достаточным условием сходи­мости является диагональное преобладание матрицы А, т. е.



 (для каждой строки матрицы А модули элементов, сто-
ящих на главной диагонали, больше суммы модулей недиагональных элементов). Это условие является достаточным для сходимости метода Якоби, но не является необходимым.
Итерации проводятся до тех пор, пока не будет выполнено условие
󰇻
󰇛󰇜
 
󰇛󰇜
󰇻 
где ε – заданная точность.
Пример. Методом простых итераций с точностью ε = 0,1 решить
СЛАУ
  
  
  
1) Приведем СЛАУ к эквивалентному виду:
  
  
  
2) За начальное приближение неизвестных примем столбец сво-
бодных членов
󰇛󰇜

󰇛󰇜
 
󰇛󰇜
.
3) Вычислим значения неизвестных на первом приближении:
󰇛󰇜
      
󰇛󰇜
      
󰇛󰇜
        
4) Проверим условие окончания итерационного процесса:
󰇻
󰇛󰇜
 
󰇛󰇜
󰇻  
Заданная точность не достигнута. Продолжаем вычисления.
75
5) Вычислим значения неизвестных на втором приближении:
󰇛󰇜
       
󰇛󰇜
       
󰇛󰇜
        
6) Проверим условие окончания итерационного процесса:
󰇻
󰇛󰇜
 
󰇛󰇜
󰇻  󰇻
󰇛󰇜
 
󰇛󰇜
󰇻
  
Заданная точность не достигнута. Продолжаем вычисления.
7) Вычислим значения неизвестных на третьем приближении:
󰇛󰇜
        
󰇛󰇜
        
󰇛󰇜
       
8) Проверим условие окончания итерационного процесса:
󰇻
󰇛󰇜
 
󰇛󰇜
󰇻  󰇻
󰇛󰇜
 
󰇛󰇜
󰇻
   󰇻
󰇛󰇜
 
󰇛󰇜
󰇻
  
Заданная точность достигнута.
Ответ: 
Метод Гаусса–Зейделя. Этот метод является модификацией ме- тода простых итераций. Здесь также исходная система приводится к эк­вивалентному виду путем выражения каждого неизвестного из соответ­ствующего уравнения. Затем начинается итерационный процесс поиска решения. Отличие состоит в том, что на каждой итерации при вычисле-
нии нового приближения неизвестного
в выражение, стоящее в пра-
вой части i-го уравнения, подставляются уже полученные на данной итерации значения неизвестных, номер которых меньше, чем i, и полу­ченные на предыдущей итерации значения неизвестных, номер кото­рых больше, чем i.
76
Так, на первой итерации вычисления производятся следующим образом:
󰇛󰇜
 
󰇛󰇜
 
󰇛󰇜
 
󰇛󰇜
  
󰇛󰇜

󰇛󰇜
 
󰇛󰇜
 
󰇛󰇜
 
󰇛󰇜
  
󰇛󰇜

       
󰇛󰇜
 
󰇛󰇜
  


󰇛󰇜
 
󰇛󰇜
 


󰇛󰇜
 
󰇛󰇜
       
󰇛󰇜
 
󰇛󰇜
 
󰇛󰇜
 
󰇛󰇜
  
󰇛󰇜

На k-й итерации:
󰇛󰇜
 
󰇛󰇜
 
󰇛󰇜
 
󰇛󰇜
  
󰇛󰇜

󰇛󰇜
 
󰇛󰇜
 
󰇛󰇜
 
󰇛󰇜
  
󰇛󰇜

   
󰇛󰇜
 
󰇛󰇜
  


󰇛󰇜
 
󰇛󰇜
 


󰇛󰇜
 
󰇛󰇜
   
󰇛󰇜
 
󰇛󰇜
 
󰇛󰇜
 
󰇛󰇜
  
󰇛󰇜

Формулу для неизвестного
на k-й итерации можно представить
в виде
󰇛󰇜
 
󰇛󰇜


  
󰇛󰇜

Итерационный процесс продолжается до тех пор, пока не будет выполнено условие
 󰇻
󰇛󰇜
 
󰇛󰇜
󰇻  
Иногда в качестве условия завершения итерационного процесса используют относительный критерий:
 
󰇛󰇜
 
󰇛󰇜
󰇛󰇜
 
или
󰇻
󰇛󰇜
 
󰇛󰇜
󰇻

Пример. Методом простых итераций с точностью ε = 0,1 решить СЛАУ
77
  
  
  
1) Приведем СЛАУ к эквивалентному виду:
  
  
  
2) За начальное приближение неизвестных примем столбец сво-
бодных членов
󰇛󰇜

󰇛󰇜
 
󰇛󰇜
.
3) Вычислим значения неизвестных на первом приближении:
󰇛󰇜
         
󰇛󰇜
         
󰇛󰇜
         
4) Проверим условие окончания итерационного процесса
󰇻
󰇛󰇜
 
󰇛󰇜
󰇻  
Заданная точность не достигнута. Продолжаем вычисления.
5) Вычислим значения неизвестных на втором приближении
󰇛󰇜
         
󰇛󰇜
         
󰇛󰇜
         
6) Проверим условие окончания итерационного процесса:
󰇻
󰇛󰇜
 
󰇛󰇜
󰇻  󰇻
󰇛󰇜
 
󰇛󰇜
󰇻
  󰇻
󰇛󰇜
 
󰇛󰇜
󰇻
  
Таким образом, уже на второй итерации заданная точность до­стигнута.
Ответ: 
78
Л а б о р а т о р н а я р а б о т а 8
Р Е Ш Е Н И Е С Л А У И Т Е Р А Ц И О Н Н Ы М И М Е Т О Д А М И
Цель работы: формирование навыков решения СЛАУ итерацион­ными методами с применением инструментария табличного процес­сора Excel.
1. Решить СЛАУ с заданной точностью методом простых итераций и методом Гаусса–Зейделя. Для этого в табличном процессоре Excel со­здать таблицу по образцу (рис. 21).
Рис. 21. Шаблон решения СЛАУ итерационными методами
В ячейки В3:Е6, Н3:Н6, К3 ввести соответствующие исходные
данные.
2. Решить СЛАУ методом простых итераций в ячейках таблицы:
1) привести СЛАУ к эквивалентному виду, удобному для итерации;
2) в ячейках В10:Е13 и Н10:Н13 вычислить коэффициенты при не-
известных и свободные члены эквивалентной СЛАУ соответственно по формулам
79





 
3) в ячейки В17:В20 занести начальные приближения значений не­известных (например, равные соответствующим свободным членам эк­вивалентной СЛАУ);
4) в ячейках К10:К13 вычислить произведение матрицы коэффи­циентов при неизвестных эквивалентной СЛАУ на столбец значений неизвестных, используя функцию МУМНОЖ;
5) в ячейках С17:С20 вычислить новое приближение значений не-
известных по формуле
󰇛󰇜

󰇛󰇜
 
6) в ячейках D17:D20 и D22 вычислить разницы между значени­ями неизвестных на текущей и предыдущей итерациях по модулю, а также максимальную разницу;
7) если максимальная разница превышает заданную точность, то в ячейки, содержащие предыдущее приближение, скопировать значе­ния текущего приближения, используя специальную вставку;
8) создать макрос для замены предыдущего приближения теку­щим. Для этого выполнить команду Сервис/Макрос/Начать запись и аккуратно выполнить все действия, необходимые для копирования значений текущего приближения в ячейки, содержащие предыдущее приближение. Остановить запись макроса! Просмотреть текст макроса;
9) на рабочем листе с расчетами создать кнопку «Замена» для за­пуска макроса;
10) продолжать вычисления до достижения заданной точности, подсчитать число итераций;
11) заполнить ход итерационного процесса.
3. Составить программу для решения СЛАУ методом простых
итераций (см. алгоритм) и ввести ее текст в редакторе MVB: 1) резуль­таты поместить в ячейки С26:G26;
2) отладить программу и создать кнопку для ее запуска Метод простых итераций правее расчетной таблицы;
3) скопировать текст программы вниз, изменить имя, внести изме­нения в соответствии с алгоритмом Гаусса–Зейделя для решения СЛАУ;
4) результаты поместить в ячейки С27:G27;
5) отладить программу и создать кнопку для ее запуска Метод Гаусса–Зейделя.
80
В а р и а н т ы з а д а н и й

   
  
  
   

   
       
   

   
   
   
   

  
  
   
   

   
   
       

   
   
       

   
       
   
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]