Konveksno programiranje, podrazred nelinearnega programiranja, je vrsta programiranja, ki posplošuje in združuje druge vrste, vključno z linearnim programiranjem, najmanjšimi kvadrati in kvadratnim programiranjem. Koncept konveksnega programiranja nudi podporo velikemu številu teoretičnih in praktičnih aplikacij. Ponaša se z učinkovitimi algoritmi, zaradi katerih je programerju koristno uporabljati in razvijati tovrstno programiranje. Konveksno programiranje zahteva bogate izkušnje in strokovno znanje programerja ter discipliniran učni proces. Čeprav ni nov koncept, se še vedno uporablja v številnih disciplinah in aplikacijah, ki zahtevajo kompleksno in tehnično matematiko.
Za uporabo konveksnega programiranja so pomembna tri načela: optimizacija, numerično računanje in konveksna analiza. Izboljšana računalniška moč in preboji v kompleksnih algoritmih so omogočili znanstvenikom in matematikom, da razvijejo to vrsto programiranja in jo uporabijo za reševanje problemov. Konveksno programiranje je svojim uporabnikom zagotovilo koristna računalniška orodja, ki pomagajo pri reševanju problemov višjega razreda na področjih linearnega programiranja in najmanjših kvadratov. Inženirji so ugotovili, da je tovrstno programiranje uporabno za funkcije, kot so obdelava signalov, nadzor, načrtovanje vezij, omrežja, komunikacija itd.
Uporaba konveksnega programiranja zahteva razumevanje linearne algebre, optimizacije in vektorskega računa. Konveksni nizi so precej pogosti in se uporabljajo v tovrstnem programiranju. Programerji uporabljajo te konveksne množice za reševanje določenih optimizacijskih problemov z vektorji. Drug pogost element te vrste programiranja je konveksna funkcija.
Uporaba konveksnega programiranja je pogosta na področju mikroekonomije, zlasti pri določanju maksimiziranega dobička in maksimiranih preferenc potrošnikov. To je oblika optimizacije in zahteva kompleksno matematiko, ki jo najdemo v konveksnem programiranju. Pogost problem, ki se obravnava in rešuje v tej disciplini, je tako imenovani matematični optimizacijski problem. Tak problem uporablja vektor za predstavitev in abstrahiranje najbolj optimalne izbire iz določenega niza izbir.
Drug primer tovrstnega abstraktnega problema, ki se pojavlja v drugi disciplini, je optimizacija portfelja, kjer se iz določenega niza sredstev išče najboljša možnost vlaganja kapitala. V računalnikih in elektronskem oblikovanju je dimenzioniranje naprave še en problem optimizacije, kjer je treba določiti najboljšo dolžino in širino za napravo, kot je vezje. Prilagajanje podatkov, še en vidik, povezan z računalniki in elektronskimi napravami, skuša najti model iz skupine potencialnih kandidatnih modelov, ki najbolje ustreza nekakšnim opazovanim podatkom ali predhodno pridobljenim informacijam.