
Результаты тестирования программы
Функция y(x) |
Начальная точка (x1) t |
Направление поиска p t |
Значение минимума (ЗС-1) |
Значение минимума (Пауэлла) |
x12 + 3x22 + 2x1x2 |
( 1 ; 1) |
( 2 ; 3) |
( 0.255816 ; -0.116277) кол-во итерации = 22 |
(0.255814 ;-0.116277) кол-во итерации = 1 |
Функция y(x) |
Начальная точка (x1) t |
Значение минимума Пауэлла (x*)t |
Значение минимума Золотое сечение (x*)t |
100(x2 -x12)2 + (1-x1)2 + 90(x4-x32)2 + (1-x3)3 + 10.1[(x2-1)2+(x4-1)2]+19.8(x2-1)(x4-1)
|
(-3;-1;-3;-1) |
( 1 ; 1 ; 1; 1 ) |
( 1 ; 1 ; 1; 1 ) |
(x1 - 1)2 + (x2 - 3)2 + 4(x3 + 5)2 |
( 4 ; -1 ; 2 ) |
( 1 ; 3 ; -5) |
( 1 ; 3 ; -5) |
Ответы на вопросы
Перечислите основные постулаты структурного программирования.
Любая программа представляет собой структуру, построенную из трёх типов базовых конструкций ( последовательное исполнение, ветвление, цикл).
Повторяющиеся фрагменты программы могут быть оформлены в виде функций.
Разработка программы ведётся пошагово, методом «сверху вниз».
Перечислите основные постулаты объектно-ориентированного программирования.
Инкапсуляция
Полиморфизм
Наследование
В чем отличие структурного и объектно-ориентированного подхода при разработке программ.
Любая программа теоретически может быть написана и без применения ООП, но ООП заметно упрощает и размер и последующее использование написанного кода.
Полиморфизм (виртуальные функции, перегрузка функций) позволяет реализовать один интерфейс для разных реализаций решения задачи.
Наследование позволяет создать новый класс добавив недостающие свойства и изменив существующие. Так, к примеру, в представленной программе реализован вызов функции синтаксического анализатора из класса методов.
Благодаря наследованию пользователь получает интерфейс, через который (и только через который) он может работать с данными, не задумываясь о сложности алгоритма и его реализации
Какие варианты при разработке класса вектора были рассмотрены, каковы достоинства и недостатки каждого из вариантов.
Был введен отдельный класс для вектора в котором есть все необходимое, чтобы реализовать требуемые методы оптимизации целевых функций с любым количеством переменных.
Вывод
В данной лабораторной работе была создана программа, отвечающая требованиям современной технологии разработки программ оптимизации, ориентированных на язык С++. В программе были реализованы методы, находящие минимумы целевых функции при движении вдоль заданной прямой. Также программа позволяет пользователю отслеживать влияние входных параметров на выполнение основных алгоритмов функций, использовать начальные настройки программы, а также вносить корректирующие изменения во время выполнения программы.