Onko mielipidettä tai parempaa tietoa, mikä algoritmi olisi tehokkain integroimaan paloittain määriteltyjä integraaleja numeerisesti, kun funktiossa esiintyy kanttiaallolle tyypillisiä jyrkkiä "hyppäyksiä"? Tähän mennessä olen mennyt puolisuunnikassäännöllä (http://en.wikipedia.org/wiki/Trapezoidal_rule). Muut löytämäni menetelmät tuntuvat asettavan vaatimuksia funktion jatkuvuudelle. Teenkö asian jo valmiiksi niin järkevästi kuin mahdollista, vai onko tässä vielä korjattavaa? Pyrin nimenomaan integroimaan funktion "yhdellä kerralla", koska sen paloittain integrointi olisi varsin työlästä.
Paloittain määriteltyjen funktioiden numeerinen integrointi
Jukk4
2104
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 2
Vanhimmat
Puolisuunnikassääntö on yksinkertaisin. Kun käyttään pientä askelpituutta, niin virhe pienenee. Virhearviokaavat eivät kuitenkaan ole enää päteviä. Jos epäjatkuvuuksia on äärellinen määrä, niin tarkin tulos saadaan tietysti integroimalla jokainen pätkä erikseen.
Valittavaan menetelmään vaikuttaa myös se, miten funktio on määritelty. Koostuuko se mittausarvoista vai onko kullekin pätkälle oma lauseke. Jos se on annettu lausekkeina, niin ohjelmointia varten määritellään taulukko epäjatkuvuuspisteistä ja toinen, missä on funktio-osoitimet kunkin pätkän fúnktiolle.
Jokainen pätkä on oma varsin matala-asteinen polynomi, tyypillisesti vakio. Kanttiaallon ja kolmioaallon sekoitus voisi olla melko hyvin kuvaava. Jollakin vaivalla voi tietenkin tällaisen integroida täysin tarkasti. Trapz toimii minun tarpeisiini varsin mainiosti.
Jäin vain pohtimaan, olisiko muita "enemmän logiikkaa" sisältäviä valmiita algoritmejä joilla tämmöisiä funktioita voisi integroida.