Переваги: ​​
В· Простота реалізації.
В· Добре працює на гладких сепарабельних функціях і особливо на квадратичних, лінії рівня яких схожі на концентричні кола.
В· Можливість використання простих функцій для одновимірної оптимізації.
Недоліки:
В· При русі вздовж В«яруВ» швидкість піди мости значно знижується.
В· При попаданні в локальний мінімум неможливий подальший пошук глобального мінімуму.
Метод сполучених градієнтів
Переваги: ​​
В· Простота реалізації.
В· Висока швидкість роботи
В· Не вимагає явного обчислення похідних
Недоліки:
В· При попаданні в локальний мінімум неможливий подальший пошук глобального мінімуму.
Для порівняння швидкості роботи цих методів була обрана завдання пошуку рішення системи. Нижче представлена ​​кількість операцій для вирішення системи заданого розміру для кожного з методів.
Метод покоординатного спускаМетод сполучених градиентов2111125821852034322150663064755235102
. Рішення завдання
Для вирішення нашого завдання виберемо метод сполучених градієнтів зважаючи на простоту його реалізації та високої швидкості роботи.
# include
# include
# include
# include
# include
# include namespace std;
# define sz size ()
# define all (x) (x). begin (), (x). end ()
# define pb push_back
# define mp make_pair
# define X first
# define Y second
# define sqr (x) ((x) * (x))
const double EPS = 1e-7;
// скалярний твір
double inner_prod (vector a, vector b) {ans = 0; (int i = 0; i
} ans;
}
// обчислення градієнта grad (vector > A, vector B, vector X) { ans (B.sz, 0); (int i = 0; i