Metodo delle differenze finite

In matematica, il metodo delle differenze finite è una strategia utilizzata per risolvere numericamente equazioni differenziali che, nelle sue varianti, si basa sull'approssimazione delle derivate con equazioni alle differenze finite. Viene utilizzato prevalentemente per equazioni differenziali ordinarie, anche se il metodo viene sfruttato come schema di avanzamento nel tempo per problemi alle derivate parziali.

Derivazione dal polinomio di Taylor

Si consideri una funzione di cui si vogliono approssimare le derivate, e si supponga che, grazie al teorema di Taylor, si possa costruire la serie di Taylor:

f ( x 0 + h ) = f ( x 0 ) + f ( x 0 ) 1 ! h + f ( 2 ) ( x 0 ) 2 ! h 2 + + f ( n ) ( x 0 ) n ! h n + R n ( x ) {\displaystyle f(x_{0}+h)=f(x_{0})+{\frac {f'(x_{0})}{1!}}h+{\frac {f^{(2)}(x_{0})}{2!}}h^{2}+\cdots +{\frac {f^{(n)}(x_{0})}{n!}}h^{n}+R_{n}(x)}

dove n ! {\displaystyle n!} denota il fattoriale di n {\displaystyle n} , mentre R n ( x ) {\displaystyle R_{n}(x)} è un termine che denota la differenza tra la funzione originale e il polinomio di Taylor di grado n {\displaystyle n} . Si deriva quindi l'approssimazione per la prima derivata di f {\displaystyle f} troncando il polinomio:

f ( x 0 + h ) = f ( x 0 ) + f ( x 0 ) h + R 1 ( x ) {\displaystyle f(x_{0}+h)=f(x_{0})+f'(x_{0})h+R_{1}(x)}

Ponendo x 0 = a {\displaystyle x_{0}=a} si ha:

f ( a + h ) = f ( a ) + f ( a ) h + R 1 ( x ) , {\displaystyle f(a+h)=f(a)+f'(a)h+R_{1}(x),}

Dividendo per h {\displaystyle h} :

f ( a + h ) h = f ( a ) h + f ( a ) + R 1 ( x ) h {\displaystyle {f(a+h) \over h}={f(a) \over h}+f'(a)+{R_{1}(x) \over h}}

e risolvendo in funzione di f'(a):

f ( a ) = f ( a + h ) f ( a ) h R 1 ( x ) h {\displaystyle f'(a)={f(a+h)-f(a) \over h}-{R_{1}(x) \over h}}

Se si assume che R 1 ( x ) {\displaystyle R_{1}(x)} è sufficientemente piccola, l'approssimazione per la prima derivata di f {\displaystyle f} è:

f ( a ) f ( a + h ) f ( a ) h {\displaystyle f'(a)\approx {f(a+h)-f(a) \over h}}

Ordine di convergenza e differenze finite compatte

Lo stesso argomento in dettaglio: Coefficienti del metodo delle differenze finite.

Se la funzione u {\displaystyle u} è abbastanza regolare, si può scriverla come serie di Taylor col resto nella forma di Lagrange:

u ( x + h ) = u ( x ) + h u ( x ) + h 2 2 u ( y ) {\displaystyle u(x+h)=u(x)+hu'(x)+{\frac {h^{2}}{2}}u''(y)}

Da qui portando u ( x ) {\displaystyle u(x)} a primo membro e dividendo per h {\displaystyle h} si ottiene che l'approssimazione di u ( x ) {\displaystyle u'(x)} data precedentemente ha un errore di ordine uno rispetto ad h {\displaystyle h} . Se la funzione è più regolare, si può sviluppare ad esempio u ( x ) {\displaystyle u(x)} in serie di Taylor al secondo ordine sia in avanti che all'indietro:

u ( x + h ) = u ( x ) + h u ( x ) + h 2 2 u ( x ) + h 3 6 u ( y ) {\displaystyle u(x+h)=u(x)+hu'(x)+{\frac {h^{2}}{2}}u''(x)+{\frac {h^{3}}{6}}u'''(y)}
u ( x h ) = u ( x ) h u ( x ) + h 2 2 u ( x ) h 3 6 u ( z ) {\displaystyle u(x-h)=u(x)-hu'(x)+{\frac {h^{2}}{2}}u''(x)-{\frac {h^{3}}{6}}u'''(z)}

dove y {\displaystyle y} sta fra x {\displaystyle x} e x + h {\displaystyle x+h} mentre z {\displaystyle z} sta tra x h {\displaystyle x-h} e x {\displaystyle x} . Se ora si considera la differenza tra la prima e la seconda equazione, si ottiene la differenza finita centrata per la derivata prima:

u ( x ) {\displaystyle u'(x)\,} = u ( x + h ) u ( x h ) 2 h + h 2 12 ( u ( y ) + u ( z ) ) {\displaystyle {\frac {u(x+h)-u(x-h)}{2h}}+{\frac {h^{2}}{12}}(u'''(y)+u'''(z))}

che si vede essere di ordine due rispetto ad h {\displaystyle h} .

Si può generalizzare l'idea e pensare di prendere una combinazione lineare di espansioni in serie di Taylor di u {\displaystyle u} in punti del tipo ( x + n h ) {\displaystyle (x+nh)} , sistemando i coefficienti della combinazione lineare in modo da elidere i termini di troppo e tenere solo quello relativo alla derivata che si vuole approssimare, e il termine di grado più alto (che dà l'ordine di convergenza).

Fin qui abbiamo parlato di differenze finite classiche, ma possono essere costruiti altri schemi, detti delle differenze finite compatte, che si possono usare per approssimare derivate di qualunque ordine, a patto di supporre u {\displaystyle u} abbastanza regolare, di avere a disposizione un numero di nodi sufficiente in cui si conoscono i valori di u e delle sue derivate.

Esempio

Si vuole approssimare la derivata seconda con un'accuratezza di ordine 2. Si scrive dunque

u ( x + h ) = u ( x ) + h u ( x ) + h 2 2 u ( x ) + h 3 6 u ( x ) + h 4 24 u ( y ) {\displaystyle u(x+h)=u(x)+hu'(x)+{\frac {h^{2}}{2}}u''(x)+{\frac {h^{3}}{6}}u'''(x)+{\frac {h^{4}}{24}}u''''(y)}
u ( x + 2 h ) = u ( x ) + 2 h u ( x ) + 4 h 2 2 u ( x ) + 8 h 3 6 u ( x ) + 16 h 4 24 u ( z ) {\displaystyle u(x+2h)=u(x)+2hu'(x)+{\frac {4h^{2}}{2}}u''(x)+{\frac {8h^{3}}{6}}u'''(x)+{\frac {16h^{4}}{24}}u''''(z)}
u ( x + 3 h ) = u ( x ) + 3 h u ( x ) + 9 h 2 2 u ( x ) + 27 h 3 6 u ( x ) + 81 h 4 24 u ( w ) {\displaystyle u(x+3h)=u(x)+3hu'(x)+{\frac {9h^{2}}{2}}u''(x)+{\frac {27h^{3}}{6}}u'''(x)+{\frac {81h^{4}}{24}}u''''(w)}
u ( x + 4 h ) = u ( x ) + 4 h u ( x ) + 16 h 2 2 u ( x ) + 64 h 3 6 u ( x ) + 256 h 4 24 u ( q ) {\displaystyle u(x+4h)=u(x)+4hu'(x)+{\frac {16h^{2}}{2}}u''(x)+{\frac {64h^{3}}{6}}u'''(x)+{\frac {256h^{4}}{24}}u''''(q)}

Moltiplicando la prima equazione per a {\displaystyle a} , la seconda per b {\displaystyle b} , la terza per c {\displaystyle c} , la quarta per d {\displaystyle d} ; e quindi sommando, si ottiene (per semplicità di notazioni si indica con u n {\displaystyle u_{n}} il valore di u {\displaystyle u} in x + n h {\displaystyle x+nh} ):

a u 1 + b u 2 + c u 3 + d u 4 = ( a + b + c + d ) u 0 + ( a + 2 b + 3 c + 4 d ) h u 0 + ( a + 4 b + 9 c + 16 d ) h 2 2 u 0 {\displaystyle au_{1}+bu_{2}+cu_{3}+du_{4}=(a+b+c+d)u_{0}+(a+2b+3c+4d)hu'_{0}+(a+4b+9c+16d){\frac {h^{2}}{2}}u''_{0}}
+ ( a + 8 b + 27 c + 64 d ) h 3 6 u 0 + a h 4 24 u ( y ) + b 16 h 4 24 u ( z ) + c 81 h 4 24 u ( w ) + d 256 h 4 24 u ( q ) {\displaystyle +(a+8b+27c+64d){\frac {h^{3}}{6}}u'''_{0}+a{\frac {h^{4}}{24}}u''''(y)+b{\frac {16h^{4}}{24}}u''''(z)+c{\frac {81h^{4}}{24}}u''''(w)+d{\frac {256h^{4}}{24}}u''''(q)}

Si deve ora imporre che resti, a secondo membro, solo il termine relativo alla derivata seconda, quindi annulliamo tutti i coefficienti per le altre derivate. Si pone quindi:

a + b + c + d = 0 {\displaystyle a+b+c+d=0}
a + 2 b + 3 c + 4 d = 0 {\displaystyle a+2b+3c+4d=0}
a + 4 b + 9 c + 16 d = 2 {\displaystyle a+4b+9c+16d=2}
a + 8 b + 27 c + 64 d = 0 {\displaystyle a+8b+27c+64d=0}

in modo che dividendo per h 2 {\displaystyle h^{2}} si ottenga:

a u 1 + b u 2 + c u 3 + d u 4 h 2 = u 0 + o ( h 2 ) {\displaystyle {\frac {au_{1}+bu_{2}+cu_{3}+du_{4}}{h^{2}}}=u''_{0}+o(h^{2})}

che è di ordine due, come era richiesto.

Bibliografia

  • (EN) George Boole Treatise on the calculus of finite differences (London, MacMillan, 1880)
  • (EN) Lewis Fry Richardson The Approximate Arithmetical Solution by Finite Differences of Physical Problems involving Differential Equations, with an Application to the Stresses in a Masonry Dam Philosophical Transactions of the Royal Society A, 210, p. 307 (1911).
  • (DE) N. E. Norlund, Neuere Untersuchungen über Differenzengleichungen in Encyklopädie der mathematischen Wissenschaften mit Einschluss ihrer Anwendungen Band 2, T.3, H.2, pp. 675–717 (1922)
  • (DE) R. Courant, K. Friedrichs e H. Lewy Über die partiellen Differenzengleichungen der mathematischen Physik Math. Ann. 100, 32 (1928); traduzione in inglese: On the partial difference equations of Mathematical Physics IBM Journal of Research and Development 11, p. 215 (1967)
  • (EN) L. M. Milne-Thomson The Calculus Of Finite Differences (London, MacMillan, 1933)
  • (EN) M. Abramowitz e I. Stegun Handbook of Mathematical Functions (New York, Dover, 1972) pp. 882-885

Voci correlate

Altri progetti

Altri progetti

  • Wikimedia Commons
  • Collabora a Wikimedia Commons Wikimedia Commons contiene immagini o altri file su metodo delle differenze finite

Collegamenti esterni

  • Salvatore Pincherle, DIFFERENZE, CALCOLO DELLE, in Enciclopedia Italiana, Istituto dell'Enciclopedia Italiana, 1931. Modifica su Wikidata
  • differenze finite, in Enciclopedia della Matematica, Istituto dell'Enciclopedia Italiana, 2013. Modifica su Wikidata
  • (EN) finite difference method, su Enciclopedia Britannica, Encyclopædia Britannica, Inc. Modifica su Wikidata
  • (EN) LLoyd N. Trefethen Finite Difference and Spectral Methods for Ordinary and Partial Differential Equations
  • (EN) Finite-Difference Method (see and listen to lecture 9), su emlab.utep.edu. URL consultato il 21 settembre 2014 (archiviato dall'url originale il 2 marzo 2014).
  • (EN) List of Internet Resources for the Finite Difference Method for PDEs, su math.fullerton.edu. URL consultato il 21 settembre 2014 (archiviato dall'url originale il 18 agosto 2006).
  • (EN) Finite Difference Method of Solving ODEs (Boundary Value Problems) Notes, PPT, Maple, Mathcad, Matlab, Mathematica, su numericalmethods.eng.usf.edu.
  • (EN) Lecture Notes Shih-Hung Chen, National Central University
  • (EN) Randall J. LeVeque, Finite Difference Methods for Ordinary and Partial Differential Equations, SIAM, 2007.
  • (EN) Finite Difference Method, su adeptscience.co.uk. URL consultato il 21 settembre 2014 (archiviato dall'url originale il 26 febbraio 2012).
  • (EN) Finite Difference Method for Boundary Value Problems, su math.fullerton.edu. URL consultato il 21 settembre 2014 (archiviato dall'url originale l'8 luglio 2013).
  • (EN) Finite Difference Methodology in Materials Science, su composite-agency.com. URL consultato il 21 settembre 2014 (archiviato dall'url originale il 7 febbraio 2012).
Controllo di autoritàThesaurus BNCF 58948 · LCCN (EN) sh85048348 · GND (DE) 4194626-1 · BNF (FR) cb13564043x (data) · J9U (ENHE) 987007531228905171 · NDL (ENJA) 00569934
  Portale Matematica: accedi alle voci di Wikipedia che trattano di matematica