Anteprima
Vedrai una selezione di 5 pagine su 17
Metodi Numerici per l'Ingegneria - elaborato Pag. 1 Metodi Numerici per l'Ingegneria - elaborato Pag. 2
Anteprima di 5 pagg. su 17.
Scarica il documento per vederlo tutto.
Metodi Numerici per l'Ingegneria - elaborato Pag. 6
Anteprima di 5 pagg. su 17.
Scarica il documento per vederlo tutto.
Metodi Numerici per l'Ingegneria - elaborato Pag. 11
Anteprima di 5 pagg. su 17.
Scarica il documento per vederlo tutto.
Metodi Numerici per l'Ingegneria - elaborato Pag. 16
1 su 17
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

T S

Questo problema può essere superato con le formule di quadratura composite.

Sostituendo ad f sull’intervallo [a,b] l’interpolante di Lagrange di grado 1 su m (m 1)

sottointervalli, la formula dei trapezi composita si può scrivere come:

b a

m-1 -

(f(

∙∑ ) f( ))

I(f) = , H = .

=0 m

2

Analogamente sostituendo ad f su [a,b] il polinomio interpolante di grado 2, la

formula di Cavalieri Simpson composita si può scrivere come:

b a

m-1 -

(f(

∙∑ ) f( ) f( ),

I(f) = H = .

=0 m

3 Pagina | 5

Capitolo 2- Function del metodo dei trapezi e di Cavalieri - Simpson

2. Function metodo dei trapezi e di Cavalieri - Simpson

Struttura dell’algoritmo

2.1.

2.1.1. Metodo dei trapezi

Si riportano di seguito i passi necessari per la costruzione dell’algoritmo basato sul

metodo dei trapezi.

% Fun è la funzione integranda

% a è l’estremo inferiore dell’intervallo

% b è l’estremo superiore dell’intervallo

% Nmax è il numero massimo di iterazioni di confronto

% n1 è il numero iniziale di sottointervalli

% toll è la tolleranza assunta

1) Leggi: Fun, a, b, Nmax, n1 e toll.

2) h1 = (b-a)/n1

I1 = 0

per (Contatore1 = 1:n1)

Festri1 = Fun(a + (Contatore1-1)*h1)

Festrs1 = Fun(a + Contatore1*h1)

I1 = I1 + ((h1/2)*(Festri1+Festrs1))

fine

n2 = 2*n1

per ( Iter = 1:Nmax)

I2 = 0

h2 = (b-a)/n2

per (Contatore2 = 1:n2)

Festri2 = Fun(a + (Contatore2-1)*h2)

Festrs2 = Fun(a + Contatore2*h2)

I2 = I2 + ((h2/2)*(Festri2+Festrs2))

fine

se |I2-I1| toll

I = I2

stop

altrimenti

I1 = I2

n2 = 2*n2

fine

fine

se (Iter == Nmax ed |I2-I1| > toll

I non raggiunto

fine

3) Scrivi: I Pagina | 6

Capitolo 2- Function del metodo dei trapezi e di Cavalieri - Simpson

2.1.2. Metodo di Cavalieri Simpson

di seguito i passi necessari per la costruzione dell’algoritmo basato sul

Si riportano –

metodo di Cavalieri Simpson.

% Fun è la funzione integranda

% a è l’estremo inferiore dell’intervallo

% b è l’estremo superiore dell’intervallo

% Nmax è il numero massimo di iterazioni di confronto

% n1 è il numero iniziale di sottointervalli

% toll è la tolleranza assunta

1) Leggi: Fun, a, b, Nmax, n1 e toll.

2) h1 = (b-a)/n1

I1 = 0

per (Contatore1 = 1:n1/2)

Festri1 = Fun(a + (2*Contatore1-2)*h1)

Fint1 = Fun(a + (2*Contatore1-1)*h1)

Festrs1 = Fun(a + (2*Contatore1)*h1)

I1 = I1 + ((h1/3)*(Festri1+4*Fint1+Festrs1))

fine

n2 = 2*n1

per ( Iter = 1:Nmax)

I2 = 0

h2 = (b-a)/n2

per (Contatore2 = 1:n2/2)

Festri2 = Fun(a + (2*Contatore2-2)*h2)

Fint2 = Fun(a + (2*Contatore2-1)*h2)

Festrs2 = Fun(a + (2*Contatore2)*h2)

I2 = I2 + ((h2/3)*(Festri2+4*Fint2+Festrs2))

fine

se |I2-I1| toll

I = I2

stop

altrimenti

I1 = I2

n2 = 2*n2

fine

fine

se (Iter == Nmax ed |I2-I1| > toll

I non raggiunto

fine

3) Scrivi: I Pagina | 7

Capitolo 2- Function del metodo dei trapezi e di Cavalieri - Simpson

2.2. Function

2.2.1. Metodo dei trapezi

function[Int,Out] = Met_Trapezi(Fun,a,b,Nmax,n1,toll)

%--------------------------------------------------------------------------

% Formula dei trapezi

%--------------------------------------------------------------------------

%

% function [Int,Out] = Met_Trapezi(Fun,a,b,Nmax,n1,toll)

%

% ||Input||

% Fun è la funzione da integrare

% a è l'estremo inferiore dell'intervallo di integrazione

% b è l'estremo superiore dell'intervallo di integrazione

% Nmax è il massimo numero di iterazioni di confronto

% n1 è il numero di sottointervalli a cui applicare il metodo dei trapezi

% toll è la tolleranza assunta

%

% ||Output||

% Int è l'approssimazione numerica dell'integrale

% Out è l'esito del procedimento:

% Out = 0 --> Si verifica il criterio d'arresto

% Out = 1 --> Non si verifica il criterio d'arresto

%

% ||Variabili tabella||

% Iter sono le iterazioni di confronto

% Diff è la differenza tra due soluzioni |Iter2-Iter1|

h1 = (b-a)/n1;% Ampiezza del primo intervallo

Int1 = 0;

for Count1 = 1:n1

Finf1 = feval(Fun,a+(Count1-1)*h1);% Valutazione della funzione negli

Fsup1 = feval(Fun,a+Count1*h1); % estremi dell'intervallo

Int1 = Int1+((h1/2)*(Finf1+Fsup1));

end

n2 = 2*n1;

disp(sprintf(' Iter Diff'))% Creazione tabella

for Iter = 1:Nmax

Int2 = 0;

h2 = (b-a)/n2;% Ampiezza del secondo intervallo

for Count2 = 1:n2

Finf2 = feval(Fun,a+(Count2-1)*h2);% Valutazione della funzione

Fsup2 = feval(Fun,a+Count2*h2); % negli estremi dell'intervallo

Int2 = Int2+((h2/2)*(Finf2+Fsup2));

end

Diff = abs(Int2-Int1);

disp(sprintf('%8.0f: %20.16e',Iter,Diff))% Inserimento dati Pagina | 8

Capitolo 2- Function del metodo dei trapezi e di Cavalieri - Simpson

if Diff <= toll;% Verifica del criterio d’arresto

Int = Int2;

Out = 0;

format long

disp(sprintf('\n Si verifica il criterio d''arresto:',Int))

break

else Int1 = Int2;

n2 = 2*n2;

end

end

if Iter == Nmax && Diff > toll

Int = 0;

Out = 1;

disp(sprintf('\n Non si è verificato il criterio d''arresto'))

return

end

end Pagina | 9

Capitolo 2- Function del metodo dei trapezi e di Cavalieri - Simpson

2.2.2 Metodo di Cavalieri Simpson

function[Int,Out] = Met_Simpson(Fun,a,b,Nmax,n1,toll)

%--------------------------------------------------------------------------

% Formula di Cavalieri - Simpson

%--------------------------------------------------------------------------

%

% function [Int,Out] = Met_Simpson(Fun,a,b,Nmax,n1,toll)

%

% ||Input||

% Fun è la funzione da integrare

% a è l'estremo inferiore dell'intervallo di integrazione

% b è l'estremo superiore dell'intervallo di integrazione

% Nmax è il massimo numero di iterazioni di confronto

% n1 è il numero di sottointervalli a cui applicare il metodo dei trapezi

% toll è la tolleranza assunta

%

% ||Output||

% Int è l'approssimazione numerica dell'integrale

% Out è l'esito del procedimento:

% Out = 0 --> Si verifica il criterio d'arresto

% Out = 1 --> Non si verifica il criterio d'arresto

%

% ||Variabili tabella||

% Iter sono le iterazioni di confronto

% Diff è la differenza tra due soluzioni |Iter2-Iter1|

h1 = (b-a)/n1;% Ampiezza del primo intervallo

Int1 = 0;

for Count1 = 1:n1/2

Finf1 = feval(Fun,a+(2*Count1-2)*h1);% Valutazione della funzione negli

Fint1 = feval(Fun,a+(2*Count1-1)*h1);% estremi dell'intervallo e nel

Fsup1 = feval(Fun,a+(2*Count1)*h1); % punto intermedio

Int1 = Int1+(h1/3)*(Finf1+4*Fint1+Fsup1);

end

n2 = 2*n1;

disp(sprintf(' Iter Diff'))% Creazione tabella

for Iter = 1:Nmax

Int2 = 0;

h2 = (b-a)/n2;% Ampiezza del secondo intervallo

for Count2 = 1:n2/2

Finf2 = feval(Fun,a+(2*Count2-2)*h2);% Valutazione della funzione

Fint2 = feval(Fun,a+(2*Count2-1)*h2);% nel punto intermedio e agli

Fsup2 = feval(Fun,a+(2*Count2)*h2); % estremi dell’intervallo

Int2 = Int2+(h2/3)*(Finf2+4*Fint2+Fsup2);

end Pagina | 10

Capitolo 2- Function del metodo dei trapezi e di Cavalieri - Simpson

Diff = abs(Int2-Int1);

disp(sprintf('%8.0f: %20.16e',Iter,Diff))% Inserimento dati

if Diff <= toll% Verifica del criterio d’arresto

Int = Int2;

Out = 0;

format long

disp(sprintf('\n Si verifica il criterio d''arresto:',Int))

break

else Int1 = Int2;

n2 = 2*n2;

end

end

if Iter == Nmax && Diff > toll

Int = 0;

Out = 1;

disp(sprintf('\n Non si è verificato il criterio d''arresto'))

return

end

end Pagina | 11

Capitolo 3- Risultati delle function

3. Risultati delle function

Le function create consentono dunque di approssimare numericamente il calcolo di

un integrale definito.

è applicare le function per calcolare l’integrale, nell’intervallo [0,1], della

L’obiettivo 2

-2

) ∙ e

funzione f(x) = sin( - 0.3.

Si riporta di seguito l’M-file (Fun.m) contenente la funzione suddetta:

function [f] = f(x)

% Funzione oggetto di studio

f = sin(sqrt(x))*exp(-2*x^2)-0.3;

end

Preliminarmente, per verificare il corretto funzionamento degli M-file realizzati, sono

stati applicati ad una funzione (Funv.m) il cui integrale risulta di più facile risoluzione:

function [f] = f(x)

% Funzione di verifica

f = x^3-6*x+3*(x^2);

end

Risolvendo analiticamente l’integrale nell’intervallo chiuso [0,1] in cui la funzione è

1 [ ]

3 2 3 2

( – 3 )d

continua, si ottiene: = -3 = -1.75.

0

Si riportano di seguito i risultati ottenuti con Matlab.

Figura 3.1 – Calcolo dell’integrale con il metodo dei trapezi Pagina | 12

Capitolo 3- Risultati delle function

Figura 3.2 – Calcolo dell’integrale con il metodo di Cavalieri - Simpson

Gli algoritmi proposti sono dunque in grado di risolvere con buona approssimazione

l’integrale.

Si riportano di seguito i risultati ottenuti con la funzione in esame.

Figura 3.3 – Calcolo dell’integrale con il metodo dei Trapezi Pagina | 13

Capitolo 3- Risultati delle function

Figura 3.4 – Calcolo dell’integrale con il metodo di Cavalieri - Simpson Trapezi

Si osservi che, nel metodo di Cavalieri-Simpson, affinché si verifichi il criterio

d’arresto sono richieste undici iterazioni di confronto.

Per verificare l’effettivo funzionamento della funzione creata si è dunque inserito un

numero di iterazioni massime inferiore a quello necessario.

che non si è verificato il criterio d’arresto.

Come atteso il programma informa

Figura 3.5 – Calcolo dell’integrale con il metodo di Cavalieri - Simpson Trapezi: soluzione non raggiunta Pagina | 14

Capitolo 4- Confronto dei risultati

4. Confronto dei risultati

I risultati ottenuti attraverso le funzioni Matlab costruite sono stati infine comparati

“quad”.

con quelli forniti dalla funzione interna a Matlab

La sua sintassi di base è I = quad (@Fun,a,b), dove:

 @Fun è un handle di funzione;

 l’estremo inferiore dell’intervallo;

a è

 l’estremo superiore dell’intervallo.

b è approssima l’integral

Dettagli
Publisher
A.A. 2013-2014
17 pagine
SSD Ingegneria civile e Architettura ICAR/08 Scienza delle costruzioni

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Nobody.1990 di informazioni apprese con la frequenza delle lezioni di Metodi Numerici per l'Ingegneria e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Firenze o del prof Macconi Maria.