Программы > Пример. Поиск локального минимума или максимума векторов
Пример. Поиск локального минимума или максимума векторов
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. Воспользуйтесь встроенным функциями для определения точек локальных минимумов и максимумов:
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Результаты согласуются.
* 
Перед тем как писать новую программу, проверьте, нет ли для этой цели встроенных функций.
Было ли это полезно?