- •Содержание
- •Тема 1. Задачи одномерной безусловной минимизации
- •Тема 2. Задачи многомерной безусловной минимизации
- •Тема 3. Задачи многомерной оптимизации при наличии ограничений. Линейное программирование
- •Введение
- •Тема 1. Задачи одномерной безусловной минимизации
- •1.1. Постановка задачи
- •1.2. Метод перебора
- •1.3. Метод поразрядного поиска
- •1.4. Метод деления отрезка пополам (метод дихотомии)
- •1.5. Метод Фибоначчи
- •1.6. Метод золотого сечения
- •1.7. Метод средней точки.
- •1.8. Метод Ньютона.
- •Тема 2. Задачи многомерной безусловной минимизации
- •2.1. Необходимые сведения из курса линейной алгебры
- •2.2. Постановка задачи многомерной оптимизации
- •2.3. Необходимые сведения из курса математического анализа
- •2.4. Методы спуска
- •2.5. Метод градиентного спуска с дроблением шага
- •2.6. Метод наискорейшего спуска
- •2.7. Метод сопряженных градиентов
- •2.8. Метод покоординатного спуска
- •2.9. Метод Ньютона
1.8. Метод Ньютона.
Пусть f(x) – дважды непрерывно дифференцируемая функция, причем f ''(x) > 0. Тогда, как уже указывалось в предыдущем разделе, решение задачи минимизации функции f (x) сводится к решению нелинейного уравнения f '(x) = 0.
Метод Ньютона является наиболее эффективным методом решения нелинейных уравнений.
Пусть корень x* [a, b], так, что f '(a)f '(b) < 0. Положим x0 = b. Проведем касательную к графику функции y = f '(x) в точке B0 = (x0, f '(x0)) (рис. 1.5).
Рис. 1.5
Уравнение касательной будет иметь вид:
y – f '(x0) = f"(x0)(x – x0). (1.16)
Первое пересечение получим, взяв абсциссу точки пересечения этой касательной с осью OX, т. е. положив в (1.16) y = 0, x = x1:
x1
= x0
–
.
(1.17)
Аналогично поступим с точкой B1(x1, f '(x1)), затем с точкой B2(x2, f '(x2)), и т. д. в результате получим последовательность приближений x1, x2, …, xn , …, причем
xn
+1 =
xn
–
.
(1.18)
Формула (1.18) является расчетной формулой метода Ньютона.
При заданной точности > 0 вычисления по формуле (1.18) нужно вести до тех пор, пока не будет выполнено неравенство| f '(xn)| , после чего полагают x* xn.
Алгоритм 1.6 (Алгоритм метода Ньютона).
Шаг 1. Ввести исходные данные: a, b, . Положить n = 0, x0 = b.
Шаг 2. Вычислить f '(xn) и f "(xn).
Шаг 3. Вычислить xn +1 = xn – .
Шаг 4. Проверить критерий окончания вычислений. Если f '(x n +1) , , перейти к шагу 6, иначе – к шагу 5.
Шаг 5. Положить n = n +1. Перейти к шагу 2.
Шаг 6. Положить x* xn +1 . Вычислить f'(x*).
Пример 1.7.
Методом Ньютона найдем точку минимума функции f(x) = xarctgx – ln(1 + x2 ) на отрезке [0, 1], = 10 –7.
Функция f(x) дважды дифференцируема, причем
f
'(x)
= arctgx,
f
"(x)
=
> 0.
Расчетные формулы (1.18) примут вид:
xn +1 = xn – arctgx(1 + x2).
Результаты вычислений приведены в табл. 1.8.
Таблица 1.8
n |
xn |
f '(xn) |
0 1 2 3 4 |
1 -0.570 0.117 -0.06110-3 910-8 |
0.785 -0.519 0.116 -1.06110-3 910-8 |
Вычисления прекращаются, так как требуемая точность достигнута (910-8 < 10 –7).
Таким образом, x* 910-8 0, f(x*) 0.
Тема 2. Задачи многомерной безусловной минимизации
2.1. Необходимые сведения из курса линейной алгебры
Пусть f(x1, x2, … ,xn) – действительная функция n переменных, определенная на множестве X Rn (Rn – n-мерное пространство, в частности, R2 – плоскость). Обозначим через x вектор-столбец
=
(x1,
x2,
…, xn)T,
(2.1)
где символ "T" – знак транспонирования. Тогда x –точка в пространстве Rn и f(x) =f(x1, x2, … ,xn).
Скалярное произведение векторов x = (x1, x2, …, xn)T и y = (y1, y2, …, yn)T определяется следующим образом:
(x,
y)
=
.
(2.2)
Нормой (длиной) вектора x называется число
x
=
=
.
(2.3)
Определено расстояние между векторами x и y:
(x,
y)
= x
– y
=
.
(2.4)
Матрица A =(aij), i = 1, … , m; j = 1, … , n, представляет собой прямоугольную таблицу размера mn, состоящую из m строк и n столбцов. В частности, вектор-столбец x является матрицей размера n 1.
Квадратная матрица A называется симметрической, если aij = aji, i, j = 1, … , n.
Произведением матрицы A размера mn на вектор-столбец x Rn является вектор-столбец b = (b1, b2, … , bm)T Rm, координаты которого вычисляются по формуле:
bi
=
=
(ai,
x)
, i
= 1, 2, …, m,
(2.5)
где ai = (ai1, … , ain) – i-ая строка матрицы A, т. е. Ax = b.
Определителем квадратной матрицы A (обозначается detA или A) размера nn называется число, которое определяется по формуле:
detA
= A
=
.
(2.6)
Здесь Aij – алгебраическое дополнение элемента aij, Aij = (–1)i+jMij , а Mij – минор, который является определителем матрицы, полученной из A вычеркиванием i-ой строки и j-го столбца.
Если определитель матрицы A не равен нулю, то существует обратная матрица A–1 = (ij). Элементы обратной матрицы находят по формуле:
ij
=
,
(2.7)
где Aji – алгебраическое дополнение элемента aji матрицы A.
Квадратичной
формой Q
от
n
переменных
x1,
x2,
…, xn
называется
сумма, каждый член которой является
либо квадратом одного из этих переменных,
либо
произведением двух разных переменных.
Считая, что в квадратичной форме
Q
уже
сделано приведение подобных членов,
введем следующие обозначения: коэффициент
при x
обозначим
через aii,
а
коэффициент при произведении xixj
для
i
j
– через
2aij.
Член
2aijxixj
можно
записать в виде
2aijxixj = aijxixj + ajixjxi.
Очевидно, что aij = aji. Всю квадратичную форму Q можно записать в виде суммы всевозможных членов aijxixj, где i и j независимо друг от друга принимают значения от 1 до n:
Q
=
.
(2.8)
В частности, при i = j получается член aiix .
Из коэффициентов aij можно составить квадратную матрицу A = (aij) размера nn; она называется матрицей квадратичной формы Q.
Так как aij = aji, матрица A является симметрической.
Квадратичную форму Q можно записать в ином виде, используя введенное ранее умножение матрицы на вектор-столбец и скалярное произведение векторов. Равенство (2.8) равносильно равенству
Q(x) = = (Ax, x). (2.9)
Квадратичная форма Q(x) называется положительно определенной, если для всех x 0 имеет место неравенство Q(x) > 0.
Из курса линейной алгебры известен критерий Сильвестра положительной определенности квадратичной формы: для того, чтобы квадратичная форма Q(x) была положительно определенной, необходимо и достаточно, чтобы ее матрица A = (aij) была положительно определена, т. е. все ее угловые миноры были положительными:
a11 . . . a12
a11 a12 . . .
1 = a11 > 0; 2 = > 0; n = . . > 0. (2.10)
a21 a22 . .
a11 . . . a12
