Реализация и сравнение двух методов поиска минимума функции одной переменной: равномерного поиска и метода золотого сечения.
Найти минимум функции на отрезке:
при точностях
Функция унимодальна на
| ε | x* | f(x*) | Вызовов |
|---|---|---|---|
| 0.1 | −4.500000 | −4.820477 | 11 |
| 0.01 | −4.490000 | −4.820547 | 101 |
| 0.001 | −4.493000 | −4.820572 | 1001 |
| ε | x* | f(x*) | Вызовов |
|---|---|---|---|
| 0.1 | −4.482779 | −4.820325 | 8 |
| 0.01 | −4.494382 | −4.820570 | 13 |
| 0.001 | −4.493336 | −4.820572 | 18 |
| ε | Равномерный | Золотое сечение | Выигрыш |
|---|---|---|---|
| 0.1 | 11 | 8 | ×1.4 |
| 0.01 | 101 | 13 | ×7.8 |
| 0.001 | 1001 | 18 | ×55.6 |
Равномерный поиск:
Подробный отчёт с выводом формул, доказательством унимодальности, верификацией результата и анализом применимости методов:
optimization_methods/
├── main.cpp # Точка входа
├── plot.py # График унимодальности (Python + matplotlib)
├── CMakeLists.txt # Сборка (C++17, CMake)
├── include/
│ ├── IMinimizer.h # Абстрактный интерфейс
│ ├── MinimizationResult.h # Структура результата
│ ├── UniformSearchMinimizer.h
│ └── GoldenSectionMinimizer.h
├── src/
│ ├── UniformSearchMinimizer.cpp
│ └── GoldenSectionMinimizer.cpp
├── images/
│ └── unimodality.png # График функции
├── lab3_report.md # Полный отчёт
└── lab3_report.pdf # PDF-версия отчёта
cmake -B build -S .
cmake --build build
./build/optimization_methods# График
python3 plot.pyТребования: C++17, CMake 3.14+, Python 3 + matplotlib
