Program FreeMat nam omogoča numerično integracijo.
Integriranje polinoma ukaz polyint
Polinom podamo s seznamom koeficientov:
p = [1, 2, 3, 4]
je polinom .
Sintaksa:
- polyint(p, k)
Vrne seznam koeficientov zintegriranega polinoma s konstanto k.
- polyint(p)
Vrne seznam koeficientov zintegriranega polinoma s konstanto 0.
Aproksimacija funkcije s polinomom ukat polyfit
Poljubno funkcijo lahko aproksimiramo z ukazom polyfit
.
Sintaksa:
- polyfit(x, y, st)
Vrne koeficiente polinoma, ki predstavlja aproksimacijo funkcije nad intervalom stopnje .
Program v ozadju izvede metodo najmanjših kvadratov. Vrne nam seznam koeficientov polinoma stopnje , ki se najbolje prilega vsem točkam , za katere velja in .
Integracija preko Taylorjevega polinoma
Dano funkcijo lahko integriramo s pomočjo Taylorjevega polinoma. Najprej funkcijo čim bolje aproksimiramo s Taylorjevim polinomom. Nato integriramo dobljen polinom, saj ga je običajno precej lažje integrirati od dane funkcije. Nazadnje vstavimo zgornjo in spodnjo mejo in ju odštejemo ter tako dobimo rezultat.
FreeMat ne pozna Taylorjevega polinoma, lahko pa poskusimo s funkcijo polyfit
.
Postopek:
- Definiramo vektor .
- Na vektorju definiramo funkcijo .
- Uporabimo ukaz polyfit: p = polyfit(x, y, st)
.
- Na dobljenem polinomu uporabimo polyint: i = polyint(p)
.
- Uporabimo ukaz polyval: b = polyval(i, max(x))
.
- Še enkrat uporabimo polyval: a = polyval(i, min(x))
.
- b - a
nam da vrednost integrala funkcije na intervalu .
Ta postopek je seveda nezanesljiv, poleg tega deluje dobro samo za dovolj "lepe" funkcije, pa še stopnja mora biti dovolj velika.
Ukaza trapz in cumtrapz
FreeMat pozna dva ukaza za numerično integriranje.
V ozadju ukaza trapz
se izvede trapezna metoda.
- trapz(x, y)
sprejme vektor in funkcijo . Recimo, da je spodnja meja vektorja , pa njegova zgornja meja. Ukaz nam vrne vrednost izraza .
- cumtrapz(x, y)
sprejme vektor in funkcijo . Vrne vrednosti integrala na vsakem elementu vektorja .
Numerično integriranje si lahko ogledate na posnetku.
Video