Settima esercitazione

Esercizio 1
Esercizio 2
Esercizio 3

Esercizi di calcolo numerico
Svolgete il primo esercizio ed uno a scelta tra il secondo ed il terzo
In ogni esercizio fate anche il grafico delle funzioni che utilizzate.

Esercizio 1
Calcolate l'integrale definito di una funzione utilizzando il metodo dei trapezi ed il metodo di Simpson e confrontatene la precisione a numero di campionamenti (N) fissato.



La funzione che calcola l'integrale dovrà avere, per entrambi i metodi, il prototipo
   double integrale(double f(double), double xmin, double xmax, int n)
dove l'intero n definisce il numero di campionamenti e quindi la precisione dell'integrale.
Provate le routines su una funzione di cui sia noto l'integrale (a vostra scelta) e sulla funzione gauss.cpp con estremi di integrazione xmin = -1 e xmin = +1

Facoltativo: creare anche una funzione che calcoli l'integrale con precisione data: l'integrale viene ripetuto, dimezzando ogni volta n, finché la variazione tra i valori dell'integrale in due iterazioni successive è minore della precisione.
Il prototipo della funzione sarà del tipo
   double integrale_pre(double f(double), double xmin, double xmax, double prec)
e dovrà fare uso delle funzioni predentemente definite.

Esercizio 2
Trovare lo zero di una funzione nell'intervallo [xmin,xmax] tale che xmin*xmax<0 (si suppone che l'intervallo contenga un solo zero)

Il metodo consiste in Il metodo ha massima efficienza se il valore iniziale del passo è uguale a metà intervallo (metodo di bisezione).
Il prototipo della funzione sarà del tipo
   double zeri(double f(double), double xmin, double xmax, double prec)
e dovrà ritornare la coordinata x dello zero trovato.
Provate la routine su una funzione di cui conoscete lo zero e per risolvere l'equazione xex=cos(x) in [-1,1].

Esercizio 3
Trovare il minimo (massimo) di una funzione nell'intervallo [xmin,xmax] (si suppone che l'intervallo contenga un solo minimo (massimo) )
Il metodo è analogo a quello della ricerca di zero eccetto che invece di valutare il cambio di segno della funzione si valuta il cambio di segno della derivata (stimata tramite il rapporto incrementale tra due punti consecutivi).
Il prototipo della funzione sarà del tipo
   double ricerca_maxmin(double f(double), double xmin, double xmax, double prec, int imode)
e dovrà ritornare la coordinata x del massimo (minimo) trovato (imode deve impostare la ricerca del massimo o del minimo).
Provate la routine su una funzione di cui conoscete minimo (o massimo) e ricercate il minimo della f(x)=2.5x4+1.5x3+2x2+1 in [-1,1].