Community
 
Aggiungi lista preferiti Aggiungi lista nera Invia ad un amico
------------------
Crea
Profilo
Blog
Video
Sito
Foto
Amici
   
 
 

 

   Note di Analisi Numerica

Foxes Team

 

 

 

Plottaggio di curve iso-livello di una data funzione z=f(x,y) in Excel

 

Macro isol.xls

 

La macro Excel contenuta nel file isol.xls , sviluppata da SimonLuca Santoro e cortesemente rilasciata al dominio pubblico attraverso questo sito, consente la creazione automatica di grafici di curve iso-livello. Le immagini prodotte, di ottima qualità, non sono statiche immagini bitmap ma dei grafici Excel a tutti gli effetti e possono quindi essere manipolati e modificati successivamente con i tool standard di Excel.

La seguente immagine è un esempio di grafico prodotto

 

 

 

La versione 2 consente anche la generazione di mappe colorate, grazie alla macro Mapper sviluppata da Robert de Levie nella sua libreria MacroBundle

http://www.bowdoin.edu/~rdelevie/excellaneous/

 Una dettagliata spiegazione delle algoritmo Mapper può essere trovato nel libro "Advanced Excel for scientific data analysis", dello stesso autore.

 

L'unione delle mappe colorate e delle line iso-livello permette di ottenere grafici molto belli ed interessanti.

 

 

 

La macro isol.xls produce i grafici in file xls separati da quello della macro. I file contenenti i grafici, in genere abbastanza voluminosi (1 - 1.5 MB), sono indipendenti dalla macro stessa e possono essere aperti e manipolati successivamente senza il file isol.xls .

La macro contiene anche il file template isol_output_t.xls che però non deve essere sovrascritto. Esso deve essere lasciato nella stessa directory in cui è contenuto il file isol.xls e serve solo come modello per produrre i grafici successive.

 

Attualmente la macro crea grafici iso-livello con tre modalità differenti:

 

L'algoritmo adottato per plottare le curve iso-livello si basa sulla triangolarizzazione del dominio rettangolare  D º { x, y : xmin £ x £ xmax , ymin £ y £ ymax }

 

In sintesi i passi salienti dell'algoritmo sono

 

  1. Discretizzazione in sottodomini rettangolari
  2. Suddivisione di ogni sub-dominio in 4 triangoli
  3. Calcolo della funzione z=f(x,y) nei vertici di ogni triangolo (P1', P2', P3').
  4. Identificazione del piano passante per i vertici del triangolo immagine (P1 P2 P3)
  5. Identificazione della segmento A B d'incontro fra il triangolo e il piano p, z = zi

 

La traccia A' B' su piano xy approssima la iso-livello per z = zi. L'approssimazione è tanto migliore quanto più i sottodomini sono piccoli.

 

 

La nota Iso-livello_Appunti.pdf  di Simonluca spiega in dettaglio l'algoritmo

 

Il metodo ha il vantaggio di essere robusto e di funzionare anche con superfici non derivabili e irregolari in quanto non sfrutta l'informazioni relative al gradiente della superficie. Lo svantaggio è, invece, un elevato costo computazionale (circa 100 operazioni per triangolo) che si riflette in un tempo di elaborazione non trascurabile

 

Formule parametriche. Per ridurre il costo computazionale si può adottare, però, una variante del metodo che evita il calcolo esplicito del piano interpolante attraverso le formule parametriche dei segmenti del triangolo P1(x1,y1,z1), P2(x2,y2,z2), P3(x3,y3,z3)

Le coordinate delle proiezioni sui lati del triangolo di base A', B', C' , se esistono, si trovano con le seguenti semplici formule

 

 

Nel calcolo si devono scegliere solo i punti per cui è   0 £ ti £ 1

In generale la variante delle formule parametriche riduce di circa 1/3 il costo computazionale, a tutto vantaggio del tempo totale di elaborazione.