Метод скорейшего спуска (метод градиента) Исполнитель
- Скачано: 45
- Размер: 111 Kb
Метод скорейшего спуска (метод градиента)
Пусть имеем систему уравнений
f1(x1, x2,..... xn,)=0,
f2(x1, x2,..... xn,)=0 , (1)
........................
fn(x1, x2,..... xn,)=0
{spoiler=Подробнее}
или в матричной форме
f(x)=0 (2) где
Предположим, что функции fi действительны и непрерывны дифференцируемых в их общей области определения. Рассмотрим функцию
U(x)=å[fi(x)]2 =(f(x),f(x)). (3)
Видно, что каждое решение системы (1) обращает в нуль функцию U(x); наоборот, что числа x1,x2,...,xn для которых функция U(x) равна нулю, являются корнями системы (1).
Будем предполагать, что система (1) имеет лишь изолированное решение, которое представляет собой точку строгого минимума функции U(x).
Таким образом, задача свершится к нахождению минимума функции U(x) в мерном пространстве
En={x1, x2,...., xn}.
Пусть x-вектор-корень системы (1) и x(0) -его нулевое приближение. Через точку x(0) проведем поверхность уровня функции U(x).
Если точка x(0) достаточно близка к корню x, то при наших предположениях поверхность уровня
U(x)=U(x(0))
будет похоже на эллипсоид.
Из точка x(0) двигаемся по нормали к поверхности U(x)=U(x(0)) до тих пор, пока это нормаль не коснется в некоторой точке x(1) какой то другой поверхности уровня (рис.)
U(x)=U(x(1)).
Затем, отправляясь от точки x(1) снова двигаемся по нормали к поверхности уровня U(x)=U(x(1)) до тих пор, пока эта нормаль не коснется в некоторой точке x(2) новой поверхности уровня
U(x)=U(x(2) ), и т.д.
Так как U(x(0))>U(x(1))>U(x(2))>....., то , двигаясь по такому пути, мы быстро приближаемся к точке с наименьшем значением U (дно “ямы”), которая соответствует искому корню x системы (1). Обозначим через
ÑU(x)=grad(U(x))
градиент функции U(x).
Из векторных треугольников OM0M1,OM1M2 заключаем, что
x(p+1)=x(p)-lpÑU(x(p) ) , (P=0,1,2, - )
Остается определить множители lp.Для этого рассмотрим скалярную функцию
Ф(l)=v[x(p)-lÑU(x(p))],
функция Ф(l) дает изменение уровня функции U вдоль соответствующей нормали к поверхности уровня в точке Х(р). Множитель l=lР надо выбрать таким образом , чтобы Ф(l) имела минимума . Беря производную по l и приравнивая ее нулю, получаем уравнение
Ф’(l)=U[x(p)- lÑU(x(p))]=0 (4)
Наименьший положительный корень уравнения (4) и даст нам значенияlp. Уравнения (4) , нужно решать численно. Поэтому укажем метод приближенного нахождения чисел lp.Будем считать, что l -малая величина, квадратом и высшими степенями которой можно пренебречь. Имеем:
Ф(l)=
разлагая функции fi по степеням l с точностью до линейных членов, получим:
2,
где
где
Отсюда
Следовательно
lp=
где
Матрице Якоби вектор функции f.
Далее имеем:
Отсюда
где W’(х)-транспонированная матрица Якоби.
Поэтому окончательно
(5)
где для краткости положено
причем х(р+1)=х(р)-mрWр’f(p) , P=0,1,2,..... (6)
Если допустить , что функция f(x) дважды непрерывна дифференцируема в частности искомого корня х, то можно получить более точные формулы для корня вектора .
Ñх(р)=х(р+1)-х(р).
{/spoilers}