Interpolazione lineare in VBA
05.10.2013 22:15In questo Post, vedremo come impostare una semplice funzione di VBA per il calcolo della radice di una funzione f(x) attraverso il metodo dell'interpolazione lineare.
In generale l'interpolazione lineare considera due punti dati, denotiamoli (xa,ya) e (xb,yb), e assume come funzione interpolante quella definita come
![]()
Questa formula può essere interpretata come la media ponderata.
Facciamo una funzione in excel che ci calcoli direttamente il valore di X in maniera semplice e veloce.
Le nuove funzioni possono essere inserite nella finestra "codice" di un modulo inserendo d'apprima la parola chiave "Function" e successivamente: il nome della funzione; la parentesi tonda aperta; gli eventuali parametri separati da una virgol; la parentesi tonda chiusa; opzionalmente la parola chiave "As" seguita dal tipo di valore da restituire.
Ecco l'esempio
Function InterpolazioneLineare(X As Double, Xb As Double, Xa As Double, Yb As Double, Ya As Double) As Double'funzione di Interpolazione lineare secondo la funzione'f(x) = \frac{x-x_b}{x_a-x_b} y_a - \frac{x-x_a}{x_a-x_b} y_b.'dichiaro le variabili da utilizzare nel calcoloDim GenericoX As DoubleGenericoX = X'aggiungo qualche condizione per evitare che il codice si blocchi o vada in errore nel caso di valori errati.If Xa = Xb ThenExit FunctionElseIf Xb <= X ThenExit FunctionElseIf Xa >= X ThenExit FunctionElseIf X = "0" ThenExit FunctionElseInterpolazioneLineare = (((GenericoX - Xb) / (Xa - Xb)) * Ya) - (((GenericoX - Xa) / (Xa - Xb)) * Yb)End IfEnd Function
La funzione, così come concepita, una volta salvata e inserita tra gli add-in disponibili, può essere direttamente richiamata in excel inserendo nella cella:
=InterpolazioneLineare()
ed inserendo, all'interno delle parentesi i parametri così come impostati nel codice.