Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

6
voti

Il computer e la matematica

Premessa

Sono stato sempre affascinato dalla matematica.

Non tanto dal lato teorico, con teoremi e dimostrazioni, quanto dalla possibilità di risolvere problemi di qualsiasi natura, dall'astrazione dello studio di funzioni, alle applicazioni pratiche come ad esempio i progetti di automazione industriale, che hanno costituito gran parte della mia vita professionale.

Ho avuto però anche la ventura di vivere di persona l'evoluzione dei calcolatori elettronici, dalle prime scarne notizie del dopoguerra all'attuale tumultuosa diffusione di personal.

Dai banchi del liceo sono infatti ormai passati quasi sessant'anni e rivedendo i quaderni di esercizi (che tuttora conservo) sono portato a riflettere sui grandi cambiamenti che sono nel frattempo avvenuti. Cambiamenti così rapidi che certo non hanno l'eguale in nessun periodo storico del passato.

L'osservazione più ovvia è l'attuale facilità dello svolgimento dei calcoli.

Allora qualsiasi operazione doveva essere svolta a mano (al massimo si poteva disporre di addizionatrici meccaniche e le macchinette che potevano fare anche moltiplicazioni e divisioni erano una rarità).

Gli ingegneri usavano il regolo calcolatore nei calcoli approssimati, ma se si voleva una maggior precisione si doveva ricorrere alle tavole dei logaritmi (ricordo ancora interi pomeriggi passati al Politecnico in questo modo, per esercitazioni di topografia).

Per problemi ripetitivi si ricorreva ai ‘nomogrammi' (soluzioni grafiche che permettevano di ricavare rapidamente e facilmente la soluzione al cambiare dei dati, ma credo che oggi nessuno conosca più nemmeno l'esistenza di questi metodi).

L'osservazione più importante è però che il calcolatore ha permesso approcci completamente diversi alla soluzione dei problemi.

Per me questo è cosa ovvia, avendo come dicevo vissuto di persona l'utilizzo di questi apparati, via via sempre più potenti ed economici. (Forse perché all'inizio il loro utilizzo era riservato a pochi ‘specialisti', che dovevano programmarsi da soli le loro applicazioni).

E' quindi con una certa meraviglia che scopro nella scuola italiana che la matematica è rimasta quella di sessant'anni fa: nessun cenno alle nuove possibilità (e tanto meno alle applicazioni pratiche).

Così per la maggior parte degli studenti italiani (almeno è quanto risulta a me) il calcolatore è una specie di supercellulare, che dà maggiori capacità scambiare messaggi e di ‘chattare'.

Questo articolo vuol essere un contributo a far conoscere almeno i più elementari metodi di soluzione resi possibili dal calcolatore.

Calcolo ‘numerico'

Dopo il periodo pionieristico dei calcolatori a valvole termoioniche (fino alla fine degli anni cinquanta), l'impiego dei transistor al posto delle valvole, rese possibile da una parte la riduzione delle dimensioni e della potenza richiesta e dall'altra una drastica riduzione dei guasti, e portò all'applicazione dei calcolatori anche in ambito industriale.

Lo sviluppo del software ‘user oriented', cioè evoluto quindi non legato al linguaggio del particolare hardware utilizzato, consentì inoltre una decisa riduzione dei tempi di programmazione, rendendo possibili applicazioni alla progettazione oltre che alle ovvie applicazioni contabili.

Linguaggi come il Fortran ed il Basic consentirono infatti di svolgere i calcoli di progetto in modo molto rapido e questo permise un maggior affinamento dei progetti stessi. (La maggior parte dei calcoli ingegneristici non è altro che una verifica di scelte intuitive, e la possibilità di esaminare una più ampia gamma di soluzioni permette di ottimizzare il progetto stesso).

Ebbe così inizio la modellistica, cioè lo studio di apparati in base modelli matematici che simulano il comportamento degli apparati stessi, in funzione della variazione di alcuni parametri.

A partire dall'inizio degli anni settanta, l'introduzione del microprocessore permise una diffusione sempre più capillare delle potenzialità di calcolo (con le prime calcolatrici tascabili), per affermarsi poi nei ‘personal computers'. (Una sola osservazione: la potenzialità di calcolo di un attuale personal equivale a tutta quella disponibile agli scienziati NASA al tempo della conquista della luna!).

Ma come viene utilizzata questa potenzialità?    Questo è il punto che motiva questo articolo.

Si è già citata la modellistica, ma si sa che la maggior parte dei fenomeni fisici è basata su comportamenti non riducibili alla semplice aritmetica delle quattro operazioni, quindi il problema è quello di adottare algoritmi che riducano in ogni caso qualsiasi relazione a semplici operazioni aritmetiche. E' questo il compito del cosiddetto ‘calcolo numerico'.

E' ad esempio facile risolvere un'equazione differenziale ricorrendo al metodo delle ‘differenze finite', cioè ricorrendo ad incrementi ‘finiti' invece che considerare gli ‘infinitesimi' del calcolo differenziale. Chiaramente ciò comporta un'approssimazione rispetto all'esattezza del tradizionale metodo teorico, ma è altrettanto evidente che l'errore può essere ridotto a piacere con l'aumento del tempo di calcolo (con incrementi più piccoli), e che comunque può essere fatto rientrare nelle tolleranza ammesse nei calcoli tecnici.

La mia personale esperienza in questo campo ha avuto inizio negli anni sessanta in particolare con le applicazioni alla regolazione automatica: pur negli anni del trionfo degli amplificatori operazionali, si capiva che il futuro sarebbe stato delle soluzioni "digitali", basate appunto sul calcolo numerico, piuttosto che su quello "analogico".

Essendo tale argomento piuttosto specialistico, dare esempi in questo campo potrebbe risultare poco comprensibile, perciò credo sia più utile ricorrere a casi elementari.

Svuotamento di serbatoi

Fra i casi più semplici di applicazione del calcolo integro-differenziale vi è quello della determinazione del tempo di svuotamento di serbatoi.

Il classico problema, ormai da scuola elementare, della vasca da bagno che contiene una certa quantità d'acqua e che si vuota con una data portata, è infatti viziato dall'assunzione che tale portata rimanga costante.

In realtà non è così: man mano si svuota, il livello cala facendo diminuire la portata stessa.

C'è quindi una relazione (data dal principio di Torricelli) che complica il calcolo.

Il principio dice che la velocità d'uscita dell'acqua dallo scarico, è la stessa che assumerebbe una goccia che cadesse dall'altezza fra la superficie dell'acqua e lo scarico, e che è perciò uguale alla radice quadrata di 2 per l'accelerazione di gravità (g = 9,81 m/s2) e per questa altezza (h).

Tale velocità moltiplicata per la sezione dello scarico (S) dà la portata in uscita.

Ma proprio il fatto che in un certo tempo (t) esce una certa quantità d'acqua (data dalla portata per il tempo) fa diminuire il livello in modo corrispondente, tenendo conto dell'area della superficie (A).

Il calcolo differenziale ci dà gli strumenti per risolvere la situazione.

Supponiamo che il serbatoio abbia forma cilindrica , ad asse verticale, quindi con una sezione A costante.

Chiamando dh la variazione di livello nell'intervallo di tempo dt , si ha: A*dh=S*Ö 2gh *dt

da cui, separando le variabili ed integrando si ottiene il tempo totale T di svuotamento a partire da un livello iniziale H, a cui corrisponde un volume d'acqua V.

Il metodo classico di integrazione porterebbe a questo risultato:

La soluzione alternativa alle differenze finite considera invece N sezioni discrete, applicando ad ognuna la stessa formula che dà il tempo, variando per ciascuna solamente h e sommando tutti gli intervalli di tempo necessari allo svuotamento delle singole sezioni (a volumi uguali corrispondono intervalli di tempo sempre più lunghi).

Il caso considerato della forma cilindrica del serbatoio, richiede l'integrazione di un'espressione relativamente semplice da integrare, ma si può vedere che le cose cambiano se ad esempio la forma verticale comporta, al variare di h, anche la variazione della sezione A.

Supponiamo allora il caso di un serbatoio a cono rovesciato (ad imbuto): la sezione A varia in modo quadratico col raggio, che a sua volta varia linearmente con h.

Mentre l'espressione da integrare si complica, richiedendo una certa abilità nel risolvere l'integrale, il calcolo numerico rimane elementare, in quanto ad ogni sezione viene semplicemente ricalcolata anche la superficie A.

Così se si considerasse l'analogo caso di un serbatoio conico (con la base in basso)

Mettendo a confronto i tre casi esaminati, tutti con lo stesso volume e livello iniziale, e con lo stesso foro d'uscita, otterremmo questi andamenti di svuotamento:

Come si vede, disponendo di un calcolatore e con procedure di calcolo elementari è possibile risolvere problemi che richiederebbero familiarità con gli integrali (quando non addirittura impossibilità di soluzione in casi particolarmente complessi).

Serbatoio inclinato

Un altro caso interessante è il calcolo di volumi in contenitori dalla geometria complicata.

Si pensi ad esempio al caso della determinazione del volume di un liquido in un serbatoio cilindrico messo con asse inclinato (che forma cioè un angolo α col piano orizzontale) date le misure del livello h dal punto inferiore, della lunghezza L e del diametro D (vedi fig.)

Ogni sezione parallela a z, quindi in funzione di x, è un segmento circolare la cui area è funzione della saetta (z), del raggio (R=D/2) e della corda (2y, essendo y la coordinata del cilindro sul terzo asse, ricavabile dall'equazione del cilindro con asse parallelo ad x e passante per il punto 0,0,R).

Il volume del liquido è la sommatoria di tutte questa sezioni, moltiplicata per la spessore (Δx).

Naturalmente questo vale anche quando si incontra l'estremità opposta, limitando il calcolo delle sezioni ad L, e quando la prima estremità è completamente sommersa, calcolando la parte cilindrica fino all'intercetta dell'asse superiore con il livello e sommando solo le sezioni da questo punto ad L.

La figura riporta una procedura di soluzione (semplificata per ragioni di spazio).

La precisione del risultato dipende essenzialmente dal numero di sezioni calcolate, quindi da Δx, ma nella pratica la principale limitazione viene dalla effettiva misura del livello e non dal calcolo.

Scatola di pomodori

Fra i calcoli più utili, dal punto di vista industriale, vi sono quelli di minimizzazione.

La minimizzazione è spesso legata alla riduzione del costo di un prodotto, quindi ha una notevole importanza nella competizione commerciale.

Consideriamo come esempio più semplice la classica scatola di pomodori: qual è la forma più opportuna da dare alla scatola cilindrica per minimizzare la lamiera occorrente?

Si tratta essenzialmente di trovare la proporzione fra il diametro e l'altezza della scatola che ne minimizza la superficie a parità di volume.

Un matematico potrà dimostrare che il cilindro di minima superficie ha rapporto 1 fra diametro e altezza, ma questo non tiene conto della reale quantità di lamiera occorrente per ‘costruire' la scatola. Si trascura infatti la quantità necessaria per i bordi e per i rinforzi.

Vediamo allora di utilizzare il calcolatore, impostando semplicemente le relazioni e facendo disegnare la curva dei rapporti al variare delle proporzioni.

Dobbiamo prima fissare il volume utile della scatola Vi, ad esempio 4,3 dl, ed il rapporto variabile k dell'altezza rispetto al raggio. Il raggio sarà così determinato da Vi e da k. Questo ci permetterà di calcolare le superfici del cilindro e dei due coperchi, tenendo conto anche delle esigenze costruttive (valutate in 3 millimetri per parte del cilindro + 10 mm sul raggio del fondo e del coperchio).

Facendo variare il rapporto k da 1 a 5, si vede che il minimo si ottiene a 2,8 (indice n=180), ottenendo le corrispondenti misure utili del diametro (73 mm) e dell'altezza (102 mm).

Potremmo evidentemente continuare a dare esempi di questo tipo, ma credo che possa bastare per capire l'importanza pratica del calcolo ‘numerico'.

Calcolo ‘simbolico'

L'utilizzo del calcolatore per la matematica non è però limitato alle procedure numeriche come illustrato finora.

Il progredire degli ambienti software sempre più sofisticati ha portato sin dalla fine degli anni ottanta anche allo sviluppo di procedure orientate alla soluzione ‘simbolica', quindi più simili alla procedura matematica convenzionale.

Fra i più celebri ambienti di questo tipo vi è certamente il Maple, originariamente sviluppato in ambito universitario (università di Waterloo in Canada) e successivamente incorporato nei principali software matematici (MathCad e MathLab).

In questo modo non solo è possibile ‘scrivere' in forma convenzionale le espressioni matematiche di qualsiasi tipo, comprese matrici, numeri complessi, derivate, integrali ecc., ma anche elaborarli in modo puramente simbolico per arrivare a soluzioni generalizzate.

La casistica è a questo punto talmente vasta da rendere impossibile una esemplificazione esaustiva.

Mi limiterò a pochi casi, che ritengo però sufficienti a dare un'idea delle possibilità.

Cominciamo ad esempio con il problema visto inizialmente dello svuotamento di un serbatoio cilindrico, risolto in MathCad:

Come si vede, tutti i passaggi che portano alla soluzione sono ottenuti automaticamente in forma simbolica.

Allo stesso modo è possibile risolvere equazioni differenziali non affatto semplici.

Nella figura successiva, si noti che tutti i passaggi intermedi sono stati ricavati direttamente dal calcolatore, ovviamente con la regia dell'operatore che deve però solo limitarsi a pilotare lo svolgimento (richiamando in modo opportuno le singole funzioni da utilizzare).

Questo è altamente formativo, lasciando all'operatore la responsabilità della procedura concettuale per arrivare alla soluzione (il pericolo dell'uso del calcolatore è infatti che si perda la capacità di controllo sul come si ottiene il risultato)

Ed ecco l'esempio di equazione differenziale:

Chiudo la serie di esempi di calcolo simbolico con un'applicazione delle Trasformate di Laplace ad un'equazione del secondo ordine (è superfluo sottolineare che anche le trasformazioni vengono ottenute direttamente dalle speciali funzioni di Symbolic in MathCad).

Nella soluzione, è stato impiegato anche il metodo di soluzione automatica di sistemi (Given-Find), per ottenere l'espressione di y(s) (indicata come y0, e corrispondente alla prima riga della matrice).

E' anche chiaro che per la successiva antitrasformazione (per ottenere la y(t)) è necessario un passaggio di suddivisione dell'espressione in una somma di frazioni parziali, fatto direttamente dal calcolatore (per renderlo esplicito si può utilizzare la funzione di Symbolic ‘Convert to Partial Fraction')

Si sottolinea infine che, data la facilità di eseguire automaticamente derivazioni, sostituzioni ed esplicitazioni, è facile verificare l'esattezza del risultato, cioè ricostruire l'equazione di partenza derivandolo due volte e sommandone opportunamente i termini.

Altra prova, ancora più facile e significativa, è la visualizzazione in grafici degli andamenti delle varie funzioni (y(t) e le sue derivate), eventualmente moltiplicate per i propri coefficienti e sommate per verificarne l'identità.

Conclusioni

Questo articolo ha voluto essere un contributo alla conoscenza delle possibilità oggi offerte dai diffusi personal computers nello svolgimento di calcoli ingegneristici: possibilità veramente strabilianti per chi, come me, ha iniziato disponendo del solo regolo calcolatore.

Ma, come ho accennato nella premessa, ho l'impressione che tutto questo non sia sufficientemente diffuso nella scuola italiana (se non addirittura ignorato).

Da una parte si considera la matematica come una pura costruzione intellettuale di teoremi e dimostrazioni, senza il minimo riferimento alle sue possibili applicazioni.

Dall'altra, se è vero che esistono corsi universitari sul calcolo numerico, questi sono talmente orientati a problemi che richiedono potenzialità di calcolo ben superiori a quelle di un personal (e soprattutto richiedono ambienti di sviluppo estremamente costosi), da renderne impraticabili le ricadute sulla piccola e media industria.

Il tutto circondato da ogni parte dai quotidiani auspici sulla ‘competitività', sulla ‘ricerca' e sull' ‘innovazione'………..

Concludo quindi con una proposta concreta: chiunque sia interessato ad una assistenza (gratuita) nell'applicazione del calcolatore a specifici casi di progettazione, può contattarmi.

6

Commenti e note

Inserisci un commento

di Daniele,

Ho apprezzato l'articolo e notato la dimestichezza che hai con integrali e formule matematiche.

Rispondi

di ,

PLG,
L'esperto di Mathcad, autore di questo articolo, lo trovi nel Forum (g.sghor) come moderatore (a settembre).

Rispondi

di PLG,

Non sono un grande frequentatore di questo sito però ho avuto modo di controllare alcuni argomenti di elettrotecnica, che sono esposti in modo originale, però chiaro e ben comprensibile anche per studenti non universitari. Alcuni dei miei studenti mi hanno ringraziato di aver suggerito di visitare il sito avendolo trovato di qualche utilità. Gli strumenti matematici di cui occorre essere dotati sono quelli delle medie superiori, limiti derivate integrali, matrici.
Gradirei alcuni suggerimenti sulle conoscenze necessarie per applicare Mathcad in ordine a:
-modelli fisici
-equazioni che li rappresentano
-programma necessario.
A quali studenti o curiosi del sapere sono rivolte queste interessantissime e stimolanti esposizioni.

Rispondi

di altratecnica,

Poiché nell'articolo si fa un breve accenno storico del calcolo matematico penso possa interessare la mia "piccola storia della calcolatrice" visibile su http://altratecnicabis.3000.it perchè mette in risalto ancora una volta il progresso intervenuto in questi ultimi cinquant'anni

Rispondi

di ,

Capisco l'obiezione, ma devo precisare che un conto e' il calcolo (ad es. di una traettoria) ed un altro e' il controllo fisico del movimento(cioe' la "guida automatica"). La differenza sta nella necessita' di eseguire i calcoli in "tempo reale" (nel caso di controllo automatico), oppure no (caso del semplice calcolo della traettoria). Se quindi la velocita' di calcolo non e' determinante, la "simulazione" di qualsiasi fenomeno, comunque complesso, puo' essere tranquillamente eseguita anche con un calcolatore di limitate prestazioni (si tratta di aspettare un po' di piu' il risultato). E' pero' chiaro che questo deve essere dotato di programmi atti ad eseguire calcoli anche con algoritmi molto complessi, quindi deve possedere un "ambiente di sviluppo matematico" adeguato (come ad es. Mathcad, Matlab, ecc.) Personalmente lamento che nelle nostre scuole non sia abbastanza diffusa la conoscenza di queste potenzialita' del calcolatore, che cambiano l'approccio stesso al calcolo (e quindi alle sue applicazioni, come ad es. la progettazione industriale), e cerco pertanto di suscitare l'interesse almeno dei frequentatori di questo sito.

Rispondi

di Maurizio_da_Como,

Buon giorno! Non sono certo uno specialista di calcolatori, sono solo un elettrotecnico con qualche esperienza di elettronica e una ottima predisposizione (almeno ai tempi della scuola,) per la matematica in generale e applicata. Non posso quindi fare domande specifiche, ma solo delle curiosità, forse le mie domande saranno estremamente stupide: io uso il PC come quasi tutti: a casa per scrivere testi o per connettermi ad internet, sul lavoro anche per programmare PLC e apparati di automazione; vedo colleghi che lo usano per tracciare schemi elettrici o disegni meccanici, impiegati che ci tenono contabilità, registri clienti, e poi ragazzi che ci giocano, eccetera, eccetera.... Ma come calcolo? Quali potrebbero essere le capacità di calcolo per es. di un processore Pentium a 2 o 3 Ghz? Oppure sta tutto nei sistemi operativi o programmi? Io dico questo perchè mi sembra che TUTTI i PC, non solo il mio, non dimostrano poi, nei programmi usuali, queste incredibili velocità, certo sono molto più veloci ad aprire una pagina di quanto potrebbe fare una persona ad aprire un libro alla giusta pagina; aprono un disegno complesso in pochi attimi... ma parliamo di decimi, o di secondi, non di nanosecondi. Come è possibile, per tornare all' esempio fatto da lei, che il mio portatile da 3Ghz sia molto più performante di un computer che ha guidato lo sbarco sulla luna, se ci mette tempi dell' ordine dei decimi o dei secondi per fare ogni cosa? Dipende dai programmi e dalle periferiche? Come può un computer calcolare ad esempio una rotta di un vettore nello spazio ed aggiornarla istantaneamente, senza correre il rischio di perderlo? Dove può essere la differenza fondamentale, se non è nell' hardware? Forse tutti i programmi "seri" devono venire scritti in linguaggio macchina direttamente nel processore, con buona pace di Windows e simili? So di avere le idee molto confuse. Sperando di essere stato chiaro, ringrazio per qualche chiarimento, e mi scuso se magari ho scritto bestiate.

Rispondi

Inserisci un commento

Per inserire commenti è necessario iscriversi ad ElectroYou. Se sei già iscritto, effettua il login.