Numerička integracija¶
U sljedećem videu govorimo o pogreški koju napravimo koristeći jednostavne Newton Cotesove formule.
from IPython.lib.display import YouTubeVideo
vid = YouTubeVideo("jH9N7SfxPgY")
display(vid)
U sljedećem dijelu predavanja uvodimo kompozitne formule i proučavamo njihovu ocjenu pogreške
vid = YouTubeVideo("5FGZMQSdv8k")
display(vid)
Vježbe iz numeričke integracije¶
Sada pokušajte riješiti sljedeće zadatke. Video sa rješenjima bit će postavljen do kraja dana, tako da ako negdje zapnete možete pogledati u videu.
Zadatak 1 Zadan je integral $I=\int_{-\pi/2}^{\pi/2}x^2\cos x\, dx.$
(i) Pomoću kompozitne trapezne formule izračunajte numeričku vrijednost integrala na mreži $$x_i=-\frac{\pi}{2}+i\frac{\pi}{4},\quad i=0,1,2,3,4$$
(ii) Procijenite pogrešku integracije
(iii) Integral želimo izračunati pomoću kompozitne trapezne formule tako da apsolutna pogreška bude manja ili jednaka od $10^{-2}.$ Koliko izvrednjavanja funkcije $f$ je potrebno za to?
Zadatak 2 Zadan je integral $I=\int_0^\pi \cos^4 x\, dx$, te mreža $x_i=i\frac{\pi}{4}, i=0,\ldots ,4$.
(i) Pomoću kompozitne trapezne formule izračunajte približnu vrijednost integrala $I$
(ii) Ocijenitu pogrešku numeričke integracije
Zadatak 3 Izračunajte integral $I=\int_0^{\frac{1}{2}}\cos(\frac{x^2}{4})\, dx$ jednostavnom Simpsonovom formulom te procjenite pogrešku integracije.
Zadatak 4 Pokažite da jednostavna Simpsonova formula točno integrira polinome stupnja $3$.
Zadatak 5 Pokažite da trapezna formula neovoisno o broju čvorova ekvidistantne mreže, egzaktno računa integral $$\int_0^{2\pi}\sin x\, dx.$$
Zadatak6 Izvedite ocjenu pogreške za jednostavnu trapeznu formulu.
Zadatak7 Koliko je podintervala potrebno za aproksimaciju integrala $\int_0^1e^{x^2-1}\, dx$ kompozitnom trapeznom formulom s točnošću manjom od $10^{-2}?$ Za dobiveni broj intervala izračunajte aproksimaciju navedenog integrala.
vid = YouTubeVideo("eNuvJTdx_-E")
display(vid)
Implementacija kompozitnih formula¶
def trapez(f,a,b,N=50):
x = np.linspace(a,b,N+1)
y = f(x)
y_right = y[1:] # lijevi rub intervala
y_left = y[:-1] # desni rub intervala
h = (b - a)/N
Tn = np.sum(h*(y_right + y_left)/2)
return Tn
import numpy as np
from numpy import exp
from numpy import cos
from numpy import pi
trapez(lambda x : x*exp(-x)*cos(2*x),0,2*pi,6)
-0.2269939761611912
Za domaću zadaću probajte po uzoru na gornji kod implementirati kompozitnu pravokutnu formulu i kompozitnu Simpsonovu formulu!!