Discreto e continuo
Matematica e intuizione
La matematica ha sempre cercato di stabilire un nesso tra il continuo e il discreto, il primo esemplificato, tipicamente, nelle figure dello spazio geometrico, il secondo nella successione dei numeri interi e nell’insieme dei loro rapporti. Le grandezze geometriche si possono chiamare continue poiché rispettano alcuni requisiti di carattere intuitivo esprimibili in concetti matematici, come pure nei termini della filosofia e del senso comune. La terminologia aristotelica ce ne offre diversi esempi: per essere continua, una quantità dev’essere indefinitamente divisibile in parti; c’è continuità se c’è contiguità o contatto; nel continuo vi sono unità e coesione, una sorta di ‘unione naturale’ (Aristotele) che non si presenta, invece, nei numeri interi che rappresentano quantità separate. Nella successione dei numeri interi troviamo grandezze consecutive (2 segue 1, e 3 segue 2), ma non si può affermare che vi sia contatto: mentre ciò che è in contatto è consecutivo, il consecutivo non è necessariamente in contatto.
Non sempre questi concetti di contatto, unione naturale o coesione trovano un corrispondente nella matematica. Al contrario, nel tentativo di rappresentare quel principio di coesione o fusione che siamo propensi a cercare nel continuo, la matematica ha spesso seguito, in un periodo della sua storia (il 19° sec.), in cui l’intuizione poteva sembrare un sinonimo di inganno e travisamento, un percorso controintuitivo. Già nei Paradoxien des Unendlichen (pubblicati postumi nel 1851; trad. it. 1965) di Bernard Bolzano (1781-1848) si trova l’osservazione che un tutto esteso si può concepire in termini di parti prive di estensione: il tempo consiste in un insieme di istanti e lo spazio in un insieme di punti, anche se tra istanti e tra punti vi è una distanza reciproca. Un tutto, notava Bolzano, ha e deve avere proprietà che mancano alle parti.
Alle soglie del 20° sec., Jules H. Poincaré (1854-1912) osservava che il continuo non è altro che una collezione sufficientemente densa di individui sistemati in un certo ordine; infiniti sì in numero, ma esterni l’uno all’altro. Questa, egli notava, non è la concezione ordinaria, in cui si suppone che tra gli elementi del continuo vi sia un intimo nesso che fa di essi un tutto anteriore alle parti, come la linea che è anteriore al punto (e non viceversa). Al contrario, proseguiva Poincaré, della vecchia formula che vede nel continuo una specie di unità nella molteplicità, sussiste ora la sola molteplicità, mentre l’unità è scomparsa. Questa conclusione si evince, infatti, dalle diverse, equivalenti definizioni del continuo aritmetico elaborate verso la fine del 19° sec., come quelle, tra le più celebri, dovute a J.W. Richard Dedekind (1831-1916) o a Georg F.L.Ph. Cantor (1845-1918) e H. Charles R. Méray (1835-1911).
Il continuo aritmetico è caratterizzato da tre proprietà essenziali: l’ordine (come le consuete relazioni < e ≤, rispettivamente ‘minore’ e ‘minore o uguale’ tra numeri), la densità e la completezza. L’insieme dei numeri reali (razionali più irrazionali) soddisfa i tre requisiti, e ogni campo di numeri ordinato e completo è isomorfo ai numeri reali. La densità di un insieme K si esprime nel fatto che, dati due qualsiasi elementi x e y di K, con x<y, esiste un elemento z di K compreso tra i due: x<z<y. La completezza si può formulare in diversi modi equivalenti. Uno di questi modi è basato sul concetto di ‘estremo superiore’ (least upper bound), abbreviabile con la sigla sup (o lub): un elemento x di K è un estremo superiore di un sottoinsieme M di K se x è un limite superiore di M (cioè ogni elemento m di M è minore o uguale a x) e inoltre x non può superare nessun altro limite superiore b di M. Un insieme K si dice completo se ogni sottoinsieme M di K che sia limitato superiormente ha un lub in K.
Una formulazione del concetto di completezza equivalente alla precedente si basa sul teorema di Bolzano sul valore intermedio per funzioni continue: una funzione continua in un intervallo [a, b] della retta reale, che assuma segni opposti in a e in b, si annulla in un punto interno dell’intervallo. A Bolzano e a Karl T.W. Weierstrass (1815-1897) si deve pure la formulazione in termini di punti limite: un campo F ordinato, tale che ogni suo sottoinsieme infinito e limitato ammette almeno un punto limite in F, è completo.
Completezza e continuità si possono caratterizzare anche in termini di sequenze fondamentali di Cantor. Una sequenza fondamentale {ak}, k=1, 2, 3,…, è una sequenza con ak razionale che soddisfa la condizione di Cauchy: per ogni ε>0, esiste un intero positivo n tale che, per p e q maggiori o uguali a n, la distanza tra ap e aq è minore di ε, ovvero |ap−aq|<ε. Una sequenza {ak} che converge a 0 si chiama sequenza nulla, e due sequenze {ak} e {bk} tali che {ak−bk} è la sequenza nulla si dicono equivalenti. I numeri reali si possono allora definire formalmente in termini di sequenze o, più precisamente, di classi di sequenze fondamentali equivalenti tra loro, estendendo le relazioni d’ordine e le operazioni di somma e prodotto dai numeri razionali alle sequenze {ak}. Un campo F ordinato e archimedeo (tale cioè che, se x è minore di y, esiste un multiplo di x che supera y), in cui ogni sequenza di Cauchy ha un limite in F, risulta completo nel senso sopra precisato.
Una sequenza {ak} di numeri razionali che converge a un numero a, razionale o irrazionale, è una sequenza fondamentale e, viceversa, una sequenza fondamentale converge a un numero a che può essere razionale o irrazionale. La proprietà di convergenza di una sequenza si può, quindi, caratterizzare mediante la condizione di Cauchy, che ha però il vantaggio di non richiedere a priori una conoscenza del valore del limite. Per questo motivo si utilizza la sequenza fondamentale per creare limiti inesistenti nel campo razionale, allo stesso modo in cui si creano le sezioni di Dedekind o gli estremi superiori. Il numero irrazionale non è definito, in questa prospettiva, come il limite di una sequenza {ak}, ma solo in base all’intrinseca proprietà di convergenza di {ak}, che si può individuare senza neppure nominare il limite. Con questo procedimento si evita di parlare direttamente di numeri irrazionali come limiti, senza una definizione preliminare del campo di numeri in cui questi limiti possono collocarsi. Si realizza, così, una sorta di ‘nominalismo aritmetico’ (la cui elaborazione risale al filosofo francese Léon Brunschvicg, 1869-1944), in cui si pensano i numeri come classi di sequenze equivalenti e il continuo come insieme di questi numeri. L’oggetto matematico non è più direttamente intuibile e si affida la plausibilità di ogni sua possibile definizione a un insieme coerente di regole che si estendono dai numeri più semplici a entità astratte come, in questo caso, le sequenze fondamentali. Si eliminano così tutte le nebbie della disputa metafisica, sostenendo che di ‘oggetti’ matematici non è neppure il caso di parlare, avendo importanza solo le loro proprietà e le regole delle combinazioni reciproche. Come osservava Carl F. Gauss (1777-1855), il matematico astrae completamente dalla costituzione dell’oggetto e dal contenuto delle sue relazioni.
Se il formalismo non consente di riferire il continuo matematico al senso comune, non cessano d’altro canto di funzionare alcune basi intuitive delle definizioni di densità e completezza. Il criterio di Cantor, basato sulle sequenze fondamentali e sulla condizione di convergenza di Cauchy, usa un concetto di distanza che può riferirsi alla nostra percezione dello spazio fisico continuo. Il concetto di ordine, presente in ogni esperienza della vita oltre che nell’aritmetica elementare, sta alla base della proprietà di densità, mentre l’idea intuitiva di connessione e di assenza di ‘buchi’ interviene nel principio del valore intermedio. L’idea di approssimazione è, infine, concettualmente e storicamente collegata a quella di limite, oppure di continuità di una funzione (che interviene nella completezza come principio del valore intermedio). Si dice che una funzione reale f(x) è continua in x0 se, dato comunque un ε positivo, esiste un δ tale che, per |x−x0|<ε, risulta |f(x)−f(x0)|<δ. Si può formulare questa proprietà in termini topologici, legando di nuovo il concetto di continuità all’intuizione spaziale: f è continua in x0 se, per ogni intorno V di f(x0), c’è un intorno U di x0 tale che f(U) è contenuto in V. Tuttavia, sia la formulazione topologica sia quella in termini di ε e δ derivano storicamente dalla possibilità di calcolare effettivamente un insieme discreto di valori approssimati di x0, passo dopo passo, mediante una procedura iterativa. I simboli ε e δ denotavano inizialmente – per es., negli scritti del matematico norvegese Niels H. Abel (1802-1829) – errori di approssimazione, cioè distanze di un valore calcolato dal valore esatto della radice di un’equazione. Solo in seguito, con la notazione escogitata da Weierstrass, gli stessi simboli sono stati usati per definire il concetto di limite. Lo stesso Augustin-Louis Cauchy (1789-1857) concepiva il principio del valore intermedio in termini di un’effettiva approssimazione dello zero di una funzione e di una progressiva riduzione dell’errore o differenza tra lo zero e un suo valore approssimato, ispirandosi verosimilmente a precedenti ricerche di Joseph-Louis Lagrange (1736-1813) sull’approssimazione numerica delle radici di un polinomio. In qualsiasi caso, la possibilità di avvicinarsi indefinitamente, mediante una procedura, a un valore numerico sconosciuto, o solo formalmente definibile, è un insostituibile supporto non solo per l’immaginazione, ma anche per una conoscenza che non si limiti a una pura dimostrazione di esistenza di quel valore.
Non sempre, comunque, il concetto intuitivo di continuità è in grado di cogliere nel segno. L’intuizione suggerirebbe che una funzione che non abbia salti, interruzioni, assenza di valori o asintoti verticali possa definirsi continua. Ma una base imprescindibile per valutare la continuità di una funzione, come seppero capire Bolzano e Cauchy, è da cercare nel concetto di limite: la funzione f(x)=sen(1/x) appare regolare e non ha interruzioni di sorta. Sarebbe, dunque, continua nel senso comune del termine; ma, per x che si avvicina indefinitamente a 0, la f oscilla sempre più rapidamente tra −1 e +1, e il numero di oscillazioni in un qualsiasi piccolo intorno di 0 diventa infinito. Questo fatto fa concludere che f non è continua in x=0, perché non ammette limite in quel punto (ogni punto dell’asse y compreso tra −1 e +1 è un punto limite o di accumulazione). Se la nostra intuizione è valida per un elenco di funzioni sufficientemente regolari, essa rischia di fallire se includiamo nell’elenco tutte le possibili funzioni.
Non numerabilità del continuo
Uno dei risultati più importanti ottenuti da Cantor, nella seconda metà del 19° sec., è la dimostrazione che il continuo non è numerabile. La tecnica diagonale di cui si serviva Cantor (già conosciuta da Paul D.G. du Bois-Reymond, 1831-1889, e da Dedekind) divenne, poi, uno dei principali strumenti della logica e della teoria della calcolabilità nel corso del 20° secolo. Si dimostra che se A è l’insieme dei numeri reali x compresi tra 0 e 1 (0<x≤1) e B è un insieme numerabile qualsiasi di elementi di A, esistono elementi di A non contenuti in B, cioè A non è numerabile. La dimostrazione procede disponendo i numeri di B in una tabella la cui riga i-esima rappresenta lo sviluppo decimale dell’i-esimo numero di B nella numerazione prefissata. Si definisce, quindi, un nuovo numero x=0,x1x2x3… in base alle cifre akk disposte sulla diagonale della tabella, ponendo xk=2 se akk=1 e xk=1 se akk≠1, e si constata che x non appartiene a B.
La dimostrazione di Cantor stabilisce un profondo motivo di scissione tra continuo e discreto, tra il campo dei numeri reali e l’insieme numerabile degli interi e delle frazioni. Tra l’uno e l’altro non può esistere una corrispondenza biunivoca o, in altri termini, la potenza del continuo è superiore a quella del numerabile. Un fatto di cui il celebre teorema (dimostrato tra il 1915 e il 1920) del matematico tedesco Leopold Löwenheim e del collega norvegese Thoralf A. Skolem («ogni teoria del primo ordine che abbia un modello ha un modello numerabile») ha poi scoperto diversi risvolti paradossali, che si possono riassumere dicendo che non esiste (relativamente alla scelta di un sistema di assiomi) un insieme che rappresenti una corrispondenza biunivoca tra numeri reali e razionali: una chiara indicazione dell’insufficienza o dell’intrinseca imprecisione dello strumento assiomatico.
D’altronde, l’insieme discreto dei numeri naturali possiede un più alto grado di evidenza e accessibilità intuitiva rispetto al continuo. Esso è inoltre, come ha dimostrato Dedekind nel suo celebre trattato Was sind und was sollen die Zahlen? (1888), il vero presupposto e fondamento del concetto di calcolabilità, nel senso preciso che la dimostrazione – da parte dell’autore – dell’esistenza non contraddittoria delle principali operazioni ricorsive dell’aritmetica (come la somma e il prodotto) presuppone la definizione di un insieme di elementi con la stessa struttura dei numeri naturali (compresa l’esistenza di un primo elemento da cui si generano gli altri con l’operazione successore: n′=n+1). All’inizio del 20° sec. il matematico francese F.É.J. Émile Borel (1871-1956) poteva quindi interpretare il teorema di Cantor come prova della presenza, nel continuo aritmetico, di elementi non definibili. E, anzi, Borel notava che una loro eventuale esclusione sarebbe stata una semplificazione per i metodi dell’analisi.
Dalla precedente osservazione, come pure da un analogo commento di Borel sul celebre paradosso di Richard, che non è altro che la versione semantica del teorema sulla non numerabilità del continuo di Cantor, si evince una prima e chiara propensione ad associare la definibilità di un ente matematico non tanto a un insieme finito e coerente di parole (come può essere, per es., per π il fatto di essere il rapporto tra la circonferenza e il diametro di un cerchio), quanto piuttosto a un processo che, applicato a un opportuno insieme di dati iniziali, deve terminare dopo un numero finito di passi. In termini semplificati, si cominciò a pensare che per definire coerentemente qualcosa bisognasse poterla costruire per mezzo di un algoritmo. Una simile idea era diffusa nell’ambiente dei matematici francesi del primo Novecento e poteva essere condivisa, in particolare, da Poincaré. Ma anche matematici come il tedesco Leopold Kronecker (1823-1891) erano propensi a ricondurre il concetto di numero, nell’accezione più estesa, a metodi di decisione o procedure di tipo algoritmico, come poteva essere il metodo di Sturm (una procedura simile all’algoritmo euclideo) per isolare la radice reale di un’equazione algebrica entro un intervallo [a, b], con a e b razionali.
L’interesse per gli algoritmi sviluppatosi nel 20° sec. ha una sua motivazione anche, e soprattutto, in questa non numerabilità del continuo, e la tecnica diagonale di Cantor si pone, infatti, al centro del concetto di algoritmo dovuto al matematico inglese Alan M. Turing e presentato nel celebre articolo che anticipò il modello teorico del futuro calcolatore digitale (On computable numbers, with an application to the Entscheidungsproblem, e A correction, «Proceedings of the London mathematical society», 1937, ser. 2, 42, 1, pp. 230-65, e 1938, ser. 2, 43, 1, pp. 544-46). Tuttavia, una volta riconosciuta la funzione esplicativa e fondante dell’algoritmo, si doveva pure precisare la natura di un suo imprescindibile requisito, cioè l’effettività, la capacità di un processo di calcolo di raggiungere un risultato o un’informazione utile a risolvere un problema di natura pratica o teorica. Soprattutto nella seconda metà del 20° sec. divenne chiaro, con lo studio sistematico degli algoritmi nel calcolo scientifico su grande scala, che l’effettività non può essere facilmente scissa dall’efficienza, che doveva misurarsi a sua volta in termini di complessità computazionale e di comportamento dell’errore nelle operazioni. La complessità e l’errore dovevano quindi diventare uno dei principali oggetti di studio della nuova scienza informatica e del calcolo scientifico che nascevano negli anni Cinquanta.
In realtà la computer science (o informatica) della seconda metà del 20° sec. ha avuto uno sviluppo separato, anche se parallelo, rispetto al calcolo scientifico su grande scala (nonostante la nuova scienza degli algoritmi prospettasse una base di strutture comune per una quantità di problemi diversificati, dal disegno industriale al gioco degli scacchi), e questa separazione fu presto notata, tra gli altri, da John von Neumann (1903-1957), uno dei principali ispiratori della rivoluzione informatica negli anni Quaranta e Cinquanta, e tra i creatori del moderno calcolo digitale. Von Neumann auspicava, infatti, fin dal 1951 che la teoria degli automi, pur prospettandosi come un capitolo della logica formale, potesse acquisire, con il tempo, nuove connotazioni che la rendessero più affine all’analisi matematica. A questa separazione tra informatica e calcolo scientifico contribuiva la tipica divisione di ruoli e competenze tra la matematica del continuo e la matematica del discreto. Se il calcolo scientifico aveva come spunto di base la definizione di modelli sul continuo, cioè di equazioni differenziali, integrali e integro-differenziali in cui le variabili hanno valori nel campo dei reali, l’informatica era più incentrata su uno studio di modelli teorici di calcolo il cui fondamento era da cercare nell’algebra, nella logica, nella teoria combinatoria e nella teoria dei numeri. Nella matematica del continuo è di centrale importanza l’insieme dei numeri reali, mentre il calcolo digitale dell’informatica tratta tipicamente sequenze discrete di cifre (binarie). Il nostro usuale concetto di calcolatore è quello di un oggetto finito e discreto.
Negli ultimi decenni questa divaricazione si è attenuata: nella recente teoria della complessità computazionale si esaminano molti classici problemi dell’analisi numerica con gli strumenti dell’algebra, e lo studio della difficoltà di calcolo di una funzione richiede alcuni dei tipici presupposti dell’informatica teorica, come lo studio dei modelli di calcolo e la teoria dei grafi. In un importante articolo del 1989 (On a theory of computation and complexity over the real nembers. NP-completeness, recursive functions and universal machine, «Bulletin of the American mathematical society», 1989, 21, 1, pp. 1-46), Lenore Blum, Michael Shub e Stephen Smale hanno cercato di costruire una plausibile idealizzazione del calcolatore basata sul continuo aritmetico, cioè sui numeri reali. Il modello descritto nell’articolo si prospetta, sorprendentemente, come l’idealizzazione matematica dei principi su cui si basa un linguaggio di programmazione come il Fortran, in cui sono previsti dati di ingresso che appartengono al campo dei reali. Il modello viene descritto più come l’astrazione di un elementare diagramma di calcolo che come una scoperta realmente innovativa e, a tal fine, viene proposto come esempio tipico la ‘macchina’ di Newton per approssimare uno zero di un polinomio p(x) a coefficienti reali, ovverosia il metodo che, iniziando da un dato x, calcola ripetutamente il valore x′=x−p(x)/p′(x), sostituendolo a ogni passo a x, finché x non sia abbastanza vicino alla radice, cioè |p(x)|≤ε per un ε abbastanza piccolo. I dati di ingresso variano sui reali, e il campo reale è pure il dominio a cui appartiene il dato in uscita. Il classico problema dell’arresto di Turing (esistenza di una procedura che ci informi se una qualsiasi macchina di Turing, con un sistema di dati iniziali, si arresterà o meno) ha il corrispondente nella definizione di un dominio Ω sui reali in modo che, se il dato iniziale x appartiene a Ω, dopo un numero sufficiente di iterazioni si ottengono valori x′ per cui |p(x′)|≤ε. In termini mutuati da Turing, si direbbe dunque che Ω è un insieme di arresto.
Per capire la relazione tra continuo e discreto occorre anche tener conto, nella prospettiva del più recente calcolo scientifico, del complesso passaggio dai modelli della fisica matematica agli algoritmi, i quali devono infine tradursi in puro calcolo digitale. Seguendo una sintetica indicazione di Herman Goldstine (1913-2004) e von Neumann, si devono di solito approssimare le equazioni della fisica matematica con procedure iterative che calcolano su una griglia discreta, passo per passo, una variabile che assume, nel modello iniziale, valori sul continuo. La procedura iterativa, basata sulla ripetizione sistematica di un insieme di operazioni passo dopo passo, è divenuta allora il presupposto matematico della meccanizzazione del calcolo, e il punto di passaggio obbligato per ricondurre l’informazione del modello differenziale, continuo, al carattere particolare, individuale e discreto di sequenze finite di numeri fisicamente memorizzate nel calcolatore. Questo passaggio dal continuo al discreto, che è pure un passaggio dall’infinito al finito e al fondamento algoritmico dei numeri reali, è anche una specie di viaggio a ritroso nella storia della matematica, che ha visto nascere l’analisi moderna dall’uso sistematico di algoritmi per approssimare numeri irrazionali (come le radici di un’equazione algebrica). La parte più innovativa del calcolo, che è anche una nuova spiegazione delle reciproche affinità di struttura tra continuo e discreto, non è quindi estranea all’esperienza della matematica antica, specialmente nei casi in cui questa ha cercato di chiarire i nessi tra l’aritmetica dei numeri e lo spazio della geometria con strumenti di cui la moderna scienza del calcolo ancora si avvale.
Fondamenti algoritmici della continuità: aspetti storici
Le definizioni del continuo aritmetico per opera di Dedekind o di Cantor stabiliscono un nesso tra numero e spazio geometrico, in conformità ai criteri fondanti della matematica antica e al concetto euclideo di rapporto; ma tendono pure a mascherare uno dei principali motivi che hanno accompagnato, nella matematica antica, ogni possibile ricerca sulla relazione tra il continuo e il discreto, ovvero l’uso di processi algoritmici. Solo negli ultimi decenni il concetto di algoritmo è ridiventato uno strumento indispensabile per capire il nesso tra l’esistenza teorica di soluzioni nel continuo e la loro approssimazione nel discreto, o anche la relazione tra la struttura di operatori differenziali o integrali e la corrispondente struttura di operatori lineari (matrici) che li approssimano grazie a tecniche numeriche di discretizzazione. La matematica antica ha inventato alcuni algoritmi senza i quali non esisterebbe l’analisi moderna, e nemmeno il concetto matematico di continuo; ma gli stessi algoritmi sono necessari per capire come dall’analisi e dai modelli della fisica matematica, definiti sul continuo, si estraggono le più efficienti strategie del calcolo digitale. La scienza del calcolo della seconda metà del 20° sec. ha più o meno tacitamente ammesso una ‘ripresa’ di concetti matematici in termini di procedure, rivalutando implicitamente l’origine algoritmica di concetti chiave come quello di rapporto e di numero reale.
Se si bada alla storia e alla genealogia dei concetti matematici, le precedenti definizioni teoriche del continuo aritmetico hanno tutte una base algoritmica, e molte dimostrazioni di esistenza di soluzioni usano in realtà procedimenti costruttivi (come nel caso menzionato della dimostrazione di Cauchy del teorema del valore intermedio per una funzione continua). La definizione di completezza in termini di estremo superiore appare plausibile se si prospetta un’effettiva costruzione del lub di un insieme M di numeri reali. Ammesso che M sia limitato superiormente, si può definire un numero b che non sia un limite superiore per M, ma tale che lo sia invece b+1. Si divide poi l’intervallo [b, b+1] in dieci parti uguali e si trova un numero intero positivo d1 compreso tra 0 e 9 in modo che b+d1/10 non sia un limite superiore di M, e che lo sia invece b+(d1+1)/10. Si può quindi ripetere il processo in modo da ottenere uno sviluppo decimale d=b+0,d1d2d3... che risulta essere precisamente il lub di M. Infatti, d è un limite superiore di M (altrimenti una cifra di d sarebbe stata scelta in modo da risultare troppo piccola). Inoltre, d è il più piccolo limite superiore di M (se s fosse un limite superiore e s<d, una cifra dk risulterebbe troppo grande).
La costruzione precedente si basa sull’idea di calcolare approssimazioni per eccesso e per difetto di un numero; un’idea che interviene anche nelle definizioni della continuità aritmetica di Dedekind (Stetigkeit und irrationale Zahlen, 1872). L’essenza della continuità, spiegava Dedekind, consiste in un principio che trova la sua base intuitiva nell’ordinamento dei punti sulla retta geometrica: se si trova un metodo per dividere l’insieme dei numeri razionali in due classi A e B in modo che ogni elemento di A sia minore di ogni elemento di B, la coppia di classi A e B individua una sezione (Schnitt) del corpo razionale. Se A contiene un elemento massimo o se B contiene un elemento minimo, la sezione individua il numero razionale uguale, rispettivamente, a questo massimo o minimo. Altrimenti, se A non contiene un massimo e B non contiene un minimo, la sezione definisce un numero irrazionale. Per es., se A contiene tutti i razionali il cui quadrato è minore di 2 e B tutti i razionali il cui quadrato è maggiore di 2, la sezione definisce il numero irrazionale ‘radice quadrata di 2’. Il concetto di sezione è mutuato dal concetto euclideo di rapporto (Elementi, V 5), e si basa storicamente su procedure per il calcolo effettivo di frazioni che approssimano per eccesso e difetto un rapporto tra grandezze incommensurabili (come la diagonale e il lato di un quadrato). Il concetto moderno di continuità, come riconosceva lo stesso Dedekind nella prefazione di Was sind und was sollen die Zahlen?, dipende dalla combinazione di questi due principi: la definizione euclidea di rapporto e l’esistenza di algoritmi di approssimazione delle radici irrazionali di un’equazione.
All’origine di questi algoritmi vi sono processi elementari come il metodo delle successive sottrazioni (antanáiresis o anthypháiresis) su cui si basa l’algoritmo euclideo per il calcolo di un’unità di misura comune a due grandezze. Seguendo un passo di Aristotele (Topici, 158b), ampiamente analizzato, tra gli altri, dal filosofo tedesco Oskar Becker (1889-1964) e dal matematico inglese David H. Fowler (1937-2004), il concetto più antico di rapporto si fondava proprio sul metodo delle sottrazioni, e lo stesso metodo è implicito nella moderna teoria delle frazioni continue: ogni numero irrazionale si può rappresentare in modo univoco come frazione continua (semplice) infinita. Una frazione continua si costruisce tipicamente, con l’algoritmo euclideo, dividendo una grandezza a per una grandezza b (per es., a=diagonale e b=lato di un quadrato), ripetendo la divisione con b e il resto r della divisione precedente (r<b) e iterando il procedimento con i successivi resti delle divisioni. Se a0, a1, a2,… sono i quozienti parziali calcolati durante il processo (in numero infinito se a e b sono incommensurabili), le frazioni continue sono definite iterativamente come [a0]=a0/1, [a0, a1]=(a1a0+1)/a1=a0+1/a1, [a0, a1, a2]=[a0, a1+1/a2] e, al passo k, [a0, a1,…, ak−1, ak]=[a0, a1,…, ak−2, ak−1+1/ak], per k=1, 2, 3,… La k-esima frazione è un’approssimazione numerica del numero (irrazionale se a e b sono incommensurabili) associato al rapporto a:b. Il metodo delle frazioni continue consente, infatti, in linea di principio, di approssimare con precisione arbitraria un numero irrazionale mediante una frazione, e si può quindi considerare uno dei principali strumenti per l’analisi del continuo e della sua relazione con l’insieme discreto, ancorché denso, dei numeri razionali.
Anche il principio del valore intermedio è legato, storicamente, a possibili algoritmi per il calcolo degli zeri di una funzione. Uno dei primi a farne uso, senza tuttavia menzionarlo in modo esplicito, fu Girolamo Cardano (1501-1576) quando si trattò di riconoscere l’esistenza di radici reali di equazioni cubiche della forma x3+q=px2, con q e p positivi. Supponendo esistente un intero positivo n tale che, per x=n, x3+q<px2, osservando che x3+q>px2 per x=0 e che, per x abbastanza grande, si ha pure x3+q>px2, si poteva dedurre l’esistenza di due radici positive, una tra 0 e n e l’altra tra n e un valore abbastanza grande di x. Ma Cardano non si limitò a usare il criterio dei valori intermedi per dimostrare l’esistenza di soluzioni. Nel XXX capitolo del suo celebre trattato Artis magnae sive de regulis algebraicis liber unus (Norimberga 1545) egli studiò strategie di approssimazione numerica di tali soluzioni basate sulla regula falsi (falsa posizione), un metodo già usato da Leonardo Pisano (1170-1250), il quale l’avrebbe appreso a sua volta dalla matematica araba. Per quanto antico, il metodo di falsa posizione è ancora oggi un riferimento obbligato nello studio dei più avanzati metodi iterativi per la risoluzione di sistemi di equazioni e per i problemi di minimo non vincolato: lo schema di costruzione di questi metodi è rimasto identico, per alcune linee fondamentali, dai tempi dell’antica matematica greca, indiana, cinese e babilonese.
Aspetti algoritmici della continuità: sviluppi recenti
I metodi rigorosi dell’analisi non trovano negli algoritmi solo un’anticipazione storica, ma anche un termine di confronto obbligato per il loro realismo e la loro plausibilità teoretica. Il carattere effettivo dell’algoritmo, che si esprime innanzitutto nel carattere conclusivo di un procedimento teso alla concreta costruzione di un risultato, impone istanze che non snaturano affatto l’astrazione matematica, ma anzi la arricchiscono di nuovi elementi: le tecniche di approssimazione nel discreto di equazioni definite sul continuo, il comportamento dell’errore nei calcoli, il tempo di esecuzione di una procedura, lo spazio di memoria necessario, lo studio dei possibili modelli di calcolo. Storicamente, una deliberata ignoranza di questi elementi ha in qualche caso compromesso la stessa credibilità di concetti matematici necessari a definire il continuo aritmetico. Per es., i matematici intuizionisti dei primi decenni del 20° sec. criticavano la stessa condizione di Cauchy per la convergenza di una successione numerica: se si richiede, osservavano, che |ap−aq|<ε per ogni p e q maggiori di un intero n positivo, occorre considerare l’eventualità che n non sia calcolabile. Cominciava allora a prospettarsi la necessità di una revisione della teoria dei numeri reali e delle funzioni di una variabile reale su cui si era fondato il concetto di continuo.
Nei primi anni Cinquanta, il matematico russo Andrej Markov (1903-1979), cui si deve una delle definizioni formali del moderno concetto di algoritmo, elaborò una nuova teoria dei numeri reali, constatando che le teorie di Cantor e di Dedekind avevano una natura spiccatamente non costruttiva. Quando si afferma che una successione crescente e limitata di numeri reali converge a un numero reale, si stabilisce di solito l’esistenza di quest’ultimo, notava Markov, senza alcuna indicazione del modo in cui è calcolato.
Negli ultimi decenni del Novecento, a ricerche sugli aspetti costruttivi dell’analisi (Markov, Turing, Errett Bishop, Henry G. Rice, Ernst Specker), inizialmente incentrate sui numeri reali ‘calcolabili’ o ‘ricorsivi’, si è aggiunta un’indagine sulla loro complessità computazionale (Ker-I Ko, Harvey Friedman, Lászlό Lovász), affiancata dagli studi di Juris Hartmanis e Richard E. Stearns sulla gerarchia delle classi di complessità, classi che includono tutti i problemi risolubili con un numero di passi limitato da una funzione assegnata della loro dimensione. Il concetto di numero reale calcolabile si può basare sia sulle sequenze di Cauchy, sia sulle sezioni di Dedekind, sia sullo sviluppo in cifre binarie, in modo da ottenere tre definizioni equivalenti di numero reale ricorsivo. Per es., in base alle sequenze di Cauchy, un numero reale x compreso tra 0 e 1 si dice ricorsivo se esiste una sequenza ricorsivamente numerabile di numeri razionali a0, a1, a2,… e una funzione ricorsiva g tali che |am−x|≤1/n per ogni m≥g(n). La classe di questi numeri x coincide con le altre due classi di numeri definiti, rispettivamente, con il criterio di Dedekind e con lo sviluppo in cifre binarie. In corrispondenza con questi tre criteri (Cauchy, Dedekind e sviluppo in cifre binarie) si possono definire altre tre classi di numeri reali di complessità limitata da una funzione T. Si può cioè affermare che la complessità di un numero reale x è limitata da una funzione T: quando si può effettivamente calcolare in T(n) passi un numero razionale a la cui distanza (in valore assoluto) da x sia minore di 1/2n; oppure quando si può decidere in T(n) passi se un numero razionale di lunghezza n (in una determinata codifica o rappresentazione) risulta o no minore di x; oppure nel caso in cui si possono generare in T(n) passi le prime n cifre binarie di x (il termine passi si riferisce, in ogni caso, a un preciso modello di calcolo, macchina di Turing, macchina ad accesso random o speciali linguaggi di programmazione). Un risultato interessante (ottenuto da Ker-I Ko) è che le classi definite in base alle tre diverse formulazioni e definizioni di complessità non risultano tra loro equivalenti, al contrario delle classi di numeri ricorsivi definite in base ai tre classici criteri di Cantor, di Dedekind e dello sviluppo in cifre binarie. La complessità costringe dunque a distinguere fra tre diverse definizioni di numero reale che, in base alla teoria classica e al solo concetto di ricorsività, risultano invece equivalenti. Il criterio della complessità (di calcolo nel discreto) impone quindi un riesame dei classici principi in base a cui si definisce il continuo aritmetico.
Non per una filosofia della matematica costruttiva, ma per una codifica dei numeri più adatta a formalizzare e analizzare il calcolo, Lovász propone di concepire un numero reale α come una ‘scatola nera’ (black box, oracolo) di cui si ignora il funzionamento, che possa essere inclusa, se occorre, come sottoprogramma in qualsiasi algoritmo. La scatola nera ha un ingresso e un’uscita: inserendo un numero (razionale) ε>0 da una parte essa fa uscire di rimando dall’altra, in tempo polinomiale, un numero razionale r, interpretabile come un’approssimazione del numero α individuato dalla scatola, con un errore minore di ε. Si possono designare allora π o la radice quadrata di 2 come scatole nere; e per due numeri α e β si possono definire analoghe scatole per α+β e per α−β. Si può definire inoltre una scatola per la divisione αβ purché si trovi, in tempo polinomiale, un limite inferiore per |β|. In caso contrario β non si distingue da 0 in un numero accettabile di operazioni, come dire che la definizione in termini di scatole nere non offre la possibilità di distinguere in ogni caso due diversi numeri reali. Questo non è però un vero inconveniente, perché riflette una reale esigenza del calcolo numerico, cioè la necessità di non dividere per numeri prossimi a zero, che è una condizione per la stabilità del processo. Nel corso di un algoritmo, ogni biforcazione basata sulla domanda se α=β può essere riformulata dalla richiesta |α−β|<ε per un qualsiasi ε sufficientemente piccolo, in quanto non si può decidere se vale un’uguaglianza tra due numeri dei quali si conosce solo un’approssimazione. Un presupposto di queste considerazioni è naturalmente che il concetto di approssimazione è parte intrinseca della matematica e non implica alcuna perdita di esattezza del ragionamento.
Per Lovász si può pure codificare un numero algebrico (un numero reale che sia radice di un polinomio), anziché come un oracolo (o black box) di tipo speciale, come una terna (f, a, b), ove f è un polinomio a coefficienti razionali e a, b sono due numeri razionali, in modo che f abbia un’unica radice all’interno dell’intervallo [a, b]. La rappresentazione di un numero algebrico come una terna (f, a, b) non è unica, ma è essenziale il fatto che si possa decidere in tempo polinomiale se due terne definiscono lo stesso numero. Infatti, se (f, a, b) e (g, c, d) sono due terne corrispondenti a due numeri algebrici, si considera l’intersezione (u, v) dei due intervalli aperti (a, b) e (c, d). Se l’intersezione non è vuota (se fosse vuota si concluderebbe subito che i due numeri sono diversi), si calcola il massimo comune divisore h dei due polinomi f e g, con l’algoritmo euclideo, in un numero polinomiale di operazioni aritmetiche (o anche, se si vuole, operazioni binarie). Il problema si riconduce quindi al controllo se h ha uno zero nell’intervallo (u, v). A questo fine si calcolano, in tempo lineare, i valori assunti dal polinomio h negli estremi u e v dell’intervallo e si controlla se questi valori hanno lo stesso segno (una considerazione a parte s’impone nel caso in cui h si annulli in u o in v). Si dimostra quindi che, data una terna relativa a un numero algebrico, si può costruire un oracolo che individua lo stesso numero e che opera in tempo polinomiale; e viceversa che, data una scatola nera per un numero algebrico, si può calcolare in tempo polinomiale una terna che individua lo stesso numero.
Anche il principio del valore intermedio, uno dei cardini del concetto matematico di continuo, dev’essere opportunamente riformulato se nella classica dimostrazione costruttiva di Cauchy si ammette un errore di calcolo. Questa dimostrazione si basa sulla divisione iterativa in m parti (m>1) di un intervallo [a, b] della retta reale, in modo tale da ottenere, al passo k dell’iterazione, sottointervalli [ak, bk] di lunghezza bk−ak=(b−a)/mk. La funzione f che assume valori di segno contrario in a e in b è calcolata ogni volta in ak e bk, per fissare i sottointervalli ai cui estremi assume segno contrario. Si ottengono due successioni di valori che la f assume, rispettivamente, nei punti ak e nei punti bk, che convergono allo stesso limite f(x*) e, poiché i valori corrispondenti di f nelle due successioni assumono ogni volta segno contrario, dev’essere f(x*)=0, cioè la f ha uno zero x* in (a, b). Se ora si ammette un errore nel calcolo di f, e se g(x) è il valore effettivamente calcolato di f nel punto x, si ha g(x)=f(x)+e(x). Sia |e(x)|≤ε, cioè l’errore di calcolo su x limitato da ε, e sia [c, d] il massimo intervallo circolare intorno a x* nel quale risulta |f(x)|≤ε. Se x non appartiene a [c, d] e f(x)>ε, si ha anche la relazione g(x)=f(x)+e(x)≥f(x)−ε>0 e analogamente, se x non appartiene a [c, d] e f(x)<−ε, risulta g(x)<0. Perciò, se x non appartiene a [c, d] e |f(x)|>ε, g(x)>0 implica f(x)>0, mentre g(x)<0 implica f(x)<0, cioè i valori di g sono indicativi per la determinazione dei cambiamenti di segno di f. Se invece x appartiene a [c, d], i valori di g(x) non forniscono alcuna informazione sul segno di f(x) e non consentono di restringere l’intervallo [c, d], che deve considerarsi pertanto un intervallo di incertezza per lo zero x*. Quindi, in presenza di errore, il criterio del valore intermedio continua a valere a meno di un intervallo di incertezza o di indeterminazione [c, d] la cui lunghezza dipende da ε. Se |f(x)|≤ε, si dimostra facilmente, linearizzando f(x) intorno a x*, scrivendo cioè f(x)~f(x*)+f(x*)(x−x*), che [c, d] coincide in pratica con [x*−η, x*+η], ove η=ε/|f(x*)|. Pertanto la quantità γ=1/|f(x*)| ha il significato di un coefficiente di amplificazione dell’errore ε su f. Quanto più grande risulta γ, ovvero quanto più piccolo è |f(x*)|, tanto più grande è l’intervallo di incertezza e con tanta minore precisione si riesce a determinare lo zero di f. Il coefficiente γ si dice indice di condizionamento e, se γ è grande, il problema della determinazione di x* si dice mal condizionato. Per molti algoritmi che calcolano la soluzione di sistemi di equazioni algebriche o il minimo di una funzione, un indice di condizionamento opportunamente definito risulta decisivo per l’efficienza del processo. L’indice di condizionamento è quindi un parametro essenziale per potere approssimare nel discreto (con una successione discreta di valori che si avvicinano indefinitamente alla soluzione) quei punti del continuo la cui esistenza è garantita dai procedimenti più teorici dell’analisi.
Anche nelle formule iterative su cui si basano le frazioni continue, dalle quali dipende una delle teorie del continuo aritmetico, si deve tener conto della propagazione dell’errore: è stato in particolare il matematico svizzero naturalizzato statunitense Walter Gautschi (n. 1927) a segnalare che queste formule possono essere instabili e che il grado di effettività di un semplice processo di approssimazione con ricorrenze a tre termini risulta in certi taluni del tutto insufficiente. Una relazione ricorrente a tre termini ha la forma yk+1+akyk+bkyk−1=0, k=1, 2, 3,…, e permette di calcolare uno a uno i valori successivi di yk una volta prefissati i due valori iniziali y0 e y1. A ogni frazione continua fk/gk si possono associare una ricorrenza a tre termini che genera i numeratori fk e i denominatori gk. Viceversa, ogni ricorrenza a tre termini si potrebbe interpretare come un meccanismo di generazione per una frazione continua. Oltre che nel processo euclideo per la ricerca del massimo comune divisore tra due grandezze, un simile procedimento di iterazione interviene nella costruzione di polinomi ortogonali (come i polinomi di Bessel) e nelle formule risolutive di sistemi di equazioni lineari ove la matrice A dei coefficienti sia di forma tridiagonale (Aij=0 per |i−j|>1).
La formula ricorrente permette di calcolare successivamente i valori yk passo per passo, ma si ha pure che la soluzione generale della relazione ricorrente yk+1+akyk+bkyk−1=0 è la combinazione lineare di una coppia di soluzioni linearmente indipendenti fk e gk. Se ora si suppone che il rapporto fk/gk tende a zero al crescere indefinito di k (come può accadere, per es., per le funzioni di Bessel), anche il rapporto fk/yk tende a zero per ogni soluzione yk che non sia proporzionale a fk. Infatti yk si scrive come una combinazione lineare afk+bgk, con b non nullo, e quindi il rapporto fk/yk è uguale al rapporto (fk/yk)/[b+a(fk/yk)], che tende a zero al crescere di k. Se ora si calcola yk iterativamente con precisione infinita in base a due valori iniziali approssimati y0 e y1, la soluzione calcolata non è, in generale, proporzionale a fk e conseguentemente, poiché (yk−fk)/fk=yk/fk−1 e fk/yk tende a zero si ottiene che |(yk−fk)/fk| tende a infinito al divergere di k. In altri termini, l’errore relativo cui è soggetta la soluzione calcolata yk, a causa di un’imprecisione sui soli dati iniziali, cresce indefinitamente al crescere di k, in modo da vanificare del tutto il senso del calcolo. L’errore nel calcolo discreto costringe, quindi, a una revisione delle formule ricorsive sulle quali si è basata, storicamente, la teoria del continuo aritmetico.
Strutture nel continuo e nel discreto
Tra la fine dell’Ottocento e l’inizio del Novecento cominciò a delinearsi una delle teorie più importanti della matematica, cioè la teoria delle equazioni integrali, a opera soprattutto dello svedese Eric I. Fredholm (1866-1927) e dell’italiano Vito Volterra (1860-1940) e, successivamente, del tedesco David Hilbert (1862-1943). Alla base di questa teoria vi era l’idea che un integrale (continuo) fosse approssimabile con una somma finita (discreta) e che un’equazione integrale fosse sostituibile, a meno di un errore di approssimazione, con un sistema di equazioni algebriche lineari, la cui matrice dei coefficienti era il corrispondente (discreto) del nucleo (continuo) che figurava sotto il segno di integrale. Questa approssimazione del nucleo con una matrice s’interpretava come uno dei passaggi cruciali del processo di aritmetizzazione della matematica e come un’ulteriore conferma delle teorie fondazionali allora diffuse, per le quali l’analisi era riconducibile a operazioni su insiemi finiti di interi e a operazioni di passaggio al limite.
La possibile aritmetizzazione della matematica non era, tuttavia, solo una questione di principio, ma anche un’effettiva possibilità di calcolo. L’applicazione delle equazioni integrali come modelli di fenomeni naturali richiedeva, accanto alla soluzione analitica, una risoluzione numerica attraverso procedimenti di discretizzazione e implementazione di algoritmi efficienti, che si basavano precisamente sull’idea di approssimare l’integrale con una somma e il nucleo con una matrice. Ma nucleo e matrice possedevano spesso una speciale struttura, che era pure un presupposto per l’efficienza dei calcoli. Storicamente questa evidenza emerse, per es., con l’analisi delle serie temporali, frutto delle ricerche parallele e indipendenti condotte negli anni Quaranta da due matematici, lo statunitense Norbert Wiener (1894-1964) e il russo Andrej N. Kolmogorov (1903-1987). Le serie temporali di Wiener consistevano in successioni discrete o continue di dati assegnati in specifici istanti di tempo, come singole osservazioni numeriche o segnali relativi a una corrente o a un voltaggio registrati da strumenti adeguati; successioni che fornivano informazioni sull’andamento dei fenomeni più disparati, come i prezzi del mercato o le trasmissioni radiotelevisive. Un tipico problema era quello di estrapolare o di predire l’andamento futuro di un processo in base alla sua storia passata (rappresentata da un integrale o da una somma), un compito che doveva affiancarsi a operazioni di filtraggio di segnali, cioè di ‘purificazione’ di messaggi da rumori estranei. Il trattato di Wiener venne semplificato dal matematico statunitense Norman Levinson (1912-1975), che spiegò come i processi di estrapolazione, predizione e filtraggio potevano ridursi a problemi di tipo lineare, consistenti essenzialmente nella risoluzione di un sistema di equazioni lineari con matrice T dei coefficienti definita da elementi trs uguali sulla diagonale principale e sulle diagonali a essa parallele: tr,s=tr−1,s−1=t|r−s|. Una matrice con queste proprietà si chiama matrice di Toeplitz ed è l’esatto corrispondente, nel discreto, di un nucleo che, nell’equazione integrale che esprime l’operazione di filtraggio, assume la forma φ(r−s), ove t e s variano sul continuo.
I metodi numerici per la risoluzione di sistemi lineari con matrici di Toeplitz possono essere particolarmente efficienti grazie alla struttura di queste matrici, che consente di ridurre la complessità di tutte le operazioni di prodotto e inversione. Ma questa semplificazione del calcolo è possibile grazie al fatto che la struttura di Toeplitz è associabile ad altre strutture: la matrice T e la sua inversa si possono esprimere, per es., in termini di operatori lineari appartenenti ad algebre di matrici diagonalizzabili con trasformate veloci (FFT, Fast Fourier Transform, e altre). Si verifica allora un fenomeno interessante: nel discreto si trova una varietà di strutture che non hanno sempre un chiaro corrispondente nel continuo. In un certo senso il discreto appare più complesso e articolato del continuo; ricco di strutture più o meno nascoste, e collegate tra loro in modi che nel continuo non sembrano così evidenziabili. Una questione non ancora sufficientemente chiarita è, infatti, la seguente: come si possano ritrovare nei modelli sul continuo le molteplici strutture (assieme alle loro reciproche relazioni) che i corrispondenti operatori lineari (matrici) posseggono nel discreto.
Il passaggio dal continuo al discreto è necessario quando non si trova o non conviene neppure cercare una soluzione di tipo analitico. In simili casi si discretezza il problema differenziale mediante diverse possibili tecniche (differenze finite, metodi variazionali, elementi finiti), fino a ricondursi alla risoluzione numerica di un sistema di equazioni lineari. La struttura della matrice di questo sistema, da cui dipende la possibilità di calcolare effettivamente la soluzione, riflette allora, generalmente, la struttura del modello iniziale, come pure la scelta del criterio di discretizzazione. Una possibile strategia consiste, per es., nel ricondurre il problema differenziale a un problema variazionale, ovvero alla ricerca del minimo di un funzionale (opportunamente definito), e nell’esprimere il problema di minimo in un sistema di spazi discreti di dimensione finita. Dalla riformulazione nel finito (nel discreto) del problema variazionale si ricava infine un sistema Ax=b di equazioni lineari. La scelta delle basi degli spazi (cioè delle funzioni che ne generano gli elementi) si riflette allora sul numero di condizionamento della matrice A del sistema lineare, un indice che misura la sensibilità del problema Ax=b rispetto a errori sui dati A e b, dal quale dipende pure l’efficienza di alcuni dei metodi più avanzati di risoluzione numerica (metodi del gradiente e GMRES, Generalized Minimal RESidual). Il grado di affidabilità del calcolo digitale discreto, consistente in milioni di operazioni aritmetiche elementari tra numeri (finiti) di macchina, dipende quindi dal condizionamento di una matrice e dal modo in cui si discretezza, con la scelta delle basi, un problema variazionale definito sul continuo (al quale si riconduce il modello iniziale).
I metodi più efficienti per risolvere numericamente un sistema di equazioni algebriche, o per calcolare il minimo (non vincolato) di una funzione di n variabili reali x1, x2,…, xn, si basano spesso su schemi computazionali già noti nella matematica antica, come, per es., l’ingrandimento o la riduzione di un quadrato mediante gnomoni (figure a squadra che, aggiunte o tolte a un quadrato, generano un altro quadrato), una figura che è strettamente legata allo sviluppo di Taylor di una funzione arrestato al termine lineare. Queste costruzioni elementari, che intervengono continuamente nella geometria di Euclide come pure nella matematica antica in India, in Cina e in Mesopotamia, stanno veramente all’origine dell’idea di discreto, e su di esse si basano molte strategie del calcolo scientifico che realizzano il passaggio dai modelli continui al calcolo digitale. La relazione tra continuo e discreto si coglie anche nel fatto che queste strategie sono l’interpretazione algoritmica di teoremi di analisi. Per es., la dimostrazione di Cauchy che una funzione f il cui gradiente (il vettore delle derivate parziali di f) è diverso da zero in un punto x=(x1, x2,…, xn) non ha qui un minimo si basa sul fatto che ci si può discostare da quel punto, lungo un’opportuna direzione, in modo da ridurre il valore di f. Esiste cioè in quel punto una direzione locale di discesa. Ora proprio sul fatto che nella dimostrazione analitica s’individua una precisa direzione di discesa di f si basa l’esistenza di un processo (algoritmo) che realizza effettivamente questa discesa passo per passo, calcolando un insieme discreto di valori di x fino alla precisione richiesta.
Una classe importante di algoritmi per il calcolo del minimo di una funzione sono gli algoritmi newtoniani, basati sullo sviluppo di Taylor di f fino al termine lineare (un modello lineare locale di f da cui si ricava il classico metodo di Newton per la risoluzione numerica di un’equazione). Certi teoremi che garantiscono la convergenza di questi metodi a un punto di minimo (locale) α si basano su classiche ipotesi di tipo analitico, formulate nel continuo, come la convessità della funzione f intorno ad α. Un quesito che si dovrebbe porre è allora il seguente: ipotesi analitiche come la convessità si possono sostituire con procedure in grado di raggiungere lo stesso risultato, cioè un’approssimazione del punto di minimo con precisione arbitraria? La procedura, rispetto all’ipotesi, avrebbe il vantaggio di un controllo discrezionale sui singoli passi dell’operazione, con scelte opportune, passo per passo, degli operatori lineari che realizzano la discesa. Si risponderebbe in questo modo all’esigenza di indebolire, ove possibile, i requisiti analitici per la convergenza di un metodo, cercando nel discreto le migliori strutture, non visibili nel continuo, allo scopo di ridurre la complessità computazionale e migliorare l’efficienza della procedura.
Bibliografia
J.H. Wilkinson, Rounding errors in algebraic processes, London-Englewood Cliffs (N.J.) 1963, New York 19942.
J. Stoer, R. Bulirsch, Introduction to numerical analysis, New York-London 1980, 20023.
G.W. Stewart, Afternotes on numerical analysis, Philadelphia 1996.
L. Blum, F. Cucker, M. Shub, S. Smale, Complexity and real computation, New York-London 1997.
J. Nocedal, S.J. Wright, Numerical optimization, New York-London 1999, 20062.