Analisi Numerica e Integrazione Numerica IIS «B. CASTELLI» - BRESCIA B È G A B R I E L E – H A R PA L S I N G H Analisi numerica L'analisi numerica (detta anche calcolo numerico o calcolo scientifico) è una branca della matematica applicata che risolve i modelli prodotti dall'analisi matematica, riducendoli alle scomposizioni finite normalmente praticabili tramite l’utilizzo di calcolatori, coinvolgendo il concetto di approssimazione. I suoi strumenti sono detti algoritmi. Modello matematico PER ESEGUIRE LO STUDIO DI UN FENOMENO NATURALE, SI PROCEDE GENERALMENTE SECONDO I SEGUENTI PUNTI: •Una prima fase di modellizzazione del fenomeno in esame, tramite la quale si associa al problema reale un modello matematico che ne approssimi l’evoluzione; •Analisi qualitativa del modello matematico; •Individuazione di metodi e algoritmi di risoluzione del modello in esame ed analisi dell’efficienza degli stessi; •Implementazione dei metodi di risoluzione precedentemente trovati. Campi di studio dell’analisi numerica •Analisi dell’errore; •Determinazione degli zeri di una funzione polinomiale; •Risoluzione di funzioni non lineari; •Approssimazione di funzioni non lineari con funzioni lineari; •Metodi di risoluzione di sistemi lineari; •Interpolazione ed estrapolazione di funzioni; •Calcolo numerico di derivate di funzioni assegnate; •Integrazione numerica. Analisi dell’errore Gli errori che si producono durante la risoluzione sono principalmente dovuti al fatto che il calcolatore opera su dati numerici rappresentati per mezzo di una sequenza finita di cifre, data dalla particolare rappresentazione di dati in memoria adottata: è detto errore di rappresentazione, e si presenta quando si inseriscono i dati, quindi ancora prima di eseguire qualunque operazione. Determinazione degli zeri di una funzione I metodi dell’analisi numerica permettono di determinare la risoluzione di una funzione, quindi la determinazione degli zeri della stessa, in un numero di iterazioni dell’algoritmo tali da ottenere l’approssimazione richiesta dal problema in esame: infatti, tutti i metodi utilizzati, devono convergere alla soluzione esatta quando il numero di iterazioni tendere ad infinito: in tali situazioni, l’algoritmo di dice convergente. Approssimazione di funzioni Un problema che frequentemente si presenta in matematica applicata è quello dell'approssimazione di funzioni, che consiste nel determinare una funzione g(x), appartenente ad una classe prescelta di funzioni, che meglio approssima una funzione data f(x). Interpolazione ed estrapolazione di funzioni I metodi di interpolazione stimano il valore di una funzione incognita dato il valore della funzione stessa in alcuni punti. L'estrapolazione, a differenza dall'interpolazione, stima la funzione in punti esterni ai punti per cui la funzione è nota. Calcolo numerico di derivate Il calcolo della derivata puntuale di una funzione può essere approssimato dal suo rapporto incrementale, scegliendo un opportuno valore del passo di incremento, tale da avere un errore minore di quello voluto e avere un tempo di risoluzione, quindi un numero di calcoli, adeguato al problema in esame. Integrazione numerica L’integrazione numerica si applica solo ad integrali definiti e permette sempre di giungere ad una soluzione, seppur approssimata, del problema; tali risoluzioni si prestano bene ad essere rappresentate come algoritmi, e quindi ad essere eseguite mediante calcolatori. Metodi dell’integrazione numerica oMetodo dei rettangoli; oMetodo dei trapezi o di Bézout; oMetodo delle parabole o di Cavalieri – Simpson; Se la dimensione del dominio di integrazione diventa elevata, questi metodi diventano proibitivamente costosi in termini di calcolo computazione, quindi di tempi di esecuzione dell’algoritmo al calcolatore. In questa situazione si può usare un metodo Monte Carlo. Metodi dell’integrazione numerica Per tutti i metodi di integrazione descritti nel seguito si considerano valide le seguenti ipotesi: Funzione f(x) continua nell’intervallo di integrazione [a; b]; f(x) positivo in [a; b], anche se valgono le stesse condizioni nel caso la funzione fosse negativa. Si procede dividendo l’intervallo di integrazione [a; b] in n parti di uguale ampiezza, data da: 𝑏−𝑎 ℎ= 𝑛 Dove b-a è l’ampiezza dell’intervallo h e n il numero di divisioni dello stesso. Si determinano quindi n+1 punti di ascisse di coordinate: 𝑥0 = 𝑎, 𝑥1 = 𝑎 + ℎ, 𝑥2 = 𝑎 + 2ℎ, … 𝑥𝑛 = 𝑎 + 𝑛 ℎ Metodo dei rettangoli Alle ascisse precedentemente calcolate, si fanno corrispondere i seguenti valori della funzione: 𝑦0 = 𝑓(𝑎), 𝑦1 = 𝑓(𝑥1 ), 𝑦2 = 𝑓(𝑥2 ), … 𝑦𝑛−1 = 𝑓 𝑥𝑛−1 , 𝑦𝑛 = 𝑓(𝑏) 𝑆𝑛′ 𝑏−𝑎 𝑏−𝑎 = 𝑓 𝑎 + 𝑦1 + 𝑦2 + ⋯ + 𝑦𝑛−1 = 𝑛 𝑛 𝑆𝑛′ = 𝑏−𝑎 𝑦1 + 𝑦2 + ⋯ + 𝑦𝑛−1 + 𝑓 𝑏 𝑛 = 𝑏−𝑎 𝑛 𝑛−1 𝑓 𝑥𝑖 𝑖=0 𝑛 𝑓 𝑥𝑖 𝑖=1 Si può dimostrare che, se la funzione ammette derivata prima continua, l’errore connesso alla determinazione dell’integrale è minore od uguale alla quantità: 𝜀𝑛 = 𝑏−𝑎 2 2𝑛 𝑀 Dove M è pari a: 𝑀 = max 𝑓 ′ 𝑥 . 𝑎≤𝑥≤𝑏 Metodo dei trapezi o di Bézout 𝑏 𝑎 𝑓 𝑎 + 𝑦1 𝑦1 + 𝑦2 𝑦𝑛−1 + 𝑓 𝑏 𝑓(𝑥) 𝑑𝑥 ≅ ℎ +ℎ + ⋯+ ℎ 2 2 2 = 𝑏 − 𝑎 𝑓 𝑎 − 𝑓(𝑏) = + 𝑦1 + 𝑦2 + ⋯ + 𝑦𝑛−1 𝑛 2 Se la funzione ammette derivata seconda continua, si dimostra che l’errore connesso al metodo numerico in esame, è minore od 𝑏−𝑎 3 uguale alla quantità: 𝜀𝑛 = 𝑀 12𝑛2 Dove M è pari a: 𝑀 = max 𝑓 ′′ 𝑥 𝑎≤𝑥≤𝑏 Metodo delle parabole o di Cavalieri – Simpson Si può dimostrare (teorema) che, l’area S di un trapezoide avente come base l’intervallo 𝑥0 ; 𝑥2 e delimitato dal grafico di una parabola passante per i punti 𝑥0 ; 𝑦0 , 𝑥1 ; 𝑦1 , 𝑥2 ; 𝑦2 dove 𝑥0 + 𝑥2 𝑥1 = 2 È il punto medio dell’intervallo, è data dalla seguente formula: ℎ 𝑆= 𝑦 + 4𝑦1 + 𝑦2 3 0 Dove ℎ = 𝑥1 − 𝑥0 = 𝑥2 − 𝑥1 Metodo delle parabole ℎ ℎ [𝑓(𝑎) + 4𝑦1 + 𝑦2 ], 𝑦2 + 4𝑦3 + 𝑦4 , … , 3 3 ℎ [𝑦 + 4𝑦2𝑛−1 + 𝑓(𝑏)] 3 2𝑛−2 La somma delle precedenti aree permette di ottenere la forma generale di Cavalieri – Simpson: 𝑏 𝑎 ℎ 𝑓(𝑥) 𝑑𝑥 ≅ 𝑓 𝑎 + 𝑓 𝑏 + 2 𝑦2 + 𝑦4 + ⋯ + 𝑦2𝑛−2 + 4 (𝑦1 + 𝑦3 + ⋯ + 𝑦2𝑛−1 ) 3 Se la funzione ammette derivata quarta continua, si dimostra che l’errore connesso è minore od uguale alla quantità data da 𝜀𝑛 = 𝑏−𝑎 5 2880𝑛4 𝑀, dove M rappresenta il massimo del valore assoluto della derivata quarta della funzione nell’intervallo [a; b]; In simboli si ha: 𝑀 = max 𝑓 𝐼𝑉 𝑥 𝑎≤𝑥≤𝑏 Applicazioni calcolo numerico Un esempio su tutti, considerato come il classico successo dell’analisi matematica, consiste nell’algoritmo FFT (trasformata veloce di Fourier) utilizzato in moltissimi ambiti della tecnica, quali, soltanto per citarne alcuni, la risonanza magnetica, il riconoscimento di immagini di tomografia assiale e la compressione di immagini, musica e video, nei più comuni conosciuti dagli utenti. APPLICATIONS Software numerico THERE ARE THREE TYPE OF SOFTWARE SUPPORT: Libraries for programmers(Netlib, IMSL, NAG, GNU Scientific Library, BLAS, LAPACK, FFTw); Interactive enviroments used to evaluate mathematical problems and computational science (Mathematica, MATLAB, Maple, Scilab, GNU Octave, IDL). They are known as Problem Solving Enviroments (PSE); Software programs made to evaluate problems relted to a specific field, e.g. engineering (software CAE). Calculating the numerical integration in Matlab with built in functions Trapezoidal method There are two functions in matlab that evaluate the integration with trapezoidal methods: •trapz(y): it accepts one parameters. Y is the functions value vector. It returns the trapezoidal method with unit spacing which means each value of the vectors are separated by one unit. •trapz(x, y): it accepts two parameters. X is the the domain vector, and Y is the functions value vector. Code example x = 0:pi/100:py; y = sin(x); Q = trapz(x,y); ------------------------------------------------------------Q = 1,9998 The example shown above evaluate the area under the sin wave from 0 to pi. It is the same as: 𝜋 sin 0 𝑥 𝑑(𝑥) As you can see the answer is near the real value of 2. The Monte Carlo methods Monte Carlo methods are a computational algorithms which uses repeated random sampling to obtain numerical results. The main idea behind this method is to run simulations repeatedly in order to obtain the distribution of an impossible probalistic entity. Monte Carlo methods are used mainly for three type of problems: Optimization; Numerical integration; Probability distribution. Calculating the Pi This is very simple application to determine how to calculate the Pi with Monte Carlos method. We no that the value of PI is 3,14159……so on. So suppose that we have a circle of radius = 1 and thus the area of the circle would be 𝜋𝑟 2 . Now imagine that this circle is inscribed inside a square, whose would be 4𝑟 2 . The ratio of the areas would be 𝜋/4. This means that if you pick a random points inside the square chances are that 𝜋/4 of time the point will be inside the circle. Calculating the Pi So in order to calculate the value of pi, the program randomly throws points inside the square and additionally it checks whether the point was or not inside the circle if so it increments a variable. After repeating this N times, the program evaluate the ratio between points fallen inside the circle(M) and outside the circle(N). And finally approximates the pi as follow: 4∗𝑀 𝜋𝑒𝑠𝑡𝑖𝑚𝑎𝑡𝑒𝑑 = 𝑁 Matlab code %The monte carlo method to find out the value of pi with the error analysis for n = 1:10:10000 x = rand(n, 1); % sample the input random variable x y = rand(n, 1); % sample the input random variable y isInside = (x.^2 + y.^2 < 1); % is the point inside a unit circle? percentage = sum(isInside) / n; % Compute the percentage of points inside the circle piEstimate = percentage * 4 err = (piEstimate./pi)*100; plot(n,err,'.') % Estimate a value of the Pi % Evaluate the error to demonstrate the accuracy % plot the error on a graph title('Accuracy as N increases'); hold all end % hold the marker on the graph Simulation Numeric integration with Monte Carlo methods In the same way as done before, integration in a restricted domain can be calculated for a given function. As you can see in the figure there is a function whose definite integration may can’t be found with symbolic methods. So you need to draw a rectangle whose base is as wide as the domain in which you need to evaluate the integral and at least as high as the maximum value of the function inside the domain. Then random point are thrown and the area is calculated by calculating the ratio between points inside and outside the function. Applications of Monte Carlo methods •Physical sciences: computational physics and physical chemistry; •Engineering: microelectronics engineering, Fluid Dynamics and reliability engineering; •Computational biology •Computer graphics: Path Tracing; •Applied statistics: Cauchy distribution and randomization test. •Artificial intelligence for games: •Design and visuals: video games, architecture, design, computer generated films, and cinematic special effects. •Finance and business: evaluate investments in projects. FINE