|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
П 3.9 Итерационные методы вариационного типа решения систем линейных алгебраических уравнений
Имеем систему линейных алгебраических уравнений AX = f. (1)
Канонической формой итерационного метода решения системы (1) называется его запись в виде [19]
где Если Bк+1=E, где Е – единичная матрица, то итерационный метод (2) называется явным, в противном случае неявным. Если Рассмотрим метод скорейшего спуска. Пусть имеем систему (1) с симметричной положительно определенной матрицей А. Обозначим через
невязку, которая получается при подстановке приближенного значения X(k), полученного на k -й итерации, в уравнение (1). Рассмотрим явный нестационарный итерационный метод [20]
Перепишем метод (4) с учетом равенства (3), имеем
Выберем итерационный параметр
Величина
Величина
Таким образом, в методе скорейшего спуска переход от k -ой итерации к (k+1)- ой осуществляется следующим образом: по найденному значению Для погрешности метода скорейшего спуска справедлива оценка [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; }
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.006 сек.) |