Программы > Пример. Поиск локального минимума или максимума векторов
Пример. Поиск локального минимума или максимума векторов
1. Введите программу с использованием условных операторов и операторов цикла для поиска локальных минимумов в наборах данных:
Функция locmin просматривает входной вектор v и сравнивает каждый его элемент с двумя соседними элементами. Если элемент k меньше, чем элемент перед ним и элемент после него, то он считается локальным минимумом, и его значение и индекс добавляются в выходной вектор m.
2. Используйте эту программу для написания второй программы — для поиска локальных максимумов в том же наборе данных:
Функция locmax использует результаты, полученные при вызове функции locmin с аргументом -v. Локальный минимум вектора -v является зеркальным отражением локального максимума в этой же точке. Следовательно, каждое значение локального минимума умножено на -1. Пара индекс-значение сохраняется в виде отдельного элемента в выходном векторе M.
3. Определите функцию f, в которой используется встроенная функция
dbinom, возвращающая плотность вероятности для значения k:
4. Постройте графики этих двух функций:
5. Сохраните элементы g(k,n) в массиве, который можно будет передать в определенные выше программы:
6. Воспользуйтесь встроенными функциями для вычисления длины, чтобы узнать, сколько точек locmin и locmax было найдено программами.
7. Используйте определенные в примере программы для поиска трех точек локальных минимумов функции:
8. Используйте определенные в примере программы для поиска двух точек локальных максимумов функции:
9. Постройте график функции и покажите три точки ее локальных минимумов и две точки локальных максимумов:
10. Сравните полученные результаты с использованием определенных в примере программ с результатами, полученными с помощью встроенных функций
localmin и
localmax (данные в эти функции необходимо передавать в виде матрицы nx2):
a. Постройте входную матрицу nx2 с помощью функции
augment:
b. Воспользуйтесь встроенным функциями для определения точек локальных минимумов и максимумов:
Результаты согласуются.
Перед тем как писать новую программу, проверьте, нет ли для этой цели встроенных функций.