![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Программа нахождения минимума методом «золотого сечения» имеет вид.⇐ ПредыдущаяСтр 22 из 22
DEF FNgs (x) = x ^ 2 + EXP(x) a = -1 b = 0 E =.001 alfa =.38197 beta =.61803 x1 = a + alfa * (b - a) x2 = a + beta * (b - a) f1 = FNgs(x1) f2 = FNgs(x2) m2: IF f1 < f2 THEN b = x2 x2 = x1 x1 = a + alfa * (b - a) f2 = f1 f1 = FNgs(x1) GOTO m1 END IF a = x1 x1 = x2 x2 = a + beta * (b - a) f1 = f2 f2 = FNgs(x2) m1: IF ABS(b - a) > E GOTO m2 x0 = (a + b) / 2 WRITE " xmin=", x0 END
Ответ программы: xmin = -0.3517317. Округляя с двумя дополнительными знаками, имеем xmin = -0.35173. Находим минимум, используя пакет MathCAD.
Для нахождения минимума используется встроенная функция Minimize
Многомерная оптимизация.
Общая задача нелинейного программирования без ограничений состоит в нахождении минимума функции, зависящей от n переменных f(x) = f(x1, x2,..., xn). Функция f(x) называется целевой функцией, где(x – вектор {x1, x2,..., xn). Как правило, численные методы отыскания экстремума состоят в построении последовательности векторов { x (k)}, удовлетворяющих условию f(x (0)) > f(x (1)) >... > f(x (n)). Методы построения таких последовательностей называются методами спуска. В этих методах элементы последовательности { x (k)} вычисляются по формулам x (k + 1) = x (k) – α g (k), (k = 0, 1, 2,...,) (1) Здесь g (k) – направление спуска, α – длина шага в этом направлении. Как известно, градиент функции в точке направлен в сторону наискорейшего возрастания функции в этой точке. Следовательно, спускаться надо в направлении, противоположном градиенту. Вектор. противоположный градиенту, называется антиградиентом. Выбирая антиградиент в качестве направления спуска, приходим к итерационному процессу вида (1), где g (k) = Мы будем рассматривать метод градиентного спуска с дроблением шага. Алгоритм метода градиентного спуска с дроблением шага следующий
Шаг 1. Задать параметр точности Е, начальный шаг α > 0, выбирать начальное значение (начальную точку) х. Общих правил для нахождения х нет. Если есть какие-либо сведения об области существования минимума рассматриваемой функции, то выбираем х из этой области. Вычислить f (х )) и перейти к шагу 2. Шаг 2. Вычислить Шаг 3. Найти Шаг 4. Положить α = α / 2 и перейти к шагу 3.
|