Оптимизация методом дихотомии
Описание метода одномерной оптимизации. Алгоритм поиска минимума. Блок-схема перечня вычисления экстремума. Подпрограммы для задания функции и листинг. Результаты выполнения программы. Достоинства и недостатки метода дихотомии для унимодальных функций.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 06.02.2015 |
Размер файла | 82,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru
Содержание
- Введение
- Описание метода
- Алгоритм поиска минимума
- Блок-схема алгоритма вычисления экстремума
- Блок-схема подпрограммы для задания функции
- Описание программы
- Листинг
- Результаты выполнения программы
- Достоинства и недостатки метода
Список использованной литературы
Введение
одномерный оптимизация дихотомия унимодальный
В данной курсовой работе требуется решить задачу одномерной оптимизации, найти её минимум или максимум функции. Для этого была использована программа MatLab, которая позволяет оптимизировать поставленную задачу (нахождение минимума и максимума) различными методами с помощью таких операторов как plot, grad и т.д.
В курсовой работе задача оптимизации была решена методом дихотомии.
Описание метода
Метод дихотомии применяется для унимодальных функций. Метод дихотомии заключается в том, что исходный интервал [ а, b] делится средней точкой с = ( b + a) / 2 на два подинтервала [ а, с] и [ с, b] в одном из
которых лежит точка минимума х*.
Для выбора подинтервала, для хорошо дифференцируемой функции вычисляют в точке c производную f 0'( с) и анализируют ее знак. Если
f 0'( с)>0, то х*лежит слева от точки c, т.е. В отрезке [ а, с]; если f 0'( с)<0, то х* лежит справа от точки c, т.е. В отрезке [ с, b], а при f '( c) ? 0 найдена
точка минимума х* = с.
Если f 0( x) не дифференцируемая, то выясняется направление убывания унимодальной функции. С этой целью задается точка с+ h (где h>0 ? малая величина, соизмеримая с е и вычисляется ордината f 0( с+ h).
Если приращение функции Д f ( c) = f ( c) ? f ( c + h) < 0, то точка х* лежит справа от точки c, т.е. х* принадлежит отрезку [ с, b].
Если Д f ( c) = f ( c) ? f ( c + h) > 0, то точка х* лежит сktdf от точки c, т.е. х* принадлежит отрезку [ a, c]
При Д f ( c) ? 0 имеем точку минимума* x ? c .
После выбора подинтервала, в котором находится х*, например
[ с, b], переопределяем левую границу а= с (при выборе [ а, с] следует поменять правую границу b= с).
Проверяем b ? a ? е , если нет, то вновь делим отрезок [ b- a] пополам и опять определяем, в каком подинтервале находится точка минимума.
Алгоритм поиска минимума
1. Вводим границы [ а, b] и е. h = 100?е.
2. Делим отрезок пополам с = ( b + a) / 2 .
3. Вычисляем приращение функции f
Д ( c) = f ( c) ? f ( c + h) . Если
Д f 0( с) < 0, то a = с, иначе если Д f 0( с) ? 0, то b = с.
4. Проверяем условие ( b ? a) ? е ? Если нет, то переходим на п.2,
да - переход на п.5.
5. Печать: "точка минимума х* = ", с, f 0( с), f 0'( c). Конец.
Для контроля правильности полученного решения можно вывести на печать значение f 0'( x*), которое должно быть близко к нулю. Если условие (6.2) не выполняется, то следует искать ошибку в программе. Если интервал, содержащий точку минимума функции определяется на основе вычисления производной f 0'( с), то такая реализации метода дихотомии будет относиться к итерационным процедурам 1 порядка.
Блок-схема алгоритма вычисления экстремума
да
Блок-схема подпрограммы для задания функции
Описание программы
В основном модуле программы вычисляется минимум данной функции методом дихотомии Входными данными являются начало и конец отрезка, точность. Выходными данными является точка х, в которой функция принимает экстремальное значение.
В данной программе вычисляется функция . В ходе оптимизации функции, построили ее график, по которому установили, что требуется найти минимум функции, определили отрезок оптимизации, на котором располагается минимум и вычислили значение точки минимума.
Таблица1. Основные подпрограммы
Подпрограмма |
Входные данные |
Выходные данные |
|
popova |
a, b, ? |
x |
|
y1=f(x) |
x |
y1 |
Листинг программы
function popova % функция, реализующая метод дихотомии
x=-2:0.1:2; % диапазон изменения х с шагом для построения графика
y1=f(x); % вызов подпрограммы для построения графика
plot(x,y1); % построение графика
grid on % наложение сетки
xlabel('x') % подпись оси x
ylabel('y') % подпись оси y
a=-2; % левая граница поиска
b=2; % правая граница поиска
eps=1e-5; % точность
h=100*eps;
while abs(b-a)>=eps %начало итерационного цикла
c=(b+a)/2; % функция деления отрезка пополам
y=f(c)-f(c+h); % вычисление приращения функции
if y>0 ;% проверка условия
a=c;
else
b=c;
end
end% конец итерационного цикла
x_opt=c
y=f(x_opt)
function y=f(x) % подпрограмма для вычисления значения функции
y=0.87.*sin(1.4.*x).*exp(-0.89.*x)+0.78.*x.^2-2.06;
end
end
Результаты выполнения программы
По графику функции видно, что при x=-1,2 и y=-3.34, что соответствует результатам расчетов программы.
Результаты расчетов программы:
Достоинства и недостатки метода
Дихотомическое деление привлекательно своей простотой. Действительно, при дихотомии мы всегда имеем дело лишь с двумя классами, которые исчерпывают объём делимого понятия. Таким образом, дихотомичес-кое деление всегда соразмерно; члены деления исключают друг друга, так как каждый объект делимого множества попадает только в один из классов а или не а; деление проводится по одному основа-нию -- наличие или отсутствие некоторого признака. Обозначив делимое понятие буквой, а, и выделив в его объёме некоторый вид, скажем, b, можно разделить объём,a,на две части -- b и не b.
Дихотомическое деление имеет недостаток: при делении объё-ма понятия на два противоречащих понятия каждый раз остаётся крайне неопределённой та его часть, к которой относится частица «не». Если разделить учёных на историков и не историков, то вторая группа оказывается весьма неясной. Кроме того, если в начале дихотомического деления обычно довольно легко устано-вить наличие противоречащего понятия, то по мере удаления от первой пары понятий найти его становится всё труднее.
Список использованной литературы
1. Конспект лекций по курсу « Прикладное программирование для студентов 2-ого курса по направлению 260.100-62 - Технология продуктов питания.
2. Оптимизация технологических процессов В.С. Асламова , И.В. Васильев, О.А. Засухина - Ангарск , АГТА-2005г., 106 с.
3. http://ru.wikipedia.org/wiki/
4. Прикладное нелинейное программирование, Химмельблау Д Москва, Мир, 1975г.,536с.
Размещено на Allbest.ru
Подобные документы
Решение задачи на тему максимизации функций многих переменных. Описание метода дихотомии, его применение для решения нелинейных уравнений. Решение данной задачи с использованием метода покоординатного спуска. Составление алгоритмов, листинг программы.
курсовая работа [138,5 K], добавлен 01.10.2009Математическое описание, алгоритм и программа вычисления нелинейного уравнения методом дихотомии. Метод половинного деления. Метод поиска корней функции. Написание текста программы с комментариями. Проведение тестовых расчетов. Вывод ответа на экран.
курсовая работа [67,2 K], добавлен 15.02.2016Необходимые условия экстремума. Разработка машинного алгоритма и программы многомерной оптимизации для градиентного метода с использованием метода равномерного поиска. Проверка необходимых и достаточных условий экстремума для найденной точки минимума.
курсовая работа [249,8 K], добавлен 25.09.2013Описание и функциональное назначение программы по оптимизации функции, ее логическая структура и используемые технические средства. Практическое применение программы, вызов и загрузка, входные и выходные данные, выполнение контрольного примера и листинг.
курсовая работа [337,4 K], добавлен 26.02.2012Создание программы в среде программирования MatLab для решения задачи одномерной оптимизации (нахождение минимума и максимума заданных функций) методом золотого сечения, построение блок-схемы алгоритма и графическое изображение исследованных функций.
реферат [112,0 K], добавлен 14.06.2010Особенности точных и итерационных методов решения нелинейных уравнений. Последовательность процесса нахождения корня уравнения. Разработка программы для проверки решения нелинейных функций с помощью метода дихотомии (половинного деления) и метода хорд.
курсовая работа [539,2 K], добавлен 15.06.2013Выбор наиболее эффективного метода поиска экстремума для функции. Оценка погрешности определения точки минимума. Проверка унимодальности уравнения аналитическим методом и по графику. Сравнение алгоритмов по количеству обращений к функции и по точности.
контрольная работа [909,0 K], добавлен 14.08.2019Определение минимума функции на заданном отрезке методами перебора, поразрядного поиска, дихотомии, золотого сечения и методом парабол. Нахождение и расчет нулей функции методом Ньютона. Построение графика данной функции, ее минимальное значение.
реферат [55,6 K], добавлен 09.04.2013Задача оптимизации с точки зрения математики как задача нахождения экстремума вещественной функции в некоторой области. Классификация и типы методов оптимизации, условия их практического использования. Создание программы, ее листинг, описание алгоритмов.
курсовая работа [181,7 K], добавлен 22.06.2012Ознакомление с методами решения оптимизационных задач. Алгоритм метода ломанных. Определение наименьшего значения целевой функции. Описание метода анализа математической модели. Расчет поиска минимума по методу ломаных. Листинг программы, интерфейс.
курсовая работа [2,2 M], добавлен 06.12.2014