Смекни!
smekni.com

Итерационные методы решения систем нелинейных уравнений (стр. 5 из 8)

Существуют квазиньютоновские методы, которые учитывают симметричность матрицы Якоби и вырабатывают последовательность симметричных матриц Вк, (или

). Эти методы также можно разделить на два класса. В первом из них матрица Вк аппроксимирует F(х). В отличие от описанного выше класса, который задается формулами (3.26) и (3.27), здесь нужна симметричность матрицы Во, и вместо (3.27) используется формула

где значение параметра

отвечает симметричному варианту Пауелла методу Бройдена, а
— методу Давидона - Флечера - Пауелла.

Во втором из рассматриваемых классов квазиньютоновских методов матрица Нкаппроксимирует матрицу

. Здесь матрица Нодолжна быть симметричной, а вместо (3.29) используется формула

Где

соответствует методу Бройдена-Флечера-Голвдфарба-Шенно, что является одним из наилучших (с вычислительной точки зрения), который учитывает симметричность матрицы Якоби.

Описанные выше квазиньютоновские методы сходятся лишь при достаточно хорошом начальном приближении х(0). Для расширения области их сходимости можно использовать прием, который имеет название одномерного поиска.

Пусть имеем квазиньютоновское направление

(или
).Используем длину шага
= 1 и проверим неравенство

(3.34)

где

- евклидовая норма. Если оно выполняется, то заканчиваем одномерный поиск и считаем

(3.35)

т.е. уменьшаем длину шага (устанавливая, например,

), пока не выполнится (3.34). На этом заканчиваем одномерный поиск и переходим к формуле (3.35).

Как видим, одномерный поиск (в случае успеха) обеспечивает монотонное уменьшение нормы отклонения

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

3. Другие итерационные методы решения систем нелинейных уравнений

3.1 Метод Пикара

Существуют также итерационные методы решения систем нелинейных уравнений, которые учитывают вид конкретной системы.

Так, если в уравнениях системы можно выделить линейную l(X) и нелинейную g(X)части функций fi(X) = li(X) + gi(x), то удобней применить к ней метод Пикара.

В таком случае систему уравнений можно записать в виде

li(X) = - gi(X), i=1,2,3...n;

или в векторной форме A X= - G(X);

где A- матрица коэффициентов линейных частей уравнений;

G(X) - вектор-функция нелинейных частей уравнений.

Выберем некоторый начальный вектор X(0) и построим итерационный процесс в виде

A X(k+1)=-G(X(k)).

Для выполнения одной итерации таким методом необходимо решать систему линейных уравнений, у которой вектором свободных членов будут нелинейные части функций fi(X). Причем поскольку матрица A остается неизменной при всех итерациях, то для решения СЛАУ можно использовать специальные алгоритмы, предусматривающие возможность преобразования только столбца свободных членов.


3.2 Метод релаксаций

Перепишем систему в виде

X=X+ F(X),

где  - некоторая константа, и построим итерационный процесс по схеме

X(k+1) = X(k) +  F(X(k)).

Параметр  должен быть таким, чтобы в окрестности решения выполнялось достаточное условие сходимости

||Е+  W|| < 1,

где E- единичная матрица.

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

||X(k)-X(k-1)||<||X(k-1)-X(k-2)||.

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

3.3 Метод градиентного спуска

Пусть имеем систему уравнений

(А)

Предположим, что функции

действительные и непрерывно дифференцированные в их общей области определения. Рассмотрим функцию

(В)

Очевидно, что каждое решение системы (А) превращает в ноль функцию U(x); наоборот, числа

, для которых функция U(x) равняется нулю, является корнем системы (А).

Предположим, что система имеет лишь изолированное решение, которое представляет собой точку строго минимума функции U(x) в n-мерном пространстве

.

Пусть x - вектор системы (А) и x0 - его нулевое приближение. Через точку x0 проведем поверхность уровня функции U(x). Если точка x0 довольно близка к корню x, то при наших предположениях поверхность уровня

U(x)= U(x0)

будет похожа на эллипсоид.

Из точки x0 движемся по нормали к поверхности U(x)= U(x0) до тех пор, пока эта нормаль не затронет в некоторой точке x1 какой-то другой поверхности уровня U(x)= U(x1).

Потом, отправляясь от точки x1, снова движемся по нормали к поверхности уровня U(x)= U(x1) до тех пор, пока эта нормаль не затронет в некоторой точке x2 новой поверхности уровня U(x)= U(x2), и т.д.

Поскольку U(x0)>U(x1)>U(x2)>..., то, двигаясь таким путем, мы быстро приближаемся к точке с наименьшим значением U ("дно ямы"), что отвечает искомому решению исходной системы. Обозначим через


градиент функции U(x).

Находить нужное решение будем по формуле:

Остается определить множители

. Для этого рассмотрим скалярную функцию

Функция F(l) дает изменение уровня функции U вдоль соответствующей нормали к поверхности уровня в точке xp. Множитель

надо выбрать таким образом, чтобы F(l) имела минимум. Беря производную по l и приравнивая ее нулю, получаем уравнение

.

Наименьший положительный корень этого уравнения и даст нам значение

.

Будем считать, что l - малая величина, квадратом и высшими степенями которой можно пренебрегать. Имеем:

Раскладывая функции

за степенями l с точностью до линейных членов, получим:

,

где

.

Отсюда