Laskennallisessa matematiikassa laskennallinen robustisuus on yleensä numeeristen algoritmien toivottava ominaisuus.
Kestävän kehityksen tarkka määritelmä riippuu kontekstista. Yksi niistä on numeerinen lineaarinen algebra, toinen on algoritmeja tavallisten yhtälöiden ja osittaisdifferentiaaliyhtälöiden ratkaisemiseksi diskreetillä approksimaatiolla.
Numeerisessa lineaarisessa algebrassa suurin ongelma on epävakaus, joka johtuu erilaisten ominaisuuksien, kuten hyvin pienten tai lähes identtisten ominaisarvojen, läheisyydestä.
Toisaalta differentiaaliyhtälöiden numeerisissa algoritmeissa ongelmana on pyöristysvirheiden lisääntyminen ja/tai alun perin pienet vaihtelut syöttötiedoissa, jotka voivat johtaa lopullisen vastauksen merkittävään poikkeamiseen tarkasta ratkaisusta.
Jotkut numeeriset algoritmit voivat vaimentaa pieniä poikkeamia (virheitä) syöttötiedoissa; muut voivat lisätä tällaisia virheitä. Laskelmien, joiden voidaan osoittaa lisäävän approksimaatiovirheitä, sanotaan olevan laskennallisesti vankkoja. Yksi numeerisen analyysin yleisistä ongelmista on yrittää valita robusteja algoritmeja, eli olla antamatta kovin erilaista tulosta, kun syöttödata muuttuu hyvin pieneksi.
Vastakohta on epävakaus. Algoritmi sisältää pääsääntöisesti approksimaatiomenetelmän, ja joissain tapauksissa voidaan osoittaa, että algoritmi approkimoi oikean ratkaisun jossain rajassa (käyttäen itse asiassa reaalilukuja , ei liukulukuja ).
Edes tässä tapauksessa ei ole takeita siitä, että se konvergoi oikeaan ratkaisuun, koska liukulukupyöristys- tai katkaisuvirheet voivat pikemminkin lisääntyä kuin vähentyä, mikä johtaa eksponentiaaliseen kasvuun poikkeamisessa tarkasta ratkaisusta. [yksi]
On olemassa erilaisia tapoja muotoilla kestävän kehityksen käsite. Seuraavia määritelmiä suorasta, käänteisestä ja sekastabiilisuudesta käytetään usein numeerisessa lineaarisessa algebrassa.
Tarkastellaan numeerisella algoritmilla ratkaistua ongelmaa funktiona f , joka kuvaa datan x ratkaisuun y . Algoritmin tulos, sanotaan y* , poikkeaa yleensä "todellisesta" ratkaisusta y . Virheen pääasialliset syyt ovat pyöristysvirheet ja katkaisuvirheet . Algoritmin suora virhe on tuloksen ja ratkaisun välinen ero; tässä tapauksessa Δ y = y * − y . Käänteisvirhe on pienin Δ x siten, että f ( x + Δ x ) = y * ; toisin sanoen takaperoinen virhe kertoo meille, minkä ongelman algoritmi todellisuudessa ratkaisi. Eteenpäin ja taaksepäin tapahtuvat virheet liittyvät ehtonumerolla : eteenpäin suuntautuva virhe ei ole suuruudeltaan suurempi kuin ehdon numero kertaa käänteinen virhe.
Monissa tapauksissa se on luonnollisempaa[ selventää ] harkitse suhteellista virhettä
absoluuttisen Δx :n sijaan .
Tietenkin "pieni" on suhteellinen termi, ja sen määritelmä riippuu kontekstista. Usein haluamme virheen olevan samaa suuruusluokkaa tai ehkä useita suuruusluokkia suurempi kuin pyöristysyksikkö .
Tavallinen laskennallisen robustisuuden määritelmä käyttää yleisempää käsitettä, jota kutsutaan sekavarmuudella , joka yhdistää eteenpäin suuntautuvan virheen ja taaksepäin tapahtuvan virheen. Algoritmi tässä mielessä on stabiili, jos se likimääräisesti ratkaisee naapuriongelman, eli jos on olemassa Δ x niin, että sekä Δ x on pieni että f ( x + Δ x ) − y * on pieni. Siksi taaksepäin vakaa algoritmi on aina vakaa.
Tämä tarkoittaa, että algoritmi on eteenpäin vakaa, jos sen suuruusvirhe on samanlainen kuin jonkin vakaan algoritmin taaksepäin suuntautuva virhe.
Yllä olevat määritelmät ovat erityisen tärkeitä tilanteissa, joissa katkaisuvirheet eivät ole tärkeitä. Muissa yhteyksissä, kuten differentiaaliyhtälöitä ratkaistaessa, käytetään erilaista numeerisen stabiilisuuden määritelmää.
Numeerisissa tavallisissa differentiaaliyhtälöissä on erilaisia numeerisen stabiilisuuden käsitteitä, esimerkiksi A-stabiilisuus . Jäykkää yhtälöä ratkaistaessa on tärkeää käyttää stabiilia menetelmää.
Toista määritelmää käytetään numeerisissa osittaisdifferentiaaliyhtälöissä. Algoritmi lineaarisen evolutionaarisen osittaisdifferentiaaliyhtälön ratkaisemiseksi on stabiili, jos numeerisen ratkaisun kokonaismuutos tietyllä hetkellä pysyy rajoitettuna askelkoon lähestyessä nollaa. Laxin ekvivalenssilause sanoo, että algoritmi konvergoi, jos se on johdonmukainen ja vakaa (tässä mielessä). Vakaus saavutetaan joskus sisällyttämällä numeerinen diffuusio . Numeerinen diffuusio on matemaattinen termi, joka varmistaa, että pyöristys ja muut virheet laskelmissa leviävät, eivätkä ne summaudu johtamaan laskelmien "räjähdykseen". Neumannin stabiilisuusanalyysi on laajalti käytetty menetelmä äärellisten erotuskaavioiden stabiiliuden analysoimiseksi sovellettaessa lineaarisia osittaisdifferentiaaliyhtälöitä. Nämä tulokset eivät päde epälineaarisille osittaisdifferentiaaliyhtälöille, joissa yleinen johdonmukainen stabiiliuden määritelmä vaikeutuu monien lineaarisista yhtälöistä puuttuvien ominaisuuksien vuoksi.