Невыпуклое программирование [non-convex programming] — раздел математического программирования, изучающий методы решения таких экстремальных задач, целевая функция которых является невыпуклой (см. Выпуклость, вогнутость). Задачи Н.п. обладают той особенностью, что в них не выполняется условие двойственности, характерное, например, для задач линейного программирования. (См. Двойственность в линейном программировании). Для преодоления «разрыва двойственности» и построения двойственных задач здесь разрабатываются специальные методы, в частности, с использованием модифицированных функций Лагранжа (см. Лагранжиан).