Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Оптимизация в САПР / Курсовик_Мальгин_1.doc
Скачиваний:
41
Добавлен:
01.05.2014
Размер:
713.22 Кб
Скачать

Министерство образования Российской Федерации

Санкт-Петербургский Государственный Электротехнический Университет “ЛЭТИ” имени В.И. Ульянова (Ленина)

197376, Санкт-Петербург, ул. Проф. Попова, 5

Факультет компьютерных технологий и информатики

Кафедра вычислительной техники

«ЗАЧТЕНО»

_________Г.Д. Дмитревич

“__”___________2005 г.

ПОяснительная записка к курсовому проекту По курсу: “Оптимизация в сапр”

Студент группы 2311 _________ С.А. Мальгин

Санкт-Петербург 2005

Оглавление

Задание на проектирование 4

Введение 5

МетодЫ решения оптимизационной задачи 6

Методы одномерной минимизации 6

Метод Свенна 6

Метод золотого сечения 6

Алгоритм ЗС-1 7

Алгоритм ЗС-2 7

Метод Фибоначчи 8

Алгоритм Фибоначчи-1 8

Алгоритм Фибоначчи-2 9

Метод средней точки (метод Больцано) 9

Метод квадратичной интерполяции – экстраполяции 10

Метод Пауэлла 10

Метод Давидона 11

Методы многомерной минимизации 12

Метод Коши 12

Метод Циклического покоординатного спуска 12

Метод параллельных касательных 13

Метод Гаусса-Зейделя 14

Метод комплексов Бокса 14

Метод Хука-Дживса (конфигураций) 16

Метод Ньютона 18

Метод Зангвилла 18

Флетчера-Ривса 19

Метод Пауэлла 20

Блок-схемы 22

Метод Свенна 22

Метод ЗС-1 23

Метод ЗС-2 24

Метод Фибоначчи-1 25

Метод Фибоначчи-2 26

Метод Больцано 27

Метод квадратичной интерполяции – экстраполяции 28

Метод Пауэлла 29

Метод Давидона 30

Результаты тестирования программы 34

Результат тестирования методов для одномерной функции 34

Результат тестирования методов для двухмерной функции 34

Результат тестирования методов для трёхмерной функции 35

Результат тестирования методов для четырёхмерной функции 35

Результат тестирования метода комплексов Бокса 36

Результат тестирования парсера 36

Инструкция для пользователя 37

Заключение 38

Приложение – листинг программы 39

Задание на проектирование

Необходимо разработать пакет диалоговых программ, позволяющих автоматизировано находить оптимальные решения различных функций. Курсовая работа должна содержать различные методы одномерной и многомерной оптимизации, а, кроме того:

  1. Программа должна позволять:

  • проводить оптимизации целевых функций с числом переменных n≤5.

  • допускать численное дифференцирование минимизируемых функций.

  • выполнять решение в автоматическом режиме и в поитерационном режиме с выдачей всей информации, необходимой для контроля соответствия работы программы по заданному методу.

  • задавать с клавиатуры критерий останова (норма градиента и число итераций) и продолжать решение после внесения дополнительных уточнений в текущую точку и критерий останова.

  • вводить с клавиатуры минимизируемые функции многих переменных, содержащих скобки, степени и основные математические функции (Eps, Ln, Sin, Cos и т.д.).

  1. Программа должна быть дружественной пользователю:

  • содержать необходимые заставки и сообщения, характеризующие программу, используемый метод, характер выводимой информации, допущенную ошибку при вводе данных и т.д.

  • содержать блокировку ошибочных действий при вводе данных и обеспечивать простоту исправления ошибки.

  • желательно, чтобы при демонстрационном режиме была возможность выбора из нескольких (трех-пяти) тестовых функций и запуск на поиск решения без ввода вида функции с клавиатуры

  1. Программа должна быть хорошо структурирована:

  • текст программы должен быть оформлен в соответствии с правилами модульного программирования.

  • структуры данных и процедуры, связанные с транслятором строки и с минимизацией функций, должны быть оформлены в два модуля.

  • все функции должны сопровождаться детальными комментариями и спецификациями, показывающими назначение функций, массивов, переменных и смысл основных операторов.