COMPUTER E MODELLIZZAZIONE MATEMATICA
                  Gruppo Didattico MaCoSa - Genova
       e-mail:  macosa@dima.unige.it     http://www.dima.unige.it/macosa

Per ciascuno dei temi proposti (modelli differenziali, modelli probabilisti-
ci, visione) le attivita` proposte vogliono stimolare riflessioni su:
- gli intrecci con altre discipline che il tema consente
- la significativita` didattica dell'impiego del computer
- i problemi didattici di sfasamento/duplicazione di argomenti nei rapporti
  tra matematica e altre materie

---------------------- TEMA 1 - MODELLI DIFFERENZIALI ----------------------
********  PROBLEMA 1
  In un sistema di riferimento piano monometrico, partendo da (1,1), mi muovo
in modo da vedere O sulla mia sinistra perpendicolarmente alla mia traietto-
ria e procedo fino a superare l'asse y e arrivare alla distanza 0.5 da esso.
  Come modellizzare la situazione al fine di individuare la traiettoria?
  Si puo` usare  y' = - 1/(y/x), cioe` y' = -x/y, che e` definita anche per
x=0 (OP ha pendenza y/x, se P e` la mia posizione), e y(1)=1.
  E` facile intuire che la traiettoria e` un arco di cerchio, e anche
verificare che y=(2-x^2)^(1/2) risolve l'equazione.
*** Ma e` l'unica? Come trovare la soluzione senza intuizione?
*** Come risolvere problemi simili disponendo del concetto di derivata senza
un bagaglio di tecniche simboliche ad hoc?

***>> Attiva da MaCoSa il QBasic e apri e avvia il programma EQDIF dal
directory DIF. Sullo schermo compare:

|Programma per risolvere EQUAZIONI DIFFERENZIALI y' = f(x,y) (con parametri)
|
|--> Come SI` batti 1, come NO batti 0 (o solo ACapo)
|--> La FINESTRA grafica ha dimensioni in rapporto 2:1; se volessi un sistema
|monometrico associale un rettangolo cartesiano [x1,x2]*[y1,y2] opportuno
|--> Il CAMPO DIREZIONALE puo` essere tracciato per x in [a,b] piu` piccolo
|di [x1,x2]; scegliendo a [b] se batti = viene automaticamente preso x1 [x2]
|--> Per il campo direzionale prova con 25 passi in oriz. e 15 in verticale.
|--> xin e xfin in cui tracciare la SOLUZIONE possono essere anche xin > xfin
|--> I grafici delle soluzioni realizzati con RK4 (Runge-Kutta del 4^ ordine)
|possono essere registrati come file per Grafun
|--> Se si approssima una soluzione con piu` scelte di N e` via via stamapata
|la variazione VAR della nuova approssimazione rispetto alla precedente e il
|rapporto RAP tra la precedente variazione e la nuova; cio` consente di sti-
|mare la precisione della soluzione e la velocita` di convergenza del metodo

***>> Rispondi "1" alla domanda che compare e apri il Sub EQ dal menu View

|SUB EQ (x, y, y1) STATIC: SHARED NumeroEquazioni, NumeroParametri, Equazione
|NumeroEquazioni = 5
|SELECT CASE Equazione
|CASE 1
|  NumeroParametri = 0
|  y1 = -x / y                 'muoversi perpendicolrmente a OP
|CASE 2
| ...
|CASE 5
|  ...
|END SELECT
|END SUB

***>> Riavvia il programma; scegli il rettangolo [-3,3]*[-1,2]; traccia assi,
tacche e reticolato seguendo le indicazioni del programma
***>> Scegli l'equazione 1 e l'opzione CAMPO DIREZIONALE; usa i suggerimenti
della schermata iniziale, riprodotta sopra (come A e B batti "=", scegli 25
e 15 come numero dei passi in orizzontale e in verticale).
***>> Che cosa puoi concludere dall'esame di questa rappresentazione grafica?

***>> Tenendo conto del punto di partenza e della condizione di arrivo indi-
vidua la particolare soluzione che rappresenta il perocorso (->problema 1):
scegli l'opzione SOLUZIONE e l'opzione Metodo di EULERO.  Prova con numero di
passi uguale a 1, poi 2, 4, 8, ...
***>> Dalle uscite grafiche riesci a capire come funziona tale metodo? E la
velocita` con cui il punto di arrivo stimato "converge" a quello vero?
  
*** Capito questo si possono usare a scatola nera metodi piu` veloci che
usano tecniche di estrapolazione piu` efficienti di quella lineare.

***>> Risolvi lo stesso problema con il metodo di Runge-Kutta del 4^ ordine
(RK4), senza uscire dal programma e senza cambiare la scala.


********  PROBLEMA 2
Considera l'eq. y' = 2*SQR(y) (SQR sta per radice quadrata)
***>> Rappresentane il campo direzionale per -4 <= x <= 4, -2 <= y <= 2
(scegli "nuova scala", la eq. e` gia` presente nel Sub EQ come equaz. 2)
***>> Poi trovarne le soluzioni con xIn=0, xFin=-2, 1000 passi, RK4 con la
condizione  y(0)=1 e con la condizione y(0)=1.5.
***>> Quali problemi - y(x0) = y0 - ammettono un'unica soluzione?


********  PROBLEMA 3
  Il cambiamento della temperatura T di un corpo immerso in un ambiente a
temperatura costante A e` proporzionale alla differenza A-T (in intervalli
di temperatura non troppo elevati, se il corpo non e` troppo esteso, ...).
***  Come modellizzare la situazione?

***>> Studia il modello con EQDIF: e` l'equaz. 4 (esci dal o interrompi il
programma ed esamina il sub EQ); x: tempo in sec,  y: T in gradi C;
considera  A=20 e k=0.005; a(1) e` k, a(2) e` A.  Trova:
- campo direzionale (0 <= x <= 2000, 0 <= y<= 100) e
- soluzione per T(0)=50 con RK4 (per es. N=100) e (a richiesta del programma)
registralo come DAT1 per Grafun.

*** E` facile (a livello adulto, e in questo caso) trovare che la soluzione
e` T(t)= A+(T(0)-A)*e^-(kt).
Verifichiamolo provando a sovrapporre (usando la applicazione Grafun) il gra-
fico ottenuto con EQDIF (registrato come dat1) con quello di tale funzione.

***>> Esci dal QBasic, avvia Grafun e apri il DEMO "termo" in ORV procedendo
in questo modo:
- aziona il comado 8 (RCL) e batti:  orv\termo.dm
- poi man mano, quando richiesto, batti ACAPO

*** Il demo, oltre a fare il confronto tra le due curve, ha presentato un
esempio di ricerca di parametri.
  I dati rappresentati in verde rappresentano i rilevamenti sperimentali
relativi al raffreddamento di un termometro a mercurio dopo che e` stato
immerso in acqua calda, nel caso che l'ambiente sia a 26 gradi e il primo
rilevamento (della temperatura del termometro) al tempo 0 sia di 66 gradi.
I dati sono rappresentati con rettangolini alti 1 e centrati nei valori delle
temperature (il termometro in questione ha divisioni in gradi; il valore vero
puo` differire di 1/2 grado in piu` o in meno dal valore indicato dalla tacca
piu` vicina alla estremita` della colonna di mercurio). Anche i tempi sono
approssimati, ma hanno la precisione di un secondo, piccola rispetto all'in-
tervallo di 2000 secondi rappresentato sull'asse x, per cui i rettangolini
appaiono come dei segmentini.
  Nel demo viene determinato il coefficiente k del mercurio (in queste condi-
zioni: range termico, forma della colonnina, ...) con una cifra significati-
va, ottenendo k=0.006.


********  PROBLEMA 4
  A e B si stanno muovendo uno verso l'altro con velocita` di intensita` pro-
porzionale alla distanza tra loro; il coeff. di propozionalita` per A e`
1 sec^-1; per B e` il doppio. Se in un certo istante hanno distanza 10 (m),
in che posizione tendono a incontrarsi? Si incontrano effettivamente?

*** Modellizzazione
Assumo come O la posizione di A all'istante di rilevamento (t=0). Indico con
y e z le posizioni di A e B. Quindi y(0)=0, z(0)=10. Il modello della situa-
zione e`:  y'= z-y, z'= 2(y-z) (hanno segno opposto).

*** Soluzione
- Come affrontare questo problema?
- Estensione dei metodi numerici al caso dei sistemi differnziali con il
programma SISTDIF.

***>> Esci da Grafun (scegli Smettere), rientra in QBasic e apri SISTDIF dal
directory DIF:

|Programma per risolvere SISTEMI DIFFERENZIALI  y'= f(x,y,z) AND z'= g(x,y,z)
|(con parametri) e  EQUAZIONI DIFFERENZIALI  y''= f(x,y,y')  riconducendosi
|al sistema:  y' = z AND z' = f(x,y,z)
|
|SUB EQ (x, y, z, y1, z1) STATIC
|SHARED NumeroSistemi, NumeroParametri, Sistema
|NumeroSistemi = 4
|SELECT CASE Sistema
|CASE 1
|NumeroParametri = 0
| ' A e B vanno uno incontro all'altro con velocita` proporzionale alla
| ' distanza tra loro, con coefficienti di proporzionalita` 1 e 2 rispettiva-
| ' mente; y e z sono le loro posizioni
| y1 = z - y
| z1 = 2 * (y - z)
|CASE 2
| NumeroParametri = 2
| grado = ATN(1) / 45
| y1 = z: z1 = -(9.8/a(1)*SIN(y*grado) + a(2)*z*grado*a(1)) / grado
| 'pendolo di lungh. a(1) (m), y=angolo (gradi), x=t (sec), a(2) coeff.smorz.
|CASE 3
| ...

***>> Usa il programma scegliendo 2 finestre;
- scegli [0,5] per x, [0,10] per y e per z; ricorda che y(0)=0, z(0)=10;
- chiedi il tracciamento sia di y=y(x) che di z=z(x) in 1000 passi
- che cosa osservi
***>> ritraccia per 2000 passi;
- si e` ridotta significativamente la distanza tra yFin e zFin?


********  PROBLEMA 5
  Un pendolo semplice di massa M e` sottoposto alla forza di richiamo F di
intensita` -M*G*sin(A) se G e` la acc. di gravita` e A e` l'angolo. Se il
pendolo e` lungo 1 (m), qual e` il periodo se viene rilasciato dalla
posizione iniziale di 45 gradi? (ipotizziamo mancanza di attrito)
  Man mano che si riduce la posizione iniziale, il periodo tende a stabiliz-
zarsi su un certo valore? quale?
  Se si suppone che ci sia smorzamento, e` possibile che non ci sia neanche
una oscillazione?
PROBLEMA 5 bis: che relazione di scala (lineare, quadratica, ...) c'e` tra
lunghezza del pendolo e periodo (senza ipotesi di piccole oscillazioni)?

***>> Prova a risolvere il problema usando SISTDIF
Nota:
- se L, s, x e y sono lunghezza, spostamento, tempo e angolo in gradi,
poiche' F=M*s", s=A*L e A=y*grado (grado=PiGreca/180), il modello e`:
 s" = -G*sin(s/L),      cioe`    y" = -G/L*sin(y*grado)/grado.
- se si prevede smorzamento (prop. alla vel.), diventa:
 s" = -G*sin(s/L) - k*s', cioe`  y" = -(G/L*sin(y*grado)+k*y'*grado*L)/grado
SUGGERIMENTI:
- ricorda che l'eq. e` (ricondotta a) il sistema 2;
- lavora in 2 finestre;
- fai variare il tempo x tra 0 e 6 (sec) e l'angolo y tra -45 e 45;
- per z (=y'=velocita` angolare in gradi al sec) nella 2^ finestra prendi
l'intervallo [-150,150];
- ricorda che a(1) e` L e a(2) e` il coeff. di smorzamento; assumi che il
pendolo venga rilasciato senza spinta (z(0)=0);
- procedi con 1000 passi (e a sinistra traccia solo il grafico di y=y(x));
- nell'ultima parte, per vedere che cosa accade in caso di smorzamento,
usa y(0)=45 e incomincia con a(2)=1.

********
[Nel directory DIF avete anche un modello per risolvere le equazioni
del primo ordine usando "Eulero" con Derive e un DEMO di Grafun (da aprire
col menu 8 e battendo dif\demodif.dm) che illustra il metodo di Eulero]


--------------------- TEMA 2 - MODELLI PROBABILISTICI ---------------------

  Molti fenomeni hanno andamento Gaussiano. Perche'? Una interpretazione
possibile fa riferimento al Teorema Limite Centrale, che qui esprimiamo
in modo informale:
se una variabile casuale Y e` determinata dal contributo additivo di N
variabili casuali comunque distribuite X1,..., XN (Y = X1+...+XN) tra loro
indipendenti, se N e` sufficientemente grande e se l'azione di ciascuna delle
Xi e` piccola rispetto alla azione complessiva, allora Y ha distribuzione che
non differisce in modo significativo da una distribuzione normale.
  Il teorema e` assai difficile da dimostrare (usualmente non viene dimostra-
to neanche nei corsi universitari - al piu` se ne dimostra una versione debo-
le, che non consente l'interpretazione dei fenomeni ad andamento gaussiano).
  Proviamo a congetturarlo al calcolatore.

***>> Uscito da SISTDIF e dal QBasic, apri il programma FA_RND.bas (usando
l'interfaccia MaCoSa: batti R) ed esaminalo.
***>> Per motivi di tempo, invece di completare tu il Sub Prova, apri dal
directory ORV il programma LIMCENTR.bas che contiene gia` il Sub: esaminalo.
  Lancia il programma, memorizza l'esito come file numero 1, metti un
commento a tuo piacere e scegli 1000 dati.
***>> Prova ora a modifiacare il Sub Prova inserendo un'ultima riga (prima
di End Sub) con U = U^3 e memorizzane l'esito come file numero 2 (scegli
sempre 1000 dati).
***>> Ora esci dal programma, apri StatFile e esamina gli istogrammi dei
due file di nome 1 e 2 appena generati (scegli ad esempio 30 come numero
di intervalli in cui classificare i dati). Rispondi NO (cioe` ACapo) alle
richieste "vuoi memorizzare ...?".
- Uno ha andamento approssimativamente gaussiano. L'altro no. Perche'?
- Se una "popolazione" di fagioli ha lunghezza che varia in modo
gaussiano, il volume avra` anch'esso andamento gaussiano? (supponiamo che i
fagioli abbiano tutti la stessa forma)
***>> Proviamo a verificare la "gaussianita`" del primo istogramma.
- Riesamina (sempre da StatFile) il file numero 1 e calcolane lo scarto
quadratico medio. Registratene l'istogramma come file numero 1 per Grafun.
- Esci da StatFile, apri Grafun, traccia come PuntiCongiunti il file
numero 1 in scala automatica con il colore che preferisci.
- Quindi, tornato al menu principale premendo ESC, importa (6:mem, 2:import)
la funzione (1:x:->...) di nome Gauss e registrala come F, poi la costante
(2:cost) MEDIA, che registri come W e la costante SQM che registri come V
(StatFile ha automaticamente registrato per Grafun questi indici statistici).
- Traccia il grafico di F in scala invariata, senza cancellare, in un colore
diverso da quello dell'istogramma.
- Che cosa osservi?


--------------------------- TEMA 3 - LA VISIONE ---------------------------

Quale uso del computer per fare la geometria e in quali rapporti con quello
che se ne fa in altre materie che hanno a che fare con la geometria? Qual e`
il ruolo dell'insegnamento della matematica?
Per avviare una discussione di questi problemi proviamo ad usare un semplice
programma per la rappresentazione di figure tridimensionali.

***>> Uscito da Grafun, apri il programma PROSP (da MaCoSa: X (esegui un EXE)
e poi: 3D\PROSP).
Qui sotto e` sintetizzato il menu di PROSP:

|O   cambiare le coordinate dell'Occhio    ***> Per capire il ruolo di Occhio
|M   cambiare le coordinate del punto Mirato    e punto Mirato apri i file
|S   Scambiare occhio con punto mirato          DEMO1, DEMO2,..., DEMO4
|U   Unire (e memorizzare temporaneamente) il file con un'altra figura
|E   End: per cambiare file (o uscire da PROSP)
|+/- ingrandire/ridurre l'immagine della figura
|=   far riapparire l'immagine (dopo un cambio di finestra)
|A-D far diventare attiva la finestra indicata              Finestre ->   A B
|T   rifar diventare attiva la finestra Totale                            C D
|F   modificare (e memorizzare temporaneamente) la figura secondo una
|    Funzione (trasformazione) lineare  x'=..., y'=..., z'=...

***>> Apri il file DEMO1 e poi segui le indicazioni (Unisci DEMO2, ...), per
capire il funzionamento del programma

***>> Poi, batti "E" e apri CASA
- cambia occhio: prendi 4,2,1
- unisci BINARIO
- se nel file BINARIO fossero aggiunte altre traversine, la sua immagime
potrebbe arrivare alla parte superiore dello schermo?
- unisci il file PROL che contiene i prolungamenti degli spigoli orizzontali
della casa; poi zoomma fino a vedere per intero i prolungamenti; che cosa
puoi concludere? come interpreti il fenomeno osservato;
- tutte le rette vanno a finire nella linea dell'orizzonte? prova ad unire
il file PROL2.