Если
, то сначала заменим точку на точку , а затем произведем сжатие. Тогда точку найдем из соотношения ,т.е.
.12. Сравним значения функции
и .Если
, то заменяем точку на точку и если сходимость не достигнута, то возвращаемся к п.2.Если
, то очевидно, что все наши попытки найти значение меньшее закончились неудачей, поэтому мы переходим к п. 13.13. На этом шаге мы уменьшаем размерность симплекса делением пополам расстояния от каждой точки симплекса до
– точки, определяющей наименьшее значение функции.Таким образом, точка
заменяется на точку , т.е. заменяем точку точкой .Затем вычисляем
для , проверяем сходимость и, если она не достигнута, возвращаемся к п. 3.14. Проверка сходимости основана на том, чтобы стандартное отклонение
-го значения функции было меньше некоторого заданного малого значения . В этом случае вычисляется: ,где
.Если
, то все значения функции очень близки друг к другу, и поэтому они, возможно, лежат вблизи точки минимума функции . Исходя из этого, такой критерий сходимости является разумным, хотя Бокс, Дэвис и Свенн предлагают то, что они считают более "безопасной" проверкой.Коэффициенты
в приведенной процедуре являются соответственно коэффициентами отражения, сжатия и растяжения. Нелдер и Мид рекомендуют брать . Рекомендация основана на результатах экспериментов с различными комбинациями значений. Эти значения параметров позволяют методу быть эффективным, но работать в различных сложных ситуациях.Начальный симплекс выбирается на наше усмотрение. В данном случае точка
является начальной точкой, затем формируются точки: , ,…,
.где
– произвольная длина шага, a – единичный вектор.4 ЗАДАНИЯ К КУРСОВОЙ РАБОТЕ
I. Создать программную реализацию процедуры вывода на экран координатной плоскости с возможностью выбора пользователем обозначения откладываемых величин, минимального и максимального отображаемых значений (они могут быть одного знака), а также шага оцифровки по каждой из осей.
II. Организовать дружественный для пользователя интерфейс ввода исходных данных и выбора процедуры исследования функций.
III. Организовать проверку корректности ввода числовых данных с клавиатуры.
IV. Создать программную реализацию следующих процедур исследования функции одной переменной:
1. Отображение графика исследуемой функции при заданных пользователем параметрах.
2. Изменение отображения графика исследуемой функции заданным образом в соответствии с командами, задаваемыми с клавиатуры. При нажатии на клавиатуре одной из заданных клавиш исследуемый параметр увеличивается на величину заданного шага, а при нажатии на клавиатуре другой – уменьшается на величину заданного шага.
3. Поиск экстремума функции заданным методом оптимизации на заданном пользователем интервале изменения независимой переменной. Отображение на экране процесса приближения к экстремуму. Подсчет количества шагов в процессе оптимизации.
4. Организация вывода на экран и печати в табличном виде, сохранения в файл и чтения из него определенных номером варианта данных. Организация выбора имени файла при сохранении и чтении данных. Проверка правильности задания имени файла.
V. Исследование функции двух переменных.
1. Отображение исследуемой функции при заданных пользователем параметрах на плоскости заданным способом. Линии уровня или характеристики должны отображаться разными цветами.
2. Поиск экстремума функции заданным методом оптимизации на заданных пользователем интервалах изменения независимых переменных. Отображение на экране процесса приближения к экстремуму. Подсчет количества шагов в процессе оптимизации.
VI. Описать функционирование устройства, описываемого заданной функцией, использованные методы оптимизации, провести их сравнение с другими.
VII. При работе в среде визуального программирования создать приложение Windows, реализующее решение сформулированных в п.п.I-V задач, а также перечисленных ниже.
1.Создание приложения заданного типа с диалоговым окном и набором элементов управления в соответствии с заданием на курсовую работу для ввода данных, выбора типа решаемой задачи и ее решения.
2.Решение задачи на поиск условного экстремума в задаче линейного программирования.
3.Выбор начального приближения при решении задач поиска экстремума путем нажатия на левую кнопку манипулятора типа «мышь» на точке графика функции.
4.Изменение размера окна.
5.Набор функции из заданных элементов для функции нескольких переменных.
6.Создание электронной таблицы с данными.
7.Организация вывода на печать из приложения графического изображения.
8.Создание сетевого приложения. С автоматизированного рабочего места (АРМ) преподавателя передается задача. Студент решает ее вручную и передает ответ преподавателю, тот – студенту оценку.
9.Создание элементов ActiveX или процедур в составе DLL на основе разработанного в п.п.I-VII программного обеспечения и организация их вызова из другой программы.
VIII. Оформить курсовую работу в соответствии с требованиями, сформулированными в [2]. Курсовая работа должна включать в себя:
– таблицы соответствия входных, выходных, справочных, промежуточных переменных;
№№ п/п | Наименование в тексте задания, алгоритме или математическом методе | Наиме-нование в програм-ме | Тип пере-мен-ной | Тип данных (входных, вы-ходных, спра-вочных, про-межуточных) |
– описание математических методов решения задач;
– схемы алгоритмов и их описание;
– текст созданных программ в приложении к курсовой работе;
– тестовый пример;
– результат программного решения тестового примера.
IX. Программное обеспечение должно быть разработано на объектно-ориентированном языке программирования С++ [4, 5, 10-13]. Каждая из созданных программ должна быть представлена в виде исполняемого файла (*.exe).
При выполнении п.IV задания к курсовой работе по номеру варианта определяются:
– исследуемая функция;
– изменяемый параметр;
– шаг изменения параметра;
– способ изменения изображения;
– клавиши, нажатие на которые отслеживается
– метод поиска экстремума;
– данные, записываемые в файл.
Варианты исследуемых функций.
1. Квадратичная парабола
,где
– коэффициенты.2. Характеристика «вход-выход» магнитного усилителя (МУ) – зависимость тока в рабочей обмотке
от тока в обмотке управления : ,