PROVA -  · PROVA MATHEMATICA Mathematiea Il 40, dopo 4 Pi permette di scegliere il numero di cifre...

6
PROVA · -~ --- -~~ --- Mathematica ffH' dt,. MtlcilflOv, Mathematiea di Raffaello De Masi N el 1958, frequentavo allora le medie, comprai attraverso la pubblicità su una rivista un appa- recchietto di plastica che consentiva, almeno secondo quanto diceva la pub- blicità, calcoli matematici fulminei pur senza adottare tecniche comuni alle al- lora nascenti calcolatrici tascabili (si fa per dire, visto che avevano le dimensio- ni di un mattone, erano a led rossi o verdi, e divoravano le batterie come piraiia). L'acquisto si rivelò rappresenta- to da un aggeggino della grandezza di un regolo calcolatore tascabile, che, at- traverso un ingegnoso sistema di slitte di plastica spesse come stuzzicadenti, e mutuando l'algoritmo di soluzione dall'a- baco-pallottoliere degli egizi, permette- va, effettivamente, con un poco di eser- cizio continuo, di eseguire con una certa speditezza addizioni e sottrazioni (alle 142 moltiplicazioni e divisioni non arrivai mai, anche perché la pazienza e la tena- cia di esercizio non sono il mio forte). Ho tenuto, comunque, da parte per molti anni questo aggeggino, anche per rendere omaggio alla ingegnosità del- l'inventore; più pratico di un regolo, ovviamente nel campo delle quattro operazioni, comodo da portare, permet- teva di fare, oltre tutto scena con le compagne di scuola, affascinate da que- sto ((calcolatore automatico)), come ve- niva definito nel foglio d'istruzioni. Signori, abbiamo appena parlato della Topolino Fiat! Permetteteci di presenta- re adesso la Ferrari Mondial del compu- to algebrico-matematico, il programma che è oggetto di questo articolo! Pensate che TK!Solver faccia cose egrege nel campo della risoluzione alge- brica? Vi meravigliate della sua capacità di elaborare grafici da una funzione defi- nita in una delle sue finestre! Preparate- vi a fare un salto di qualità senza pari; stiamo per entrare non in un program- ma, ma direttamente in un ambiente matematico! 1/ package Quando Marco mi ha mandato il pac- chetto cori la preghiera (si fa per dire! i) di eseguire la relativa prova, non mi preoccupai più di tanto e pensai: « Ecco qualche nuova elucubrazione notturna di qualche svitato che ha sviluppato una nuova astrusità per prolungare il calvario di qualche inoffensivo redattore di rivi- ste di informatica». La cosa che più mi pareva strana era la composizione per lo meno anomala del package: cinque di- schi di programma più un demo, uno MCmicrocomputer n. 90 - novembre 1989

Transcript of PROVA -  · PROVA MATHEMATICA Mathematiea Il 40, dopo 4 Pi permette di scegliere il numero di cifre...

Page 1: PROVA -  · PROVA MATHEMATICA Mathematiea Il 40, dopo 4 Pi permette di scegliere il numero di cifre decimali, che nel nostro caso sono state .40. AI più sem-plice livello ...

PROVA

·-~--- -~~---

MathematicaffH' dt,. MtlcilflOv,

Mathematieadi Raffaello De Masi

Nel 1958, frequentavo allora lemedie, comprai attraverso lapubblicità su una rivista un appa-

recchietto di plastica che consentiva,almeno secondo quanto diceva la pub-blicità, calcoli matematici fulminei pursenza adottare tecniche comuni alle al-lora nascenti calcolatrici tascabili (si faper dire, visto che avevano le dimensio-ni di un mattone, erano a led rossi overdi, e divoravano le batterie comepiraiia). L'acquisto si rivelò rappresenta-to da un aggeggino della grandezza diun regolo calcolatore tascabile, che, at-traverso un ingegnoso sistema di slittedi plastica spesse come stuzzicadenti, emutuando l'algoritmo di soluzione dall'a-baco-pallottoliere degli egizi, permette-va, effettivamente, con un poco di eser-cizio continuo, di eseguire con una certaspeditezza addizioni e sottrazioni (alle

142

moltiplicazioni e divisioni non arrivaimai, anche perché la pazienza e la tena-cia di esercizio non sono il mio forte).

Ho tenuto, comunque, da parte permolti anni questo aggeggino, anche perrendere omaggio alla ingegnosità del-l'inventore; più pratico di un regolo,ovviamente nel campo delle quattrooperazioni, comodo da portare, permet-teva di fare, oltre tutto scena con lecompagne di scuola, affascinate da que-sto ((calcolatore automatico)), come ve-niva definito nel foglio d'istruzioni.

Signori, abbiamo appena parlato dellaTopolino Fiat! Permetteteci di presenta-re adesso la Ferrari Mondial del compu-to algebrico-matematico, il programmache è oggetto di questo articolo!

Pensate che TK!Solver faccia coseegrege nel campo della risoluzione alge-brica? Vi meravigliate della sua capacità

di elaborare grafici da una funzione defi-nita in una delle sue finestre! Preparate-vi a fare un salto di qualità senza pari;stiamo per entrare non in un program-ma, ma direttamente in un ambientematematico!

1/ packageQuando Marco mi ha mandato il pac-

chetto cori la preghiera (si fa per dire! i)di eseguire la relativa prova, non mipreoccupai più di tanto e pensai: « Eccoqualche nuova elucubrazione notturnadi qualche svitato che ha sviluppato unanuova astrusità per prolungare il calvariodi qualche inoffensivo redattore di rivi-ste di informatica». La cosa che più mipareva strana era la composizione per lomeno anomala del package: cinque di-schi di programma più un demo, uno

MCmicrocomputer n. 90 - novembre 1989

Page 2: PROVA -  · PROVA MATHEMATICA Mathematiea Il 40, dopo 4 Pi permette di scegliere il numero di cifre decimali, che nel nostro caso sono state .40. AI più sem-plice livello ...

PROVA

MATHEMATICA

Mathematiea

Il 40, dopo 4 Pi permette di scegliereil numero di cifre decimali, che nelnostro caso sono state .40. AI più sem-plice livello Mathematica esegue calcoli

In[1J=N[log[4 Pill

Con Mathematica, come con un lin-guaggio di intelligenza artificiale, si «dia-loga»; il manuale e il volume di accom-pagno usano, per rappresentare taledialogo, alcune convenzioni che qui ri-portiamo, anche per meglio identificareciò che successivamente scriveremo.

Le linee che iniziano con «In» sonoquelle che l'utente (Input) batte allatastiera; quelle indicate con «Out»(Output) rappresentano la risposta diMathematica. Un esempio di calcolomatematico potrebbe essere rappre-sentato dalla richiesta:

Battiamo adesso:

Trovare il valore numerico di log(4lt)

In[2]=n[log[4 Pil. 40JOutl2J=53102424696929070297789159426-9411847798

Espresso in linguaggio Mathematicaavremo:

Out[1 J=2.531 02

[1]. dopo In, indica che si tratta delprimo quesito, il simbolo di [= J è postoautomaticamente, N indica al program-ma che si desidera un valore numerico,il resto è abbastanza intuitivo se siconsidera solo che [Pi] è una costante,che l'ambiente già conosce e che equi-vale a [rt].

Avremo come risposta:

L. 1.200.000L. 1.800.000L. 1.600.000L. 2.200.000L. 2.800.000

A System for Doing Mathematicsby Computer versione 1.1Produttore:Wolfram Researeh, IneP.O.BOX 6059 Champaign, IL 61821 U.S.A.Distributore:A./.S. Spa, Via Rombon 11, 20134 MilanoPrezzi:Verso per Mac P/usVerso per Mac /IVerso per MS-DOS 386Verso per 386 con 387Ve~.per38~indows

La videatadi introduzione

al pacchetto.

È possibile ancora utilizzare Mathe-matica come linguaggio per rappresen-tare conoscenze matematiche; il granvantaggio è lo scarso formalismo ne-cessario per eseguire ciò; tanto perintenderci è praticamente possibile rica-vare da libri o riviste espressioni e rela-zioni matematiche, e introdurle diretta-mente nell'ambiente, quasi del tuttosenza modifiche. In questo caso l'ap-proccio alla formula è totalmente inver-tito rispetto a tutti gli altri linguaggi; quioccorreva adattare ciò che si inserivaall'idioma, in Mathematica è sufficiente«istruire» il programma su come tratta-re la formula stessa.

Infine, e non è tutto, Mathematica ècostruito in modo da lavorare in collabo-razione con altri programmi; è possibilepreparare Mathematica per approntareoutput verso altri pacchetti, o per rice-vere dati da essi; ciò è anche possibilein quanto il package rispetta standarddiffusi e sperimentati, come Unix ePostScript. che possono essere consi-derati, nel loro genere, gli standard defacto.

Ma analizziamo un poco più da vicinoquanto abbiamo finora detto. Avevamoinfatti espresso diverse affermazioniche ci interessa verificare e dimostrare.

Il programmaIl package, all'apertura, mostra una

finestra in cui sono ricordati gli imple-mentatori del pacchetto, in tutto otto,compreso il gran patron Stephen Wol-fram. Ma che cosa è Mathematica?

Semplice, almeno a parole, la rispo-sta: Mathematica è un sistema genera-le, un ambiente per eseguire calcolimatematici. Esso può essere utilizzatoin diversi modi e a differenti livelli; lasua potenza sta nel fatto che non silimita, come una normale calcolatrice, aeseguire calcoli numerici, ma può svi-luppare calcoli e operazioni algebriche,simboliche e grafiche.

Ma Mathematica è anche un linguag-gio, in possesso di sue definizioni estatement. e in cui l'utente può porre edefinire sue istruzioni. È possibile quindiscrivere veri e propri programmi, lavo-rando combinatamente non solo connumeri, ma anche con funzioni algebri-che, notazioni simboliche ecc. tutticombinati insieme.

striminzito manuale di istruzioni, unaserie di fogli volanti dell'ultima ora, e unpesante volume, elegantemente rilega-to, scritto dall'implementatore del pro-gramma e gran patron della softwarehouse costruttrice, pubblicato però daAddison-Wesley.

La cosa si è fatta ancora più curiosaquando ho aperto il manuale d'istruzio-ni; esso serve solo come sottomanoper l'utente, e rimanda per tutta la fasedi autoistruzione al libro appena citato;allora ho pensato di vederci un po' piùchiaro in questa procedura un poco stra-na, e, quasi per incanto mi sono trovatoa navigare in qualcosa di assolutamenteimpensabile.

Il pacchetto, riassumiamolo, è com-posto dal volume appena citato, di ben750 pagine, di un manuale utente strin-gato (circa 150 pagine, rappresentate inbuona parte da note di riferimento aimenu e alle opzioni), di 6 dischetti (dicui 3 di programma, uno di utility e unodi esempi, oltre al demo, che gira anchesu macchine di 1 M). di un manuale diawio (in cui viene descritto tra l'altro,un virus checker originale). un manualeavanzato, una serie di aggiornamenti,garanzie, fogli di registrazione e preno-tazioni per gli upgrade, e così via!

Abbisogna di almeno 4 mega di me-moria centrale, anche se, con due, èpossibile leggere e visualizzare alcun)esempi presenti sull'ultimo disdi'etto. Epossibile a parte richiedere anche il de-ma separato, che illustra le caratteristi-che principali e alcuni dei risultati piùinteressanti e appariscenti del pac-chetto.

MCmicrocomputer n. 90 - novembre 1989 143

Page 3: PROVA -  · PROVA MATHEMATICA Mathematiea Il 40, dopo 4 Pi permette di scegliere il numero di cifre decimali, che nel nostro caso sono state .40. AI più sem-plice livello ...

PROVA

MATHEMATICA

Uhndou"\ ••.

<..:Pol,blltd •.••

Sbo.(GrepblC:l3PI S\.cllaltor [cnat'lb$lrlln( Illl.

Due esempi di grafica tridimensionale.

(1'11\ \l'd'fh "ftlOn \llllf'\' U1lltlltIU'\ 00,

lJn Il 11('(1 1

continueremo poi dicendo:

batteremo alla tastiera:

In[3]=x' 4/(x'2-1)Out[3]=0-

-=-1 +x2

In[4]= Integrate[%,x]Out[4]=x+x3/3+log[-1 +x]/2-Log[1 +x]l2

Un esempio in proposito è dato dallaricerca dell'integrale:

t X4/(X2-1 )dx

L'unica cosa non immediatamentechiara in tutto ciò è il simbolo %, cheindica alla formula che ci si sta riferendoall'ultimo output.

Ancora, come se non, bastasse, è

Ordlll dumml' qnlPhlf\ ln\trdd 01 Pn\t\(t1pt '0

PO\t'tcupl 'l'di} Il'1'(''1 \(Ippn dt"n\lh,

• "11011Ip"nl"" lo uU'lh dl"dUIl \(lpI'n ~\

Of'n\!tt,· ~ nnqllt: 1").00 lO'dUl f'O\I\(IIpl (l'tlplI'\. tCl loole b('\t 00

! • llll' bi'\l mnnlln, ,Il 'hp Ullllllolll;, monl'o, -tut:.J A1l1PIlY'\. rl' 't'lidi" tor (ul,,'nl ;,(n'pn \rllm9\ - R

8AlwtJll' \11"tIUUnlLf' ((Ilor t"III(';, IlIllh plltf'tle -p0Caclle tlltrntlp\ IO' PIC, ~f'1I\li"" III()

ReQuP\Il'd numb('t of c010'\"011(' (J 1 8 l)

6·1 96. 118 IWl

l'uso delle più potenti e diffuse funzionistatistiche e finanziarie.

È possibile ancora eseguire operazio-ni matematiche su funzioni particolari,come integrazione numerica e ricercadei minimi.

Altrettanto semplice è eseguire calco-li simbolici: una delle maggiori comoditàdi Mathematica è la possibilità di ma-neggiare formule simboliche allo stessomodo di formule algebriche e numeri-che. In questo modo è possibile espan-dere, fattorizzare e semplificare polino-mi ed espressioni razionali. Come dice-vamo precedentemente, è possibile ri-solvere equazioni polinomiali o sistemidi equazioni virtualmente di qualunquegrado; ancora, ritornando all'esempioprecedente, è possibile ottenere risulta-ti algebrici da qualunque tipo di opera-zione su matrice.

Anlmol, \t"lpt "'d l-htphU '\Allqn \pl~( INI Grdph'l\

[onll(>" lo P.tl(PUlIIlI' ro8.Imdp PIOlonuf'tI lo rmbpdd.d PO,I\(np1 PIOtonllNI10 Po\l\tllpl

"""":;'fI:,;::s~r• ~;::; l. l~ .Wlll ~'I _ f

R. n"nd" POU\u,pl"""'hou' r'lIpd AIPd'

• Aholllt.np1oM.U:" Imp\ Ihm1)'t",p'lIP n,p ••t' Rallo

'. Male" \t"ndtud \1/1"

nUmeriCI, né più né meno come unacalcolatrice comune, ma con due van-taggi; quello di adottare la precisionevoluta, da una parte, e quello di posse-dere una potenza di calcolo ben supe-riore anche alle più potenti calcolatrici(ivi comprese le famigerate HP). inquanto include un ampio range di fun-zioni matematiche, incluse le più sofisti-cate funzioni della fisica matematica.

Mathematica lavora non solo con sin-goli numeri, ma con strutture anchecomplesse. È possibile, ad esempio,eseguire operazioni su matrici, o acce-dere agli statement già implementati erelativi ai calcoli di algebra numericalineare; è possibile utilizzare agevol-mente il pacchetto, ad esempio, per laricerca delle trasformate di Fourier, deivalori di incognita dei polinomi di grado(n). per la ricerca degli autovalori, per

La disponibilità di effetti per l'output. Le possibilità di display; in output i colori possono essere trasformati in retiniPost Script.

144 MCmicrocomputer n. 90 - novembre 1989

Page 4: PROVA -  · PROVA MATHEMATICA Mathematiea Il 40, dopo 4 Pi permette di scegliere il numero di cifre decimali, che nel nostro caso sono state .40. AI più sem-plice livello ...

PROVAMATHEMATICA

Mathematica esiste in versione sia per Macintosh (quella che abbiamo provato) cheper MS-DOS.

È ottenuto da un programma redatto in C, lungo, per il blocco del "kernel ••, circa150.000 linee. L'interfaccia Mac è lunga circa 15,000 linee che si aggiungono alleprecedenti, Il codice sorgente è stato trattato con una versione object-oriented del Coriginale Wolfram, e poi precompilato in standard C.

La sezione sviluppata autonomamente dalla Wolfram era necessaria in quanto dovevacontenere implementate alcune assunzioni circa il calcolatore cui era destinato. Ciò haconsentito di bypassare la fase di aggiustaggio alla macchina, e ha reso praticamenteeguali tra di loro le diverse versioni del listato originale. Come risultato, almeno per quantoattiene al "kernel ••, le diverse versioni di Mathematica provengono praticamente dallostesso codice sorgente.

Mathematica utilizza una tecnica originale di gestione della memoria in mododinamico, cosa che consente di utilizzare praticamente tutta la memoria disponibile sulparticolare computer, escludendo qualche operazione di "garbage collection».

Mathematica inoltre rappresenta una sintensi di diversi tipi di software; infattipossiede caratteristiche proprie di:- linguaggi interattivi numerici, come il Basic- sistemi e ambienti numerici specializzati, come TK!Solver, Eureka, MathCad, MathLab,ecc,- sistemi di elaborazione algebrica, come Macsuma, Maple, Reduce, SPM, ecc.- linguaggi grafici interpretati, come PostScript- linguaggi di manipolazione di liste simboliche, come APL, Lisp, o Prolog- linguaggi di programmazione strutturati, come il C.

La finestra di output"Pagesetup".

..e

Fl ","pU'Otltpul U'j)ldU>~ ohf • lit-jOutuut (t"h <'itt' 'l'OUUP(1 untt. mput. -r,

-...suHrph' Ot,llput (Il'''' ~ff> fJ'OUlJl'd tOqf>thf" .~'flUf'1" epotlhJt.on, "'JIUI (PU,* dJ~' 'lukf'd .1Se,"p wh ••n il,. l'u~lIu"twu ,,, hUl\ht'd • fJ

~.:JOt\pldlJ tUfUlllj M, e"d4,l, pt.ldlu.,;I'Oft • J9rut :-,:;to. flfUIU1~UW • tlI 6( PMIP u,IldUf • U

_JBrf'ai:: dI Iht)fdtlf'l tJ"dUI\ .• 1(

lreflf'(alf' untorm..-th'd 'PHh f(ll ib(>\p r••'t,llh.'RII-O "'01)(' -"'1/ "'U(,'I1V'II(~ ihVI'.\

raPIate output D'io si 11 fjl"IPfdtPd -O01'141 t' P'inl OtJtput Il'' Il l\; (j<,nNdIPd • PIJ PIIll(~(l'4th Pflot hnf" $n cl '\('p~rdh' I (''I -O

O,. Opf'nroq;) "OH'book. ftMd mJlhihl'òhon (t"th.;

flIWdl,\ *"1 ""E'v"r"U. fhk f"dt:Ii tUlW 4'~ O(Of<tull\' Ut'lp (dn(p'

IItlf' PdlJf' • r

.111"1: 0,JS61

Hottflrn~ 1.0000

• ftll" ((l,l ( ••Ih ••••duh

"'folUJlIl\ ~ln(bf'''': lf"lt; rl.OOOO~WJQdOluJdh1».!!!dtlul) IOII:l!.OOOtJ

\torhR9 p.)fJI! nomb", [I

Hf'iJd"r (put:f f

Mathematica, cosa

holtr t"ne:

"lpec'dIOb'(t(h: Il PdtJ" ""umbt> •• f ftlfO ".Hn ••,t Jffh~. d O,lIP. k ff'U ':"CjUlOfth

h:~:~~:~u~:J:::;':;:"UH>f'R UfU"" -I, C!D f"aP"nl multlplr' P4q'" fu. und,. ("'h _...., C flf'lp J-'I1n1nf"'1I\.t4hoftM()tl(~ 'tl (COfUI.'I)Grdphut~ • 'O"II\.(o.,t ·f) ••,O -o I:htol<'p.O

Le possibilità disettaggio delle

((azioni" da eseguiredurante !'impiego del

Kernel.

possibile usare Mathematica per ese-guire e sviluppare grafici in 2 e 3 dimen-sioni; ad esempio, si desideri plottare lafunzione di sen(x,y) per x e y compresitra O e n; batteremo:

L'ordine genera un disegno in tredimensioni della funzione seno (x, y)nell'intervallo desiderato, intervallo cheper le due variabili viene indicato inparentesi graffa (quello delle opzioni èun campo vastissimo dell'ambiente). Èpossibile plottare funzioni o liste di dati,in due o tre dimensioni, e, in questoultimo caso, ottenere risultati abbastan-za realistici, includenti ombreggiature,col?ri, o effetti speciali di illuminazione.

E possibile usare Mathematica ancheper eseguire disegno geometrico; inquesto caso è sufficiente introdurre larappresentazione simbolica di un poligo-no, ad esempio, per produrre un outputdello stesso, che, nel caso di figuresolide, può essere in tre dimensioni (sivedano, ad esempio, le bellissime fi-gure).

Mathematica è ancora, come diceva-mo, un linguaggio di programmazione,molto somigliante, per certi versi, al C.AI contrario di questo, però, è un inter-prete, per cui è possibile lanciare imme-diatamente il programma appena battu-to e usufruire degli innegabili vantaggidei linguaggi non compilati.

Come linguaggio si tratta, almeno dalpunto di vista matematico, di qualcosadi veramente mostruoso; praticamentenon esiste funzione o regola matemati-ca che non vi sia già implementata oche non sia ottenibile con facili passag-gi; immaginiamo di cercare, ad esem-pio, i numeri primi compresi in un inter-vallo; batteremo:

In[6]:=f[n.]: = Table[Prime[iJ. {i,n}]

In[5]= Plot3D[Sin(x,yl.{x,O,Pi}, {y,O,Pi}l,

Abbiamo cioè definito una funzionef[nl destinata a calcolare i primi n nume-ri primi della scala naturale. La disponi-bilità dell'interprete ci consente di testa-re immediatamente la definizione cosìda avere:

In[7]:=f[10]Out[7]={2,3,5.7,11,13,17,19,23,29}

che rappresenta appunto la tabella deiprimi dieci numeri primi.

Dicevamo ancora che Mathematica èun sistema per rappresentare «cono-scenze» matematiche, vale a dire, inaltri termini, un metodo rappresentativoper l'uso di formule matematiche. Inquesta ottica è fondamentale tener con-to delle cosiddette «regole di trasforma-

MCmicrocomputer n. 90 - novembre 1989 145

Page 5: PROVA -  · PROVA MATHEMATICA Mathematiea Il 40, dopo 4 Pi permette di scegliere il numero di cifre decimali, che nel nostro caso sono state .40. AI più sem-plice livello ...

PROVAMATHEMATICA

Poml PtOlS3nd Spacc Curve!.f>~ 11; (I. fr, ,v

~eaHh 11<110. \1",,,, D'tnete""\.lnPhnq ., '1dlht"maIH •. -

l· H J:' i

Alcuni esempi di tecniche risolutive, numeriche e grafiche.

.Craph,csl'1.t-( 'toC:l1 (a • ZPJ')

"

PlolJD( S'al;r YJ. '1: I) ::.Il f.,. ti J'I

00

zione», in base alle quali è possibiletrasformare, appunto, espressioni diuna forma in espressioni di forma diver-sa. Si tratta di regole destinate, attraver-so una serie di convenzioni, a rappre-sentare molti campi di relazioni mate-matiche.

In altri termini viene, in Mathematicaadottata una serie di convenzioni, peral-tro completamente compatibili con lenormali conoscenze matematiche, chepermettono al programma di compren-dere e acquisire «conoscenze» algebri-che e logiche proprio dell'ambiente nu-merico. Le convenzioni sono poche, epiuttosto intuitive, né la lettura dellaformula «trasformata» cozza con la logi-ca o con le conoscenze matematichegià in possesso dell'utente.

Ancora, Mathematica è un ambientecompleto di calcolo e di elaborazione didati numerici. È questo il campo diapplicazione principe del pacchetto, chepermette di redigere, organizzare, docu-

146

mentare e lanciare i calcoli e i program-mi redatti dall'utilizzatore; è se così sipuò definire il background di base del-l'ambiente come un sistema operativoinserito in un sistema operativo, ed ècomposto di due parti principali.

La prima, il «kernel», il motore, ilcuore, il nucleo, il nocciolo del sistemaè comune a tutte le implementazionidel programma stesso (si ricordi che diMathematica esistono implementazionidiverse, come già detto, operanti sottoUnix, OS2, MS-DOS, oltre che in am-biente Mac). ed è quasi completamentetrasparente all'utente; esso si occupaessenzialmente di eseguire i calcoli, e,possedendo i medesimi algoritmi risolu-tivi nelle diverse implementazioni, fun-ziona allo stesso modo e secondo glistessi criteri su tutte le macchine.

La seconda, il cosiddetto «front-end»che, soprattutto in Mac, è rappresentatoda una interfaccia estremamente sofisti-cata, rappresenta l'ambiente di interazio-

ne con l'utente; esso, ovviamente, variada sistema operativo a sistema operati-vo; nel nostro caso, in Macintosh inten-do, il front-end mette a disposizionedell'utente i tool grafici e di I/O tipici diMac; c'è da dire che gli implementatoridimostrano, in questo caso, una appro-fondita conoscenza del toolbox, soprat-tutto per quanto attiene alla manipolazio-ne del testo. La maggior parte dei front-end di Mathematica supportano i cosid-detti «notebook», blocchi degli appuntiche contengono stralci di testo, grafica edefinizioni di Mathematica. Si tratta diveri e propri subprogrammi, o utility secosì si vuole, inseribili direttamente nel-l'ambito del programma principale qualefacility di programmazione e documenta-zione: l'esempio più tipico dell'uso di unnotebook è quello di leggere il testo (diuna definizione, di una funzione, di unaregola) dal foglio d'appunti e di inserirlo,tal quale o modificato e commentato perla bisogna, nel programma che si sta

MCmicrocomputer n. 90 - novembre 1989

Page 6: PROVA -  · PROVA MATHEMATICA Mathematiea Il 40, dopo 4 Pi permette di scegliere il numero di cifre decimali, che nel nostro caso sono state .40. AI più sem-plice livello ...

La programmazionein Mathematiea

Tutto quanto abbiamo detto nel testodell'articolo ha dimostrato, almeno losperiamo, la grande potenza del pacchet-to; consentiteci qui, un po' in disparte diparlare di una delle caratteristiche che anoi è parsa più entusiasmante, la possibi-lità di programmazione. Mi rendo contoche questo potrebbe essere un argomen-to di non eccessivo interesse per tutti ilettori, ma la possibilità di avere a disposi-zione un idioma capace di utilizzare tuttoil ben di dio built-in nel package è troppoforte perchè di esso non si dica almenoqualche parola.

Esistono tre differenti approcci alle tec-niche di programmazione di Mathemati-ca. La scelta di una di esse dipende dalpatrimonio culturale dell'utente e, in mi-nore misura, dal tipo di problema cheoccorre risolvere.

Tutti gli approcci sono, ad una analisifinale, equivalenti, almeno per quanto at-tiene ai risultati, ma uno di essi puòessere più efficiente nella soluzione di unproblema di un altro, o attagliarsi in ma-niera più efficace al modo di ragionaredell'utente.

I tre tipi di programmazione possonoessere così definiti e riassunti:- programmazione procedurale, basatasu algoritmi che specificano, passo pas-so, le operazioni da eseguire;- programmazione funzionale, che indi-ca una serie di funzioni da applicare per larisoluzione del problema;- programmazione matematica, basataessenzialmente su pure relazioni mate-matico-algebriche.

Il primo approccio è quello tipico deivecchi linguaggi tradizionali dell'informati-ca, come il Pasca/, il Basic, il Fortran. Lapiù semplice esecuzione di un program-ma procedurale consiste in una sequenzadi comandi che vengono eseguiti uno peruno in ordine. Lo status del programmain un determinato punto dipende dal valo-re delle variabili attualmente in uso. Sitratta di un sublinguaggio comunque dialtissima efficienza, ben più efficace, ov-viamente nei limiti di competenza, degli

sviluppando. Infine, Mathematica per-mette di redigere output utilizzabili diret-tamente in altri ambienti di programma-zione, come Fortran e C. Produce anchedocumenti di tipo TEX, e testo e graficain formato (già lo avevamo accennato)PostScript.

L'uso del programmaIl pacchetto è organizzato in modo

estremamente pratico ed efficace: atta-verso l'uso del manuale-libro e l'acces-so all'immenso patrimonio del softwarecomplementare al programma principa-le, l'utente viene a poco a poco introdot-to nel cuore del programma-ambiente

MCmicrocomputer n. 90 - novembre 1989

idiomi precedentemente indicati. La se-conda tecnica si basa essenzialmentesulla caratteristica di Mathematica di of-frire la possibilità di costruire il proprioprogramma in pezzi, invece di costruirneuno solo, monolitico; in altre parole èpossibile realizzareblocchi isolati, funzio-ni (si noti la gran somiglianza col Cl chepoi concorrono insieme alla soluzione fi-nale. Non necessariamente si tratta diuna tecnica più efficiente e produttiva,ma la possibilità di avere un programmarappresentato da blocchetti nidificati traloro consente una modularità e una effi-cienza di manutenzione molto più effica-ce. In questa ottica Mathematica è parti-colarmente versato nella tecnica object-orrented, particolarmente efficace nell'or-ganizzare codici particolarmente com-piessi (pensate solo alle 150.000 righedel package).

L'idea di base di questo metodo èquella di collezionare insieme non funzio-ni che eseguono lo stesso genere dioperazioni (tecnica propria dei moduli).ma funzioni che agiscono sullo stessogenere di oggetti. Abbreviando il discor-so, che qui non è ovviamente possibiletrattare, diremo, forse un po' semplicisti-camente che con questa tecnica si intro-ducono e definiscono i diversi tipi dioggetto, e quindi si specificano i «meto-di" per eseguire su di essi le differentioperazioni L'ultima forma di programma-zione, estremamente specializzata,si ba-sa su una redazionedel codice cosiddettarule-based. Una delle più potenti caratte-ristiche di Mathematica è la sua abilità dieseguire operazioni specificando una col-lezione di regole di trasformazioni. L'ideadi base è che ogni volta che Mathematicaincontra una regola o una espressione,essa tenta di trasformarla in una di suaconoscenza.

Questa tecnica è estremamente sofi-sticata e fornisce risultati inimmaginabilicon le due precedenti, ma abbisogna diconoscenze profonde di analisi del pro-blema, per cui è possibile ritenerle appan-naggio solo di programmatori avanzati.

nella maniera più efficiente ed efficacepossibile. Nulla manca per una perfettacomprensione del pacchetto e differentimodi sono previsti per l'accesso; perso-ne senza alcuna conoscenza di tecnichedi programmazione, esperti con avanza-te cognizioni matematiche, tecnici conesperienza avanzata anche nel campodei linguaggi di programmazione ... Ri-cercatori, studenti, addetti e non ai lavo-ri possono indifferentemente raggiun-gere, anche all'estrema facilità d'uso, imassimi livelli possibili; viene richiestasolo una conoscenza matematica di ba-se adeguata ad una scuola superiore.

L'uso del programma è estremamen-te facile, almeno all'inizio; la cosa mi-

PROVAMATHEMATICA

gliore è affidarsi alla lettura ordinata eregolare del manuale, che introduce inmaniera organica ed efficace alle variecomponenti del sistema. Si parte dauna introduzione essenzialmente praticadi Mathematica, in cui vengono illustra-te le diverse tecniche numeriche, lacostruzione dei calcoli, l'illustrazionedella gran messe di formule già com-prese nel sistema e la tecnica di costru-zione di altre, le liste e la loro manipola-zione, l'interfacciamento con altri siste-mi. Seguono operazioni più avanzate,con la definizione formale delle regoledi trasformazione, gli operatori speciali,la programmazione procedurale, i toolavanzati di I/O, la manipolazione dellerisorse. L'ultima fase è riservata alletecniche più specialistiche e avanzate,comprendenti le funzioni matematichespeciali, quelle razionali e polinomiali, letecniche di manipolazione delle equazio-ni, i limiti e le serie, l'algebra lineare, leoperazioni numeriche su dati e funzioni.

Una sezione a parte è dedicata allemetodologie di programmazione e allaillustrazione del linguaggio formale diMathematica, con l'interfacciamentocon altri programmi. La seconda partedel libro è rappresentata da una guida diriferimento formale, e da una nutritaserie di esempi-tutorial, da cui sonostati presi quelli che vedete nelle figure.

ConclusioniMathematica è un tool di sviluppo in

ambiente dedicato di estrema potenza(ne è espressione significativa la dimen-sione stessa del codice) rapido, veloce,efficiente, complesso quanto basta pernon scoraggiare il principiante e perinvogliare l'esperto. Frutto di un lavorodi programmazione a dir poco monu-mentale, complesso e di eccezionalequalità, è anche estremamente elastico,user-friend, e dotato di capacità grafichea dir poco superiori a tutto quello che siera finora visto in commercio.

Rappresenta il campo ideale di speri-mentazione nella ricerca, mentre non cipare che possa sostituire agevolmenteprogrammi come TK! o Eureka, e que-sto non perché questi siano più efficien-ti di esso ma per la differenza cheesiste e esisterà sempre tra pacchettiorizzontali e verticali.

Palestra eccezionale per lo studente,si trasforma, in mano a professionisti oricercatori, in mezzo di lavoro insostitui-bile e difficilmente eguagliabile. Il costo,naturalmente, è in assoluto piuttostoelevato: ma, a ben pensarci, non po-trebbe esser altrimenti e, d'altra parte,è giustificato sia dalla qualità del prodot-to sia dal fatto che non si tratta certo diun oggetto di largo consumo. Me

147