Konveksno programiranje, podklasa nelinearnog programiranja, vrsta je programiranja koja generalizira i objedinjuje druge vrste, uključujući linearno programiranje, najmanje kvadrate i kvadratno programiranje. Koncept konveksnog programiranja nudi podršku velikom broju teorijskih i praktičnih primjena. Može se pohvaliti učinkovitim algoritmima koji programeru čine korisnim za korištenje i razvoj ove vrste programiranja. Konveksno programiranje zahtijeva veliko iskustvo i stručnost programera, kao i discipliniran proces učenja. Iako nije nov koncept, još uvijek se koristi u mnogim disciplinama i aplikacijama koje zahtijevaju složenu i tehničku matematiku.
Za primjenu konveksnog programiranja važna su tri principa: optimizacija, numeričko računanje i konveksna analiza. Poboljšana računalna snaga i napredak u složenim algoritmima omogućili su znanstvenicima i matematičarima da razviju ovu vrstu programiranja i koriste je za rješavanje problema. Konveksno programiranje je svojim korisnicima pružilo korisne računalne alate koji pomažu u rješavanju problema više klase unutar područja linearnog programiranja i najmanjih kvadrata. Inženjeri su smatrali da je ova vrsta programiranja korisna za funkcije kao što su obrada signala, kontrola, dizajn sklopova, mreže, komunikacija itd.
Korištenje konveksnog programiranja zahtijeva razumijevanje linearne algebre, optimizacije i vektorskog računa. Konveksni skupovi su prilično česti i koriste se u ovakvoj vrsti programiranja. Programeri koriste ove konveksne skupove za rješavanje određenih problema optimizacije s vektorima. Drugi uobičajeni element ove vrste programiranja je konveksna funkcija.
Primjene konveksnog programiranja uobičajene su u području mikroekonomije, posebno u određivanju maksimiziranog profita i maksimalne preferencije potrošača. Ovo je oblik optimizacije i zahtijeva složenu matematiku koja se nalazi u konveksnom programiranju. Uobičajeni problem koji se razmatra i rješava u ovoj disciplini je ono što se naziva problem matematičke optimizacije. Takav problem koristi vektor za predstavljanje i apstrahiranje donošenja najoptimalnijeg izbora iz određenog skupa izbora.
Drugi primjer ove vrste apstraktnog problema koji se javlja u drugoj disciplini uključuje optimizaciju portfelja, gdje se iz određenog skupa imovine traži najbolja opcija ulaganja kapitala. U računalima i elektroničkom dizajnu, dimenzioniranje uređaja je još jedan problem optimizacije, gdje se mora odrediti najbolja duljina i širina uređaja, kao što je krug. Prilagodba podataka, još jedan aspekt vezan uz računala i elektroničke uređaje, nastoji pronaći model iz skupine potencijalnih modela kandidata koji najbolje odgovara nekoj vrsti promatranih podataka ili prethodno stečenih informacija.