Laboratorio 2: L’applicativo per il calcolo...

26
Laboratorio 2: L’applicativo per il calcolo simbolico Mathematica Le lezioni del laboratorio per l’idoneit` a informatica, servono tra l’altro a fare familiarizzare lo studente con gli aspetti operativi del software mathematica. Cos’` e Mathematica ? Mathematica ` e un sistema per fare matematica al calcolatore. M. Pedicini, TIB 2002-2003 - Universit` a Roma Tre - Dip. Matematica 1

Transcript of Laboratorio 2: L’applicativo per il calcolo...

Page 1: Laboratorio 2: L’applicativo per il calcolo simbolicomarco/tib2003/introduzioneamathematica.pdfTecnicamente mathematica si presenta come un interprete per il ... Universit`a Roma

Laboratorio 2: L’applicativo per il calcolo simbolico

Mathematica

Le lezioni del laboratorio per l’idoneita informatica, servono tra l’altroa fare familiarizzare lo studente con gli aspetti operativi del softwaremathematica.

• Cos’e Mathematica ?

Mathematica e un sistema per fare matematica al calcolatore.

M. Pedicini, TIB 2002-2003 - Universita Roma Tre - Dip. Matematica 1

Page 2: Laboratorio 2: L’applicativo per il calcolo simbolicomarco/tib2003/introduzioneamathematica.pdfTecnicamente mathematica si presenta come un interprete per il ... Universit`a Roma

• Principalmente consiste di:

– Un sistema di calcolo numerico e simbolico.– Un sistema per la rappresentazione di funzioni e dati.– Un linguaggio di programmazione ad alto livello.

In particolare consente la programmazione ad oggetti (oltre che quellaprocedurale e funzionale).

– Un ambiente per la modellizzazione e l’analisi dei dati.– Una piattaforma software per l’esecuzione di pacchetti per speci-

fiche applicazioni nei diversi campi tecnici e scientifici (Statistica,Ingengneria, Fisica, Chimica...)

– Consente, inoltre, l’interscambio con altri programmi: ad esempio,produce grafici in PostScript, puo leggere e fornire dati in formati C,Fortran e TEX.

– Un sistema per la creazione di documenti interattivi (Ipertesti) chemescolano testi, grafici, animazioni, suoni, espressioni attive (cioecomandi in linguaggio Mathematica).

M. Pedicini, TIB 2002-2003 - Universita Roma Tre - Dip. Matematica 2

Page 3: Laboratorio 2: L’applicativo per il calcolo simbolicomarco/tib2003/introduzioneamathematica.pdfTecnicamente mathematica si presenta come un interprete per il ... Universit`a Roma

Architettura

Il sistema Mathematica si compone di 2 parti:

1. il Kernel: insieme di programmi che effettuano i calcoli e le elaborazioni

2. il Front End: l’interfaccia che appare all’utente mediante il qualel’utente dialoga con il sistema

Si tratta di due programmi separati comunicanti fra loro mediante unsistema di gestione del flusso di dati bidirezionale chiamato MathLink.

In linea teorica le due parti potrebbero essere lanciate su due macchinedifferenti come un PC ed un server e per aumentare la velocita di calcoloe possibile lanciare piu kernel in parallelo.

Esistono versioni per tutte le principali piattaforme (DOS;WINDOWS; UNIX, MACINTOSH)

M. Pedicini, TIB 2002-2003 - Universita Roma Tre - Dip. Matematica 3

Page 4: Laboratorio 2: L’applicativo per il calcolo simbolicomarco/tib2003/introduzioneamathematica.pdfTecnicamente mathematica si presenta come un interprete per il ... Universit`a Roma

Il Front-End

Un file Mathematica e detto notebook ed e creato con estensione.nb

I notebooks sono oggetti molto sofisticati potendo comprendere, ac-canto ai comandi in linguaggio Mathematica detti espressioni attive,anche testi, grafici, animazioni, suoni ...

Un notebook si compone di Celle (identificate dalla parentesi ] adestra).

Le celle possono essere

• Attive e in tal caso rappresentano comandi immediatamente eseguibili,oppure

• Non Attive come ad esempio una cella di testo (si distinguonodall’aspetto della ] e sono scritte in grassetto nero).

M. Pedicini, TIB 2002-2003 - Universita Roma Tre - Dip. Matematica 4

Page 5: Laboratorio 2: L’applicativo per il calcolo simbolicomarco/tib2003/introduzioneamathematica.pdfTecnicamente mathematica si presenta come un interprete per il ... Universit`a Roma

Riferimenti bibliografici

• S. WolframThe Mathematica Book3rd Ed, 1996 (1st 1988) - 1403 pag.Wolfram Media , Cambridge University Press

• J.Glynn & T.GrayThe Beginner’s Guide to Mathematica Version 31997 - 347 pag. (scritto con Mathematica)Cambridge University PressVersione elettronica: http://www.mathware.com/BeginnersGuide

M. Pedicini, TIB 2002-2003 - Universita Roma Tre - Dip. Matematica 5

Page 6: Laboratorio 2: L’applicativo per il calcolo simbolicomarco/tib2003/introduzioneamathematica.pdfTecnicamente mathematica si presenta come un interprete per il ... Universit`a Roma

Mathematica e un sistema interattivo

Tecnicamente mathematica si presenta come un interprete per ilsuo linguaggio infatti non e’ possibile compilare il codice in linguaggiomacchina.

Questo indebolisce la potenza di calcolo del sistema anche se neincrementa la flessibilita.

Una sessione di calcolo e strutturata come un dialogo (modalita siesecuzione interpretata):

• nella riga intestata In[n]:= (input), l’utente immette un’espressioneche deve essere valutata (boldface),

• nella riga intestata Out[n]:= (output) e il sistema che risponde con ilvalore calcolato (plain type).

Le parentesi [] contengono il numero progressivo del comando

M. Pedicini, TIB 2002-2003 - Universita Roma Tre - Dip. Matematica 6

Page 7: Laboratorio 2: L’applicativo per il calcolo simbolicomarco/tib2003/introduzioneamathematica.pdfTecnicamente mathematica si presenta come un interprete per il ... Universit`a Roma

Le richieste in input sono sottoposte al sistema per l’esecuzionemediante il tasto “action key” (shift+enter per Linux)

Il simbolo ; posto alla fine del comando inibisce la visualizzazionedell’Output (ma attenzione, non l’esecuzione del comando)

M. Pedicini, TIB 2002-2003 - Universita Roma Tre - Dip. Matematica 7

Page 8: Laboratorio 2: L’applicativo per il calcolo simbolicomarco/tib2003/introduzioneamathematica.pdfTecnicamente mathematica si presenta come un interprete per il ... Universit`a Roma

Calcolo con Mathematica

Mathematica gestisce in maniera unificata le 3 grandi classi dicalcolo:

• Numerico,

• Simbolico,

• Grafico.

Il modo piu semplice per effettuare un calcolo con Mathematicaconsiste nel pensare l’applicazione come fosse una calcolatrice da tavolo.

Naturalmente, l’insieme delle istruzioni mathematiche gia predispostenel sistema e enormemente piu grande rispetto a quello della calcolatrice.

D’altra parte anche i sistemi di calcolo piu tradizionali supportanocirca 30 operazioni logico-matematiche (BASIC, FORTRAN77, . . . ).

M. Pedicini, TIB 2002-2003 - Universita Roma Tre - Dip. Matematica 8

Page 9: Laboratorio 2: L’applicativo per il calcolo simbolicomarco/tib2003/introduzioneamathematica.pdfTecnicamente mathematica si presenta come un interprete per il ... Universit`a Roma

Il confronto con Mathematica che ne supporta oltre 750 ecertamente improponibile.

M. Pedicini, TIB 2002-2003 - Universita Roma Tre - Dip. Matematica 9

Page 10: Laboratorio 2: L’applicativo per il calcolo simbolicomarco/tib2003/introduzioneamathematica.pdfTecnicamente mathematica si presenta come un interprete per il ... Universit`a Roma

Mentre i sistemi tradizionali effettuano solo calcoli numeri-co/aritmetici, Mathematica e in grado di gestire anche l’algebra, il cal-colo simbolico e grafico ed espressioni simboliche estremamente generali;cio rende il sistema in grado di coprire un’ampia gamma di applicazioni.

M. Pedicini, TIB 2002-2003 - Universita Roma Tre - Dip. Matematica 10

Page 11: Laboratorio 2: L’applicativo per il calcolo simbolicomarco/tib2003/introduzioneamathematica.pdfTecnicamente mathematica si presenta come un interprete per il ... Universit`a Roma

Calcolo Numerico e Calcolo Simbolico

Mathematica, come tutti i sistemi di calcolo tradizionali e le calco-latrici da tavolo, effettua il calcolo numerico:

- 2 + 2

- (3 + 2)3.

Osservazione: l’esecuzione del “primo comando della sessione” richie-de un tempo piu lungo dovuto al caricamento del Kernel Mathematicava oltre.

Puo eseguire calcoli algebrici il cui output non e necessariamente unnumero (calcolo simbolico):

- 27x2 + 3x.

M. Pedicini, TIB 2002-2003 - Universita Roma Tre - Dip. Matematica 11

Page 12: Laboratorio 2: L’applicativo per il calcolo simbolicomarco/tib2003/introduzioneamathematica.pdfTecnicamente mathematica si presenta come un interprete per il ... Universit`a Roma

Considerando al posto dei numeri, altri simboli generici si ottengonooggetti, che tecnicamente sono detti espressioni e che Mathematicariconosce ed e in grado di manipolare:

• ax2 + bx,

• (a + b)2,

• Expand[(a + b)5].

M. Pedicini, TIB 2002-2003 - Universita Roma Tre - Dip. Matematica 12

Page 13: Laboratorio 2: L’applicativo per il calcolo simbolicomarco/tib2003/introduzioneamathematica.pdfTecnicamente mathematica si presenta come un interprete per il ... Universit`a Roma

Calcolo simbolico

Il calcolo simbolico non consente solo di manipolare espressioni al-gebriche, esso puo applicarsi a qualsiasi tipo di dato anche eterogeneocome

oggetto = {12, A, mamma, $}

Permutations[oggetto]//TableForm

I principi per la manipolazione di espressioni simboliche (le regole)valgono anche quando l’oggetto e un numero.

Ad esempio: una regola generale di Mathematica e che una espres-sione (numerica) non va approssimata se non viene espressamenterichiesto.

Quindi:

1/2 + 3/7

viene valutato in 13/14

M. Pedicini, TIB 2002-2003 - Universita Roma Tre - Dip. Matematica 13

Page 14: Laboratorio 2: L’applicativo per il calcolo simbolicomarco/tib2003/introduzioneamathematica.pdfTecnicamente mathematica si presenta come un interprete per il ... Universit`a Roma

Per ottenere una approssimazione decimale occorre richiederlaesplicitamente, utilizzando la funzione:

N[12 + 37]

12

M. Pedicini, TIB 2002-2003 - Universita Roma Tre - Dip. Matematica 14

Page 15: Laboratorio 2: L’applicativo per il calcolo simbolicomarco/tib2003/introduzioneamathematica.pdfTecnicamente mathematica si presenta come un interprete per il ... Universit`a Roma

Che differenza fra 3 e 3.?

Per Mathematica 3 e la notazione per un numero “esatto” mentre3. e la notazione per una “approssimazione decimale” di 3 (numero infloating point con approssimativamente la stessa magnitude di 3).

3

3.

N[3]

Accuracy[N[3.3]]

Osservazione: significa che “l’errore di approssimazione” e dalla 16-esima cifra decimale.

M. Pedicini, TIB 2002-2003 - Universita Roma Tre - Dip. Matematica 15

Page 16: Laboratorio 2: L’applicativo per il calcolo simbolicomarco/tib2003/introduzioneamathematica.pdfTecnicamente mathematica si presenta come un interprete per il ... Universit`a Roma

Precisione aritmetica

Mathematica calcola numeri enormemente piu grandi di unacalcolatrice o di altri sistemi tradizionali:

200!

Nota: il simbolo \ alla fine di ogni riga significa che il sistema e andatoa capo ma il numero continua.

Il display di una calcolatrice ha a disposizione soltanto 8 o 12 cifre;

da quante cifre e formato il numero ottenuto da N[Pi, 120] ?

M. Pedicini, TIB 2002-2003 - Universita Roma Tre - Dip. Matematica 16

Page 17: Laboratorio 2: L’applicativo per il calcolo simbolicomarco/tib2003/introduzioneamathematica.pdfTecnicamente mathematica si presenta come un interprete per il ... Universit`a Roma

Sintassi di Mathematica e Caratteri Speciali

Ogni nome per una espressione definita in Mathematica inizia perconvenzione con la maiuscola (se nomi composti, piu lettere maiuscole).

Tranne rare eccezioni (N e D) i nomi sono estesi, mai abbreviati.

I comandi di Mathematica usano le parentesi quadre per specificaregli argomenti.

Le parentesi tonde indicano l’ordine di precedenza nella valutazione

Sin[Pi]

Sort[12, 2, 0, 4,1]

IdentityMatrix[4]//MatrixForm

(1 + 2)3

1 + 23

M. Pedicini, TIB 2002-2003 - Universita Roma Tre - Dip. Matematica 17

Page 18: Laboratorio 2: L’applicativo per il calcolo simbolicomarco/tib2003/introduzioneamathematica.pdfTecnicamente mathematica si presenta come un interprete per il ... Universit`a Roma

Espressioni matematiche

I seguenti caratteri indicano cio che ci si aspetta in via naturale:

+ − ∗ / = < <= > >=

Il carattere * puo essere sostituito dallo spazio;

talvolta lo spazio non significa niente

2*3

2 3

Cos[ Pi]

M. Pedicini, TIB 2002-2003 - Universita Roma Tre - Dip. Matematica 18

Page 19: Laboratorio 2: L’applicativo per il calcolo simbolicomarco/tib2003/introduzioneamathematica.pdfTecnicamente mathematica si presenta come un interprete per il ... Universit`a Roma

Caratteri speciali

I seguenti sono caratteri speciali di Mathematica:

• % indica l’output dell’esecuzione precedente (puo essere iterato),

• := e il simbolo di “assegnazione” (non comporta output)

• =. e il simbolo contrario (“disassegnamento”)

• == e != significano = e 6= nei confronti

Le parentesi graffe {, } servono per definire speciali oggetti diMathematica, come gli iteratori.

M. Pedicini, TIB 2002-2003 - Universita Roma Tre - Dip. Matematica 19

Page 20: Laboratorio 2: L’applicativo per il calcolo simbolicomarco/tib2003/introduzioneamathematica.pdfTecnicamente mathematica si presenta come un interprete per il ... Universit`a Roma

%-1

%% +2

a:= 5

a

a =.

a

6 == 6

6 == 7

6 != 7

Sum[i, i, 1, 5]

M. Pedicini, TIB 2002-2003 - Universita Roma Tre - Dip. Matematica 20

Page 21: Laboratorio 2: L’applicativo per il calcolo simbolicomarco/tib2003/introduzioneamathematica.pdfTecnicamente mathematica si presenta come un interprete per il ... Universit`a Roma

Typesetting

Molti dei caratteri speciali sopra ricordati sono “superati” daltypesetting.

Il typesetting e un tool molte potente apparso nelle versioni > 3.0 diMathematica.

“Typesetting” significa che, ad esempio con la f.p. della v.c. diPoisson, anziche scrivere il seguente comando (Standard Form):

Sum[Exp[-lambda]*(lambda^ x)/x!, {x, 0, Infinity}]

si puo scrivere il seguente (Traditional Form) ed eseguirlo (ottenendolo stesso risultato):∑∞

x=0 λxxE−λ

Per scrivere in Traditional Form (piu naturale e piu semplice da leggeree correggere) si usano le Palettes (vedi il menu File)

M. Pedicini, TIB 2002-2003 - Universita Roma Tre - Dip. Matematica 21

Page 22: Laboratorio 2: L’applicativo per il calcolo simbolicomarco/tib2003/introduzioneamathematica.pdfTecnicamente mathematica si presenta come un interprete per il ... Universit`a Roma

Errori in Mathematica

Mathematica comunica gli errori “intercettabili” con un messaggioblu in luogo dell’output atteso.

E’ in grado di riconoscere e suggerire una correzione per alcuni tipi dierrore (fino alla pedanteria !).

b=0

1=b

sin[x]

Sin(x)

oggetto= {1, 2, 3, 4}

oggett={5, 6, 7, 8}

M. Pedicini, TIB 2002-2003 - Universita Roma Tre - Dip. Matematica 22

Page 23: Laboratorio 2: L’applicativo per il calcolo simbolicomarco/tib2003/introduzioneamathematica.pdfTecnicamente mathematica si presenta come un interprete per il ... Universit`a Roma

Manuale in linea (Help Browser)

L’help puo essere richiesto mediante i simboli ? (informazioni) e ??(ulteriori informazioni) seguiti da cio che interessa cercare;

Una delle maggiori novita della versione 3 di Mathematica e l’HelpBrowser , un sistema di help in linea in formato testo (dunque “editabile”)che contiene l’intero Mathematica Book.

Si raggiunge dal menu Help.

?Plot

??Plot

?*Plot*

Menu Help

M. Pedicini, TIB 2002-2003 - Universita Roma Tre - Dip. Matematica 23

Page 24: Laboratorio 2: L’applicativo per il calcolo simbolicomarco/tib2003/introduzioneamathematica.pdfTecnicamente mathematica si presenta come un interprete per il ... Universit`a Roma

Packages

Per motivi di risparmio di memoria molti comandi “specialistici” diMathematica non sono contenuti nel Kernel (automaticamente caricatoall’esecuzione del I comando) ma fanno parte di Packages separati.

I packages di Mathematica sono files contenenti funzioni e allocati indirectories (folders); per accedere a tali funzioni occorre preventivamentecaricare il package opportuno e dunque conoscere la directory in cui ememorizzato.

La sintassi e:

<< Directory‘package‘

Le virgolette sono “back quotes” (non apostrofi)

<<Statistics‘ContinuousDistributions‘

Plot[PDF[NormalDistribution[0,1],x], x, -4, 4]

M. Pedicini, TIB 2002-2003 - Universita Roma Tre - Dip. Matematica 24

Page 25: Laboratorio 2: L’applicativo per il calcolo simbolicomarco/tib2003/introduzioneamathematica.pdfTecnicamente mathematica si presenta come un interprete per il ... Universit`a Roma

Attenzione

Tentare di utilizzare una funzione contenuta in un packages senzaaverlo preventivamente caricato provoca problemi.

Una volta caricato, un package e disponibile per l’intera sessione diMathematica. Tentare di ricaricare un package gia caricato provocaproblemi.

Un comando piu flessibile e il seguente:

Need[‘‘Directory‘package‘’’]

il package viene caricato soltanto se non e gia stato caricatopreventivamente nella medesima sessione

PDF[PoissonDistribution[3], 10]

<<Statistics‘DiscreetDistributions‘

Needs[‘‘Statistics‘DiscreteDistributions‘’’]

M. Pedicini, TIB 2002-2003 - Universita Roma Tre - Dip. Matematica 25

Page 26: Laboratorio 2: L’applicativo per il calcolo simbolicomarco/tib2003/introduzioneamathematica.pdfTecnicamente mathematica si presenta come un interprete per il ... Universit`a Roma

I packages contenuti in Mathematica e forniti da Wolfram researchsono detti Standard Add-on e sono descritti nel manuale: “StandardAdd-on Packages, Mathematica 3.0”

Molti altri sono disponibili alla pagina web:http://www.wolfram.com/mathsource

M. Pedicini, TIB 2002-2003 - Universita Roma Tre - Dip. Matematica 26