Risch -algoritmi on algoritmi epämääräisten integraalien analyyttiseen laskemiseen käyttämällä differentiaalialgebran menetelmiä . Se perustuu integroitavan funktion tyyppiin ja rationaalisten funktioiden , juurien, logaritmien ja eksponentiaalisten funktioiden integrointimenetelmiin .
Nimetty Robert Henry Risch mukaan . Risch itse, joka kehitti algoritmin vuonna 1968, kutsui sitä "resoluutiomenettelyksi", koska menetelmä päättää, onko funktion antiderivaata perusfunktio . Yksityiskohtaisin tutkimus algoritmista on esitetty Keith Geddesin, Stefan Tzaporin ja George Labanin 100-sivuisessa kirjassa Computer Algebra Algorithms .
Risch-algoritmi integroi perusfunktiot . Laplace ratkaisi tämän rationaalisten funktioiden ongelman osoittamalla, että rationaalisen funktion epämääräinen integraali on itse rationaalinen funktio, jolla on äärellinen määrä vakioita kerrottuna rationaalisten funktioiden logaritmeilla. Se otettiin käyttöön ohjelmistoissa 1960-luvun alussa.
Liouville muotoili Risch-algoritmilla ratkaistun ongelman. Hän todisti analyyttisesti, että jos yhtälölle on alkeisratkaisu g , niin vakioille ja alkeisfunktioille ja ratkaisu on olemassa muodossa
Rish loi menetelmän, jonka avulla voimme tarkastella vain rajallista joukkoa perusfunktioita Liouville-muodossa.
Risch-algoritmi sai inspiraationsa eksponentiaalisten ja logaritmisten funktioiden käyttäytymisestä differentioinnin aikana.
Meillä on funktiolle f e g , jossa f ja g ovat differentioituvia
joten jos funktio e g sisältyy määräämättömän integroinnin seurauksena, se on sisällytettävä myös alkuperäiseen integrandiin. Samoin, koska
jos (ln g ) n sisältyy integrointitulokseen, niin alkuperäisen integrandin tulee sisältää useita logaritmin potenssia.
Alkuperäisen antiderivaatin löytäminen on erittäin herkkä pienille muutoksille. Esimerkiksi seuraavalla funktiolla on alkeellinen antiderivaatti:
nimittäin:
Mutta jos lausekkeessa f ( x ) muutamme 71:stä 72:een, on mahdotonta löytää alkeisantiderivaata. (Jotkut tietokonealgebrajärjestelmät voivat tässä tapauksessa palauttaa vastauksen ei-alkeisfunktiona eli elliptisenä integraalina , jota Risch-algoritmi ei kuitenkaan kata.)
Seuraavat toiminnot ovat monimutkaisempia esimerkkejä:
Tämän funktion antijohdannaisella on lyhyt muoto
Teoreettisesti rakennetun algoritmin tehokas ohjelmistototeutus osoittautui vaikeaksi tehtäväksi. Puhtaiden transsendenttisten funktioiden (ilman juuria ja polynomeja) tapauksessa tämä oli suhteellisen helppo toteuttaa useimmissa tietokonealgebrajärjestelmissä. [yksi]
Puhtaiden algebrallisten funktioiden tapauksen ratkaisi ja toteutti Reduce -järjestelmässä James Davenport [2] [3] . Yleisen tapauksen ratkaisi ja toteutti Manuel Bronstein Scratchpadissa ( Axiom -järjestelmän edeltäjä ) [4] .
Alkeisfunktioiden yleiseen tapaukseen sovellettu Risch-algoritmi ei ole algoritmi varsinaisessa merkityksessä, koska sen on työssään selvitettävä, ovatko jotkin lausekkeet identtisiä nollan kanssa (vakioiden ongelma ). Lausekkeille, joiden funktiot ovat alkeisfunktioita, ei tiedetä, onko olemassa algoritmia, joka suorittaa tällaisen tarkistuksen (nykyaikaiset järjestelmät käyttävät heuristiikkaa ). Lisäksi jos alkeisfunktioiden luetteloon lisätään absoluuttinen arvo , tällaista algoritmia ei ole olemassa ( Richardsonin lause ). Tämä ongelma esiintyy myös polynomien jakamisessa sarakkeella : sitä ei voida ratkaista, jos on mahdotonta määrittää kertoimien yhtäläisyys nollaan.
Melkein jokainen ei-triviaalinen algoritmi, joka käyttää polynomeja, käyttää polynomijakoalgoritmia, kuten myös Risch-algoritmi. Jos vakioiden kenttä on laskettavissa, niin nollan tasa-arvo on ratkaistavissa, niin Risch-algoritmi on valmis. Esimerkkejä laskettavissa olevista vakiokentistä ovat ja .
Sama ongelma esiintyy Gaussin menetelmässä , joka on myös välttämätön monille Risch-algoritmin osille. Gaussin menetelmä antaa virheellisen tuloksen, jos on mahdotonta määrittää oikein, onko kanta identtinen nollan kanssa.