Newsgroup: it.scienza.informatica
Titolo: Numeri reali

Chiedo scusa se probabilmente la domanda risultera' ingenua (sono
laureato in medicina; mi dilettavo a programmare pero' in Clipper).
Se ho ben capito, tutte le operazioni dei calcolatori elettronici si 
basano sulla manipolazione dei numeri 0 e 1 (ossia, di numeri interi
discreti), per cui i numeri reali come pi_greco o radice_di_2 possono
essere approssimati. Ricordo che, molti anni fa, un professore di
matematica che aveva proposto decine di problemi algebrici che
fornivano risultati sbagliati quando venivano eseguiti con gli
(allora) migliori software per la matematica. D'altra parte basta
giocherellare un po' con le funzioni di arrotondamento per ottenere
facilmente dei risultati errati. Non so, tuttavia, se si ottengono
ancora grandi inconvenienti con programmi del tipo di 'Mathematica'.
Ricordo anche di aver letto, sempre anni fa, di modelli teorici di
calcolatori capaci di elaborare numeri reali, anziche' interi. Sapete
se il progetto ha avuto poi applicazioni pratiche (ovvero, se la
ricerca teorica mostra di essere promettente)?
Ciao,
Ferdinando
--------------------------------------------------------------
Ferdinando Chiodo
mailto: 
fch...@macronet.it
 
           (remove "NOSPAM" from the address)
--------------------------------------------------------------

 ricerca teorica mostra di essere promettente)?
Non riesco a capire cosa si intenda per capacità di elaborare numeri "reali",
comunque non trovo nulla di strano nella rappresentazione approx. che si usa in
informatica; del resto, anche noi "mortali"o manteniamo i dati in forma
simbolica (radice di 2, pi greco) oppure li scriviamo approssimati
(1.41, 3.14). Non per nulla i numeri irrazionali si chiamano così!
Sperando di non aver detto troppe fesserie, vi saluto...
debrando

dell'informatica.
Non credo, si temeva che usando ciecamente programmi commerciali si
prendessero per buoni risultati che l'accumolarsi degli arrotondamenti
rendeva aleatori: la cosa poteva anche essere pericolosa.
 Prima ancora persino i calcolatorini tascabili indicavano nelle
istruzioni i limiti di validita' degli algoritmi usati internamente,
poi sembra che tali precisazioni abbiano cominciato a mancare e che
ora addirittura girino programmi precompilati che neppure precisano
gli algoritmi usati. Per questo qualcuno preferisce ancora  programmi
magari scomodi ma distribuiti anche in sorgente e con commenti tecnici
precisi, che risultano piu' controllabili e, in casi critici,
facilmente ritoccabili.

ricerca teorica mostra di essere promettente)?
Nessun calcolatore potrà mai elaborare numericamente dei numeri reali.
Tuttavia é possibile in generale, approssimare un numero reale con un numero
"floating point".
Tale approssimazione assume un significato preciso in relazione all'
applicazione specifica. Oggi ci sono tutta una serie di microprocessori
specializzati nel trattare segnali digitali ( DSP ) che hanno una aritmetica
nativa in floating point mentre nel passato recentissimo si usavano
coprocessori numerici, particolari microprocessori specializzati nel
trattare floating.point ( oggi tali unità sono integrate a bordo della CPU,
é il caso del 486Dx, del Pentium ecc.. ).
Ci sono dei prodotti  che in assenza di questa tecnologia ( micro nativi
floating point ) non sarebbero stati realizzati.
Ti potrà infine interessare che ci sono dei software in grado di fare della
matematica simbolica e quindi fornire risultati analitici in molte ma non in
tutte le occasioni pratiche.
Ciao.

"floating point".
Ti ringrazio per queste informazioni chiare e pertinenti. Ti cito,
tuttavia, l'origine della mia richiesta:
"Stephen Smale dell'Universita' della California a Berkeley, insignito
della Fields Medal nel 1966, ha cercato di dare fondamenta piu' solide
al calcolo matematico, o almeno di individuare la posizione e le
dimensioni delle crepe che serpeggiano in queste fondamenta. Insieme
con Lenore Blum del Mathematical Sciences Research Institute di
Berkeley e Michael Shub della IBM, Smale ha allestito un modello
teorico di calcolatore capace di elaborare numeri reali anziche'
semplici interi." (Le Scienze n. 304, dic. 1993 pp. 87-88). L'articolo
de Le Scienze, purtroppo, non dava ulteriori ragguagli. 
Ciao


 Ciao
L'articolo di Blum, Shub e Smale l'ho letto, anche se un po' di anni fa.
Il modello e' assolutamente teorico e non ha niente a che fare
con un calcolatore concreto. Il loro scopo non era costruire 
(cosa impossibile) un calcolatore capace di elaborare numeri reali,
bensi' investigare le proprieta' teoriche di un simile modello.
La domanda e' meno assurda di quello che puo' sembrare.
Una delle questioni  base dell'informatica e' "Cosa possiamo calcolare" ?
Questa semplice domanda ha portato a studi molto profondi sulla calcolabilita'
ecc.ecc. e successivamente a chiedersi cosa e' possibile calcolare 
efficientemente, (il famoso problema P=?NP). 
Uno dei modelli piu' utilizzati per formalizzare
cio' che' calcolabile (da un calcolatore) e' la cosiddetta macchina di 
Turing, che' e' una astrazione spinta dei veri calcolatori, ma 
secondo la cosiddetta Tesi di Church, puo' calcolare tutte le funzioni che 
sono calcolabili in qualunque altro modello "ragionevole".
La macchina di Turing (ci sono diverse versioni equivalenti) puo' 
essere pensata come un nastro semiinfinito costituito da caselle che
possono contenere simboli (da un alfabeto finito) e spazi.
C'e' poi una "testina" e un controllo che puo' assumere un numero finito di 
stati.
Il "programma" di una macchina di Turing e' una serie finita di istruzioni
del tipo:
Se sei nello stato X e sotto la testina c'e' il simbolo Y allora scrivi
il simbolo Z e spostati a destra (o sinistra) di una casella.
Quando il controllo raggiunge un certo stato marcato come "finale" la 
computazione termina. 
E' chiaro che in questo modello (che pure sembra essere universale)
le operazioni elementari (leggi, scrivi, cambia stato, spostati di 1 casella)
agiscono su un mondo discreto (l'alfabeto infatti e' finito).
Se non ricordo male Blum e compagni si sono chiesti come definire un
modello altrettanto rigoroso che potesse trattare numeri reali e hanno studiato
come questa diversita' si riflette su cio' che nel modello 
e' possibile calcolare ecc.ecc (non ricordo bene, acc.)
Comunque niente di piu' lontano da un calcolatore in ram  e cpu....
(Se sei proprio interessato ti posso cercare l'articolo e mandartelo....,
ma e' parecchio tecnico).
Scusate la prolissita'.
Giovanni.