Kupera ohjelmointi, epälineaarinen ohjelmoinnin alaluokka, on eräänlainen ohjelmointi, joka yleistää ja yhdistää muita lajeja, mukaan lukien lineaarinen ohjelmointi, pienimmät neliöt ja toisen asteen ohjelmointi. Kupera ohjelmointi tarjoaa tukea monille teoreettisille ja käytännön sovelluksille. Siinä on tehokkaita algoritmeja, jotka tekevät ohjelmoijan hyödylliseksi käyttää ja kehittää tämän tyyppistä ohjelmointia. Kupera ohjelmointi vaatii laajaa kokemusta ja asiantuntemusta ohjelmoijalta sekä kurinalaista oppimisprosessia. Vaikka se ei ole uusi käsite, sitä käytetään edelleen monilla tieteenaloilla ja sovelluksissa, jotka vaativat monimutkaista ja teknistä matematiikkaa.
Kolme periaatetta ovat tärkeitä kuperaan ohjelmointiin: optimointi, numeerinen laskenta ja kupera analyysi. Parannettu laskentateho ja läpimurrot monimutkaisissa algoritmeissa ovat antaneet tutkijoille ja matemaatikoille mahdollisuuden kehittää tämäntyyppistä ohjelmointia ja käyttää sitä ongelmanratkaisuun. Kupera ohjelmointi on tarjonnut käyttäjilleen hyödyllisiä laskentatyökaluja, jotka auttavat ratkaisemaan korkeamman luokan ongelmia lineaarisen ohjelmoinnin ja pienimmän neliösumman alueilla. Insinöörit ovat havainneet tällaisen ohjelmoinnin hyödylliseksi esimerkiksi signaalinkäsittelyn, ohjauksen, piirin suunnittelun, verkkojen, viestinnän jne.
Kupera ohjelmointi edellyttää lineaarisen algebran, optimoinnin ja vektorilaskennan ymmärtämistä. Kupera sarja on melko yleinen ja sitä käytetään tällaisessa ohjelmoinnissa. Ohjelmoijat käyttävät näitä kupera joukkoja ratkaistakseen tiettyjä vektoreiden optimointitehtäviä. Toinen yleinen osa tämän tyyppistä ohjelmointia on kupera funktio.
Kupera ohjelmointi on yleistä mikrotaloustieteen alalla, erityisesti maksimoidun voiton ja kuluttajien mieltymysten määrittämisessä. Tämä on optimointimuoto ja vaatii kuperaan ohjelmointiin liittyvän monimutkaisen matematiikan. Yleinen ongelma, jota tässä kurinalaisuudessa harkitaan ja ratkaistaan, on matemaattinen optimointitehtävä. Tällainen ongelma käyttää vektoria edustaakseen ja abstraktoimaan optimaalisen valinnan tekemistä tietyistä vaihtoehdoista.
Toinen esimerkki tällaisesta abstraktista ongelmasta, joka esiintyy eri tieteenaloilla, sisältää salkun optimoinnin, jossa paras vaihtoehto sijoittaa pääomaa etsitään tietystä omaisuuserästä. Tietokoneissa ja elektronisessa suunnittelussa laitteen mitoitus on toinen optimointitehtävä, jossa laitteen, kuten piirin, paras pituus ja leveys on määritettävä. Tietojen sovittaminen, toinen tietokoneisiin ja elektronisiin laitteisiin liittyvä näkökohta, pyrkii löytämään mallin mahdollisista ehdokasmalleista, jotka sopivat parhaiten johonkin havaittuun dataan tai aiemmin hankittuun tietoon.