Graphic Calculator: FIDocalcus
Проект трёх первокурсников (по инженерному практикуму в первом семестре) по созданию графического калькулятора на FLTK C++
Loading...
Searching...
No Matches
function_extremes.h
Go to the documentation of this file.
1#pragma once
2
3// std libs
4#include <string>
5#include <vector>
6
7// Math_calc
8#include "function_roots.h"
9#include "math_base.h"
10
11namespace Math_calc {
12
13/// @brief Класс, хранящий в себе вектор точек - лок. экстремумы мат. функции
15 public:
16 /**
17 * @brief Инициализирует новый экземпляр function extremes
18 * @details Поиск точек происходит на прямоугольной области, краями которой -
19 * точки
20 * @param _func: мат. функция
21 * @param left_bottom: левая нижняя точка - начало области поиска точек
22 * @param right_top: правая верхняя точка - конец области поиска точек
23 * @param _precision: точность
24 */
26 Math_calc::Point right_top, double _precision);
27
28 // methods
29
30 // (перегрузка явного преобразования типов)
31 inline explicit operator std::vector<Math_calc::Point>() const {
32 return points;
33 }
34
35 // ~methods
36
37 private:
39
40 // vars
41
42 /// @brief Точность
43 // (используем везде, поэтому сохраняем в качестве поля)
44 double precision;
45
46 /// @brief Введенная мат. функция
48
49 std::vector<Point> points;
50
51 // ~vars
52
53 // methods
54
55 /**
56 * @return std::vector<Segment> подсегменты, где могут находиться экстремумы
57 * @arg тип экстремума
58 * @arg сегмент, на котором ищем
59 */
60 std::vector<Segment> estimated_segment(ExtremeType, Segment) const;
61
62 /**
63 * @return double: экстремум на интервале (значение x)
64 * @details Используя метод золотого сечения
65 * @arg тип экстремума
66 * @arg сегмент, на котором ищем
67 */
69
70 /**
71 * @return std::vector<Point>: все локальные экстремумы (точки: пары вида
72 * (x,y))
73 * @param left_bottom: левая нижняя точка - начало области поиска точек
74 * @param right_top: правая верхняя точка - конец области поиска точек
75 */
76 std::vector<Point> extremes(Math_calc::Point left_bottom,
77 Point right_top) const;
78
79 // ~methods
80};
81
82} // namespace Math_calc
Класс, хранящий в себе вектор точек - лок. экстремумы мат. функции
Definition function_extremes.h:14
ExtremeType
Definition function_extremes.h:38
@ pnt_min
Definition function_extremes.h:38
@ pnt_max
Definition function_extremes.h:38
std::vector< Point > extremes(Math_calc::Point left_bottom, Point right_top) const
Definition function_extremes.cpp:112
std::vector< Segment > estimated_segment(ExtremeType, Segment) const
Definition function_extremes.cpp:26
double precision
Точность
Definition function_extremes.h:44
std::vector< Point > points
Definition function_extremes.h:49
double extreme_on_interval(ExtremeType, Segment) const
Definition function_extremes.cpp:68
function_extremes(Math_func::function _func, Math_calc::Point left_bottom, Math_calc::Point right_top, double _precision)
Инициализирует новый экземпляр function extremes.
Definition function_extremes.cpp:20
Math_func::function f
Введенная мат. функция
Definition function_extremes.h:47
Класс, хранящий в себе точки - пересеч. графика мат. функ. с осью Ox.
Definition function_roots.h:16
Математическая функция
Definition function.h:14
Definition domain_segments.cpp:7
Вещественная точка
Definition math_base.h:9
Вещественный отрезок
Definition math_base.h:22