- •Л.В. Маркова, е.А. Корчевская,
- •С о д е р ж а н и е
- •П р е д и с л о в и е
- •Глава 1 Элементы теории погрешностей п 1.1 Источники погрешностей
- •П 1.2 Вычисление абсолютной и относительной погрешностей
- •П 1.3 Округление чисел
- •П 1.4 Вычисление погрешностей арифметических операций
- •П 1.5 Оценка погрешности по способу границ
- •Лабораторная работа № 1
- •Задание
- •Глава 2 объектно-ориентированный подход к программированию методов линейной алгебры
- •П 2.1 Создание матричной иерархии классов
- •Лабораторная работа № 2
- •Задание
- •П 2.2 Создание иерархии классов вычислительных методов алгебры
- •Лабораторная работа № 3
- •Задание
- •Глава 3 решение систем линейных алгебраических уравнений
- •П 3.1 Метод Гаусса решения систем линейных алгебраических уравнений
- •Лабораторная работа № 4
- •Задание
- •П 3.2 Метод Гаусса с выбором главного элемента для решения систем линейных алгебраических уравнений
- •Лабораторная работа № 5
- •Задание
- •П 3.3 Решение системы линейных алгебраических уравнений методом Жордана-Гаусса
- •Лабораторная работа № 6
- •Задание
- •П 3.4 Метод квадратного корня для решения систем линейных алгебраических уравнений
- •Лабораторная работа № 7
- •Задание
- •П 3.5 Вычисления определителя и нахождения обратной матрицы
- •Лабораторная работа № 8
- •Задание
- •П 3.6 Решение системы линейных алгебраических уравнений методом прогонки
- •Лабораторная работа № 9
- •Задание
- •П 3.7 Метод простых итераций решения систем линейных алгебраических уравнений
- •Лабораторная работа № 10
- •Задание
- •П 3.8 Метод Зейделя решения систем линейных алгебраических уравнений
- •Лабораторная работа № 11
- •Задание
- •П 3.9 Итерационные методы вариационного типа решения систем линейных алгебраических уравнений
- •Лабораторная работа № 12
- •Задание
- •Глава 4 вычисление собственных значений и собственных векторов матриц
- •П 4.1 Метод Данилевского для нахождения собственных значений и собственных векторов
- •Лабораторная работа № 13
- •Задание
- •П 4.2 Итерационный степенной метод нахождения наибольшего по модулю собственного значения и соответствующего собственного вектора
- •Лабораторная работа № 14
- •Задание
- •П 4.3 qr-алгоритм для нахождения собственных значений матрицы
- •Лабораторная работа № 15
- •Задание
- •П 4.4 Метод Якоби для нахождения собственных значений и собственных векторов
- •Лабораторная работа № 16
- •Задание
- •П р и л о ж е н и я Приложение 1 Основные сведения о матрицах
- •Функции MathCad
- •Л и т е р а т у р а
- •Красоткина вычислительные методы алгебры. Практикум
- •2 10038, Г. Витебск, Московский проспект, 33.
Лабораторная работа № 11
Цель: изучить метод Зейделя решения систем линейных алгебраических уравнений.
Задание
1. В классе «Итерационные методы решения СЛАУ» («IterationMethods») реализуйте метод Зейделя («zeidelMethod»). Для реализации методов используйте объекты и методы матричных классов «SquareMatrix», «Vector».
2. Решите систему линейных алгебраических уравнений методом Зейделя () в соответствии с вариантом.
3. Решите те же задачи, используя пакет для математических вычислений.
4. Сравните результат выполнения п. 2 с решением, полученным в п. 3.
Варианты заданий
№ 1 |
№ 2 |
№ 3 |
№ 4 |
№ 5 |
№ 6 |
№ 7 |
№ 8 |
№ 9 |
№ 10 |
№ 11 |
№ 12 |
№ 13
|
№ 14
|
№ 15
|
№ 16 |
П 3.9 Итерационные методы вариационного типа решения систем линейных алгебраических уравнений
Имеем систему линейных алгебраических уравнений
AX = f . (1)
Канонической формой итерационного метода решения системы (1) называется его запись в виде [19]
(2)
где – вещественная невырожденная матрица порядка , задающая тот или иной итерационный метод, итерационный параметр.
Если Bк+1=E, где Е – единичная матрица, то итерационный метод (2) называется явным, в противном случае неявным.
Если и не зависят от номера итераций, то итерационный метод (2) называется стационарным, и нестационарным в противном случае.
Рассмотрим метод скорейшего спуска.
Пусть имеем систему (1) с симметричной положительно определенной матрицей А.
Обозначим через
(3)
невязку, которая получается при подстановке приближенного значения X(k), полученного на k-й итерации, в уравнение (1).
Рассмотрим явный нестационарный итерационный метод [20]
.(4)
Перепишем метод (4) с учетом равенства (3), имеем
. (5)
Выберем итерационный параметр из условия минимума при заданном векторе , где , точное решение. Поскольку погрешность удовлетворяет уравнению , получим [19]
.
Величина будет минимальной, если положить
.
Величина неизвестна, так как неизвестно точное решение . Однако надо учесть, что погрешность и невязка связаны равенством, следовательно, вычисление можно проводить по формуле
. (6)
Таким образом, в методе скорейшего спуска переход от k-ой итерации к (k+1)-ой осуществляется следующим образом: по найденному значению вычисляется вектор невязки (3) и по формуле (6) находится параметр, затем по формуле (5) вычисляется вектор приближенного решения . Вектор начального приближения выбирается произвольно.
Для погрешности метода скорейшего спуска справедлива оценка [19].
где .
Пример 1. Методом скорейшего спуска решить систему линейных алгебраических уравнений AX = f, где
, .
Решение:
Выберем начальное приближение .
Рассчитаем вектор невязки по формуле .
Получим .
Вычислим ,
Приближение вычислим по формуле: , имеем .
Вычислим вектор невязки по формуле , получим .
Продолжаем итерации. Имеем ,
Приближение находим по формуле :, получим .
Найдем вектор невязки по формуле , имеем .
Вычислим ,
Приближение вычислим по формуле:, получим .
Данный итерационный процесс можно продолжать до получения решения с требуемой точностью.
Пример 2. В рамках метода скорейшего спуска реализовать нахождение скалярного произведения векторов.
Данный метод описан в классе «Vector». Реализация на языке программирования С++ может иметь следующий вид:
double Vector :: mul(Vector r) {
double result = 0;
for (int i=0; i< this.getColCount ; i++)
{
result += this.elements[i] * r.elements[i];
}
return result;
}