Tehtävänä on integraalin $$ \int_a^b f(x)\, dx$$ arvon numeerinen approksimointi.
Tunnettuja menetelmiä:
Yllä mainituissa kaavoissa integroitava väli jaetaan tasavälisesti.
Lisäksi väli jaetaan yleensä pienempiin osaväleihin, joilla kullakin sovelletaan ao. menetelmää, ja osatulokset summataan. -> Yhdistetyt säännöt.
>> quad(fun,a,b,tol) % tai integral(fun,a,b,tol)Tässä tol on absoluuttinen virhetoleranssi, oletusarvona 10-6. Esimerkki(help quad:sta): $$ \int_0^2 \frac{dx}{x^3-2x -5}$$
Adaptiivisuus
Tarkoittaa lyhyesti sanottuna, että askelpituus säädetään lokaalin virhearvion ja vaaditun toleranssin avulla. Käytännössä otetaan askel h, arvioidaan askeleella syntyvä virhe. Jos se on liian suuri, palataan takaisin, puolitetaan askel, ja jatketaan.
help quad F = @(x) 1./(x.^3-2*x-5) Q = quad(F,0,2) integral(F,0,2) ezplot(F,[0 2]) grid on q = quad(F,0,2,[],1)% Kts. alla selitys. [q Nf] = quad(F,0,2)% Nf ilmoittaa funktion arvojen laskentamääränYllä esiintyivat kutsut:
>> q=quad(fun,a,b,tol,trace) >> [q,Nf]=quad(fun,a,b,tol)Kutsussa q = quad(F,0,2,[],1) käytettiin oletustoleranssia, siksi tol-parametrille annettiin arvoksi [], eli tyhjä. trace asetettiin arvoon 1, jolloin adaptiivisen laskennan vaiheista saadaan selkeä taulukko.
Integaalifunktio: $\frac{1}{3}\ln | 3x -1|$
Siis integraali hajaantuu.
F=@(x) 1./(3*x-1) ezplot(F,[0 1]) quad(F,0,1) Warning: Infinite or Not-a-Number function value encountered. > In quad at 109 ans = InfMATLAB:n quad selviää testistä varsin hyvin päätellessään integraalin hajaantuvaksi. Ainoastaan tulos Inf ei mene ihan putkeen, kuten helpoimmin nähdään kuvaajasta. Jos Matlab osaisi palauttaa NaN-tuloksen, niin päätelmä osuisi ihan nappiin, mutta yleensä tärkeää on tietää, suppeneeko vai hajaantuuko integraali, ja se päätelmä menee tässä siis oikein.
Tämä ei merkitse sitä, että päättely aina menisi oikein. Numeerisesti tällaisen päätelmän suorittaminen yleispätevästi on mahdottomuus, mutta numeerinen evidenssi on yleensä vahvasti suuntaa antava.
Moler: Numerical Computing with MATLAB