> min1: = Matrix [RowOfBasis, i];: = 1e38;
for i: = 1 to SizeOfMatrix do (i <> RowOfBasis) and (Matrix [i, BestColumn] = RowOfFrom then ii: = i +1 ii: = i; j> = ColumnOfTo then jj: = j +1 jj: = j; [i, j]: = Matrix [ii, jj ]; i: = 1 to SizeOfMatrix-1 doRound (LessMatrix [i, 0]) = T0 then: = i;; Row <= SizeOfMatrix-1 then LessMatrix [Row, 1]: = 1e38;; SizeOfMatrix = 2 then: = Matrix [1,2] + Matrix [2,1];: = Matrix [1,1] + Matrix [2,2]; min1 ; LengthOfWay then: = true;: = LengthOfWay; if SizeOfMatrix> 2 theni: = 1 to SizeOfMatrix doRound (Matrix [i, 0]) = Basis then: = i;; i: = 1 to SizeOfMatrix doRound (Matrix [0, i]) = NextPoint
end;.
Метод першого порядку
У цьому методі Xk +1 = Xk-hkf Вў (Xk). Чергова точка вибирається в напрямку якнайшвидшого спадання функції. Крок hk повинен вибиратися досить малим, щоб виконувалося f Вў (Xk +1) Вў (Xk) (рис 3).
В
Рис.3 Рис.4
Величина кроку повинна зменшуватися в міру наближення до X0. тоді у нас відбувається дроблення кроку. Крок hk вибирають так, щоб виконувалася нерівність
f Вў (Xk +1) - f Вў (Xk)? -? hk// f Вў (Xk)// 2
де 0 <1 - довільно вибрана константа. p> На черговому кроці процесу перевіряється нерівність. Якщо воно виконано - крок зберігається, якщо ні - крок зменшується так, щоб виконалось нерівність. Геометрична інтерпретація представлена ​​на рис.4. траєкторія руху апроксимує ламаною лінією градієнтну криву, що проходить через точки X0 і X0. Якщо обрана постійна величина кроку, то кількість ітерацій, яке необхідно виконати, може виявитися дуже великим. p> Різновидом є метод покоординатного спуску (мал. 5). Рух до X0 здійснюється по відрізках прямих, паралельним координатним осях. p> Градієнтні методи дуже прості в реалізації і тому часто використовуються на практиці. Але при складній структурі f (Xk) вони можуть погано сходиться. Тому використовують другі похідні f (Xk). br/>В
Рис.5
Метод другого порядку
В
Рис.6
Методи другого порядку є узагальненим методом Ньютона. На рис.6 наведена геометрична інтерпретація відшукання кореня рівняння j (X) = 0 методом дотичних. Розкладання j (X) в околиці Xk дає
j (X) = j (Xk) + j Вў (Xk) (X - Xk) + 0 (| X - Xk |)
Відкидаючи малі вищого порядку і полога, що j (X) = 0, отримаємо
X = Xk +1 = Xk - j (Xk)/j Вў (Xk).
Нехай тепер