Numerička integracija¶

U sljedećem videu govorimo o pogreški koju napravimo koristeći jednostavne Newton Cotesove formule.

In [4]:
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

In [5]:
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.

In [6]:
vid = YouTubeVideo("eNuvJTdx_-E")
display(vid)

Implementacija kompozitnih formula¶

In [1]:
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
In [2]:
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)
Out[2]:
-0.2269939761611912

Za domaću zadaću probajte po uzoru na gornji kod implementirati kompozitnu pravokutnu formulu i kompozitnu Simpsonovu formulu!!

In [ ]: