sabato 25 febbraio 2012

Recensione CAS: Microsoft Mathematics 4

Ho deciso di cominciare a parlare di programmi di calcolo, ovvero quei programmi in grado di aiutare uno studente (o un appassionato di matematica) ad ottenere il risultato in maniera più semplice e che permetta di dedicarsi più al ragionamento che al calcolo puro.
Mi piacerebbe approfondire molto questa parte, ma non voglio deviare dal mio scopo principale; quindi vi rimando a computerbasedmath.org e a questo interessante articolo di Piero Toffanin al riguardo.

Cominciamo invece a parlare del primo strumento di calcolo che ho intenzione di recensire in questa serie: Microsoft Mathematics.

Questo interessante programma permette (con un pò di immaginazione) di adempiere alla maggior parte delle necessità di un normale studente, utilizzando un'interfaccia semplice e diretta.
Questo programma si divide in due parti: la prima -denominata worksheet- permette di inserire formule che verranno poi calcolate dal risolutore interno; la seconda -graphics- grafica le funzioni inserite.

Microsoft Mathematics 4, Worksheet section
Nella schermata "worksheet" è possibile svolgere decisamente moltissime operazioni, ad esempio:
  • Studiare funzioni matematiche standard, come radici e logaritmi
  • Risolvere equazioni e disequazioni.
  • Studiare funzioni trigonometriche come seno e coseno.
  • Esecuzione di operazioni con le matrici e vettoriali.
  • Calcolo di statistica di base, come media e deviazione standard.
  • Ricerca di derivate e integrali, limiti, serie.
  • Esecuzione di operazioni su numeri complessi.
  • Calcolo di funzioni fisiche e chimiche.
E' inoltre possibile definire variabili, utilizzabili sia come costanti sia come funzioni (per utilizzarle in questa maniera basterà salvare la variabile e poi fare il limite al valore voluto ;D).

Microsoft Mathematics 4, Graphing Section (plot of a normalized gaussian distribution)

In questo screenshot potete ammirare un bellissimo grafico della distribuzione di Gauss standardizzata (ovvero con media=0 e varianza=1) in tutto il suo splendore. Il popup che si può notare vicino alla funzione è la funzione trace, che permette di visualizzare in ogni punto il valore della funzione graficata nel punto richiesto.
E' possibile "plottare" funzioni sia in 2D che in 3D, utile quando si hanno problemi con 2 variabili.



Ci sono altre funzioni, come il risolutore di triangoli o il convertitore di unità di misura che sono interessanti ma non abbastanza da essere spiegate in questo articolo.

In pratica posso solo elogiare questo ottimo prodotto, per la sua semplicità di utilizzo e il numero di argomenti che il software permette di trattare. Si potrebbe anche fare di più, per esempio permettere la creazione di funzioni e non solo quella di variabili, oppure inserire un risolutore per la risoluzione di problemi di programmazione lineare (e anche non-lineare).

Per poterlo testare potete scaricarlo come freeware dal sito Microsoft.
Su Windows 8 (Dev Preview) ho riscontrato che il prodotto necessita del .NET framework 4, ma l'installer lavora con la versione 3.5, che dovrà essere attivata tramite il Pannello di Controllo.
Ah, ovviamente funziona solo su Windows, quindi consiglio di seguire le prossime recensioni per trovare strumenti online o nativi per Linux.

Spero che questo articolo vi abbia interessato, la prossima recensione dovrebbe essere su Wolfram|Alpha, il famoso answer engine della Wolfram Research.
Alla prossima!

domenica 19 febbraio 2012

Punto della situazione e nuovi progetti...

Ciao a tutti, riscrivo dopo diverso tempo di inattività sul blog.
Mentre il tempo passava, sto lavorando ad un progetto, ne sto supportando altri (e vorrei supportarne altri), ho partecipato ad una importante gara e sto progettando qualcosa per rendere questo blog più attivo.

Sto lavorando ad un interessante progetto (che porterò come tesina di maturità) basato su ottimizzazione combinatoria e parallelizzazione. Ho avuto diverse idee dal mondo open source (in particolare da Rocs, un progetto KDE-edu), e sto tentando di combinarle assieme per realizzare questo piccolo ma accattivante progetto. Ne parlerò spesso, sia dal punto di vista dei contenuti teorici sia dalla parte dell'implementazione: leggendo il blog (e seguendo il progetto su github, su cui creerò il repo appena possibile) ne saprete di più.

Sto dando una mano ai progetti di altri miei amici, i cui argomenti spaziano da un CAD per circuiti elettronici ad un Computer Algebra System di dimensioni decisamente ridotte passando per un risolutore automatico di cubi di Rubik.
Mi piacerebbe inoltre impegnarmi in progetti open source, cosa che non ho mai potuto fare: ho sempre preso e mai dato alla comunità, e mi piacerebbe una volta tanto contribuire, sia scrivendo codice (consigliatemi qualche progetto figo, su!) sia scrivendo per qualche ezine (ad esempio UnderAttHack: mi devo sbrigare a tirare fuori qualcosa).

Ho partecipato ad una gara, ovvero questa: un'accozzaglia di nerd fissati su una delle idee più grandi nella matematica del ventesimo secolo, ovvero la Gara Nazionale di Programmazione della Macchina di Turing. Detta così sembra altisonante, ma è semplicemente una marea di ragazzi a cui piace l'informatica e la matematica in maniera tale da mettersi a confronto con problemi da risolvere con una macchina decisamente stupida ma potente: la MdT è una di quelle cose che fanno pensare less is more. Dopo questa lunga introduzione, vi voglio semplicemente comunicare che sono il secondo membro della squadra che quest'anno si è classificata quinta (ecco l'albo d'oro della gara). Ah, metterò (anche qui, appena mi ambiento con git e con github) il sorgente di alcuni esercizi svolti e di alcuni algoritmi "classici", scritti appositamente per essere veloci da scrivere e facilmente adattabili; magari inserendo anche qualche nota sul funzionamento dell'algoritmo e sulla sua complessità computazionale.


 Passiamo inoltre alle novità (e buoni propositi) che ho deciso di introdurre per rendere questo blog un pò più attivo: mi impegno ad iniziare una serie di guide e di articoli legati alle varie attività che sto svolgendo in questo momento: articoli su ottimizzazione combinatoria (che potrebbero finire anche su UnderAttHack, però devo scriverli meglio), su strumenti online come Wolfram|Alpha -sia utilizzando l'interfaccia web sia sfruttando le API-, notizie sullo svolgimento dei miei progetti e di eventuali progetti che mi vedranno coinvolto... insomma, quello che dovrei fare già da molto tempo ;D Spero decisamente che non restino solo buone intenzioni.

Benissimo, appena avrò preparato qualcos'altro sarete subito informati! Stay tuned!