Sei sulla pagina 1di 83

Grafici 2D con Winplot

Grafici 2D con Winplot


Winplot è un ottimo programma freeware della Peanut Software per il
disegno di grafici 2D e 3D.
Queste note, attraverso semplici esempi, spiegano come usarlo mettendo in
evidenza le sue molteplici potenzialità.

Luglio 2007

Foxes Team 1
Grafici 3D con Winplot

Indice

Grafici con Winplot .............................................................................................................................3


Font e Decimali................................................................................................................................3
Assi e Griglie ...................................................................................................................................4
Fattori di Scala .................................................................................................................................7
Zoom e Shift....................................................................................................................................7
Grafici elementari ................................................................................................................................8
Punti .................................................................................................................................................8
Animazione ......................................................................................................................................8
Testo ed Etichette...........................................................................................................................10
Testo dinamico...............................................................................................................................11
Riflessioni e Rotazioni ...................................................................................................................13
Insiemi di punti ..............................................................................................................................15
Segmenti.........................................................................................................................................17
Rette ...............................................................................................................................................18
Disequazioni lineari in x y .............................................................................................................19
Equazioni e grafici .............................................................................................................................22
Equazione esplicita ............................................................................................................................23
Zeri .................................................................................................................................................24
Estremi ...........................................................................................................................................26
Flessi ..............................................................................................................................................27
Integrale definito ............................................................................................................................28
Funzione integrale..........................................................................................................................30
Funzione inversa ............................................................................................................................31
Funzione derivata...........................................................................................................................33
Tabella............................................................................................................................................33
Famiglia di funzioni .......................................................................................................................35
Web ................................................................................................................................................36
Intersezione non lineare .................................................................................................................38
Punti del grafico .............................................................................................................................38
Area fra due curve..........................................................................................................................39
Equazione parametrica.......................................................................................................................40
Cuspidi ...........................................................................................................................................44
Curve regolari ................................................................................................................................44
Curve poligonali.............................................................................................................................48
Equazione implicita............................................................................................................................49
Famiglie .........................................................................................................................................49
Curve di livello...............................................................................................................................52
Sistemi non lineari .........................................................................................................................55
Equazione Polare................................................................................................................................57
Ellisse in coordinate polari.............................................................................................................59
Equazione differenziale......................................................................................................................60
Campo di pendenza........................................................................................................................60
Famiglie di soluzioni......................................................................................................................61
Integrazione per intervalli ..............................................................................................................63
Sistema differenziale.....................................................................................................................64
Equazione del II° ordine ................................................................................................................65
Orbite .................................................................................................................................................68
Interpolazione polinomiale ................................................................................................................72

Foxes Team 1
Grafici 3D con Winplot

Grafici speciali ...................................................................................................................................74


Immagini sul grafico ......................................................................................................................74
Immagini di sfondo ........................................................................................................................74
Diagrammi di Van der Waals.........................................................................................................75
Diagrammi di risonanza .................................................................................................................76
Rete compensatrice ........................................................................................................................78
Appendice ..........................................................................................................................................80
Mappa dei fonts..............................................................................................................................80
Funzioni e costanti .........................................................................................................................81

Foxes Team 2
Grafici 3D con Winplot

Grafici con Winplot


Winplot1 è uno di quei programmi (ormai rari) che non necessita di installazione e configurazione.
Basta cliccare l'icona del programma Winplot per iniziare la sessione di lavoro.
Nel menu Window ci sono 2 sottomenu principali: 2-dim e 3-dim, i grafici bidimensionali e
tridimensionali. E' possibile anche attivarli rapidamente mediante i tasti F2 e F3.

Winplot memorizza sempre il settaggio (font,


assi, griglia, ecc.) dell'ultimo grafico salvato.
A volte questo è utile quando si fanno molti
grafici simili, ma sovente crea problemi.
Per disattivarlo, selezionare "Use defaults".
In tal modo Winplot parte sempre dal settaggio
standard.

Premendo F2 apparirà la seguente maschera


Cliccando il grafico con il mouse (tasto sinistro),
compariranno le coordinate del punto relativo al
puntatore. (Se questo non dovesse accadere
selezionare "XY coord LB" nel menu "Btns").

Font e Decimali
Normalmente il font usato per visualizzare i testi e
i numeri è il "Courier" che è molto chiaro ma,
essendo posizionale, è un po' ingombrante. Il
numero dei decimali, per i normali lavori sui
grafici può essere ridotto a 3

Questi, e gli altri cambiamenti all'aspetto del grafico e conveniente salvarli in un grafico vuoto (una
specie di modello) che ricaricheremo ogni volta che vorremo senza ripetere tutta la procedura.
Dal menu "File\ Save As..." creiamo il nuovo file "Template1.wp2".
Adesso cambiamo il font delle coordinate dal menu "Misc/Fonts/Coordinates"2, scegliendo, ad
esempio, il Tahoma , size 8. Cambiamo anche il numero dei decimali dal menu "Misc/Decimal
places"

1
Queste note si riferiscono alla versione compilata del 11.May.2007
2
La mappa completa dei fonts si trova in appendice

Foxes Team 3
Grafici 3D con Winplot

Assi e Griglie
Le impostazioni degli assi e delle griglie sono largamente modificabili se pur in modo un po'
laborioso. Vediamo.
Osserviamo innanzitutto che la visualizzazione della griglia e degli assi sono indipendente, così
come le loro impostazioni.
Gli assi si attivano con il menu "View/Axes/Axes" (Ctrl-A). Dallo stesso menu è possibile cambiare
il testo e il font delle etichette "x", "y" e inoltre i colori e lo spessore degli assi.

Interessante è la possibilità di
cambiare il titolo degli assi.
Per sempio, se si vuol
visualizzare l'asse del tempo
come ascissa, basta inserire
"T" al posto di "x" nella prima
etichetta.

Il pannello più importante, una specie di consolle per il controllo degli assi e della griglia, si attiva
dal menu View/Grid...(ctrl+G).
Con le impostazioni seguenti, quasi sicuramente il grafico apparirà come a destra.

Marche (ticks) sono distanziati della


misura specificata nel campo "interval".

I valori delle si visualizzano


con l'opzione "scale"

I valori delle marche si ripetono con


frequenza specificata nel campo "freq".

I valori della scale hanno tanti


decimali quanti sono indicati nel
campo "places" (0 significa solo
numeri interi).

• "axes" mostra gli assi ("both") oppure solo "x" o "y" oppure la forma "polare", secondo i
bottoni selezionati.
• "ticks" visualizza le marche delle scale (i piccoli segmenti lungo gli assi).
• "arrows" visualizza le frecce agli estremi degli assi.
• "labels" visualizza i nomi degli assi "x", "y" vicino alle frecce.
• "scale" visualizza i valori sulla scala con numero di decimali specificato nel campo "places"

Foxes Team 4
Grafici 3D con Winplot

NB. Il font standard dei numeri delle scale è il Symbol. Se si vuole, si può cambiare dal menu
"Misc/Fonts/Scale on axes...". Ricordarsi che il font Symbol è indispensabile per visualizzare il
simbolo π , quando l'opzione "pi" è attiva.
Interessante è pure l'opzione, attivabile con "pi", di visualizzare la scala secondo multipli di π
(vedremo successivamente un esempio)

L'opzione "dots" attiva la visualizzazione di Molti grafici, specialmente quelli tecnici, sono
piccole marche "+" nei punti d'intersezione della tracciati con le scale sui bordi
griglia (la griglia vera propria è disattiva). Questo può essere fatto semplicemente
attivando l'opzione "mark scale"

Le griglie sono importanti per i grafici professionali. Winplot permette una vasta gamma di opzioni
raccolte nella parte bassa del pannello di controllo. Le due principali griglie sono rettangolare
"rectangular" e polare "polar". In quest'ultimo caso è possibile specificare il numero di settori in cui
viene diviso l'angolo giro.

Se si desidera, si può tracciare una griglia continua disattivando l'opzione "dotted"

Foxes Team 5
Grafici 3D con Winplot

Il colore e la dimensione della griglia si possono cambiare dal menu "View/Gridlines"


Si fa osservare che i due tipi di griglia possono essere attive anche contemporaneamente

Esempio.
Disattivando gli
assi e attivando
entrambe le
griglie continue,
si può generare il
seguente
interessante
reticolo a
quadretti e cerchi
concentrici.
Si noti che non
abbiamo dovuto
tracciare nessun
grafico.

NB. I reticoli rettangolari possono essere tracciati anche in uno o più quadranti in modo
indipendente semplicemente attivando o disattivando il corrispondente controllo "quadrants".

Scala goniomentrica
La scala multipla di π è molto comune in goniometria. Vediamo come fare per crearla

Inserire nel campo "Interval" dell'asse x il valore


"pi/2" (verrà convertito automaticamente in 1.570796).
Attivare l'opzione "pi" per l'asse x

L'asse x apparirà come il seguente1

Se si vuole una griglia più fitta, ad esempio ogni ¼ di


π, si deve inserire il corrispondente intervallo pi/4. Per
evitare che la scala diventi illeggibile si può scrivere un
valore ogni 2, impostando l'opzione freq = 2

Salvare l'impostazione in un grafico, ad esempio "Template trig1.wp2" , per successivi lavori

1
Se al posto del simbolo π compare una "p" significa che il font della scala è diverso da Symbol (vedi
"Misc/Fonts/Scale on axes...")

Foxes Team 6
Grafici 3D con Winplot

Fattori di Scala
L'impostazione standard è la scala isometrica ma talvolta è necessario avere fattori di scala
differenti.
Ad esempio l'area del grafico standard, a sinistra, copre il dominio -5 < x < 5 e -4.6 < y < 4.6.
Si vuole invece coprire il dominio -5 < x < 5 e -2 < y < 2. Per far questo basta aprire il pannello
View dal menu View, inserire il range "down" = -2, "up" = 2 e selezionare il bottone "set corner"

Il grafico apparirà ora con la scala dell'asse y differente da


quella dell'asse x (scale dimetriche)
Nota che per ottenere il grafico a destra abbiamo cambiato
anche l'intervallo di griglia nel modo seguente

Per ripristinare i fattori di scala standard basta semplicemente premere il tasto "home" ovvero
selezionare il comando dal menu View/Restore.

Zoom e Shift
Come la maggior parte dei programmi di grafica Winplot ha tutti i comandi per ingrandire o ridurre
il grafico o traslarlo in ogni direzione. Per questo esistono le voci del menu View/Zoom e
View/Shift ma molto più comodi sono i tasti freccia ← , →, ↑, ↓ per spostarsi e i tasti Pg ↓, Pag ↑
per ingrandire o ridurre. Il loro uso è immediato e non è necessario aggiungere altro.
Solo qualche nota per il fattore di zoom (View/Zoom/Factor...) e per il fattore di Shift
(View/Shift/Percentage...).
Entrambi variano la velocità del movimento: valori accettabili sono 1.2 ÷ 1.5 per il primo e 1 ÷ 2 pr
il secondo.

NB. Giocando con i tasti di movimento è facile "perdersi". Per ripristinare il grafico iniziale basta
semplicemente premere il tasto "home" o selezionare il comando dal menu View/Restore.

Foxes Team 7
Grafici 3D con Winplot

Grafici elementari
I primi oggetti grafici che tracciamo nel nostro RCO sono ovviamente quelli elementari: punti
segmenti e rette

Punti
Dal menu Equa\Point si possono inserire punti in
coordinate cartesiane (x, y) o in coordinate polari (r, t)
e persino mediante una lista (List...).

Ad esempio si vuol inserire il punto A(2,1). Selezionare Equa\Point\(x,y) ed inserire le coordinate,


Scegliere la dimensione del punto, ad esempio, dot size = 4 e il colore, ad esempio blu.
Il bottone "solid" disegna il punto pieno, "circle" disegna un piccolo circolo vuoto

L'opzione "anchors" disegna anche le line di proiezione che possono essere tratteggiate o continue a
seconda dell'ulteriore opzione "dotted".

Nel caso di punti con coordinate


polari, esempio P(2, π/4) si deve
usare il menu Equa\Point\(r,t)
dove r è il raggio polare e t è
l'anomalia. Si noti che in questo
caso le line di proiezione sono
segmenti radiali e archi (opzione
"show arc")

Animazione
Una delle più geniali e meglio riuscite funzionalità di Winplot è senz'altro l'animazione, ovvero la
possibilità di variare con continuità i parametri dei grafici e degli oggetti grafici contenuti. I
parametri variano generalmente la posizione relativa degli oggetti e questi appaiono animati da un
moto reciproco di grandissimo effetto didattico.
L'animazione viene effettuata per mezzo di 23 parametri chiamati A, B, C...V, W il cui valore può
essere continuamente variato, manualmente o automaticamente, entro determinati intervalli.

Foxes Team 8
Grafici 3D con Winplot

Il pannello di controllo si richiama dal menu Anim\Parameters A-W...

Selettore parametro
Valore corrente del
barra di variazione parametro
manuale del valore
Imposta il valore
Imposta il valore massimo
minimo

Il campo del valore a destra del parametro può essere usato sia per leggere il valore corrente sia per
impostare un nuovo valore.
Premendo il tasto "set L", il valore impostato diventa il minimo dell'intervallo Amin.
Premendo il tasto "set R", il valore impostato diventa il massimo dell'intervallo Amax.
Dopo questa semplice configurazione, muovendo il cursore della barra da sinistra a destra il valore
del parametro varia dal minimo al massimo Amin ≤ A ≤ Amax
I tasti "autorev" e "autocyc" attivano l'animazione automatica. Il valore cambia continuamente dal
minimo al massimo, indefinitamente, fino a che non si preme "Q". Per aumentare la velocità o
ridurre si deve premere rispettivamente "F" o "S".

Amax Amax

Amin Amin

Animazione di un punto
Vediamo come fare per impostare l'animazione sul punto polare che abbiamo precedentemente
creato.
Apriamo il pannello del catalogo dal menu
Equa\Inventory o più velocemente con Ctrl+I.
Selezioniamo il punto (r,t) = (2,pi/4) e
premiamo il tasto Edit per modificarlo.
Inseriamo il parametro A (è indiferrente se
maiuscolo o minuscolo).
Attiviamo l'opzione di visualizzazione delle line
di proiezioni polari "show arc" e cartesiane
"anchors"; disattiviamo il tratteggio in modo da
avere le linee continue

Impostiamo ora l'intervallo del parametro A in modo


da effettuare un angolo giro, cioè 0 ≤ A ≤ 2π
Nel pannelo di controllo del parametro A, impostiamo
il valore 0 e premiamo il tasto "set L"; poi impostiamo
il valore 2pi (Winplot lo converte automaticamente in
6.283) e premiamo il tasto "set R"

Foxes Team 9
Grafici 3D con Winplot

Il parametro A è ora correttamente impostato e muovendo il cursore della barra vederemo il punto
percorrere l'angolo giro con le sue line di proiezione

A = 0.754 A = 2.262 A = 4.335 A = 5.843

Attiviamo anche l'animazione automatica in modalità "autorev" e "autocyc" per vedere l'effetto di
animazione. Osserviamo che, anche in un caso così semplice, l'effetto è sorprendentemente efficace

Testo ed Etichette
Ora che abbimo creato il punto vorremmo aggiungere anche la lettere "P" vicino al punto stesso.
Per inserire un qualunque testo nel grafico è sufficiente attivare la modalità Text del mouse tramite
il menu Btns\Text e cliccare con il tasto destro un qualunque punto del grafico. Immediatamente si
apre il pannello di controllo del testo "Edit Text" con cui è possibile inserire un semplice testo,
scegliere il font e il colore ed altre proprietà che vedremo

Usare il tasto sinistrodel


Usare il tasto destro del mouse per aprire per inserire, mouse per muovere un
modificare o cancellare un testo del grafico tramite il testo del grafico
pannello "Edit text"
Per muovere un testo, basta cliccarlo con il tasto sinistro e trascinarlo. Per cancellarlo occorre
cliccarlo col tasto destro per aprire il panello "edit text" e quindi rimuovere il testo lasciando il
campo vuoto. Alla chiusura del pannelo col tasto "OK", il testo sarà rimosso dal grafico
In genere è preferibile lasciare lo sfondo del testo opaco ("opaque background")
Una delle opzioni più utile è la possibilità di agganciare il testo mediante i bottoni in alto, alla
finestra del grafico ("frame"), oppure agli assi ("figure") oppure a qualche oggetto grafico, di solito
un punto ("others") visibile nella lista a destra.

Foxes Team 10
Grafici 3D con Winplot

Ovviamente gli effetti del punto di ancoraggio sono visibili solo durante il movimento del grafico.
Nel primo caso il testo rimarrà immobile; nel secondo caso seguirà lo shift , e in certa misura, anche
lo zoom; nel terzo caso infine seguirà tutti i movimenti del punto (rotazioni, traslazioni, ecc,)
Occorre osservare che il font non è scalabile automaticamente e quindi può accadere che il testo si
sovrapponga a qualche parte del grafico rendendolo meno leggibile. In questi casi occorre cambiare
la dimensione del font manualmente.

Nel nostro caso conviene aggangiare il testo al


punto (2, A). Clicciamo con il tasto destro del
mouse vicino al punto per aprire il panello "edit
test". Inseriamo il testo "P", scegliamo l'opzione
"other" selezionando il punto a cui vogliamo
agganciare il testo.

Scegliamo il font "Tahoma", grassetto ,


dimensione. 12, colore nero.
Scegliamo anche lo sfondo del testo opaco,
attivando l'opzione "opaque background".
Questo accorgimento evita che il testo diventi
illeggibile quando si sovrappone a parte del
grafico.
Diamo "OK" e aggiustiamo la posizione iniziale
del testo con il mouse (tasto sinistro)

A questo punto il grafico dovrebbe assomigliare, con A = 0, a quello di sinistra

A=0 A = 0.881 A = 2.639

Come si vede, aumentando il valore del parametro A, il punto ruota attorno all'origine e la lettera
"P" ruota rigidamente con il punto stesso.

Testo dinamico
E' possibile far cambiare il valore numerico inserito in un testo
in modo dinamico.
Ad esempio, vogliamo visualizzare le coordinate cartesiane del
punto P(x, y) e quelle del parametro A corrispondente all'angolo
di rotazione α espresso sia in radianti che in gradi.
Per aggiornare i testi in modo dinamico dobbiamo attivare
l'opzione dal menu Btns\Evaluate text

Foxes Team 11
Grafici 3D con Winplot

Clicchiamo con il tasto destro del mouse un punto del grafico vicino al punto.
Nel pannello "evaluated text" inserire le funzioni per
visualizzare le coordinate (x, y) = (cos(a), sin(a)) del
punto (il programma accetta fino a tre valori/formule
per ogni etichetta). Impostiamo 3 decimali nel campo
"places". Attiviamo l'opzione "label" e scriviamo il
testo "P" nel campo adiacente (qualunque testo
scriviamo in questo campo sarà visualizzato davanti
ai valori numerici). Agganciamo il testo al punto
selezionando "others" ed il punto (r,t) =(1,a)

Sul grafico comparirà il testo P(0.xxx, 0.yyy) agganciato al punto stesso. Variando il valore del
parametro A, il testo si muoverà con il punto e mostrerà i valori correnti delle sue cordinate.
Adesso inseriamo i testi, questa volta ancorati alla figura, per mostrare valore dell'angolo
Clicchiamo con il tasto destro del mouse un qualunque punto del grafico.
Inseriamo semplicemente il parametro "a" nel primo
campo, con 3 decimali. Attiviamo l'opzione
"expression" per visualizzare "a =" davanti al valore
numerico (Il calcolo dei parametri è indifferente alle
maiuscole/minuscole; il testo, invece, verrà
visualizzato così come è scritto). Cambiamo il font in
Symbol per visualizzare la lettere greca "α".
NB. L'opzione "expression" visualizza qualuque
espressione inserita nei campi in alto.

Con il tasto sinistro del mouse spostiamo e posizioniamo il testo.


Inseriamo ora un altra etichetta per visualizzare il valore dell'angolo in gradi.
Inseriamo la formula "a*180/pi" nel primo campo,
con 1 decimale (che per i gradi è più che sufficiente).
In questo caso disattiviamo la visualizzazione della
formula(1) e attiviamo, invece, l'opzione "label",
inserendo il testo "a =" davanti al valore numerico.
Cambiamo il font in Symbol per visualizzare la lettere
greca "α".
(1) L'opzione "expression" avrebbe visualizzato tutto il testo della
formula in lettere greche.

Le ultime due etichette sono agganciati agli assi del grafico e quindi sono immobili rispetto al punto
(ma possono seguire i comandi shift e zoom). La prima etichetta, invece seguirà gli spostamenti del
punto

Foxes Team 12
Grafici 3D con Winplot

Riflessioni e Rotazioni
Le trasformazioni rigide quali le riflessioni e rotazioni sono applicabili a tutti i grafici, ma diventano
più evidenti se applicate a elementi grafici elementari quali i punti.

Le riflessioni ovvero simmetrie possono retta di riflessione P'


essere effettuate rispetto agli assi P
cartesiani o rispetto ad una qualunque retta
"r" del piano. Le rotazioni possono essere
rispetto all'origine o rispetto a qualunque P
O
altro punto "O", detto polo. P'

Ad esempio inseriamo il punto di coordinate cartesiane1 P(2, 1) e generiamo i punti P', P'', P''' e P''''
riflessi, rispettivamente rispetto all'asse x, all'asse y , alla bisettrice del I e III quadrante e alla retta
di equazione x + 2y = 3. Dal menu One/Reflect apriamo il pannello di controllo "reflect".
Selezioniamo il punto (x,y) = (2,1), l'opzione "x-axis" e premiamo "reflect"

coefficienti della generica


retta di riflessione ax+by = c

L'opzione "graph mirror"


traccia anche la retta di
riflessione; è superfluo
quando la riflessione avviene
rispetto agli assi cartesiani

Se apriamo il catalogo ( Crtl+I oppure dal menu Equa\Inventory...) ci accorgiamo che contiene i
seguenti oggetti
(x,y) = (2,1)
reflect{(x,y) = (2,1)} @ x-axis
Il primo rappresenta il punto che abbiamo inserito manualmente mentre il secondo è stato generato
automaticamente dal programma con il comando "reflect". Questa, e le altre che in seguito
vedremo, rappresentano delle direttive interne che non è possibile editare manualmente a parte le
caratteristiche del formato quali la dimensione, il colore, ecc. Inoltre, la direttiva "reflect" è legata al
punto (2,1); se il punto cambia posizione anche il punto riflesso cambia conseguentemente; se il
punto viene cancellato anche il punto riflesso viene cancellato2.
Diversamente dagli altri punti, le coordinate del punto riflesso non sono visibili. Il punto riflesso
può essere usato, similmente agli altri punti, per agganciare i testi
Nel nostro esempio abbiamo agganciato le etichette P e P' rispettivamente al punto principale e a
quello riflesso sull'asse x.
Ripetiamo il procedimento, selezionando le altre opzioni del pannello "reflect"

1
Queste trasformazioni non funzionano per le coordinate polari
2
In generale, se un oggetto viene cancellato anche tutte le direttive legate a quell'oggetto vengono automaticamente
rimosse dal catalogo

Foxes Team 13
Grafici 3D con Winplot

Vengono generati i seguenti grafici di riflessione

asse x asse y y = x (bisettrice) x+2y = 3 (retta)

Si noti che, negli ultimi due grafici, abbiamo attivato l'opzione "graph mirror" per tracciare anche la
retta di riflessione.

L'altra trasformazione rigida importante è la rotazione.


Riprendiamo il punto P(2,1) e applichiamo una
rotazione attorno all'origine di π/3 e π (half-turn).
Il pannello di controllo è molto chiaro: nel primo caso
si seleziona l'opzione "angle" e si digita "pi/3".
L'origine (0,0) è il centro di rotazione di default
Nel caso di rotazioni di π (angolo piatto) basta
selezionare l'opzione "half-turn"

Il programma aggiunge alla lista del catalogo le seguenti direttive di rotazione


rotate{(x,y) = (2,1)}; angle pi/3; center (0.0,0.0)
rotate{(x,y) = (2,1)}; angle pi; center (0.0,0.0)

Si noti che la rotazioni di π (angolo piatto) è equivalente ad una simmetria rispetto all'origine
(simmetria polare)

Foxes Team 14
Grafici 3D con Winplot

Insiemi di punti
Per inserire gruppi di punti, Winplot dispone di una funzionalità molto utile
Ad esempio si vuol generare l'insieme
I = { (xn, yn) | xn = n/10, yn = 1−n2/100 , n =1,2...10}
Poiché i punti sono trattati come singoli oggetti che occupano un entrata del catalogo, per prima
cosa si deve aumentare opportunamente la capacità del catalogo che per default è 36. Dal menu
Equa\Size of Inventory inserire un adatto valore, esempio 1001.
Aprire il generatore di punti dal menu Equa\Point\List...
Attivare l'opzione "list" ed inserire le funzioni per x e y. I punti generati avranno tutti la stessa
formattazione (colore, dimensione, ecc.) come riportato nella parte superiore del pannello. E' vero
comunque che ogni punto generato rappresenta un elemento grafico a se stante che può essere
successivamente modificato, ma è anche vero che sarebbe molto oneroso dover cambiare dopo, ad
esempio, il colore di tutti i punti. Quindi prima di generare i punti conviene sempre impostare i
formati generali quali il colore e la dimensione

Parte di
formattazione
dei punti

Importa i punti da un
programma esterno
tramite la clipboard

Parte di
generazione
dei punti

I 10 punti sono stati inseriti automaticamente nel catalogo.


Come già anticipato, ogni punto è un oggetto grafico
indipendente a cui è possibile cambiare il colore, la
dimensione, attivare le linee di proiezione ("anchors"), ecc.
E' possibile anche cancellarli. Se si vuole cancellare tutti i
punti in un solo colpo, basta selezionare il primo, premere
Shift e selezionare l'ultimo. Ora tutti gli elementi
selezionati potranno essere cancellati con il tasto "delete"

Se si vuole, si può anche effettuare la generazione dei punti in coordinate polari


Esempio, l'insieme
I = { (xn, yn) | xn = n/40, yn = π n /10, n =1,2...40}

produrrà la seguente spirale di punti

1
Il ridimensionamento del catalogo deve essere fatto sempre all'inzio della sessione di lavoro cioè a catalogo vuoto.
Diversamente si possono avere dei crash. Per questo è sempre opportuno inserire un valore adatto a contenere tutti gli
oggetti grafici (punti, rette, funzioni, curve, ecc) che prevediamo di inserire in una sessione.

Foxes Team 15
Grafici 3D con Winplot

Winplot offre l'utile possibilità di importare le coordinate (x, y) dei punti anche da altri programma
tramite la clipboard di Window
Ad esempio vogliamo generare un reticolo di punti nel dominio rettangolare
I = { (xi, yj) | xi = i/4 −1, yj = j/4 −1, i =0,1...8 , j =0,1...8 }

Per questo è conveniente preparare le coordinate in


un foglio elettronico quale Excel o Calc, mediante
semplici operazioni "copia-incolla"
Come si vede nelle due colonne A e B abbiamo
digitato le coordinate degli 81 punti.
Selezioniamo il range A2:B82 e copiamo con Ctrl+C
i dati nella clipboard
Adesso in Winplot, dal menu Equa\Point|List...,
attiviamo l'opzione "from clipboard" e, dopo avere
scelto colore e dimensione, premiamo il tasto "plot"

I bordi esterni del reticolo sono stati aggiunti


successivamente, attivando l'opzione "anchors" per i
4 punti di angolo, (1, 1) (1, -1) (-1, 1) (-1, -1),
per mezzo del tasto "edit" del pannello "Inventory"

Foxes Team 16
Grafici 3D con Winplot

Segmenti
Mediante il menu Equa/Segment è possibile creare segmenti specificando le coordinate del estremi,
sia in coordinate cartesiane (x, y) che in polari (r, t).
Il pannello di controllo, molto chiaro, offre interessanti opzioni grafiche.

(x1, y1)
aggiunge due
punti agli estremi
(x2, y2) del segmento

aggiunge una freccia all'


estremo 1, all' estremo 2
o ad entrambi

p1 p2

Come per i punti, anche ai segmenti è applicabile


l'animazione. Ad esempio, se definiamo i seguenti 6
segmenti in coordinate polari:
polar seg (1,a) to (1,a+pi/3)
polar seg (1,a+pi/3) to (1,a+2pi/3)
polar seg (1,a+2pi/3) to (1,a+pi)
polar seg (1,a+pi) to (1,a+4pi/3)
polar seg (1,a+4pi/3) to (1,a+5pi/3)
polar seg (1,a+5pi/3) to (1,a+2pi)

Otteniamo l'esagono di vettori visibile a destra

Configurando il parametro 0 < A < 2π ed attivando l'animazione "autocyc" vedremo l'esagono


ruotare attorno al suo centro nelle direzione delle frecce. Con l'animazione "autorev", invece,
l'esagono si muoverà un po' in un senso e un po' in quello contrario

Foxes Team 17
Grafici 3D con Winplot

Rette
Le rette, elemento base della geometria analica, sono ovviamente supportate, sia nella forma
implicita ax + by = c , sia nella forma esplicita y = mx + q

La forma implicita, più generale, si inserisce La forma esplicita si inserisce tramite il menu
tramite il menu Equa\Line... Equa\Explicit...
Esempio creare il grafico della retta: Esempio creare il grafico della retta:
x + 2y = 3 y = −1/2 x + 3/2

Ovviamente, in entrambi i casi, il risultato è identico sebbene il secondo pannello contiene più
opzioni di quante sarebbero necessarie per il tracciamento della semplice retta (vedremo più avanti
l'uso generale di questo pannello). Solo in un caso non è possibile usare il secondo pannello: quando
la retta è parallel all'asse y. In tal caso si deve ricorrere necessariamente al pannello della forma
implicita1
Ecco alcuni esempi di rette varie:
x + 2y = 3 (a =1, b = 2, c = 3), x = 2 (a =1, b = 0, c =2), y = 2 (a = 0, b =1, c =2)

1
Esiste anche un'altra potente modalità per disegnare le rette: tramite le equazioni parameteriche che saranno illustrate
in un successivo paragrafo

Foxes Team 18
Grafici 3D con Winplot

Con le rette in forma implicita si possono fare le operazioni di riflessione, rotazione già viste per i
punti ed in aggiunta si possono trovare le intersezioni fra due rette.
Ad esempio, troviamo l'intersezioni fra le rette di equazioni x −2y = 3 e x + y = 1
Introduciamo le equazioni con il menu Equa\Line... e, tramite il tasto "equa" del pannello
"Inventory", attiviamo la visualizzazione delle equazioni sul grafico; questo ci aiuterà a riconoscere
le rette. Attiviamo il menu Btns\Text e, aiutandoci con il mouse, posizioniamo il testo
dell'equazione vicino alla corrispondente retta.
Dal menu Two/Intersections... apriamo ora il pannello di controllo e selezioniamo le rette di cui
vogliamo calcolare il punto d'interesezione. Le cordinate del punto appaiono sotto il pulsante "next
intersection" (x = 1.66667, y = -0.66667)1

Il valore z che compare nel pannello è in realtà l'angolo α dell'interesezione fra le due rette misurato
in radianti oppure in gradi se l'opzione in basso "intersection angle z in degree" è selezionato
Con il tasto "mark point" è possibile marcare il punto d'intersezione. Il programma aggiunge al
grafico il seguente punto (x,y) = (1.66666666666667,-0.66666666666667) calcolato con la
massima precisione e indipendentemete di decimali scelti.
Un' altra utile funzione è quella di salvare i valori (x, y) in due qualunque parametri, esempio A e B,
da usarsi nelle operazioni successive

NB. Le operazioni possibili con le rette definite in froma esplicita sono molto maggiori di quelle
implicite. Basta osservare i menu dinamici One e Two nei due casi per rendersi conto della diversa
potenza elaborativa. La maggior parte di queste saranno viste in dettaglio nei paragrafi rigurdanti le
funzioni esplicite a cui, appunto, la retta esplicita apprtiene. Qui vogliamo solo evidenziare una
bella funzionalià offerta da Winplot: la risoluzione grafica delle disequazioni in due variabili.
Nel successivo paragrafo tratteremo delle equazioni lineari ma la funzionalità si applica a
qualunque tipo di disequazioni

Disequazioni lineari in x y
Risolvere il sistema di disequazioni in due variabili
⎧2 x − y < 2

⎩x + y < 2
Le soluzioni del sistema, come noto, sono i punti del piano le cui coordinate (x, y) soddisfano
contemporaneamente tutte le relazioni di disuguaglianza
Prima di tutto esplicitiamo le relazioni rispetto a y ottenendo il seguente equivalente sistema

1
Nel caso che si abbia necessità di più decimali, aumentarli dal menu Misc\Decimal Places...

Foxes Team 19
Grafici 3D con Winplot

⎧ y > 2x − 2

⎩ y < −x + 2

Dal menu Equa\Explicit..., definiamo le rette:


y = 2x − 2 , y = − x + 2
Dalla prima disequazione si deduce che i punti della
soluzione devono stare necessariamente al di sopra la retta
blu; dalla seconda si deduca che i punti devono stare al di
sotto la retta rossa. Pertando la soluzione è l'insieme
d'intersezione fra le deu regioni

Per mezzo della funzione "shading", è possibile ombreggiare le zone del piano al di sotto e al di
sopra di una data funzione. Dal menu Equa\Shade explicit inequalities... si atttiva il pannello
"shading".

above: ombreggia l'area sopra


la retta

below: ombreggia l'area sotto


la retta below above
between: ombreggia l'are fra le
due rette
between
x-interval: ombreggia solo la
striscia verticale compresa fra
xmin (left) e xmax (right)

Intersection: ombreggia solo x interval


l'intersezione delle aree

Nel nostro caso selezioniamoo la retta y = 2x − 2 con l'opzione "above" e poi premiamo "shade".
Più volte premiamo il tasto e più scura diventa l'ombreggiatura. Di solito una volta è più che
sufficiente. In caso di errori premere "delete" per rimuovere l'ombreggiatura corrente. Il grafico è
riportano a sinistra. Ora ripetiamo il processo per la retta y = − x + 2 con l'opzione "below" e
otteniamo il grafico al centro. Come si nota la parte più scura, cioè l'intersezione, è la soluzione.
Se si vuole, si può evidenziare solo l'intersezione attivando l'opzione "intersection" come si vede nel
grafico di destra.

Foxes Team 20
Grafici 3D con Winplot

Immaginiamo ora di aggiungere l' ulteriore vincolo x > 0


Il sistema di disequazioni diventa ora
⎧ y > 2x − 2

⎨y < −x + 2
⎪x > 0

Seguendo il metodo prima visto dovremmo aggiungere la nuova retta x = 0, ma questo non è
possibile in quanto non è esplicitabile rispetto a y.

Per questo viene utile il vincolo "x interval" che in pratica ci


permette di ombreggiare strisce di piano all'interno di rette
verticali. Ripetendo l'esempio precedente ed aggiungendo il
vincolo 0 ≤ x ≤ 5 si perviene in successione ai seguenti
grafici

Come si vede chiaramente, la soluzione è diventata, ora, la regione triangolare individuata dalle tre
rette

Foxes Team 21
Grafici 3D con Winplot

Equazioni e grafici
Come noto ogni equazione in due variabili x, y può evere infinite soluzioni che, rappresentate in un
RCO, formano un grafico. Lo studio dei grafici generate da equazioni in due variabili è l'oggetto
delle geometria analitica. Winplot contiene molte e potenti funzionalità per aiutare questo studio.
Le equazioni possono essere introdotte dal menu Equa in diverse forme.
1. Esplicite;
sono quelle la cui equazione può essere scritta y = f(x)
rappresentano la popolare famiglia delle cosidette funzioni
2. Parametriche;
sono scritte mediante 3 diverse funzioni nel parametro "t":
γ ≡ { x = f(t) , y = g(t) } oppure γ ≡ { ρ = f(t) , θ = g(t) } se in corrdinate polare
generalmente l'insieme γ rappresenta una curva piana
3. Implicite;
rappresentano la più generale forma di equazione in due variabili f(x , y) = 0
4. Polari;
sono scritte nella forma ρ = f(θ)
possono considerasi una variante di quelle esplicite in coordinate polari1.

Dal punto di concettuale le diverse forme sono equivalenti ma, al contrario, sono assai differenti dal
punto di vista computazionale. Le forme esplicite 1), 2), 4) sono sempre efficienti mentre la forma
3) può richiedere molto più tempo di elaborazione. Quando possibile, si deve sempre cercare di
convertire una forma implicita in una qualunque delle altre forme: esplicita, parametrica o polare.

Per inserire un equazione selezionare dal menu


"Equa" la corrispondente voce:
1) Explicit...
2) Parametric...
3) Implicit...
4) Polar...

oppure, più velocemente, premere i tasti F1, F2, F3 o F4 rispettivamente

1
In Winplot, per motivi di compatibilità, i simboli greci "ρ" e "θ" sono sostituiti rispettivamente con "r" e "t"

Foxes Team 22
Grafici 3D con Winplot

Equazione esplicita
Iniziamo dalle più semplici e popolari ossia le funzioni esplicite.
Dal menu Equa\Explicit, oppure con il tasto F1 si richiama il pannello seguente

Il dominio della funzione


coincide generalmente con inserire qui la funzione
la massima ampiezza esplicità. Es: x^2
dell'intervallo x della
finestra. L'intervallo può rende la funzione
essere ristretto attivando periodica (con opzione
l'opzione "lock interval" ed "lock interval" attiva)
inserendo gli opportuni
limiti ("low x", "high x")
aumenta la densità dei
Colore e spessore del grafico 1 punti del grafico (1)

-5 < x < 5 0 < x < 1.5 (con lock) 0 < x < 1.5 (con lock+periodic)

Esempio: tracciare il grafico della funzione y = (2x3 − 3x2 − x)e−x

Inseriamo la funzione (2x^3-3x^2-x)*exp(-x)

Probabilmente il grafico visualizzato sarà simile a quello di destra. Ci accorgiamo che la parte a
destra del grafico non è completamente visualizzata. Cerchiamo pertanto di completare i grafico
La prima cosa che ci colpisce cercando nel menu è il comando View\Fit window... che, in teoria,
potrebbe aiutare a far rientrare il grafico attivo nelle finestra. Tuttavia il tentativo è molto deludente
e il motivo sta nel fatto che la funzione tende a − ∞ già per modesti valori negativi di x

1
I parametri "plot density" e "step tolerance" sono già impostati da Winplot per una visualizzazione corretta e
raramente devono essere ritoccati.

Foxes Team 23
Grafici 3D con Winplot

Rimettiamo tutto a posto con il "magico" tasto "home" e


aiutiamoci con lo zoom e lo shift per ottenere un grafico
pianamente visibile.
Notiamo che il grafico si svolge prevaletemente nella
striscia -2 < y < 2 e che la parte superiore e inferiore
dell'area del grafico sono inutilizzate. Per poter sfruttare
lo spazio dovremmo espandere solo l'asse y, scegliendo
un diverso fattore di scala per y e x.
Questo non può esser fatto con lo zoom ma
modificando la vista della finestra con il comando
View\View...

Attiviamo, inoltre, la griglia inserendo l'intervallo dx = 2 e dy = 0.5 (nota che per poter visualizzare
correttamente la scala y dobbiamo inserire almeno 1 decimale).

Ora che il grafico è ben posizionato passiamo a calcolare gli attributi principali dell funzione, cioè i
sui estremi e gli zeri (più altri punti speciali che vedremo in seguito). Quasi tutte le operazioni
numerice e grafiche che si possono fare su una singola funzione f(x) sono raccolte nel menu "One"

Zeri
Dal menu One\Zeros... si attiva il pannello di ricerca degli zeri o radici dell'equazione f(x) = 0

Se uno zero viene trovato il programma lo


indica con una piccola freccia rossa mentre
il valore appare nel pannello stesso.
Tramite il tasto "next" è possibile ricercare
in successione tutti gli zeri nell'intervallo
visualizzato.

Con il tasto "mark pt" si può marcare lo zero con un punto: in pratica il programma aggiunge al
grafico un punto con le coordinate dello zero visualizzato.
Un altra utile funzionalità è il tasto "save x as" che consente di salvare il valore corrente in un
qualunque parametro (A, B, ecc) per potere essere riusato successivamente.

Foxes Team 24
Grafici 3D con Winplot

Nel nostro esempio troviamo 3 zeri: uno negativo; uno (banale) coincidente con l'origine ed infine
uno positivo pari a circa 1.78078. Poichè restringiamo il nostro studio al semiasse positivo delle
ascisse, decidiamo di marcare questo zero e salvarlo nel parametro A.
Il pannello "Inventory" conterrà ora i seguenti oggetti
y = (2x^3-3x^2-x)*exp(-x)
(x,y) = (1.78077640640442,0.00000000000000)

Il primo è la definizione della nostra funzione f(x) mentre il secondo è il punto dello zero. Si nota
che il punto è stato calcolato con la massima precisione possibile anche se il numero dei decimali in
visualizzazione è stato impostato a 5.

L'algoritmo di calcolo degli zeri di Winplot è allo stesso tempo robusto, preciso e semplice da
usare1. Tuttavia la ricerca delle radici deve partire sempre da uno studio analitico della funzione,.
Non si conoscono, infatti, programmi completamente automatici per la separazione delle radici
delle equazione generale f(x) = 0 (ad eccezione forse dei polinomi). Quanto sia importante lo studio
analitico di una funzione per la ricerca degli zeri lo dimostra il seguente semplice esempio

Esempio 1. Trovare gli zeri della funzione: f ( x) = x 3 − log( x) − 10


Tracciamo il grafico nell'intervallo 0 < x < 3.
Per poterlo visualizzare correttamente, dobbiamo
apportare alcune modifiche alle scale a alla vista
mediante i controlli View e Grid

Se attiviamo la ricerca degli zero con One\Zero, il programma trova l'unico zero per x ≅ 2.209.
Dovremmo concludere, quindi, che esiste un solo zero della funzione nell'intervallo [0 , 3]. Ma
sbaglieremmo, perché una semplice analisi rivela la presenza di almeno due radici.

Infatti prendendo i limiti


(
lim+ f ( x) = lim+ x 3 − log( x) − 10 = +∞
x →0 x →0
)
lim f ( x) = lim (x 3
− log( x) − 10 ) = +∞
x → +∞ x → +∞

Inoltre essendo f(1) = -9, negativo, e la funzione


continua, devono quindi esistere almeno due zeri -
x1 e x2 - localizzati rispettivamente a sinistra e a
destra del punto 1

1
Molto probabilmente Winplot usa due tipi di algoritmi per il calcolo degli zeri reali; il primo basato sul metodo
dicotomico per la separazione degli zeri, e un secondo metodo, di ordine superiore, per incrementare la precisione.

Foxes Team 25
Grafici 3D con Winplot

La radice x1 è molto difficile da individuare; ma poiché sappiamo che "deve" esistere concentriamo
la nostra ricerca solo attorno l'origine.
Inseriamo nei controllo "View" i seguenti
parametri

Se ripetiamo la ricerca tramite il comando One\Zeros, il programma riesce ora ad isolare


correttamente lo zero "nascosto" x ≅ 0.0000454

Estremi
Dal menu One\Extremes... si attiva il pannello di ricerca degli estremi della funzione f(x)
Il funzionamento è simile a quello degli zeri, solo che
in questo caso vengono ricercati i massimi e minimi
relativi nell'intervallo della finistra. Premendo il tasto
"next extreme" si passa ciclicamente al successivo
estremo

Nel nostro esempio esistono 3 estremi, di cui 2, un minimo e un massimo, nel semi-asse positivo
delle ascisse. Premendo il tasto "mark pt" marchiamo gli estremi con due punti che, per chiarezza,
coloriamo in modo diverso. Il catalogo adesso conterrà le seguenti entrate
y = (2x^3-3x^2-x)*exp(-x)
(x,y) = (1.78077640640442,0.00000000000000)
(x,y) = (0.84592373215348,-0.76477330168267)
(x,y) = (3.80924351603682,1.40096952133463)

Gli ultimi due punti sono gli estremi, il minimo e il massimo, trovati. Si nota dal grafico che
l'ultimo punto coincide anche con il massimo assoluto della funzione in tutto x

Foxes Team 26
Grafici 3D con Winplot

Flessi
A seconda della concavità un grafico può avere curvatura
curvatura positiva o negativa. I punti di flesso indicano 0
dove la curvatura cambia di segno, ovvero dove la
curvatura vale 0. Non esiste un comando specifico per i curvatura
curvatura
flessi, ma il problema può essere risolto agevolmente −
+
con altri strumenti.

Lo "Slider", attivabile dal menu One\Slider, è uno strumento grafico molto potente e versatile.
In sintesi si tratta di cursore mobile che viene fatto scorrere sopra la curva f(x) per mezzo di una
barra. Ad ogni posizione (x, f(x)) del cursore, il programma può calcolare la pendenza e la
curvatura, visualizzare la tangente, la secante, il cerchio osculatore e perfino il polinomio di Taylor
fino al 9° grado

Per la ricerca dei flessi ci serviremo solo della retta tangente e del cerchio osculatore che si attivano
con l'opzione "tangents" e scegliendo degree = 2. Muovendo il cursore, sia la retta che il cerchio
(che qui appare, in realtà, di forma ellittica a causa dei diversi fattori di scala x-y) cambiano
conseguentemente. Il punto di flesso si trova quando il cerchio degenera in una retta sovrapposta
alla tangente, come accade nel grafico centrale.

(x , y) = (4.89600 , 1.18063) (x , y) = (5.4720 , 0.97671) (x , y) = (6.76800 , 0.54721)


Slope = −0.3324, Curv. = −0.1037 Slope = −0.36383, Curv. = 0.0014 Slope = −0.2790, Curv. = 0.08695

Foxes Team 27
Grafici 3D con Winplot

Integrale definito
L'integrazione di una funzione f(x), sia numerica che grafica, b

viene effettuata dal controllo "integration" richiamabile dal ∫ f ( x)dx


menu One\Mesurement\Integration..., ovvero, più velocemente, a

mediante il tasto F7

Ad esempio vogliamo calcolare l'area positiva della funzione f(x) dell'esercizio precedente,
compresa fra il punto di attraversamento dello zero e x = 20 . Come nota l'area è data da
20
dove A =1.78077640640442, che abbiamo
I = ∫ ( 2 x 3 − 3 x 2 − x )e − x dx precedentemente salvato
A

Inseriamo gli estremi d'integrazione, lower limit = A e upper limit = 20 e scegliamo metodo
"parabolic" d'integrazione (Cavalieri-Simpson). Il programma può visualizzare l'area d'integrazione
mediante l'opzione "overlay". Premiamo il tasto "definite" per calcolare e visualizzare l'integrale

Il valore dell'integrale calcolato è di circa I ≅ 5.84913... con tutte le cifre significative esatte. Per
rimuovere la griglia dell'integrale, deselezionare "overlay" e premere "definite" una seconda volta.
E' interessante dal punto di vista didattico vedere graficamente l'integrazione anche degli altri
metodi. Per far questo inseriamo un valor molto basso d'intevalli (esempio, subintervals = 20) e
ripetiamo il calcolo selezionando, di volta in volta, un diverso metodo.

"left-endpoint": I ≅ 5.76161 "midpoint":: I ≅ 5.89361 "right -endpoint": I ≅ 5.76163

Foxes Team 28
Grafici 3D con Winplot

"trapezoidal": I ≅ 5.76162 "parabolic":: I ≅ 5.84962 "random": I ≅ 5.74360

Altro esempio: calcolare l'integrale di f(x) = (1+x)e-x per 0 < x < 6

Inseriamo la funzione con Equa\Explicit e posizioniamo il grafico aiutandoci con i comandi zoom e
shift. Aggiustiamo anche i fattori di scala come visibile da pannello "grid"

Per mostrare meglio i metodi d'integrazioni , scegliamo subintervals = 6

"left-endpoint": I ≅ 2.47292 "midpoint":: I ≅ 1.97847 "right -endpoint": I ≅ 1.49027

"trapezoidal": I ≅ 1.98159 "parabolic":: I ≅ 1.97951 "random": I ≅ 5.74360

Ovviamente, impostando un numero si sub-


intervalli maggiore la precisione incrementa
notevolemente. Ad esempio, con subintervals =
1000, l'integrale diventa I ≅ 1.98017, con
precisione superiore a 1E-5

Foxes Team 29
Grafici 3D con Winplot

Funzione integrale
Attraverso il controllo d'integrazione è possibile generare il grafico x

della funzione integrale F(x), detto anche integrale indefinito, di F ( x) = ∫ f ( x)dx


una funzione f(x). a

La costante a viene assunta pari al limite inferiore indicato nel campo lowe limit (default 0)
Premendo il tasto "indefinite", Winplot genera utomaticamente l'entrata nel catalogo dell'integrale
indefinito F(x) della funzione per a = 0.
y = (1+x)*exp(-x)
y = indef{(1+x)*exp(-x) @ 0.00000}

La funzione f(x) e la sua primitiva F(x) sono "agganciate". Se ad esempio la funzione f(x) viene
modificata, anche la sua primitiva si modifca di conseguenza.
Ad esempio modifichiamo la funzione f(x) inserendo il parametro m: f(x) = y = (1+m*x)*exp(-x) ,
con -1 < m < 1 e vediamo l'effetto contemporaneo sulla f(x) e F(x)

m= −0.9 m= 0 m= 0.5

Foxes Team 30
Grafici 3D con Winplot

Funzione inversa
Il menu "Two/combinations" permette costruire altri grafici funzioni a partire da 2 funzioni date
f(x) e g(x). Le combinazion che possono essere fatte sono:
f(x)+g(x) , f(x)−g(x) , f(x)/g(x) , f(x)*g(x) , f(x)g(x) , f(g(x)).
L'ultima, forse la più interessante, è la nota composizione di funzione.
Un sua applicazione permette di verificare se una funzione è inversa dell'altra. Infatti, per
definzione deve essere: g(x) = f -1(x) ⇔ f(g(x)) = x , per x appartenete al dominio comune delle
due funzioni.
Prendiamo ad esempio f(x) = exp(x2) , g(x) = (ln(x))½ . Proviamo che sono inverse
La funzione f(x) è definita per ogni x, mentre la g(x) è definita per x ≥ 1, che è anche il dominio in
cui è valida la formula d'inversione.
Dopo aver inserito le due funzioni richiamare il
pannello "combinations"; selezionare le due
funzioni e premere "f <-- g"

f(x)
g(x)

traccia il grafico della


funzione composta
f(g(x))

Si osserva che il grafico, creato con la direttiva


plug {y = sqr(ln(x))} --> {y = exp(x^2)}
rappresente appunto la bisettrice del I e III quadrante nel dominio, x ≥ 1, della funzione composta
Si fa notare che la stessa operazione, con l'ordine scambiato g(f(x)) , può non dare lo stesso grafico.

Selezioniamo g(x) nel primo campo e f(x) nel


secondo. Questa volta il grafico dela funzione
composta è molto diverso

Tuttavia, se si tiene conto della restrizione nel dominio x ≥ 1, allora il grafico della funzione
composta g(f(x)) è ancora equivalente alla bisettrice y = x
Quindi abbiamo verificato che le funzioni f(x) e g(x) sono una l'inversa dell'altra per x ≥ 1

Data una funzione f(x) e' possibile tracciare il grafico della sua funzione inversa? La risposta è si.

Foxes Team 31
Grafici 3D con Winplot

Osserviamo che, almeno nel campo di definizione, le due funzioni sono simmetriche rispetto alla
bisettrice y = x. Ma in un precedente capitolo, abbiamo già trovato, il comando che effettua la
simmetria rispetto alla bisettrice nel menu One\Reflect...

Esempio. Tracciare il grafico dell' inversa della funzione di Gauss f(x) = exp(-x2)
La f(x) è invertibile nei tratti in cui è strettamete monotona. Dal grafico vediamo che f(x) è
montonoa e quindi invertibile per x > 0.
Pertanto modifichiamo il grafico inserendo il vincolo
0<x<3

Ora, appriamo il pannello "reflect" generiamo il grafico riflesso attorno alla bisettrice

La curva ottenuta per riflessione (rossa) è effettivamente la funzione inversa delle funzione di Gauss
(blu) per y > 0 e, quindi, per 0 < x < 1

Valori numerici della funzione inversa


Come già dette, le funzioni ottenute attraverso un
comando direttivo non sono direttamente editabili nè
visualizzabili. E possibile però ottenere una
tabulazione della funzione invers di Gauss mediante
il comando "Table" del pannello "Inventory". La
finestra mostra la lista dei punti (x, y) della funzione
tabulata con un passo costante: Se si desidera si può
scegliere il passo più opportuno dal menu "params".
La lista può essere importata e salvata in un foglio
elettronico con i normali comandi di taglia-incolla di
Window (Ctrl+C, Ctrl+V)

Foxes Team 32
Grafici 3D con Winplot

Funzione derivata
E' possibile ottenere il grafico della derivata di una funzione esplicita? Ovviamente si, solo che il
comando non si trova più nel menu ma nel pannello "Inventory" 1

Selezionando una funzione f(x), esempio


arctan(x), e premendo il tasto "derive"
il programma genera, il grafico della sua
derivata prima f'(x).

Ripetendo la stessa operazione con la funzione derivata f'(x), il programma genera la derivata f''(x)
e così via. Si nota che sono state usate le direttive "der1" e der2"
y = arctan(x)
der1{y = arctan(x)}
der2{y = arctan(x)}

Facciamo notare che anche queste direttive non sono direttamente editabili, ma sono "agganciate"
alla funzione arctan(x); se questa viene modificata, anche le derivate si modificano di conseguenza.

Tabella
Il tasto "table" del pannello "inventory" esegue la tabulazione dell funzione attualmente selezionata.
Si tratta di una funzionalità molto utile per esportare i dati di una funzione in un foglio elettronico.
Ad esempio per esporatre la funzione f(x) = arctan(x) e le sue derivate del caso precedente
selezioniamo la funzione e premiamo "table"

1
Non sembra esserci una ragione precisa che giustifichi la presenza del comando "derive", così come di altre utili
comandi fuori menu quali "web", "family" e "table", all'interno del pannello "inventory". Probabilmente si tratta delle
prime funzionalità sviluppate in Winplot

Foxes Team 33
Grafici 3D con Winplot

Il numero dei passi ("num steps") e l'intervallo di campionamento ("low" - "high") può essere
impostato dal menu "param" della finestra "table" (se non diversamente impostato l'intervallo
coincide con quello dell'asse x della finestra del grafico). Ora selezioniamo tutti i dati (Ctrl+A) e
copiamoli nella clipboard di Window (Ctrl+C)
Adesso apriamo il foglio elettronico, ad esempio Excel o Calc, ed incolliamo i dati (Ctrl+V)

CRTL+C CRTL+V

Clipboard

Ripetiamo la stessa procedura per la funzione derivata prima e seconda. Alla fine le e3 liste di
coppie (x,y) sono nel foglio elettronico pronte per altre elaborazioni numeriche e grafiche
Il grafico seguente, ad esempio, è stato riprodotto in Excel.

1.5

0.5

0
-4 -3 -2 -1 0 1 2 3 4
-0.5
y
-1
y'
y''
-1.5

Foxes Team 34
Grafici 3D con Winplot

Famiglia di funzioni
Il tasto "family" del pannello "inventory" general un famiglia di funzioni a partire da quella
selezionata, che vien chiamata generatrice o funzione padre. Affinche il comano abbia effetto è
necessario che la funzione padre contenga almeno un parametro oltre alla variabile x.
Data ad esempio la funzione y = arctan(m2 x) , vogliamo traccire la famiglia di funzioni che si
ottengono quando m varia fra 0 e 2.

Dopo avere inserito la funzione esplicita


y = arctan(m2 x) (senza curarci per il momento
del parametro m), premiamo il tasto "family"
per richiamare il pannello di controllo seguente
Il parametro m viene
fatto variare da 0 a 2 in
10 passi. Ad ogni
passo, il parametro
viene incrementato di
Δm = (2-0)/10 = 0.2
Alla fine, il numero di
funzioni tracciate sarà
pari a 11

Per generare la famiglia premere il tasto "define"; per rimuoverla premere il tasto "undefine"
Winplot aggiunge la direttiva "family" a fianco della definizione della funzione padre:
y = arctan(m^2*x) family[ m = 0.000 to 2.000; 10 steps]

Altro esempio: Data la funzione y = ax3 − x + 1, vogliamo traccire la famiglia di funzioni che si
ottengono quando m varia fra 0 e 1

Qui il parametro m varia con la formula


mi = Δm i
con i = 0, 1,...21, e Δm = 0.05

NB. Le etichette sono state aggiunte a mano, come testo libero.

Foxes Team 35
Grafici 3D con Winplot

Web
Il comando Web, attivabile con l'omonomo tasto dal pannello "inventory", genera la traiettoria del
processo iterativo "punto unito". Il nome web (ragnatela) deriva dalla forma della traiettoria simile,
appunto, alla tela di un ragno1.
Data la seguente equazione x = f(x), il metodo del punto unito cerca di trovare la soluzione tramite
il processo iterativo xn+1 = f(xn) partendo da un'approssimazione iniziale x0, detto punto d'innesco
(seed). Se la successione dei valori {xn} è convergente, allora la soluzione viene trovata con un
errore |x − xn | < ε piccolo a piacere. La successione dei punti (xn-1 , xn)→ (xn , xn)→ (xn , xn+1)
costituisce la traiettoria, ovvero la cosidetta "web".
Vediamo un esempio. Studiare la convergenza del metodo applicato all'equazione x = exp(−x2)

Il valore d'innesco x0 (seed) può


essere costante o dipendente da
un parametro (es. A).
In questo caso inseriamo il
valore costante x0 = 0
"Steps" = 20 fissa il numero
max di iterazioni.
L'opzione "arrow" permette di
tracciare le freccie sui segmenti
della triettoria

La successione, in questo caso è convergente alla soluzione x ≅ 0.6529...


Tuttavia può accadere che la successione sia non convegente. In quest'ultimo caso può essere
divergente oppure oscillante. La scelta del punto d'innesco può influenzare il carattere della
successione, come mostrano questi esempi

x0 = 0.5 , successione prima divergente e poi oscillante x0 = 0 , successione prima convergente e poi oscillante

Come si vede se il punto d'innesco è x0 = 0, la successionecomincia a convergere per poi divenire


oscillante.
Se invece si parte da x0 = 0.5, molto più vicino alla soluzione, allora la successione inizia a
divergere per poi ricadere nella stessa oscillazione infinita

1
Si tratta di una funzionalità piuttosto insolita nei programmi di grafica. Sebbene nella pratica sia usata assai raramente,
la sua importanda didattica è rilevante e vale la pena di studiala.

Foxes Team 36
Grafici 3D con Winplot

Altri esempi di processi terativi sono i seguenti

f (x)= exp(x/3)-1, x0 = 5 , successione convergente alla f (x)= exp(x/3)-1, x0 = 6 , successione divergente.


soluzione banale x = 0. La soluzione x ≅ 5.711 non verrà mai raggiunta
La soluzione x ≅ 5.711 non verrà mai raggiunta

f (x)= (1+x)/(2+exp(-x)), x0 = -0.5 , successione f (x)= (1+x)/(2+exp(-x)), x0 = 1.7 , successione


convergente alla soluzione x ≅ 0.6588. convergente alla soluzione x ≅ 0.6588. L

f (x)= sqr(1-x^2), x0 = 0.4 , successione sempre oscillante f (x)= sqr(1-x^2/2), x0 = 1.2 , successione convergente
con qualunque punto d'innesco. alla soluzione x ≅ 0.816 da qualunque punto 0 < x0 < 1.4

Foxes Team 37
Grafici 3D con Winplot

Intersezione non lineare


Analogamente a quanto precedentemente visto per l'intersezioni di rette, si ⎧ y = f ( x)
possono ricercare e calcolare le intersezioni fra due funzioni non lineari con ⎨
il medesimo strumento richiamabile dal menu Two\Intersections... ⎩ y = g ( x)
Solo che nel caso di funzioni non lineari viene usato un procedimento iterativo per
l'approssimazione delle soluzioni del sistema non-lineare.
Ad esempio, calcoliamo le intersezioni delle due funzioni f(x) = 3/(1+x^2), g(x) = x^2/4.

Premendo "next
interesection" si
trovano in
sequenza i 2 punti
d'intersezione,
le cui ascisse sono
salvate nei due
parametri A e B
per future
elaborazioni

Le intersezioni, prese dal catalogo con la massima precisione possibile, sono:


(x,y) = (-1.73205080756888, 0.75000000000000)
(x,y) = ( 1.73205080756888, 0.75000000000000)

Punti del grafico


Se si vuole si può aggiungere uno o più punti ad un grafico di una funzione f(x) mediante il
comando One\Plot a list...

Il valore x puo essere un singolo valore o una


lista di valori separati da spazio o virgola

I punti sono generati dalla direttiva


points {y = a*x*sin(x) @ -4 -3 -2 -1 0 1 2 3 4}
Come si vede, l'intero insieme di punti occupa una sola entrata del catalogo, diversamente da quanto
sarebbe accaduto se inserivamo i punti per mezzo del menu Equa/Point/List...
Come ogni altra direttiva, anche questa è "agganciata" alla funzione. Se la funzione viene
modificata, ad esempio tramite il parametro "A", i punti seguiranno la curva stessa.

Foxes Team 38
Grafici 3D con Winplot

Area fra due curve


Calcoliamo l'area racchiusa fra le due funzioni f(x) = 3/(1+x^2), B

g(x) = x^2/4 definite nell'esempio precedente. Come noto l'area si S = ∫ [ f ( x) − g ( x)]dx


calcola con il seguente integrale definito A

Il calcolo numerico i questa formula viene effettuato con il comando Two\Integrate...

L'intevallo d'integrazione è
stato impostato con le
ascisse dei punti A, B che
avevamo salvato prima nei
corrispondenti parametri
"lower limit" =A
"upper limit" =B
Selezioniamo la formula
dei trapezi e quella
parabolica; attiviamo
"overlay" e premiamo
"definite"

Entrambe gli algoritmi di quadratura, trapezoidale e parabolica, danno lo stesso valore 5.41716,
quindi abbiamo trovato l'area con una precisione almeno migliore di 1E-5
Calcoliamo ora il volume dei solidi di rivoluzione ottenuti facendo ruotare la sezione precedente,
attorno all'asse x e all'asse y rispettivamente1. Usiamo il comando Two/Volume of revolution...

1
I solidi visualizati sono stati creati con Winplot 3D.

Foxes Team 39
Grafici 3D con Winplot

Equazione parametrica
Le curve nel piano 2D sono, in generale, descritte da 2 equazioni ⎧ x = f (t ) ⎧ ρ = f (t )
parametriche dipendenti da un solo parametro, solitamente "t", che ⎨ ⎨
varia con continuità in un certo intervallo tmin ≤ t ≤ tmax. ⎩ y = g (t ) ⎩θ = g (t )
La prima forma si riferisce alle coordinate cartesiane mentre la seconda alle coordinate polari.
Le curve parametriche più semplici da studiare sono ovviamente quelle di primo grado.
[ x = mx t + x0 , y = my t + y0 ] , coordinate cartesiane (i)
[ ρ = k t + r0 , θ = ω t + θ0 ] , coordinate polari (ii)

La semplicità delle forme non necessariamente si riflette nella semplicità delle curve: ad esempio in
coordinate cartesiane la forma (i) rappresenta un segmento di retta ma la forma (ii) rappresenta una
spirale di Archimede. Vediamo come tracciarle velocemente con Winplot.
Dal menu 2 Equa\Parametric... attivare il pannello di controllo. Vogliamo disegnare un segmento di
retta che parte dal punto A(-1, -2), nella direzione data dal versore D = (cos(a), sen(a))T , e di
lunghezza 6. il parametro "a" è variabile nell'intervallo 0 ≤ a ≤ 2π.

x
y

Arrow

Le funzioni parametriche del segmento, così come appaiano nel catalogo sono:
(x,y) = (cos(a)*t-1 , sin(a)*t-2) ; 0 <= t <= 6
polar seg (0 , 0) to (1 , a)
(x,y) = (-1 , -2)

Nel grafico abbimo aggiunto anche altri semplici elementi quali: un segmento polare per
rappresentare il versore D ed un punto per rappresentare il punto iniziale A. Notare che, in questo
particolare caso in cui il vettore direzione è un versore ( cioè ||D|| = 1), il parametro "t" coincide
esattamente con la lunghezza del segmento.
Nota. L'opzione "arrow" permette aggiungere una freccia in qualunque punto della curva. Questo
può essere molto utile per mostrare il senso di orientamento della curva.
Se ora cambiamo il valore del parametro "a", dopo avere impostato i sui limiti, possiamo osservare
il movimento dell segmento di retta, parallelo a quello del versore. Osserviamo anche che,
diversamente dalle rette esplicite, le rette parametriche possono andare in qualunque direzione.
Se parametro assume valori negativi il segmento andrà nella direzione opposta al versore D.

Foxes Team 40
Grafici 3D con Winplot

Vogliamo disegnare ora una spirale lineare (o di Archimede) avente fattore di espansione k = 1 e
velocità angolare ω = 2π

ρ(t)
θ(t)

Notare che abbiamo attivato l'opzione "polar" per introdurre la seguente formula
(r,t) = (t , 2pi*t); 0 <= t <= 3
polar seg (0,0) to (a , 2pi*a)
Notiamo che, per 0 ≤ t ≤ 3 , la spirale compie 3 giri esatti e il raggio passa da 0 a 3; ogni volta che
il parametro incrementa di 1, la spirale compie un giro e il raggio aumenta di 1. Questo è la
conseguenza della linearità delle funzioni.
Abbiamo modificato anche il segmento polare in modo da farci seguire il percorso del punto che si
evolve sulla spirale. Attivando l'animazione "autorev" del parametro "a", con 0 ≤ a ≤ 3, si potrà
creare un movimento, semplice, ma di grande impatto didattico.

Non è possibile tracciare la scala "t" lungo la curva per ovvi motivi.
Per conoscere la coordinate (x, y) relative ad un certo valore di "t" si può ricorrere allo strumento
"Slider", già visto precedentemente.

Facendo scorrere la barra, il


cursore "+" rosso si sposta
lungo la curva e le tre
coordinate (t, x, y) appaiano
visualizzate nell pannello.
Se si vuole, si può marcare
con un punto una o più
coordinate con il tasto "mark
point"

Foxes Team 41
Grafici 3D con Winplot

Le curve parametriche più usate sono forse l'ellisse e la circonferenza


Entrame hanno possono essere scritte nella forma:
[ x = a cos(t) + x0, y = b sin(t) + y0] con 0 ≤ t ≤ 2π
dove a e b sono i semiassi dell'ellisse e (x0, y0) son le coordinate del centro. L'ellisse è riferita ai
propri assi. Se a = b = r, allora si ha, come noto, una circonferenza. Se al parametro t di una delle
due funzioni viene aggiunto una costante, allora l'ellisse appare ruotata e sciacciata..
a
r
b
x0, y0 x0, y0
x0, y0

Per visualizzare l'effetto inseriamo le equazioni [x = 2 cos(t+a) , y = 3sin(t) ], dove a è un


parametro tale che 0 ≤ a ≤ 2π

a= 0 a= 1 a= 1.57 a= 4.0

Se azioniamo l'animazione "autocyc" proveremo l'illusione ottica di un disco inclinato che ruota
attorno all'asse verticale z.
Le equazioni parametriche possono descrivere praticamente ogni curva del piano. La loro
flessibilità è dovuta alla separazione fra le due coordinate x, y; questo ci permette di pensare ad ogni
coordinata indipendentemente dall'altra e di applicare il principo di sovrapposizione dei moti.
Ad esempio sappiamo già che un punto che si muove con velocità costante ω su una circonferenza
di raggio r è descritto dalle seguenti equazioni: [x = r sin(ωt), y = r cos(ωt)]. Se ora la circonferenza
trasla nella direzione x con velocità costante v, il moto totale del punto è descritto dalle semplici
equazioni: [x = r sin(ωt) + vt, y = r cos(ωt)]. Vediamo di dimostrarlo con Winplot
Assumiamo ω = 1 e r = 1 per semplicità. Inseriamo prima
di tutto il punto con le sue equazioni del moto. Osserviamo
che la lettera "t" inserita nelle formule è un parametro1 che
non ha niente a che vedere con la variabile "t" delle
formule parametriche. Il suo valore verrà cambiato
attraverso lo strumento di animazione.
Impostiamo quindi un opportuno intervallo del parametro
"T", ad esempio -10 ≤ T ≤ 10 e uno per la velocità "V", ad
esmpio 0 ≤ V ≤ 2

1
In effetti si poteva inserire una qualunque altra lettera: "a", "b",...ecc. ma la "t" ricorda meglio il tempo

Foxes Team 42
Grafici 3D con Winplot

Fissiamo diversi valori della velocità , ad esempio v = 0.7, 1, 1.5, e per ognuno di essi facciamo
partire l'animazione "autocyc" del parametro "T". Vedremo il punto muoversi nella finestra del
grafico con uno strano moto oscillante , da sinitra a destra e, qualche volta, perfino indietro.
In effetti si tratta di una traiettoria molto famosa, la cosidetta cicloide, studiata in passato da
matematici, fisici e ingegneri.
Aggiungiamo al grafico la triettoria del punto.
x = sin(t)+v*t
y = cos(t)

L'intevallo della variabile "t" deve essere ampio abbastanza per


coprire tutta la larghezza della finestra del grafico

Variando la velocità "V", ad esempio 0.3, 0.5, 0.8, 1, 1.5, 2, si possono osservare differenti ed
interessanti traiettorie. Alcune contengono cappi, altre sono lisce e continue, altre contengono
cuspidi.

v = 0.3 v=1

v = 0.5 v = 1.5

v = 0.8 v=2

Sostegno.
I grafici cartesiani x-y ottenuti dall'equazioni parametriche si dicono anche "sostegni". Una tecnica
per ricavare l'equazione cartesiana del sostegno a partire dalle sue equazioni parametriche consiste
nel cercare di eliminare la varibile "t". Esempio: elevando al quadrato e sommando le equazioni
parametriche di una traiettoria circolare di raggio unitario [ x = cos(t), y = sen(t)] si ottiene:
x2 + y2 = cos2(t)+sen2(t) = 1 da cui l'equazione cartesiana del cerchio x2 + y2 = 1
Dobbiamo osservare, però, che, in generale, il sostegno non equivale alla traiettoria: ad esempio la
traiettoria di equazioni parametriche [ x = cos(t2+1), y = sen(t2+1)] ha come sostegno lo stesso
cerchio unitario della traiettoria precedente ma, in realtà, viene percorsa in modo totalmente
differente.

Foxes Team 43
Grafici 3D con Winplot

Cuspidi
La presenza di cuspidi è molto comune nelle curve parametriche. Esse possono comparire anche se
le singole funzioni f(t) e g(t) non le contengono.
Esempio la seguente famiglia di super-asteroidi

[ (cos t)3 , (sin t)3 ] 0 ≤ t ≤ 2π [ (cos t)5 , (sin t)5 ] 0 ≤ t ≤ 2π [ (cos t)7 , (sin t)7 ] 0 ≤ t ≤ 2π

Le curve parametriche possono essere derivate [f'(t), g'(t)] come le alre funzioni. Ecco i grafici delle
derivate dell curve parametriche dell'esempio precedente

[ -3 sin t (cos t)2 , 3(sin t)2 cos t] [ -5 sin t (cos t)4 , 5(sin t)4 cos t] [ -7 sin t (cos t)6 , 7(sin t)6 cos t]
0 ≤ t ≤ 2π 0 ≤ t ≤ 2π 0 ≤ t ≤ 2π

Tangente alla curva


Il significato geometrico della derivata è strettamente connesso a y
quello di tangente alla curva.
Infatti, vettore T di cordinate [f'(t), g'(t)], traslato nel punto T1
P[f(t), g(t)], è tangente alla curva con la freccia orientata nel P
senso del moto dei valori crescenti di "t". Se la curva rappresenta x
lo spazio percorso e "t" è il tempo allora il vettore T è chiamato
T= [ f '(t) , g '(t) ]
velocità tangenziale

Curve regolari
Può accadere che per particolari punti la derivata si annulli completamente? La risposta è si.
Quando si verifica che [f '(t) , g '(t)] ≠ [0 , 0] per tutti i punti interni all' intervallo di definizione
allora si dice che la curva è regolare. Il concetto di "regolarità" è quindi legato alla condizione fisica
che la velocità tangenziale non si annulli mai durante il percorso. Se si annulla in un numero finito

Foxes Team 44
Grafici 3D con Winplot

di punti diremo che è regolare a tratti. L'ellisse è sempre regolare mentre l'asteroide è regolare a
tratti perchè la sua derivata si annulla in ben 4 punti. La cicloide è sempre regolare tranne quando v
= 1. Studiamo ora un curioso fenomeno legato all'annullamento della tangente
Esempio. Consideriamo la curva parametrica [x = sin(t) , y = (cos(2t)+1)/2)] con 0 ≤ t ≤ 2π
Inseriamo il grafico della traiettoria parametrica.
Inseriamo un punto di coordinate
(x, y) uguali alle funzioni
parametriche date.
Configuriamo l'intervallo del
parametro "T" fra 0 e 2π
Ora attiviamo l'animazione
"autocyc" ed osserviamo il moto t = 3π/2 t = π/2

Il punto, oscillando lungo la curva a destra e sinistra, raggiunge gli estremi dell arco per i valori di t
uguali a π/2 e 3π/2, cioè per valori interni all'intervallo [0 , 2π ]. Quando "t" raggiunge il massimo
dell'intervallo, il punto si trova nella posizione iniziale e il ciclo ricomincia.
Osserviamo inoltre che, agli estremi dell'arco, il punto inverte il suo moto e ripercorre la stessa
curva in senso inverso. Tutte questi fenomeni ci permettono d'individuare due punti non regolari
della curva pari a t = π/2 e t = 3π/2. Verifichiamo quindi che per questi valori la derivata è nulla.
d/dt [sin(t) , (cos(2t)+1)/2)] = [cos(t), −sin(2t)]
[cos(π/2), −sin(2 π/2)] = [0, 0] e [cos(3π/2), −sin(2 3π/2)] = [0, 0]
Il vettore tangente ad una curva parametrica può essere facilment evisualizzato per mezzo dello
strumento "Slider". Con l'opzione "tangent", muovendo barra vedremo il vettore tangente muoversi
sulla curva.

Mentre il cursore si avvicina agli estremi dell'arco vediamo la freccia ridursi progressivamente fino
a scomparire; poi, appena il punto comincia a tornare indietro vediamo la freccia aumentare nella
direzione inversa
Riepilogando, la presenza dell'inversione del moto è un indice della non-regolarità, nel senso prima
enunciato, della curva stessa.
Vediamo un altro esempio. Consideriamo la curva parametrica [cos(2t)3 , sin(t)3] con 0 ≤ t ≤ 2π
Il grafico mostra due rami aperti a forma di parentesi graffa.
Questa volta usiamo lo strumento "Slider" per studiare la t = π/2
traiettoria. Troviamo 4 punti in cui si ha l'inversione del
moto: 0, π/2 , π , 3π/2.
Verifichiamo:
d/dt [cos(2t)3 , sin(t)3] = [-3cos(2t)·sin(4t), 3sin(t)2·cos(t)]
t=π
[-3cos(0)·sin(0), 3sin(0)2·cos(0)] = [0, 0]
[-3cos(π/2)·sin(4 π/2), 3sin(π/2)2·cos(π/2)] = [0, 0]
[-3cos(2π)·sin(4π), 3sin(π)2·cos(π)] = [0, 0] t = 3π/2
[-3cos(2 3π/2)·sin(4 3π/2), 3sin(3π/2)2·cos(3π/2)] = [0, 0]

Foxes Team 45
Grafici 3D con Winplot

Esempio. Le equazioni [2cos(t) + cos(2t), 2sin(t) - sin(2t)] con 0 ≤ t ≤ 2π definiscono la curva


detta Tricuspide. Studiamo il grafico e troviamo se esistono i punti di non regolarità
I punti d'inversione si trovano per t = 0, 2π/3, 4π/3.
Prova
d/dt [2cos(t) + cos(2t), 2sin(t) - sin(2t)] = [-2sin(2t) - 2sin(t),
2cos(t) - 2cos(2t)]
[-2sin(0) - 2sin(0), 2cos(0) - 2cos(0)] = [0, 0]
[-2sin(2 2π/3) - 2sin(2π/3), 2cos(2π/3) - 2cos(2 2π/3)]= [0, 0]
[-2sin(2 4π/3) - 2sin(4π/3), 2cos(4π/3) - 2cos(2 4π/3)]= [0, 0]

Altre figure interessanti generate con le equazioni parametriche sono le seguenti

Epicicloide Ipocicloide
(7/2cos(t)-cos(7/2 t) , 7/2sin(t)-sin(7/2t)) (2cos(3/2 t)-3cos(t),-2sin(3/2 t)-3sin(t))
0 ≤ t ≤ 4π 0 ≤ t ≤ 8π

Epitrocoide Ipotrocoide
(32/15cos (t) - cos(8t/3) , 32/15sin (t) - sin(8t/3)) (2cos(t) - cos(4t/3) , sin(4t/3) + 2sin(t))
0 ≤ t ≤ 6π 0 ≤ t ≤ 6π

Foxes Team 46
Grafici 3D con Winplot

Figure di Lissajous.
Fra le curve parametriche più conosciute per le loro applicazioni pratiche sono le cosidette curve o
figure di Lissajous, definite dalle seguenti equazioni [sin(nt + a), sin(mt)] con 0 ≤ t ≤ 2π, "n" e "m"
sono numeri interi e "a" è un numero reale 0 ≤ a ≤ 2π
I grafici seguenti sono stati ottenuti con [sin(2t + a), sin(t)], per diversi valori di a

a = −π/2 a = −π/6 a=0 a = π/6 a = π/2

I grafici seguenti sono stati ottenuti con [sin(3t + a), sin(t)], per diversi valori di a

a = −π/2 a = −π/3 a=0 a = π/6 a = π/4

Altre figure si ottengono per a = 0 , variando il rapporto n/m

n = 4, m = 1 n = 6, m = 1 n = 3, m = 2 n = 5, m = 3 n = 5, m = 4

L'equazioni parametriche:
( x = 3t/(1+t3) , y = (3t2)/(1+t3)),
−∞ ≤ t ≤ +∞ , t ≠ −1
descrivono una curva, apparentemente semplice,
detta doppio folium di Cartesio.
La difficoltà risiede nella forte non linearità fra il
parametro "t" e la lunghezza percorsa: a piccoli
escursioni di "t" corrispondono grandi movimenti
sulla traiettoria e viceversa.
Ad esempio, per 0 ≤ t ≤ +∞ viene percorso solo il
cappio del I quadrante, mentre al piccolo intervallo
−1< t < 0 corrisponde il ramo infinito del II
quadrante, e per t < −1 tutto il ramo del III

Foxes Team 47
Grafici 3D con Winplot

Curve poligonali
In generale, le traiettorie ottenute con le equazioni parametriche, sono sinuose e curvilinee, salvo in
un insieme finito di punti dove si possono avere delle cuspidi. Con qualche trucco, però, è possibile
ottenere anche delle traiettorie poligonali, costituite, cioè da segmenti rettilinei.

Rombo (quadrato)
x = 4⋅abs(floor(t + 1) − t −0.5) −1
y = 4⋅abs(floor(t + 0.75) − t −0.25) −1)
0≤t≤1

Quadrato
x = (max(min(sqr(2)⋅cos(t) , 1) , −1)
y = max(min(sqr(2)⋅sin(t),1) , −1))
0 ≤ t ≤ 2π

Le seguenti traiettorie ricordano le figure di Lissajous, però con i tratti rettilinei


x = 4abs(floor(t/n+1/2) −t/n) − 1
y = 4abs(floor((t + a)/m+1/2) − (t + a)/m) − 1
0 < t < T , 0 < a < T , dove T = n*m

n = 1 m = 1 a = 0.05 n = 1 m = 1 a = 0.1 n = 1 m = 1 a = 0.25 n = 1 m = 1 a = 0.30

n=2 m=1 a=0 n = 2 m = 1 a = 0.1 n = 2 m = 1 a = 0.25 n = 2 m = 3 a = 0.25

NB. Tutte i grafici ottenuti con la funzione floor sono scalabili; cioè si possono dilatare tutte le
figure moltiplicando le funzioni di x e y per opportuni fattori di scala. Il quadrato ottenuto con le
funzion max-min è, invece, fisso.

Foxes Team 48
Grafici 3D con Winplot

Equazione implicita
Le curve generate dall' equazioni cartesiane implicite f(x,y) = 0 definite in un dominio
D≡{ xmin ≤ x ≤ xmax , ymin ≤ y ≤ ymax }, a dispetto della loro apparente semplicità sono difficili da
rendere in formato grafico. Diversamente dalle equazioni esplicite e parametriche, per quelle
implicite non esistono algoritmi efficienti. Per calcolare tutti i punti xi, yi appartenenti all curva il
programma risolve, con un processo iterativo, l'equazione implicita f(x, yi) = 0, e il processo viene
ripetuto per ogni punto yi. Da quanto detto, appare evidente che l'elaborazione può essere anche
molto lunga. Ci sono, per fortuna, anche delle eccezioni: le equazioni implicite di 1° grado (le rette)
e di 2° grado (le coniche) vengono elaborate in modo sufficientemente rapido.

Famiglie
Le coniche sono sicuramente le funzioni implicite più largamente utilizzate in tutti i corsi di di
analisi matematica. Winplot, grazie alla possibilità dell'animazione e la generazione di famiglie di
curve, rapresenta un valido e prezioso strumento d'indagine.
Esempio. La seguente equazione parametrica (x-2)2+y2 −1) −k[(x+1)2+y2 −1] = 0
rappresenta una famiglia di circonferenze le cui basi sono le circonferenze: (x-2)2+y2 −1 = 0 e
(x+1)2+y2 −1=0. Inseriamo tutte queste equazioni dal menu Equa\Implicit
Ora apriamo il catalogo (Ctrl+I), selezioniamo l'equazione
parametrica e premiamo il tasto "family". Azzeccare
l'intervallo e il numero di steps per un buon grafico non è
immediato ma con un poco di prove, alla fine, ci si riesce.

Inserire il parametro k.
Intervallo [0,4] in 40 passi.

Usare il tasto "define" per


generare la famiglia di
curve e "undefine" per
rimuoverle.

E' possibile, con lo strumento di animazione, variando manualmente il parametro "k", visualizzare
e seguire il movimento delle circonferenze.
La famiglia si evolve dalla circonferenza
(x-2)2+y2 −1 = 0 (rossa) per k = 0 fino alla circonferenza
(x+1)2+y2 −1 = 0 (verde) per k → +∞.
Per questa ragione, le circonferenze sembrano addensarsi
mentre si avvicinano alla circonferenza finale, che ovviamente
non sarà mai raggiunta.
Un evoluzione più equilibrata si ottiene, invece, con la seguente
equazione parametrica:
(1-k)[(x-2)2+y2 −1] −k[(x+1)2+y2 −1] = 0
In questo caso, la completa transizione fra le due circonferenze
di base avviene per 0 ≤ k ≤ 1

Foxes Team 49
Grafici 3D con Winplot

Famiglia di circonferenze secanti

(1-k)[(x-2)2+y2-2]-k( x2+y2-1) = 0, 0 ≤ k ≤ 1 (1-k)[(x-2)2+y2-2]+k(x2+y2-1) = 0, 0 ≤ k ≤ 1

Famiglia di circonferenze tangenti esterne

(1-k)[(x-1)2+y2-1] -k[(x+1)2+y2-1] = 0, 0 ≤ k ≤ 1 (1-k)[(x-1)2+y2-1] + k[(x+1)2+y2-1] = 0, 0 ≤ k ≤ 1

Famiglia di circonferenze tangenti interne

(1-k)[x2+(y-2)2-4]-k[x2+(y-1)2-1]= 0, 0 ≤ k ≤ 1 (1-k)[x2+(y-2)2-4]+k[x2+(y-1)2-1] = 0 = 0, 0 ≤ k ≤ 1

Foxes Team 50
Grafici 3D con Winplot

Ovviamente le famiglie di curve possono essere generate con qualunque coppia di coniche:
circonferenza-parabola, circonferenza-iperbole, ecc.

(1-k)(x2+y2-2)-k(x2-y-1)=0 (1-k)(x2+y2-2)+k(xy-1)=0 (1-k)(x2+y2-2)-k(xy-1)=0


0<k<1 0<k<1 0<k<1

k(x2-y2-1)+(1-k)(y2-x2-1) = 0 k(x2-y2-1)-(1-k)(y2-x2-1) = 0 x2+y2+4k xy = 3


0<k<1 0<k<1 -1 < k < 1

Foxes Team 51
Grafici 3D con Winplot

Curve di livello
Una delle applicazioni più ricorrenti dell'equazioni implicite è la cosidetta tracciatura delle curve di
livello delle funzioni definite in 3D mediante l'equazione esplicita z = f(x, y) 1
Il metodo procede nel segunte modo: si fissa un z

valore sull'asse verticale z = m1 , rappresentato da m2


un piano orizzontale passante per m1, e si risolve
l'equazione implicita f(x, y) = m1 , le cui soluzioni
sono rappresentate dalla curva γ1. m1
y
Ripetendo il processo per altri valori di z si trovano
altre curve sul piano di base, che insieme formano
la famiglie delle curve di livello, x γ1 γ2

Le curve iso-livello sono una delle possibili rapresentazioni delle funzioni 3D e, se opportunamente
quotate, rapressentano un valido ed utile strumento di analisi, alternativo alle rappresentazioni
assonometriche e prospettiche. Sono utilissime, per esempio, per la ricerca dei massimi e minimi
delle funzioni in 2 variabili

Ad esempio, data la funzione f(x , y) = −x3 + 4x2 + x −y3 + 2y2 + 2y + 2 , tracciamo le iso-livello fra
0 e 22 con passo 1. In pratica dobbiamo risolvere la famiglia di equazioni implicite
−x3 + 4x2 + x −y3 + 2y2 + 2y + 2 = m , con m = 1, 2, .22
Inseriamo la funzione implicita dal menu
Equa\Implicit e poi dal pannello "inventory"
premiamo il tasto "family".
Inseriamo i
parametri:
low = 0,
high = 22,
steps = 11
e premiamo
"define"

Si notano chiaramente i 4 punti di estremi A, B (massimi o minimi relativi) e C , D (punti di sella),


in cui il gradiente della funzione si annulla. Infatti si ha
∇f(x,y) = [ −3x2+8x+1 , −3y2+4y+2 ] = 0 ⇒ x =4/3 ± 19 /3 , y = 2/3 ± 10 /3
Formando le coppie di soluzioni si ha, all'incirca: A(2.78, 1.72), B(-0.12, -0.38), C(-0.12, 1.72),
D(2.78, -0.38).
Si nota che la vista prospettica del grafico 3D, ai fini della ricerca dei massimi e minimi, in questo
caso, ci è di poco aiuto.

1
Winplot ha uno strumento specifico per la tracciatura delle iso-livello attivabile dal menu dei grafici 3D

Foxes Team 52
Grafici 3D con Winplot

Per decidere, ad esempio, se il punto A è di massimo relativo (o viceversa), è più utile il metodo
delle sezioni grafiche. Facciamo passare un piano perpendicolare a y e passante per il punto A. La
sezione fra l funzione z = −x3 + 4x2 + x −y3 + 2y2 + 2y + 2 e y = k è una nuova funzione g(x), il
cui esame nell'intorno di in y = 2.78 e per k = 1.72, ci permette di ricavare le infomazioni volute.
La funzione g(x) = −x3 + 4x2 + x −k3 + 2k2 + 2k + 2 deve essere inserira come funzione esplicita
dal menu Equa\Explicit. Aggiustando il parametro k = 1.72 si ha il grafico voluto (vedi figura) da
cui si ricava che il punto A(2.78, 1.72) è un massimo relativo
Si ripete lo stesso prcedimento per k = -0.38 e si ricava che il punto B(-0.12, -0.38) è un minimo
relativo

Altri esempi di curve iso-livello.

f(x,y) = 1/(x4+y4-2x2-2y2+3) f(x,y) = sin(x+y)+xy/10


4 4 2 2
m(x +y -2x -2y +3) = 1, 0 ≤ m ≤ 1 , steps: 20 sin(x+y)+xy/10=m, -2 ≤ m ≤ 2 , steps: 40

f(x,y) = (2y-x2)2+(1-x)2 f(x,y) = 1/ (x2+y2-xy-x-y +1)1/2


(2y-x2)2+(1-x)2 = m, 0 ≤ m ≤ 20 , steps: 21 m*sqr(xx+yy-xy-x-y+1) = 1, 1 ≤ m ≤ 10 , steps: 40

Foxes Team 53
Grafici 3D con Winplot

f(x,y) = sin(x)cos(y) f(x,y) = x sin(y)= m


sin(x)cos(y) = m, -1 ≤ m ≤ 1 , steps: 40 x sin(y)= m, -2 ≤ m ≤ 2 , steps: 40

Foxes Team 54
Grafici 3D con Winplot

Sistemi non lineari


Le equazioni implicite dispongono di un limitato insieme di operazioni, come è facile sincerarsene
guradando alle voci menu "Ones" e "Two".
Per fortuna, una delle operazioni possibili è proprio l'intersezione ⎧ f ( x, y ) = 0
che ci permette di risolvere graficamente e numericamente uno dei ⎨
più importanti problemi matematici: il sistema non-lineare. ⎩ g ( x, y ) = 0

Esempio.Troviamo, se esistono, le soluzioni numeriche del ⎧⎪ x 2 + 4 y 2 − xy − 4 = 0


seguente sistema. Le soluzioni del sistema sono, come noto, le ⎨
intersezioni delle curve f(x,y) = 0 e g(x, y) = 0 ⎪⎩ x − y 2 + 4 − 2 x − y = 0

Dai grafic delle due curve vediamo subito che ci sono due
intersezioni, posizionate nel I e IV quadrante. Quindi il
sistema ha due soluzioni
Per il calcolo numerico
delle soluzioni, dal menu
Two\Intersections,
attiviamoil pannello
"intersection points".
Per ogni intersezione
premiamo il tasto "mark
point".

Al termine, il pannello "Inventory" conterrà le seguenti entrate (menu Misc\Inventory...)


x^2+4y^2-xy-4=0
sqr(x-y^2+4)-2x-y = 0
(x,y) = (1.40702136344455 , -0.55624641444763)
(x,y) = (0.39754575670389 , 1.03099784043959)

Come si vede, le ultime due righe contengono le soluzioni numeriche del sistema dato.
La precisione delle soluzioni è circa 1E-6, più che sufficiente per la maggior parte delle applicazioni

Esempio 2
⎧⎪ x 2 − 4 y 2 − xy − 1 = 0
⎨ 2
⎪⎩ x + 2 y 2 − 4 = 0
x^2-4y^2-xy-1= 0
x^2+2y^2-4= 0
(x,y) = (1.82980855271520 , 0.57087723854415)
(x,y) = (1.59578804717075 , -0.85248541423174)
(x,y) = (-1.82980910432455 , -0.57087750489148)
(x,y) = (-1.59578849775131 , 0.85248576303384)

Foxes Team 55
Grafici 3D con Winplot

Esempio 3
⎧cos( x − 1) + sin( y ) sin( 2 y ) − 1 = 0
⎨ 2
⎩x + y − 2 = 0
2

cos(x-1)+sin(y)*sin(2y)-1= 0
x^2+y^2-2=0
(x,y) = (0.17224806465944 , 1.40368398974188)
(x,y) = (1.39971956352360 , 0.20195047318753)
(x,y) = (1.39971961481157 , -0.20195049966206)
(x,y) = (0.17224912352824 , -1.40368442092067)

Le soluzioni complesse di un equazione f(z) = 0 possono essere trovate sostituendo z = x+iy e


separando la parte reale e immaginaria f(x+iy) = g(x)+ih(y). La soluzione dell'equazione complessa
è equivalente alla soluzione del sistema, in generale, non-lineare [g(x) = 0 , h(y) = 0]

Esempio 4. Trovare tutte le radici dell'equazione


z 4 − z 2 − 8z + 1 = 0
ovvero
⎧⎪ x 4 + y 4 − 6 x 2 y 2 − x 2 + y 2 − 8 x + 1 = 0

⎪⎩ y (2 xy 2 − 2 x 3 + x + 4) = 0
x^4 - 6(xy)^2 - x^2 - 8x + y^4 + y^2 + 1 = 0
y(2xy^2-2x^3+x+4) = 0
(x,y) = (-1.12644165184945 , -1.59510918829233)
(x,y) = (2.12969662779930 , 0.00000000000000)
(x,y) = (-1.12631655507956 , 1.59508266550838)
(x,y) = (0.12308796172300 , 0.00000000000000)

Foxes Team 56
Grafici 3D con Winplot

Equazione Polare
L'equazione esplicita ρ = f(θ) definisce una
relazione fra il raggio vettore ρ (distanza punto- P
ρ
centro) e l'angolo θ, compreso fra il raggio vettore
θ
e il semiasse positivo delle ascisse.

Ovviamente la funzione ρ = f(θ) può essere rappresentata sia in un grafico cartesiano, sia in un
grafico polare, dando luogo a grafici diversi.
Esempio, l'equazione ρ = 1 rappresenta un
cerchio in coordinate polari e una retta in
coordinate cartesiane. I grafici sono
completameti diversi e, ovviamente, ci sono
vantaggi e svantaggi.

La maggior utilità delle coordinate polari si ha quando si vuole rappresentare un fenomeno la cui
intensità è legata alla direzione radiale. In questi casi si ottiene sia un semplificazione
dell'equazione sia un maggior effetto visivo. Ad esempio, la seguente funzione ρ = |1+2cos(θ)|
rappresenta il diagramma d'irradiazione di un'antenna nello spazio.
Tracciamo i diagrammi nei due riferimenti: cartesiano e polare

Il diagramma polare evidenzia maggiormente le direzioni di massima intensità d'irradiazione,


rispettivamente per θ = 0° e θ = 180°. Per ottenerlo abbiamo modificato alcuni parametri della
griglia (menu View\Grid...) ed inserito l'equazione polare (menu Equa\Polar...)

"polar" traccia solo il NB. Si noti che non


semiasse x abbiamo inserito il
disattivare "arrows", valore assoluto perchè
"dots" e "labels". Il programma traccia
sempre il raggio ρ, sia
attivare la griglia positivo che negativo.
circolare "polar" Se si vuole che venga
"dotted" attiva la griglia tracciato solo il raggio
tratteggiata. positivo allora
Disattivare la griglia selezionare l'opzione
rettangolare "positive r"

Foxes Team 57
Grafici 3D con Winplot

Anche per le equazioni polari è possibile usare tutte le funzionalità già viste per le equazioni
esplicite. Ad esempio è possibile usare i parametri per creare delle famiglie di curve. Nelle
immagini seguenti si vede come si modifica la curva ρ = |1+a cos(θ)| per differenti valori del
parametro "a"

a = -1 a = -0.5 a=0 a = 0.5 a=1

Altre curva famose


Nefroide Cardioide Spirale di Cartesio-Torricelli
r = 1+2 sin(t/2) , 0 ≤ t ≤ 4π r = 1+cos(t) , 0 ≤ t ≤ 2π r = a⋅exp(t⋅cot(a)), 0 ≤ t ≤ 8π,

Spirale di Fermat Spirale di Archimede Rodonia di Grandi


r = ±sqr(t) , 0 ≤ t ≤ 2π r = t/2π , 0 ≤ t ≤ 6π r = sin(kt), 0 ≤ t ≤ 2π, k = 6

Solare Quadrifoglio di MacLaurin Lemniscata di Bernoulli


r = abs(cos(4t))-1/2 , 0 ≤ t ≤ 2π r = abs(cos(2t))1/2 , 0 ≤ t ≤ 2π r = sqr(cos(2t)), 0 ≤ t ≤ 2π

Foxes Team 58
Grafici 3D con Winplot

Ellisse in coordinate polari


In coordinate polari è possibile esprimere l'ellisse
mediante un equazione esplicita del tipo:
ρ = k / (1 + e⋅cos(θ)) , con |e| < 1 , k > 0 , 0 ≤ θ ≤ 2π
I parametri "e" e "k" sono chiamati rispettivamente
eccentricità e fattore di scala dell'ellisse. k
Se e = 0, l'ellisse diventa una circonferenza mentre
per e →1 l'ellisse degenera in una parabola. 2b
Il centro del riferimento polare coincide sempre con un
fuoco (F1) mentre il centro dell'ellisse si trova a
distanza C = ke/(1-e2) dall'origine
Le relazioni che danno gli assi, la distanza focale e il
centro in funzione dell'eccentricità ed il fattore di scala
2a
sono: semiasse maggiore a = k/(1-e2) ; semiasse minore
b = k/(1-e2)1/2 ; semidistanza focale c = ke/(1-e2)

Si osserva che il parametro k ha un significato geometrico: esso rappresenta il punto d'incontro fra
l'ellisse e la verticale passante per l'origine, e coincide con il raggio della circonferenza per e = 0
L'eccentricità non ha un immediato riscontro geometrico ma è un indice della deformazione della
conica dalla circonferenza di raggio k, come mostrano le seguenti famiglie di curve

Un interessante fenomeno, che ha importanti


risvolti fisici ed atronomici, può essere messo in
evidenza con lo strumento "Slider". Se attiviamo
l'opzione "tangent" e percorriamo la curva, ci
accorgiamo che la lunghezza della freccia,
proporzionale alla velocità (speed), non rimane
affatto costante: è molto bassa in prossimità del
fuoco centrale (perigeo) e molto alta in
prossimità del fuoco opposto (apogeo). In due
punti distinti, raggiunge la velocità massima

Foxes Team 59
Grafici 3D con Winplot

Equazione differenziale
Winplot dispone di strumenti molto efficaci per l'analisi e il calcolo delle equazioni differenziali ai
valori iniziali (IVP), chiamato anche problema di Cauchy.
In pratica è possibile studiare e risolvere i seguneti problemi del I° ordine, a una e due variabili
y ' = f ( x, y ) , y ( x0 ) = y0 , ( x, y ) ∈ D

⎧ x' = f (t , x, y ) ⎧ x(t0 ) = x0
⎨ , ⎨ , ( x, y ) ∈ D t1 < t < t 2
⎩ y ' = g (t , x, y ) ⎩ y (t0 ) = y0
dove D è un dominio rettangolare.
Con un'opportuna trasformazione, è possibile risolvere anche i problemi del II° ordine ad una
variabile, perchè, come noto, esso può essere ridotto ad un sistema del I° ordine a due variabili.
Lo studio del problema di Cauchy comprende altri sotto-problemi quali: lo studio dell'esistenza e
dell'unicità della soluzione, la sua continuazione, le soluzioni particolari, il comportamento agli
estremi, ecc. L'approccio numerico, offerto da Winplot, si pone come un valido aiuto alla
comprensione del problema.

Campo di pendenza
Il campo di pendenza è un grafico molto utile nello studio delle
eqauzioni differenziali di I° ordine espliciti. I pratica si tratta di yi
tracciare, per un certa griglia di punti (xi, yi) del dominio D , dei
segmenti di pendenza mi = y' = f(xi, yi). La lunghezza dei x i-1 xi x i+1
segmenti, di solito un piccola rispetto al dominio, è arbitraria
La soluzione dell'eq. diff., in prossimità dei nodi della griglia,deve essere sempre tangente ai
segmenti tracciati. In pratica il campo di pendenza visualizza in modo efficace la direzione delle
soluzioni in tutto il dominio D.
Esempio. Studiare il problema y ' = | 1 − y 2 | 1
Si tratta di un equazione differeziale del I° ordine in una sola variabile, per cui deve essere definita
dal menu Equa\Differential\dy/dx...

"slopes" visualizza il
campo di pendenza

fissa la dim. della


griglia a (30 x 30)

Il dominio D coincide
con la finestra corrente
del grafico

Per un buon grafico scegliere un colore chiaro; inoltre la lunghezza ("lenghts") dei segmenti deve
essere impostata a 1.5% o 2 % della dimensione del dominio; è consigliabile ridurla se la griglia
aumenta e viceversa

1
Gli esempi di equ. diff. sono tratti da "Differential Equations - Practical methods for ODE and PDE problem solving
with Excel, L. Volpi, Foxes Team, Jan. 2007

Foxes Team 60
Grafici 3D con Winplot

Il campo di direzione o pendenza ci dà un immediata, qualitativa idea dell'andamento delle


soluzioni. Se scegliamo un qualunque punto del grafico possiamo immaginare di vedere la
soluzione per quel punto evolversi seguendo la direzione dei segmenti senza mai attraversali (a
parte in certi particolari casi).

Famiglie di soluzioni
Il programma, con uno strumento molto valido dal punto di vista didattico, ci permette di generare e
visualizzare le traiettorie ora descritte. Dal menu One\dy/dx trajectory... attiviamo pannello "ivps".

selezionare l'eq.
differenziale.
punto iniziale (x0,y0) se il menu
Btns\Trajectories (LB) è
"step size" passo selezionato, cliccando
d'integrazione con il mouse un punto
"pen width" spessore qualunque del grafico
della curva verrà generata la
traiettoria della
algoritmo d'integrazione soluzione
"watch" traccia la
soluzione lentamente
"draw" traccia la soluzione
lista delle soluzioni

Gli algoritmi d'integrazioni disponibili sono quello di Eulero (I° ordine), Eulero modificato (II°
ordine) e infine Runge-Kutta (IV° ordine). A parte particolari esigenze didattiche, l'algoritmo RK è
senz'altro quello più usato grazie alle sue doti di precisione e stabilità.
Il passo d'integrazione "step size" è il parametro più critico del processo d'integrazione. Un valore
troppo piccolo rallenta molto mentre un valore troppo alto dà soluzioni poco precise o perfino
impossibili. Come regola di partenza scegliamo un valore in modo da dividere l'intervallo x del
dominio (la finestra del grafico, in pratica) in circa 50 o 100 sotto-intervalli (steps). Nel campo
"steps" in basso a destra è possibile vedere il numero di passi effettuati dall'algoritmo per tracciare
la traiettoria. Nel caso che il valore venga troppo basso o addirittura 0 dobbiamo ridurre il passo
d'integrazione
Le soluzioni calcolate vengono aggiunte nella lista del pannello1. Se si vuole, si può cancellare una
soluzione per mezzo del tasto "delete" o tutta la famiglia di soluzioni con "del all". Il tasto "table"
permette di accedere ai valori numerici della soluzione selezionata. Questa possibilità si rivela
molto utile, come vedremo, per trasferire i dati nei fogli di calcolo al fine di ulteriori elaborazioni
NB. Il colore e lo spessore delle traiettorie devono essere scelti prima della loro tracciatura,
altrimenti dopo non è più possibile: in caso di ripensamenti le curve devono essere cancellate e
rigenerate con il nuovo colore ("color") e/o spessore ("pen width")

1
Il pannello "IVPS" è l'unico che peremtte di cancellare o estrarre e dati delle traiettorie IVP. Il catalogo "Inventory"
contiene solo la definizione dell'equazione differenziale.

Foxes Team 61
Grafici 3D con Winplot

La famiglia delle soluzioni mostra un addensamento lungo le rette


y = ±1. E' possibile dimostrare che queste sono integrali
particolari dell'equazione.
Un noto teorema, dovuto a Cauchy, afferma che la soluzione
dell'equazione y' = f(x, y) per un punto è unica se e solo se la
funzione f(x, y) ammette derivata parziale ∂f/∂y continua nel
punto. Tuttavia, nei punti (x, ±1) non esiste un soluzione unica ed
infatti la derivata parziale ∂f/∂y = y(y2-1)/| y2-1|3/2 non è continua
in y = ±1

Altri campi di direzione.

y' = x(1-y2) y' = x (1-y2)1/2 y' = −2xy

La definizione dell'equazione differenziale è indipendente dal campo di


pendenza. Quando si tracciano le soluzioni, il campo di pendenza può
essere disattivato semplicemente con l'opzione "field none" nel pannello
di editing dell'equazione stessa.

Esempio. Troviamo la soluzione dell'equazione y' − y + x2y2 = 0 per y(0) = 0.5 e -3 < x < 3
Si tratta di un equazione di Bernoulli la cui soluzione può essere trovata numericamente
esplicitando rispetto a y' ottenendo y' = y − x2y2

Inseriamo il punto iniziale


(0, 0.5) , un passo 0.1 e
premiamo il tasto "draw" per
tracciare la traiettoria verso
destra; inseriamo poi il passo
-0.1 per tracciare la
traiettoria verso sinistra.

Ripetiamo il processo inserendo diversi punti iniziali (0, y0) con ordinate via via crescenti a partire
da -1, -0.8... 0.2, 0.4..ed inserendo alternativamente lo step 0.1 e -0.1. Anche in questo caso si
ottiente una famiglia di curve mostrata nei grafici seguenti, con e senza campo di pendenza.

Foxes Team 62
Grafici 3D con Winplot

Osserviamo che le curve a sinistra, tendenti in alto, sembrano interesecare i segmenti del campo di
pendenza. Poichè sappiamo che questo non può succedere (a meno dicasi speciali) dobbiamo
ritenere che l'errore in questa zona sia troppo grande. Per sincerarsene ripetiamo il calcolo con un
passo molto più piccolo, es h = -0.01, ed osserviamo un netto miglioramento.

Integrazione per intervalli


Esempio. Risolviamo l'equazione y' + y = g(x) , y(0) = 0, con g(x) = {0 | 1 ≤ x ≤ 4, 1 altrove}

Inseriamo la funzione esplicita:


g(x) = joinx(1|1, 0|4, 1) e l'equazione
differenziale: y' = −y + joinx(1|1, 0|4, 1).
Calcoliamo la traiettoria per x = 0, y = 0, con
l'algoritmo RK, passo h = 0.05 e 0 < x < 8

Esempio. Risolviamo l'equazione y' + y = g(x) , y(0) = 0, con g(x) = {1 | 0 ≤ x < 4, 0 altrove}

Inseriamo la funzione esplicita:


g(x) = joinx(1|4, 0) e l'equazione differenziale:
y' = −y + joinx(1|4, 0)
Calcoliamo la traiettoria per x = 0, y = 0, con
l'algoritmo RK, passo h = 0.05 e 0 < x < 8

Foxes Team 63
Grafici 3D con Winplot

Sistema differenziale
Trovare le soluzioni del seguente sistema
⎧ x' = −4 x + y ⎧ x(0) = 10
⎨ con ⎨ con t ≥ 0
⎩ y ' = 15 x − 5 y ⎩ y (0) = 0
Le soluzioni sono due funzioni x(t), y(t) dipendenti dalla variabile "t". Poichè essa non compare
espressamente nelle equazioni, il sistema è chiamato autonomo.
Per inserire il sistema andiamo nel menu Equa\Differential\dy/dt

Questo pannello è molto simile al


precedente eccetto che non
compare più la scelta
dell'algoritmo e del passo
d'integrazione (esso è calcolato
interamente dal programma).
Dobbiamo solo inserire i valori
iniziali:
t0 = 0, x0 = 10, y0 = 0
selezioniamo "fwd" per tracciare
la traiettoria per t ≥ 0
e premere "draw" o "watch".
Delle varie funzionalità presenti
l'unica veramente importante è il
tasto "table"

Il tracciamento della traiettoria [x(t), y(t)], mostrata nel grafico, termina quando:
1) il punto esce dal grafico; 2) viene premuto il tasto "Q"; 3) il vettore direzione [x', y'] diventa
nullo; 4) il punto ritorna nella posizione iniziale1.
La traiettoria e il campo di direzione, visualizzabile anche in questo caso, sono molto importanti ma
adesso vogliamo vedere i grafici delle funzioni x(t) e y(t) separatamente2. Per questo accediamo alla
tabella ("table") ed importiamo la lista dei valori [ti, xi, yi] in un foglio di calcolo. Il grafico
seguente, per esempio, è stato generato con Excel
12

10

x
8
NB. Le funzioni x(t) e y

y(t) rappresentano la 6

tensione e la corrente di 4

un transitorio elettrico 2

0
0 0.5 1 1.5 2

1
Le condizioni 3) e 4) sono regolate per mezzo dei parametri "zero vector" e "loop closing" nel menu Misc\Tolerances.
Questi stabiliscano quando un vettore si può considerare nullo e quanto un punto è vicino alla condizione iniziale.
Suggeriamo di non cambiare i valori di default 0.1 e 0.7.
2
Possiamo usare anche le funzioni ausiliare del menu Misc/DEq miscellany

Foxes Team 64
Grafici 3D con Winplot

Equazione del II° ordine


Come abbiamo accennato anche le equazioni differenziali del II° ordine possono essere risolte con
gli strumenti di Winplot. Vediamo come.
Consideriamo il sistema vibrante formato da una massa e una molla.
L'equazione chè lo descrive è come noto
d 2x dx
m 2
+c +k x =0 K C
dt dt
dove x misura lo spostamento dalla posizione di equilibrio; "m" è la
massa del corpo M, "c" è il coefficiente di smorzamento viscoso e M

"k"è la costante elastica della molla x


.
Il corpo viene tirato in basso di una lunghezza pari x0 e, a partire dall'istante t = 0, viene rilasciato.
Vogliamo tracciare il grafico della posizione x(t) e della velcità v(t) in funzione del tempo..
Le condizioni iniziali sono: x(0) = x0 and v(0) = 0. Poichè è x'(t) = v(t) ⇒ x'(0) = 0
Quindi la soluzione è data dal seguente problema di Cauchy (IVP) del II° ordine
⎧ d 2x dx
⎪m 2 + c +k x=0
⎨ dt dt
⎪ x(0) = x , x' (0) = 0
⎩ 0

Riscrivendo l'equazione
d 2x c ⎛ dx ⎞ k
2
= − ⎜ ⎟− x
dt m ⎝ dt ⎠ m
ed essendo
dx d 2 x dv
=v , =
dt dt 2 dt

L'equazione è, quindi, equivalente al sistema di due equazioni del I° ordine


⎧ x' = v ⎧ x(0) = x0
⎨ with ⎨
⎩v' = −(k / m ) x − (c / m ) v ⎩v(0) = 0
che , in forma compatta, può essere riscritto come:
⎡ x'⎤ ⎡ 0 1 ⎤ ⎡ x⎤ ⎡ x⎤ ⎡x ⎤
⎢ v'⎥ = ⎢− (k / m ) − (c / m )⎥ ⋅ ⎢ v ⎥ with ⎢ ⎥ = ⎢ 0 ⎥
⎣ ⎦ ⎣ ⎦ ⎣ ⎦ ⎣ v ⎦ t =0 ⎣ 0 ⎦

Vediamo di trovare la soluzione nel caso pratico in cui x0 = 0.1 cm , k = 10 N/m , m = 2.5 Kg e
per due differenti valori del coefficiente di smorzamento: c = [2 , 4, 7] N⋅s/m
La matrice diventa
⎡ x'⎤ ⎡ 0 1 ⎤ ⎡ x⎤ ⎧ x' = v
=
⎢v' ⎥ ⎢− 4 − c / 2.5⎥ ⎢v ⎥ ⇒ ⎨
⎣ ⎦ ⎣ ⎦⎣ ⎦ ⎩v' = −4 x − (c / 2.5)v

Foxes Team 65
Grafici 3D con Winplot

inseriamo in Winplot le equazioni come [x' = y , y' = .−4x −(c/2.5)y ]1


Regoliamo il parametro c = 2
La traiettoria [x,y] e il transitorio della posizione x(t) e la velocità v(t), per il coefficente di
smorzamento c = 2, sono mostrati nei seguenti grafici

0.15

x
0.1
v
0.05

0
0 2 4 6 8 10

-0.05

-0.1

-0.15

Se ora aumentiamo il coefficiente di smorzamento c = 4 otteniamo immediatamente i seguenti


grafici

0.15

x
0.1
v
0.05

0
0 1 2 3 4 5 6

-0.05

-0.1

-0.15

ed, infine, per c = 7, si ha:

0.15

x
0.1
v
0.05

0
0 1 2 3 4 5 6

-0.05

-0.1

-0.15

1
I simboli delle variabili indipendenti in Winplot sono sempre x e y, ma questo non cambia concettualmente nulla
poichè possiamo considerare la variabile y come la velocità v.

Foxes Team 66
Grafici 3D con Winplot

Esempio. il seguente sistema differenziale


⎧ x' = ax − 2 xy ⎧ x(0) = 1
⎨ ⎨
⎩ y ' = −5 y + 2 xy ⎩ y (0) = 1
è chiamato modello di Lockta-Volterra o anche "preda-predatore" E' usato in biologia, chimica e
molti altri campi. Le funzioni x(t) e y(t) dipendenti dal tempo rappresentano le popolazioni dei
fenomeni che vengono simulate dal modello. Si sa anche che la soluzione di questo sistema porta ad
uno stato di oscillazione stabile. Studiamo le traiettorie per diversi valori del parametro 1 < a < 4

E' interessante tracciare i grafici nel dominio del tempo delle due popolazioni. Per questo ci
serviamo ancora di Excel, trasferendo i dati tabulati con il tasto "table".
6 7

5
x 6 x
y y
5
4
a=1 4
a=4
3
3
2
2

1 1

0 0
0 0.5 1 1.5 2 2.5 3 0 0.5 1 1.5

Osserviamo che per a = 1, il periodo delle oscillazioni è di circa T ≅ 3.3 mentre per a = 4 è ridotto a
circa la metà T ≅ 1.5 . Anche l'ampiezza relativa delle oscillazioni è molto diversa: pur partendo da
popolazioni uguali (x0 = 1, y0 = 1) il rapporto a regime è circa 5:2 nel primo caso e circa 1:1 nel
secondo. Un'altra interessante informazione ci viene dallo studio del campo vettoriale.

attiviamo il campo vettoriale


mediante l'opzione "vectors"
del pannello ivp

Ci accorgiamo che il campo sembra ruotare


attorno al punto (2.5, 1).

In effetti si puo verificare che partendo da una popolazione iniziale (x0 = 2.5, y0 = 1) il sistema si
evolve con oscillazioni molto ridotte. Le due popolazioni si trovano, cioè, in uno stato di equilibrio
dinamico.

Foxes Team 67
Grafici 3D con Winplot

Orbite
Un applicazione molto interessante delle equazioni differenziale è la simulazione delle orbite dei
pianeti. Winplot peremette di tracciare in una particolare finestra grafica 2D le traiettorie seguita da
un sistema di corpi il cui moto è determinato da una forza attrattiva che dipende dall'inverso del
quadrato della distanza F = −k/r2,
Ogni corpo genera su ogni altro una forza la cui
intensità è direttamente proporzionale alle loro masse e 2 F21
F12 1
inversamente proporzionale al quadrato della loro
distanza. Se fissiamo un sistema di riferimento, per F13
F23
semplicità polare, e indichiamo il raggio vettore di ogni
corpo ri , allora la distanza reciproca sarà data da: F32
3
d ij =| ri − rj | .
Fij = −k (m1 m2) / dij 2
Si osserva che Fij = Fji, per il III° principio

Osserviamo che anche le cariche elettriche seguno la stessa legge del "quadrato della distanza",
dove al posto della massa "m" troviamo la quantità di carica "q" ed al posto della costante
gravitazionale "k" c'è la costante elettrica del mezzo "1/4πε" . Quindi lo stesso strumento può essere
usato per studiare le orbite delle particelle elettroniche1

Lo strumento si attiva dal menu inziale Window\Planets.


La nuova finstra si apre con un esempio di default con un sistema orbitale
("orbital system" nel pannello "inventory") di tre corpi le cui cordinate di
posizione e velocità iniziali sono scelti a caso, che è non è la cosa migliore per
non capire qualcosa
Pertanto premiamo subito il tasto "Q" per fermare il disegno in atto e
procediamo con qualcosa di più semplice e controllato.

Diciamo subito che il numero minimo di corpi in un sistema orbitale è 2; quindi cominciamo a
rimuovere il corpo 3
Con il tasto "edit" del pannello
"inventory" apriamo il controllo
principale del sistema orbitale.
Da qui possiamo aggiungere o
eliminare i corpi (body 0, 1, 2...) e
cambiare i loro principali parametri:
posizione iniziale (x, y), velocita
iniziale (x' , y') e massa.
Se si vuole, si può anche assegnare
nomi diversi da quelli di default
"body 0", "body 1" , ecc.
Il programma crea sempre un corpo fittizio chiamato "center of gravity" che, in realta è il punto
situato nel centro di gravità del sistema, avente massa equivalente a tutti i corpi che compongono il
sistema stesso. Il centro di gravità è calcolato automaticamente e non può essere eliminato
Qualche volta è utile assegnare il centro di riferimento al centro di gravità

1
con velocità relativamente basse e con un piccolo trucco, come vedremo

Foxes Team 68
Grafici 3D con Winplot

In basso al pannello di controllo ci sono i comandi di servizio


aggiunge un nuovo rimuove il corpo assegna l'origine degli assi al grafico e
corpo al sistema corrente dal sistema rimuove eventuali assegnazioni ad un corpo.
In pratica rimuove il simbolo *
cancella il grafico
corrente assegna l'origine degli
assi di riferimento al
disegna le traiettorie corpo corrente. Accanto
(premere Q per al nome compare *
interrompere)

Poichè vogliamo iniziare a studiare il sistema più semplice cominciamo a togliere il 3° corpo dal
sistema. Selezioniamo "body 2" e premiamo il tasto "delete".
Adesso facciamo alcune convenzioni per semplificare il più possibile nostro modello.
Vogliamo studiare, per cominciare, il moto di un corpo di massa m in un
campo di forze gravitazionali centrale similem ad esempio, a quello solare.
Questo tipo di campo può essere generato impostando un corpo, ad esempio
"body 0" di massa unitaria M = 1 e costante grav. unitaria K = 1.
Impostiamo l'origine come posizione iniziale (x = 0, y = 0) e
velocità nulla (x ' =0, y' = 0). 1

Adesso passiamo al secondo corpo "body 1" ed inseriamo un massa m << 1, ad esempio m = 1E-6
Questa scelta ci consente di simulare l'effettiva traiettoria di un corpo molto piccolo attorno ad un
corpo attraente grandissimo senza grandi perturbazioni, come ad esempio avviene per i sistemi
terra-satellite, sole-terra o protone-elettrone2
Inseriamo i seguenti parametri iniziali di posizione (x = 1, y = 0) y
e velocità iniziale (x ' =0, y' =1). Il nostro sistema orbitale
dovrebbe simulare il modello mostrato a sinistra: un piccolo v
satellite posizionato a distanza unitaria (r = 1) con velocità di x
modulo unitario (v = 1), parallela all'asse y si muove in un campo
1
di forze graviatazionali centrali generate da un massa grandissima

Prima di attivare il motore di calcolo della traiettoria esaminiamo gli altri controlli del pannello
"orbital system".
Ogni due nodi
"positions"della nodi calcolati (invisibili)
traiettoria vengono
calcolati un certo
numero di nodi,
"calculation", che non
sono visualizzati nodi della traiettoria

I parametri veramente utili sono l'intervallo "interval" fra due nodi della triettoria e il numero di
nodi "positions". La lunghezza della traiettoria è quindi data da L = "interval" x "position".
Il rapporto fra nodi calcolati/visualizzati è regolato con il parametro "calculations" che dovrebbe
essere tenuto fra 10 e 100 per avere un buon compromesso fra precisione e velocità di elaborazione.
La traiettoria viene disegnata congiungendo due nodi consecutivi per mezzo di segmenti. Di
conseguenza impostando un intervallo relativamente grande si riesce a coprire una lunga traiettoria

1
Questi parametri sono convenzionali e non verranno mai cambiati in tutte le nostre successive simulazioni
2
Un altro modo poteve essere quello di assegnare l'origine del sistema di riferimento al "body 0" indipendentemente dai
rapporti di massa fra i corpi. Il modo scelto sembra però quello più naturale.

Foxes Team 69
Grafici 3D con Winplot

anche con pochi nodi ma, per contro, essa tenderà ad apparire come una spezzata. Scegliendo un
intervallo piccolo si riesce ad ottenere una traiettoria più uniforme ma saranno necessari un numero
di nodi maggiore per coprire la stessa distanza. Anche in questo caso si deve scegliere, di volta in
volta, il compromesso migliore.
Con i parametri visualizzati, premendo "draw" si ottiene il
grafico di una circonferenza (a cui sono stati aggiunti gli
assi e la griglia)
Suggeriamo di salvare il grafico, esempio "orbits 0.wp2", e
di usarlo come modello per i successivi grafici di sistemi
orbitali a simmetria centrale. Basteranno pochi
cambiamenti per effettuare nuove simulazioni

v = 1.2 v = 1.3 v = 0.6 v = 1.4

NB. La traiettoria del secondo grafico, ottenuta per v = 1.3, è ancora ellittica ma così ampia da
uscire dai bordi del grafico. Per default, l'algoritmo interrompe il calcolo appena il punto esce dalla
grafico visibile. Per ovviare a ciò, deselezionare l'opzione "frame boundary" nel pannello di
controllo prima di generare la traiettoria.
L'ultimo grafico simula un corpo con velocità molto prossima alla cosidetta "velocità di fuga", data
da vf = (2 k M / r)1/2 ≅ 1.414... e in questo caso l'orbita si allarga a tal punto da divenire parabolica.
Quando v > vf , la traiettoria diventa iperbolica.
Relativamente alle traiettori iperboliche, un effetto molto noto
nel campo astronomico è il cosidetto "colpo di fionda". Si
verifica quando un corpo dotato di suffiente velocità si avvicina
ad un pianeta ed, a causa dell'energia gravitazionale, riceve una
brusca accellerazione e deviazione dalla sua traiettoria.
Nel nostro sistema può essere facilamente simulato impostando
i seguneti dati iniziali del "body 1":
posizione (2, 0.5), velocità = (1, 0)

Orbite perturbate
Quando si aggiunge un terzo corpo al sistema di simmetria centrale è
possibile che si verifichino perturbazione delle orbite. Ad esempio
aggiungiamo il corpo "body 2" (colore rosa) per mezzo del tasto "new"
e impostiamo i seguenti dati
body 0 ) posizione (0,0), velocità = (0,0), mass = 1
body 1 ) posizione (1,0), velocità = (0,-0.9), mass = 0.000001
body 2 ) posizione (-1,0), velocità = (0,1), mass = 0.001

L'effetto di perturbazione è evidente soprattutto sul satellite avente massa minore

Foxes Team 70
Grafici 3D con Winplot

Quando le masse in gioco non sono più trascurabili fra loro (1%) si evidenziano dei fenomeni di
trascinamento della massa centrale. In altre parole, ad un osservatore assoluto, entrambi i copri
appaiono in movimento. Cosa succede, invece, se l'osservatore è posto sul pianeta centrale?
body 0 ) posizione (0,0), velocità = (0,0), mass = 1 Stesso sistema con il riferimento solidale al corpo 0.
body 1 ) posizione (1,0), velocità = (0,1), mass = 0.01 La traiettoria del satellite, rispetto ad un osservatore che si
riferimento assoluto trova sul pianeta centrale, è ancora circolare.

I gemelli
In astronomia sono noti dei sistemi composti da coppie di stelle di massa quasi uguale,
relativamente molto vicine. Vediamo di studiare il loro moto assoluto e relativo.

Sistema orbitale
body 0 ) posizione (-1,0), velocità = (0,-0.5), mass = 1
body 1 ) posizione (1,0), velocità = (0, 0.5), mass = 1
Sorpendentemente il sistema orbitale di due corpi
gemelli, simmetrici, ruotanti nello stesso verso con
velocità uguale è stabile. Osserviamo che il centro di
gravità è immobile ripsetta ad un osservatore assoluto

Sistema orbitale
body 0 ) posizione (-1,0), velocità = (0, 0.2), mass = 1
body 1 ) posizione (1,0), velocità = (0, ±0.5), mass = 1
Se invece i gemelli hanno velocità differenti il loro moto
diventa molto più complicato e si verifica un effetto di
trascinamento in un verso o nell'altro a seconda dei versi
delle velocità.
Il caso dele velocità uguali controrotanti invece non può
esistere: per semplici considerazioni di simmetria i due
corpi finirebbere per scontrarsi prima o poi.

il moto rispetto si semplifica molto se scegliamo un diverso centro di riferimento


Riferimento solidale Riferimento solidale al
al corpo rosso. centro di gravità del
Selezionare "body 0" sistema.
e premere il tasto " Selezionare "center of
set origin" gravity" e premere il
tasto " set origin"

Foxes Team 71
Grafici 3D con Winplot

Interpolazione polinomiale
Il problema dell'interpolazione polinomiale consiste nel trovare il polinomio di grado n passante per
n+1 punti assegnati. Molti programmi matematici possono risolverlo ma Winplot lo fa in modo
"interattivo": vediamo come

Attivando il menu Equa/Polinomials... compare il pannello


visualizzato a sinistra con il grafico di una parabola, cioè un
polinomio di 2° grado, passante per 3 punti.
Sebbene molto simile alla finestra del grafico, si tratta in
realtà di un vero e proprio editor grafico, come si vede dal
titolo "edit polynomial" della finestra. Anche il menu è
ridotto e contiene le funzionalità già viste per la modifica
degli assi, griglie, zoom, shift (menu view) e le funzionalià
di Edit che sono quelle di cui ci occuperemo ora
Per uscire dalla modalità di edit premere Ctrl+Q

Il programma ritorna nella modalità normale conservando il grafico del polinomio con il nome di
Polynomial #1 nel catalogo. Per ritornare nella modalità di edit, aprire il pannello "Inventory"
(Ctrl+I), selezionare la voce Polynomial #1 e premere il tasto "edit".

Se vogliamo, possiamo cambiare gli attributi del grafico dal


menu Edit\Attributes.
Le cose importanti in questo pannello sono: il colore "color" ,
la dimensione della linea "pen width" e la dimensione dei
punti "dot size".
Gli altri attributi possono essere lasciati inalterati.
Occupiamoci invece dei punti (o nodi) d'interpolazione
Per prima cosa attiviamo dal menu l'opzione Edit\Coordinates

Questa ci permetterà d'inserire e modificare i punti con precisione molto maggiore di quello
consentito dal mouse. Ad esempio vogliamo trovare il polinomio passante per i punti: (4, 0), (3, 1),
(0, -2), (-4, 0). Winplot usa la nota formula di Lagrange
N +1
⎡ π ( x) ⎤ N +1
PN ( x) = ∑ yi ⎢ i ⎥ , dove π i ( x) = ∏ (x − x )
⎣ π i ( xi ) ⎦
j
i =1 j =1, j ≠ i

All'avvio, il programma genera sempre 3 punti (quasi)


casuali con la relativa parabola interpolante.
I punti possono essere spostati cliccandoli e
trascinandoli col tasto sinistro del mouse. Cliccando un
punto con il tasto destro del mouse si apre la finestra di
edit in cui possiamo inserire esattamente le coordinate
(x,y) del punto stesso. Il tasto "delete" rimuove il punto
dal grafico. Se invece, sempre con il tasto destro, si
clicca in una zona vuota, verrà creato un nuovo punto.
Ricordarsi che un punto creato fa aumentare il grado del click
polinomio mentre uno cancellato lo fa diminuire

Foxes Team 72
Grafici 3D con Winplot

Cambiando i valori dei tre punti del grafico con


(-4, 0), (0, -2), (4, 0) ed introducendo il 4 punto
mancante (basta cliccare col tasto destro in
qualunque parte vuota del grafico) di coordinate
(3, 1), si ottiene il polinomio del grafico a
fianco. Si tratta di un polinomio di 3° grado
P(x) = a0 + a1 x + a2 x2 + a3 x3
Per conoscere i coefficienti è sufficiente lanciare
il comando a menu Edit\See equation...

a0 : -2.0000000000000016
a1 : 1.4285714285714340
a2 : 0.1250000000000000
a3 : -0.0892857142857146

La precisione dei coefficienti è migliore di 2E-14

Foxes Team 73
Grafici 3D con Winplot

Grafici speciali
Alcuni grafici richiedono una particolare finitura che, in generale, non è possibile elaborare
direttamente con il programma di calcolo. Winplot peremtte la sofrapposizioni di immagini - come
bitmap - ai grafici prodotti

Immagini sul grafico


Una funzionalità utile è quella di poter sovrapporre piccole immagini al grafico stesso
Ad esempio se si vuole aggiungere un'equazione scritta con Microsoft Equation Editor,
selezionarla e copiarla nella clipboard con Ctrl+C
Nella finestra del grafico attiviamo l'opzione "Paste from clipboard" del menu "Btns"
Adesso clicchiamo con il tasto destro un qualunque punto - vuoto - del grafico.
L'immagine, cioè l'equazione, comparirà sul grafico. Posizioniamo l'immagine trascinandola col
tasto sinistro. Cliccando con il tasto destro su un'immagine, si aprirà il pannello dell'editor grafico

"clear" cancella
l'immagine dal
grafico

"image size" imposta le dimensioni dell'


immagine (width x height). Se disattivo le
dimensioni sono quelle originali.
"trasparent" rende lo sfondo dell'immagine
trasparente. E' utile quando è attiva anche la
griglia.
"anchor" aggancia l'immagine a qualche
punto (estremi, zeri, ecc) elencato nella lista
sottostante

Bisogna osservare che le dimesioni delle immagini seguono quelle del grafico e sono scalate
automaticamente dal programma. Se accade che un immagine subisca una deformazion troppo
accentuata, allora bisogna cancellarla e reinserirla. per questo motivo è consigliabile inserire le
immagine al termine del grafico.

Immagini di sfondo
Alcuni tipi di grafici, richiedono uno sfondo particolare. Il programma permette d'inserire una
qualunque immagine (formato bitmap) dal menu Misc\Colors\Background.
Il comando "Paste bitmap" inserisce l'immagine mentre "Remove bitmap" la rimuove.
Tutte le curve generate si sovrappongono all'immagine dello sfondo.
Il colore originale dello sfondo rimane attivo per i testi, etichette, ecc.
Naturalmente lo sfondo e gli assi non sono agganciati fra loro. Per farlo occorre modificare
opportunamente le dimensioni della finestra del grafico e della vista (View)
I grafici seguenti sono stati ottenuti con questa tecnica.

Foxes Team 74
Grafici 3D con Winplot

Diagrammi di Van der Waals


Aprire Microsoft Paint

Preparare una bitmap di una carta per grafici con 6 x 6 quadretti. Ogni
quadretto apparirià coma la figura a destra. Le dimensioni dell'immagine non
sono critiche. La nostra misurava 486 x 486 pixel, a colori, 700 kb.
Salvare in un file, esempio "carta_quadretti_6x6.bmp"

aprire un nuovo grafico 2D ( F2)


inserire la carta a quadretti 6x6 come sfondo
(menu Misc\Colors\Background\Open bitmap.).
Nel pannello Grid disattivare: "arrows", "labes".
assicurarsi che "interval" sia 1 per entrambe le
scale.. Rimuovere eventuali griglie e dots.
Attivare "mark scale on: border"
Nel pannello View inserire i valori:
left = 0, right = 3, down = 0, up = 3
ed attivare l'opzione "set corner"

Aggiustare l'altezza e la larghezza della finestra per sovrapporre esattamente le marche degli assi.

Tracciamo la famigli di grafici relativi all'equazione generalizzata di Van der Waals, detta anche
equazione degli stati corrispondenti: ( p + 3 / v 2 )(3v − 1) = 8t dove p, v, t sono le variabili
nomralizzate della pressione , volume e temperatura p = P / Pc , v = V / Pc , t = T / Tc
8t 3
Esplicitando rispetto a "p", si ha: p = − 2 , per 0 < v < 3 e 0.6 < t < 2
3v − 1 v

Le quotature delle
curve e l'etichette
degli assi "p" e"v"
sono stati aggiunta a
mano come testi
liberi (menu
Btns\Text )

Foxes Team 75
Grafici 3D con Winplot

Diagrammi di risonanza
Aprire Microsoft Paint

Preparare una bitmap di una carta per grafici semi-log, con 2


decadi x 10 quadretti. Le dimensioni dell'immagine non sono
critiche. La nostra misurava 510 x 315 pixel, a colori,
Salvare in un file, esempio "carta_semilog_2d.bmp"

aprire un nuovo grafico 2D ( F2)


inserire la carta semi-log da 2 decadi come
sfondo (menu Misc\Colors\Background\Open
bitmap...)
nel pannello Grid disattivare: "arrows", "labes",
"scales" e assicurarsi che "interval" sia 1 per
entrambe le scale.. Rimuovere eventuali griglie
e dots.
Nel pannello View inserire i valori
left = -1, right = 1, down = -5, up = 5 e attivare
l'opzione "set corner"

Aggiustare l'altezza e la larghezza della finestra per sovrapporre esattamente le marche degli assi.
Usare i tasti freccia per spostare il centro degli assi al bordo sinistro

Funzione di risonanza
ω0 2
F (s) =
s 2 + 2kω0 s + ω0
2

normalizzando, con x = ω/ω0


1− x2 2kx
F ( x) = −j 4
x + 2(2k − 1) x + 1
4 2 2
x + 2(2k 2 − 1) x 2 + 1
1 ⎛ 2kx ⎞
| F ( x) |= modulo , ∠F ( x) = arctan⎜ 2 ⎟ fase
x + 2(2k − 1) x + 1
4 2 2
⎝ x −1 ⎠

ricordiamo che per tracciare la scala logaritmica si deve sostituire alla variabile x ⇒ 10x,
x2 ⇒ 102x, x3 ⇒ 103x e cosi via.
Quindi l'equazione esplicita da inserire per tracciare il modulo diventa:
y = log(1/sqr( 10^(4x)+2(2k^2-1)10^(2x)+1)) , con: −1 ≤ x ≤ 1 , 0.1 ≤ k ≤ 1
mentre per la fase dobbiamo inserire l'equazione esplicita:
y = (arctan( (2k*10^x)/(10^(2x)-1) ) -hvs(x)*pi) , con: −1 ≤ x ≤ 1 , 0.1 ≤ k ≤ 1

Foxes Team 76
Grafici 3D con Winplot

Diagramma di modulo

Diagramma di fase

NB Per il digramma di fase, nel pannello View, inserire i valori down = -8, up = 2 e attivare
l'opzione "set corner"

Foxes Team 77
Grafici 3D con Winplot

Rete compensatrice
Aprire Microsoft Paint

Preparare una bitmap di una carta per grafici semi-log, con


3 decadi x 10 quadretti. Le dimensioni dell'immagine non
sono critiche. La nostra misurava 472 x 279 pixel, a colori,
Salvare in un file, esempio "carta_semilog_3d.bmp"

aprire un nuovo grafico 2D ( F2)


inserire la carta semi-log da 3 decadi come
sfondo (menu Misc\Colors\Background\Open
bitmap...)
nel pannello Grid disattivare: "arrows", "labes",
"scales" e assicurarsi che "interval" sia 1 per
entrambe le scale.. Rimuovere eventuali griglie
e dots.
Nel pannello View inserire i valori
left = -1, right = 2, down = 0, up = 10
ed attivare l'opzione "set corner"

Aggiustare l'altezza e la larghezza della finestra per sovrapporre esattamente le marche degli assi.

Rete compensatrice
1+τ s
F ( s) =
1 + (τ / m) s
normalizzando
m( x 2 + m) m(m − 1) x
F ( x) = +j 2 , dove x = τω
x +m
2 2
x + m2

x2 +1 ⎛ mx ⎞
| F ( x) |= m 2 , ∠F ( x) = arctan⎜ 2 ⎟,
x + m2 ⎝ x +m⎠

ricordiamo che per tracciare la scala logaritmica si deve sostituire alla variabile x ⇒ 10x,
x2 ⇒ 102x, x3 ⇒ 103x e cosi via.
Quindi l'equazione esplicita da inserire per tracciare il modulo diventa:
y = 8 log(3m sqr((10^(2x)+1)/(10^(2x)+(3m)^2))) , con: −1 ≤ x ≤ 2 , 2 ≤ m ≤ 36
mentre per la fase dobbiamo inserire l'equazione esplicita:
y = arctan((m-1)10^x/((10^x)^2+m)) , con: −1 ≤ x ≤ 2 , 2 ≤ m ≤ 36

NB. il fattore di scala 8 converte un quadretto dell'asse verticale in 2.5 dB

Foxes Team 78
Grafici 3D con Winplot

Diagramma di fase

Diagramma di modulo

Foxes Team 79
Grafici 3D con Winplot

Appendice
Mappa dei fonts
Ogni testo che appare in Winplot può essere modificato nel tipo, stile e dimensione. Tuttavia gli
strumenti per farlo sono "sparpagliati" un po' da tutte le parti. Questa mappa aiuta a ritrovali
velocemente.

Comando menu

Misc/Font/Scale on axes

View/Axes/Font

Equa/Fonts

Misc/Fonts/Coordinates

Misc/Fonts/Inventory Misc/Fonts/Inventory

Foxes Team 80
Grafici 3D con Winplot

Funzioni e costanti

La libreria delle funzioni di Winplot, visualizzabile anche dal menu Equ/Library, è molto ricca e,
allo stesso tempo, facile da usare.

Le funzioni di base sono le seguenti:

+, − , / , * , ^
ln , log , exp , (logaritmo naturale, logaritmo in base 10, esponenziale naturale)
pi = 3.14159265358979
deg = 0.0174532925199433 (π/180)
ninf , pinf, ritornano rispettivamente: -1.74E+18, 1.74E+18
sin , cos , tan , csc , sec , cot ,
sinh , cosh , tanh , coth , sech , csch ,
arcsin , arccos , arctan , arccot , arcsec , arccsc ,
argsinh , argcosh , argtanh , argcoth , argsech , argcsch ,
floor , ceil , int,
sqr , sqrt,
! (fattoriale),
abs(x) = |x| ,

Le funzioni trigonometriche inverse accettano l'argomento in radianti.


La funzione int(x), diversa dalla simile funzione del linguaggio VB o degli spreedsheet Calc ed
Excel, ritorna sempre il numero x senza la parte decimale. Es int(2.64) = 2, int(−6.3) = −6.
La funzione floor(x) ritorna sempre il numero intero minore o uguale a x; è equivalente alla
funzione "int" del linguaggio VB, mentre ceil(x) = floor(x)+1
Le funzioni sqr(x) e sqrt(x) sono indentiche e ritornano la radice quadrata.
L'operatore ^ serve sia come elevamento a potenza intera (5^3 = 5·5·5) , sia come esponenziale
(a^x = e x·ln(a) ). In quest'ultimo caso, deve essere a >0.
L'operatore * è facoltativo:
2x e 2*x sono equivalenti come 2pi e 2*pi;
xx è equivalente a x*x ovvero a x^2 (quest'ultima però ci piace di più) .
ax^2 + bx+c è equivalente a a*x^2+b*x+c
L'operatore * è obbligatorio quando si moltiplicano le costanti con le variabili: deg*x, pi*x, ecc..
Altre utili funzioni sono:

root(n,x) =, x1/n , n intero


power(n,x) = xn , n intero
iter(n,f(x)) = f(xn-1) = xn , n° iterazione
abs(x,y) = sqrt(x*x+y*y) ,
abs(x,y,z) = sqrt(x*x+y*y+z*z) ,
arg(x,y) = angolo polare t, con -pi < t <= pi, x = abs(x,y)cos(t), y = abs(x,y)sin(t) ,

Foxes Team 81
Grafici 3D con Winplot

max(a,b,..) , min(a,b,..) ,
mod(x,y) = x - |y|*floor(x/|y|) ,
sgn(x) = x/abs(x) ,
frac(x) = x-int(x) ,
hvs(x) = (1+sgn(x))/2 , (funzione di Heaviside)
chi(a,b,x) = hvs(x-a)-hvs(x-b), (funzione intervallo)
erf(x) = the standard error function ,
binom(n,r) = n!/r!/(n-r)! ,
sum(f(n,x),n,a,b) = Σ f(n,x) , per a ≤ n ≤ b , n intero
prod(f(n,x),n,a,b) = Π f(n,x) , per a ≤ n ≤ b, n intero
rnd(x) = random value between -x and x ,
log(b,x) = ln(x)/ln(b) ,
gauss(x) = exp(-0.5x^2)/sqrt(2pi) ,
gamma(x).

.
Il valore di n deve essere sempre intero, altrimenti le funzioni non ritornano nulla
La funzione frac(x) ritorna la parte decimale di x col segno: frac(-2.1) = -0.1, frac(2.1) = 0.1
La funzione sgn(x) ritorna 1 se x ≥ 0 , -1 se x < 0
La funzione hvs(x) ritorna 1 se x ≥ 0 , 0 se x < 0
La funzione chi(x) ritorna 1 se a ≤ x ≤ b, 0 altrove
Le funzione sommatoria e produttoria sono molto utile per scrivere lunghe formule in modo
compatto
Es: sum(x^n/n! , n , 0 , 7) = 1 + x + x2/2 + x3/6 + x4/24 + x5/120 + x6/720 + x7/5040
prod(x-n , n, 1, 5) = (x-1)(x-2)(x-3)(x-4)(x-5) = x5 - 15x4 + 85x3 - 225x2 + 274x - 120

La libreria di Winplot contiene anche un utile costruttore di funzioni "a pezzi".


⎧ f1 ( x) , x ≤ x1
definisce la ⎪ f ( x) , x < x ≤ x
⎪ 2 1 2
joinx(f1(x)|x1 , f2(x)|x2 ,..., fn(x)) funzione ⎨
⇒ ⎪...
⎪⎩ f n ( x) , x ≥ xn −1
Esempio:
definisce la ⎧x2 + 1 , x ≤ 1

joinx(x^2+1 |1 , 3-x |3 , exp(x-3)-1) funzione f ( x) = ⎨3 − x , 1 < x ≤ 3
⇒ ⎪e x −3 − 1 , x > 3

Esistono i corrispondenti costruttori per le variabili y, z chiamati rispettivamente: joiny e joinz

Foxes Team 82