Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1-Численные методы.doc
Скачиваний:
49
Добавлен:
22.08.2019
Размер:
2.82 Mб
Скачать

Порядок выполнения работы.

Пример. Решить следующую систему линейных алгебраических уравнений методом итераций с точностью = 0,001:

Точное решение системы:

Вид рабочего листа MS Exsel приведен на рисунке.

1. В диапазоне A2:D4 разместим расширенную матрицу коэффициентов системы. В ячейке G1 размещаем заданную точность. В диапазон I2:I4 заносим точное решение системы.

2. В диапазоне А7:К9 размещаем элементы итерационной процедуры . В диапазоне ячеек С7:Е9 вычисляем матрицу . Для этого вносим формулу в ячейку С7 = "=-А2/$A$2" и протягиваем формулу на диапазон D7:E7. Обнуляем элемент 11 : С7 = "0". Таким образом, определена 1-ая строка матрицы в соответствии с (3). Для 2-ой строки матрицы выполняем аналогичные действия: ячейка С8 = "=-A3/$B$3", протягиваем формулу на диапазон D8:E8, обнуляем элемент 22 : D8 = "0". По аналогии для 3-ей строки: ячейка С9 = "=-A4/$C$4", протягиваем формулу на диапазон D9:E9, обнуляем элемент 33 : Е9 = "0".

В диапазоне К7:К9 размещаем вектор , вычисляемый по формуле (3): ячейка К7 = "=D2/A2", ячейка К8 = "=D3/B3", ячейка К9 = "=D4/C4".

В диапазоне G7:G9 размещаем предшествующее приближение , которое на 1-ой итерации принимается равным вектору . Поэтому копируем значения диапазона ячеек К7:К9 в диапазон G7:G9: Правка – Специальная вставка – Значения (прямое копирование недопустимо, так как в К7:К9 расположены формулы).

В диапазоне I7:I9 размещаем первое слагаемое итерационной формулы , используя встроенную функцию матричного умножения: выделяем ячейку I7, с помощью мастера функций из категории Математические выбираем функцию МУМНОЖ и заносим в ячейку I7 = "=МУМНОЖ(C7:E9;G7:G9)", выделяем диапазон I7:I9, перемещаем курсор в строку формул, одновременно нажимаем клавиши Сtrl+Shift+Enter.

В диапазоне А7:А9 вычисляем следующее приближение : ячейка А7 = "=I7+K7", протягиваем формулу из А7 в диапазон А8:А9.

3. Для вычисления норм матрицы и вектора выполняются предварительные вычисления. В диапазоне А12:С14 размещаем матрицу из модулей элементов матрицы : ячейка А12 = "=ABS(C7)" и протягиваем в диапазон А12:С14. В диапазоне E12:G14 размещаем матрицу из квадратов элементов матрицы : ячейка Е12 = "=C7^2" и протягиваем в диапазон E12:G14. В диапазоне I12:I14 размещаем вектор из модулей элементов вектора : ячейка I12 = "=ABS(K7)" и протягиваем в диапазон I12:I14. В диапазоне К12:К14 размещаем вектор из квадратов элементов вектора : ячейка К12 = "=К7^2" и протягиваем в диапазон К12:К14.

В диапазоне А16:D19 вычисляем нормы матрицы и вектора и прогнозируемое число итераций для достижения заданной точности: ячейка В17 = "=МАКС(СУММ(A12:C12);СУММ(A13:C13);СУММ(A14:C14))" (формула (14) для матрицы ), ячейка В18= "=МАКС(СУММ(A12:A14); СУММ(B12:B14);СУММ(C12:C14))" (формула (15) для матрицы ), ячейка В19 = "=КОРЕНЬ(СУММ(E12:G14))" (формула (16) для матрицы ), ячейка С17 = "=МАКС(I12:I14)" (формула (11) для вектора ), ячейка С18 = "=СУММ(I12:I14)" (формула (12) для вектора ), ячейка С19 = "=КОРЕНЬ(СУММ(K12:K14))" (формула (13) для вектора ), ячейка D17 = "=ОКРУГЛВВЕРХ(LOG10($G$1*(1-B17)/C17)/LOG10(B17)-1;0)" (формула (9) для m-нормы), протягиваем формулу из D17 в диапазон D18:D19 (формула (9) для l-нормы и k-нормы). Результат вычислений по формуле (9) округляется вверх с помощью встроенной функции табличного процессора. Некоторые из норм матрицы могут оказаться больше 1, в этом случае остальные вычисления для этих норм проводить не надо.

4. Программируем диапазон ячеек A21:I24 для оценки текущей достигнутой точности. В диапазоне А22:А24 размещаем вектор разности последовательных приближений : ячейка А22 = "=A7-G7", протягиваем формулу из А22 в диапазон А23:А24. В диапазоне В22:В24 размещаем модули компонент вектора : ячейка В22 = "=ABS(A22)", протягиваем формулу из В22 в диапазон В23:В24. В диапазоне С22:С24 размещаем квадраты компонент вектора : ячейка С22 = "=A22^2", протягиваем формулу из С22 в диапазон С23:С24.

В диапазоне F22:F24 вычисляем нормы вектора : ячейка F22 = "=МАКС(B22:B24)" (формула (11)), ячейка F23 = "=СУММ(B22:B24)" (формула (12)), ячейка F24 = "=КОРЕНЬ(СУММ(C22:C24))" (формула (13)).

В диапазоне I22:I24 вычисляем оценку достигнутой точности (ошибки) для всех норм по формуле (10): ячейка I22 = "=B17/(1-B17)*F22", протягиваем формулу из I22 в диапазон I23:I24.

5. В строках 26:33 формируем сводную таблицу результатов. В диапазон С27:С29 вносим компоненты начального приближения копированием из диапазона G7:G9. В следующих ячейках строк 27:29 размещаем компоненты следующих приближений, которые копируются по значениям из диапазона А7:А9. В строках 30:32 размещаются оценки достигнутой точности (ошибки) для всех норм, которые копируются по значениям из диапазона I22:I24. Фактическая ошибка равна максимуму модуля отклонения компонент приближенного решения от точного : ячейка D33 = "=МАКС(ABS($I$2-D27);ABS($I$3-D28);ABS($I$4-D29))", формула из D33 протягивается далее по строке 33 на необходимое число ячеек.

6. Процесс вычислений производится следующим образом. Начальное приближение заносится в вектор (диапазон G7:G9). Тогда в диапазоне А7:А9 вычисляются значения компонент 1-го приближения, в диапазоне I22:I24 – оценка достигнутой точности (ошибки) для всех норм. Эти диапазоны копируются по значениям в соответствующие диапазоны сводной таблицы результатов. В строке 33 вычисляется фактическая ошибка приближения.

Для реализации 2-ой итерации необходимо перенести по значениям компоненты 1-го приближения (диапазон А7:А9) в диапазон G7:G9 предшествующего приближения. Табличный процессор автоматически пересчитает следующее приближение (в диапазоне А7:А9), оценку достигнутой точности (ошибки) для всех норм (в диапазоне I22:I24). Эти результаты копируются по значениям в сводную таблицу, где в строке 33 вычисляется фактическая ошибка приближения. Данную процедуру применяем до тех пор, пока фактическая ошибка приближения не станет меньше заданной точности. В рассматриваемом примере потребовалось 6 итераций. При этом прогноз ошибок на порядок выше фактической ошибки, а минимально прогнозируемое число итераций (в m-норме) равно 16.