Grafici di funzione in ambiente Mathematica

Gennaio 8th, 2016 | by Marcello Colozzo |

La potenzialità di Mathematica risiede nella sua capacità di manipolazione non solo di simboli, ma anche di altri "oggetti" come ad esempio, i principali "enti geometrici", ossia oggetti grafici del tipo punto, segmento, cerchio, etc.

Prima di introdurre le istruzioni grafiche con cui visualizzare i suddetti oggetti, vediamo alcuni esempi di "manipolazioni" di funzione.
Abbiamo precedentemente visto come definire una funzione dotata di espressione elementare attraverso le due modalità di assegnazione.

Ad esempio, supponiamo di voler tracciare il grafico di una funzione reale di una variabile reale che denotiamo con il simbolo f. È chiaro che occorre conoscere
l'espressione elementare della funzione, dopodichè si chiede a Mathematica di tracciarne il grafico. Se la funzione è f(x)=x^sin(x), otteniamo il risultato seguente (utilizzando il comando Plot[] e specificando l'intervallo di valori della variabile indipendente).

A questo punto chiediamoci: è possibile realizzare una procedura di calcolo che vede non x come variabile indipendente da dichiarare con x_, ma la funzione stessa? La risposta è affermativa: ad esempio, possiamo immaginare di implementare una funzione grafico[f_] in cui f è un qualunque "oggetto" dotato di espressione elementare. In altre parole, anzichè definire una funzione che dipende da x, noi definiamo una funzione che dipende da f. Attenzione: non dal valore assunto dalla funzione (in tal caso abbiamo ciò che in Analisi/Algebra è nota come funzione composta), ma dalla generica espressione di f ogni volta che viene invocata.








La prima cosa che viene in mente è l'utilizzo dell'assegnazione ritardata grafico[f_]:=, in modo da concedere al Kernel la possibilità di valutare la funzione grafico[f_] quando viene invocata tramite l'espressione elementare.
Guardiamo questa schermata:

Ovviamente abbiamo dovuto assegnare gli estremi dell'intervallo in cui chiediamo a Mathematica di plottare la funzione. Possiamo, però, definire gli estremi dell'intervallo come variabili locali, cioè variabili che vengono dichiarate solo all'interno del costrutto Plot[]. Per essere più specifici, consideriamo quest'altro esempio: vogliamo plottare localmente una assegnata funzione f. Ad esempio, la funzione è f(x)=sin(1/x) e vogliamo graficarla in un intorno di x = 0. Come è noto, la funzione assegnata è non regolare nel punto x= 0. Più precisamente, non esiste il limite per x che tende a 0, giacchè il grafico compie infinite oscillazioni in ogni intorno di 0. Ecco il codice:


Block[] definisce le variabili locali xmin, xmax, plot in termini delle variabili di inputf, x0, delta, dove delta è il raggio dell'intorno del punto x0. In questo modo possiamo graficare la funzione in ogni intorno di un qualunque punto dell'asse x. Ponendo x=0 e delta=0.1 si ottiene il grafico della figura. Utilizzando poi il comando Table[] è possibile tracciare il grafico locale in intorni via via più piccoli, esportando il tutto in formato .gif che restituisce l'animazione seguente:

No TweetBacks yet. (Be the first to Tweet this post)

Tags: , , ,

Articoli correlati

Commenta l'esercizio