Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

14
voti

Le differenze finite ... in un foglio

Lo scopo

Molti dei nostri lettori conoscono la "battaglia" di Giovanni Schgör per diffondere la cultura della simulazione al computer. Avranno anche notato un suo rammarico per la sensazione che i risultati non siano quelli sperati. Sembrano pochi i giovani che cercano di approfondire l'argomento. Qualche studente universitario, c'è ma sono assenti le scuole tecnico-scientifiche e non solo per quanto riguarda la componente studentesca. Un ostacolo può essere rappresentato da Mathcad, un programma validissimo e potente, ma di costo notevole e difficilmente provabile gratuitamente. Nella speranza  che sia possibile in futuro usare on-line le applicazioni Mathcad proposte, sulla base del quale, lo ricordiamo, in questo sito è pubblicato il corso di Schgör Elaborazione Numerica dei segnali, si è pensato di mostrare come utilizzare un foglio elettronico per applicare il metodo delle differenze finite. Sono stati a tal fine riproposti gli esercizi  dell’articolo di Schgör “Chi ha paura delle equazioni differenziali?

Le differenze finite

Il metodo delle differenze finite permette di trovare  la soluzione numerica di un'equazione o di un sistema di equazioni differenziali. La modellizzazione matematica di un sistema fisico conduce sempre ad equazioni differenziali le cui soluzioni sono  funzioni di una variabile, ad es. il tempo. La ricerca diretta di tali funzioni è un problema che si sa risolvere esplicitamente soltanto in pochi casi. In assenza di una forma esplicita è importante determinare una soluzione approssimata che permetta di stabilire comunque le proprietà della funzione. I valori approssimati della soluzione sono calcolati per un numero discreto di valori della variabile indipendente. L'equazione differenziale è trasformata in una equazione in cui compaiono le differenze finite tra valori consecutivi della variabile indipendente e dei corrispondenti valori delle funzioni cercate. Ciò permette di scrivere equazioni algebriche nelle quali un valore della funzione dipende dall'incremento scelto per la variabile indipendente e dai valori immediatamente precedenti della funzione stessa, oltre che dai coefficienti costanti che compaiono nell'equazione differenziale che sono i parametri del sistema. I valori della variabile indipendente costituiranno un vettore di N elementi distanziati tra loro di un valore costante Dt = T / N se T è l'ampiezza dell'intervallo della variabile indipendente. La soluzione approssimata è, a sua volta, un vettore di N elementi distanziati tra loro di un incremento variabile Dy che dipende dalla struttura dell'equazione differenziale e dai suoi parametri. Si può in genere riconoscere che l'ennesimo termine è funzione di alcuni valori immediatamente precedenti, è cioè definito in maniera ricorsiva. La differenza tra l'indice dell'elemento calcolato ed il più piccolo degli indici degli elementi precedenti da cui esso dipende, definisce l'ordine dell'equazione. Se l'ordine è k, i primi k elementi del vettore sono costanti da definire. Al variare del loro valore si ottengono soluzioni diverse. Pertanto esse andranno scelte in base alle condizioni iniziali che, insieme all'equazione differenziale, definiscono l'oggetto di studio.

Il foglio elettronico

Si presuppone in questo articolo la conoscenza dei concetti di base di un foglio elettronico.  Ricordiamo brevemente che le colonne non sono altro che vettori. Ogni cella è un elemento del vettore. Il contenuto di una cella può essere scritto direttamente o calcolato con espressioni matematiche. La scrittura di un'espressione inizia con ‘=' ed utilizza valori o riferimenti ad altre celle usando i segni + , * , - , / , ^, per le operazioni di addizione, moltiplicazione, sottrazione, divisione, elevamento a potenza,  oppure come argomenti di altre funzioni. Il foglio elettronico esegue ogni tipo di grafico. Saranno sommariamente descritte le operazioni principali. Per informazioni dettagliate sull'uso di Excel si rimanda però alle pubblicazioni specifiche. Ne esistono scaricabili da Internet naturalmente: qui ad esempio

Grafico di funzione e della sua derivata

Vogliamo tracciare i grafici di una funzione e della sua derivata. Consideriamo il seguente esercizio dell'articolo citato.

La funzione è

funz1

ed il foglio di lavoro si presenta così.

La variabile indipendente è x. L'intervallo che interessa parte da x0 = -5, valore inserito nella cella C2. Consideriamo un incremento costante Dx = 0,01, valore inserito nella cella B2. La colonna A contiene il vettore [n] la successione degli interi positivi che sono gli indici degli elementi dei vettori. Costruiamo il vettore [x] di N=1000 elementi. Il primo elemento è x1 =–5 e gli altri si ottengono aggiungendo successivamente Dx. Il vettore [x] è rappresentato dai valori contenuti nelle celle della colonna B, da B4 a B1003. La formula scritta nella cella Bi  è: Bi-1+B$2. Nella colonna C ci sono gli elementi del vettore funzione calcolati con i valori della colonna B che si trovano sulla stessa riga. L'istruzione della cella Ci è perciò: =0,2*Bi^3-5*Bi+2. Potremmo direttamente costruire il vettore che contiene i valori della derivata (come fatto nella colonna E); ma non è lo scopo che ci stiamo prefiggendo. I valori del vettore [y'] con le derivate li ricaviamo con il metodo delle differenze finite:  . Non è possibile calcolare il primo elemento. Vi si può assegnare un valore arbitrario, ovviamente commettendo un errore grossolano nei primi, errore che si riduce nei calcoli successivi (come risulta dalla colonna E, escludendo però i punti in prossimità dei massimi relativi, in coorispondenza dei quali la derivata è nulla)

Nella cella i-esima  della colonna D che contiene il vettore [y'] è dunque scritta la formula: =(Ci-Ci-1)/$B$2.

NB:

  • il $ davanti mantiene fissa la coordinata di cella che lo segue. La formula infatti basta scriverla su una cella e ricopiarla nelle celle successive. Le coordinate di cella si modificano di conseguenza tranne quelle precedute dal simbolo $.
  • scritta la formula in una cella basta poi ricopiarla in tutte le celle del vettore: clic sulla casella con il pulsante destro; scegliere copia dal menù contestuale; puntare il mouse sull'angolo in basso a destra; trascinare verso il basso.

Nel riquadro è illustrato il procedimento matematico con maggiore dettaglio e, successivamente, ci sono i grafici tracciati da Excel:

NB:

  • si seleziona l'area dei dati puntantando il mouse sulla prima cella (B4) e itrascinandolo con il pulsante sinistro premuto fino alla cella E1003
  • si clicca sul pulsante dei grafici, scegliendo il tipo "dispersione", quindi si precisano le serie (che sono le colonne) che si desidera far comparire nel grafico, nelle finestre di dialogo. La colonna B è l'asse x; le colonne C, D, E le serie che rappresentano la funzione y, e la sua derivata che in D è calcolata con la formula delle differenze finite, in E con l'espressione corretta (nel grafico sono indistinguibili)

Grafico di funzione e delle sue derivate, prima e seconda

Non c'è molta diversità rispetto a quanto fatto nel primo esercizio. E' solo stata aggiunta la derivata seconda della funzione per mostrare come si calcolano gli elementi del vettore che la rappresenta con il metodo delle differenze finite Il foglio si presenta come in figura. A questo proposito osserviamo che

La funzione studiata è scritta nella cella C1. L'intervallo di studio inizia da x0=0, inserito in C3 e ricopiato in B5 come primo elemento del vettore [x] che rappresenta la variabile indipendente. L'incremento Dx=0,01 è inserito nella cella B3. La colonna C contiene il vettore [y], cioè la funzione; la colonna D contiene il vettore con i valori della derivata prima, calcolata come nel precedente esercizio; la colonna E contiene i valori del vettore [y''] derivata seconda, calcolati seconda la formula in intestazione che è dimostrata nel riquadro dei passaggi matematici. Sono pure mostrati i grafici ottenuti con gli strumenti di Excel

 

Equazione differenziale-1

La prima equazione differenziale che desideriamo risolvere è

E' quella dell'articolo di Schgor. Si tratta di un semplice integrale e la soluzione simbolica non è difficile. Nella figura che mostra il relativo foglio Excel, è riportata nella colonna E. Il nostro scopo è però seguire il metodo numerico. Il vettore che rappresenta la derivata [y'] (colonna C)  è immediatamente calcolabile dal vettore [t] (colonna B) che contiene come elementi gli istanti nei quali si calcola la funzione:sono N=10000. Occorre costruire il vettore [y] con i valori della funzione. E' fatto nella colonna D. La giustificazione della formula è riportata nel riquadro con i passaggi matematici. L'intervallo che separa gli istanti è in B2, l'istante iniziale in C2. Le formule nelle celle sono:

  • Cella B i-esima: =Bi+B$2 (in B4, corrispondente ad n=1 c'è t0: =B4.
  • Cella C i-esima: =3*(Bi^2)-Bi
  • Cella D i-esima: =Di-1+$B$2*Ci ( in D4, il valore y1 non si può calcolare)

 

Come al solito seguono i grafici tracciati da Excel: il primo tracciato per y1=0, il secondo per y1=500

grafeqdif1

grafeqdif1a

 

Equazione differenziale – 2

L’equazione che risolviamo stavolta è leggermente più complicata . Lasciamo al lettore di trovare simbolicamente la soluzione che è riportata nell’articolo di Giovanni Schgör. Il procedimento matematico per determinare i vettori-colonna del foglio elettronico che consentono di tracciare i grafici è il seguente:

 

Il foglio si presenta dunque così

Le formule delle colonne C e D in cui trovano i valori discreti della funzione y e della sua derivata sono, rispettivamente:

  • Cella C i-esima: =Ci-1*(1-($B$2/RADQ(Bi)))+$B$2
  • Cella D i-esima: =1-Ci/(RADQ(Bi))

Ed ecco i grafici: il primo tracciato per y1=0 il secondo per y1=1

eddif2a

 

Download

Il foglio ADDF_Excel_1.xls è contenuto in questo file

 

1

Commenti e note

Inserisci un commento

di Differenze Finite / Elementi Finiti / Volumi Finit,

Salve! Saprebbe dirmi la differenza tra quest 3 metodi e quando si devono o meglio possono applicare? Fabio

Rispondi

Inserisci un commento

Per inserire commenti è necessario iscriversi ad ElectroYou. Se sei già iscritto, effettua il login.