giovedì 11 ottobre 2018

Minacce aliene — Parte 2

Ora, naturalmente ai matematici piace generalizzare”.

“Capirai”.

“Eh, è nella loro natura. Si sono posti quindi questa domanda: se su un grafo formato dai lati e dalle diagonali di un esagono si trova sempre un triangolo monocromatico, che succede con un pentagono? Un quadrilatero? Qual è il numero minimo di vertici che deve avere un grafo completo affinché, colorando i suoi spigoli con due colori, si possa essere certi di formare sempre un triangolo monocromatico?”.

“Beh, certamente non più di 6, no?”.

“Infatti. Se riusciamo a trovare un triangolo che ci piace in un grafo con 6 vertici, aumentando i vertici aumentano anche gli spigoli, e quindi aumentano le possibilità di trovare triangoli monocromatici”.

“Quindi la domanda diventa: potrebbe essere 5, o meno ancora?”.

“Ed ecco la risposta:”.



“Uhm. Un pentagono”.

“Un pentagono con 5 spigoli colorati di rosso e 5 colorati di blu. Osservalo bene: ci sono triangoli monocromatici?”.

“Eh, no”.

“Quindi esiste almeno una colorazione di questo grafo che non produce triangoli monocromatici”.

“E quindi la nostra ricerca è finita: il numero minimo di vertici per avere i triangoli monocromatici è 6. Ottimo, fine della generalizzazione”.

“Non c’è mai fine alle generalizzazioni”.

“Capirai”.

“Per esempio: troverò triangoli anche se uso tre colori? Quattro? Di più?”.

“Ah. Non sembra facile”.

“Non lo è. Ma si può generalizzare anche in un altro modo: posso colorare con 2 colori in modo da trovare triangoli del primo o quadrati del secondo?”.

“Uh, che delirio”.

“E trovare le risposte a queste domande è difficilissimo. Anzi, alcune di queste risposte non le conosciamo ancora”.

“Davvero?”.

“Eh, sì. Il numero che abbiamo calcolato poco fa, il minimo numero di vertici che deve avere un grafo perché si possa sempre trovare al suo interno un triangolo blu o un triangolo rosso, si chiama numero di Ramsey per tre rosso e tre blu, e si indica con R(3,3). Erdős ha detto, una volta: supponete che gli alieni invadano la Terra e che minaccino di annientarla se entro un anno gli uomini non riusciranno a trovare il numero di Ramsey per cinque rosso e cinque blu. Potremmo far scendere in campo le menti migliori e i calcolatori più veloci del pianeta e probabilmente entro un anno riusciremmo a calcolare quel valore. Se tuttavia gli alieni volessero il numero di Ramsey per sei rosso e sei blu. non avremmo altra scelta se non un attacco preventivo.”.

“Eh eh, non credevo fosse così difficile”.

“Lo è, eccome se lo è. I matematici sono riusciti a dimostrare che un numero di Ramsey esiste sempre, qualunque sia il numero di colori e il numero di lati da colorare. Il problema è che non sappiamo quali siano, questi numeri, se non in pochi casi”.

“Ma pensa”.

“Già: per quanto riguarda il famoso R(5,5) di Erdős, nel 1989 si è scoperto che questo numero deve essere almeno 43. Mentre nel 2017, l'anno scorso, si è capito che non può essere più grande di 48”.

“Una scoperta recentissima!”.

“Eh, sì. E, dato che fregiarsi del titolo di potenziale salvatore dagli alieni dovrebbe essere uno stimolo enorme per un Vero Matematico, puoi renderti conto della difficoltà del problema”.

“Quindi di pensare a risolvere R(6,6) non se ne parla proprio, suppongo. Meglio sviluppare la tecnologia per combattere gli alieni?”.

“Le ultime stime per R(6,6) sono del 1965. Da allora, nessuno è riuscito a fare meglio. Sappiamo solo che R(6,6) è un numero compreso tra 102 e 165”.

“Eppure non sono numeri così grandi, come è possibile che non si riescano a migliorare le stime?”.

“Ricordati che i numeri di cui stiamo parlando sono i vertici. Sai quanti spigoli ha un grafo completo con 100 vertici?”.

“Eh, al momento no...”.

“Prova a pensare: quanti spigoli partono da ogni vertice?”.

“Eh, direi 99, uno per ogni vertice, tranne quello da cui parto”.

“E dato che ci sono 100 vertici...”.

“Ho 100×99 spigoli?”.

“Non esattamente. In questo modo, ogni spigolo verrebbe contato due volte, una per il vertice di partenza e una per quello di arrivo”.

“Ah, allora devo dividere per due il risultato!”.

“Già. Quindi un grafo con 100 vertici ha 50×99 spigoli, cioè 4950”.

“Anche questo non è un numero così esagerato, magari con un computer si può fare qualche stima, no?”.

“Eh, sai quante possibili colorazioni si possono fare, anche soltanto con due colori?”.

“Uhm, non saprei come calcolarle”.

“Non è difficile: per ogni spigolo hai due scelte, o lo colori di blu o di rosso. Quindi due scelte per il primo spigolo, moltiplicate per altre due scelte per il secondo, e così via”.

“Gulp, devo moltiplicare 2 per sé stesso 4950 volte”.

“Esatto. Un numero composto da 1491 cifre. Se passi a un grafo con 120 vertici ti risulta un numero di configurazioni da provare composto da 2150 cifre”.

“Comincia a diventare lunghetta”.

“E non è finita: in ognuna delle configurazioni devi cercare degli esagoni”.

“Argh”.

“In un grafo completo sei vertici scelti a caso sono sempre collegati da sei spigoli, quindi per calcolare il numero di esagoni ti basta calcolare il numero di possibili scelte di sei vertici”.

“E come faccio?”.

“Beh, il primo vertice lo puoi scegliere in 100 modi diversi, il secondo in 99, il terzo in 98, e così via, fino al sesto vertice, che puoi scegliere in 95 modi. In realtà queste scelte non sono tutte diverse, puoi mescolare i sei lati in 6! modi, come se fossero le lettere di un anagramma”.

“Totale: 100×99×98×97×96×95. Poi divido per il fattoriale di 6, vediamo… fa 1 miliardo e rotti. E dovrei controllarli tutti per ognuno dei grafi? Roba da matti”.

“Come vedi, non esiste ancora la potenza di calcolo necessaria per poter affrontare questo problema con la forza bruta. Meglio attaccare gli alieni”.

“Ma allora come hanno fatto a fare quelle stime di cui parlavi? ”.

“Erdős è stato il primo a farle, e ha escogitato un metodo che, a prima vista, è spiazzante. I Veri Matematici lo chiamano metodo probabilistico”.

“Uhm, usa la probabilità? Si può dimostrare un teorema con considerazioni di probabilità? Mi pareva che i teoremi dessero certezze”.

“Eh, è proprio per questo che il metodo è spiazzante: Erdős ha usato la probabilità per arrivare a una vera dimostrazione”.

“Uh”.

“Erdős partiva da questa idea: supponiamo di colorare gli spigoli di un grafo in maniera casuale, tirando una moneta. Se viene testa coloro lo spigolo di rosso, se viene croce lo coloro di blu”.

“Va bene”.

“Ora, supponiamo di voler fare una stima dal basso di R(34,34)”.

“Un numero impossibile da calcolare, se già R(6,6) è intrattabile”.

“Esattamente: questo esempio serve per capire la potenza del metodo probabilistico. Ci chiediamo, ad esempio, se un grafo con un milione di vertici potrebbe essere sufficiente per garantire la presenza di poligoni di 34 lati monocromatici”.

“Mi immagino il disegno”.

“Eh eh. Ora, un grafo completo con 34 vertici ha 561 spigoli”.

“Vediamo se ho capito: per ogni spigolo posso scegliere il primo vertice in 34 modi, e il secondo in 33, però così facendo conto gli spigoli due volte, quindi dopo aver moltiplicato 34 per 33 devo dividere per 2. Sì, risulta 561”.

“Esattamente. Ora la probabilità che questi 561 vertici siano tutti dello stesso colore”.

“Ho probabilità un mezzo per ogni lato, quindi dovrebbe essere (1/2)561”.

“Bene, però i colori sono due”.

“Quindi moltiplico per due, e mi viene (1/2)560”.

“Ok. Quanti poligoni di 34 lati abbiamo in un grafo di un milione di vertici?”.

“Oh, tanti. Avevamo visto che già il calcolo con 100 dava un numero molto grande”.

“Eh, sì. Procedendo allo stesso modo, risulta che il numero di combinazioni è circa 3×10165. A questo punto, possiamo chiederci quanto vale la probabilità di trovare un poligono di 34 lati monocromatico”.

“Devo moltiplicare la probabilità che un singolo poligono sia monocromatico con il numero dei poligoni, no?”.

“Vero”.

“Quindi devo moltiplicare (1/2)560 per 3×10165”.

“Quanto viene?”.

“Poco meno di un millesimo”.

“Non importa il valore esatto, ciò che conta è che il risultato sia minore di 1”.

“Perché?”.

“Perché se tutte le possibili colorazioni di spigoli contenessero poligoni di 34 lati monocromatici, allora questa probabilità dovrebbe essere uguale a 1”.

“Ah, vero: avremmo la certezza di trovare un poligono monocromatico”.

“Dunque, se la probabilità è minore di uno, ciò significa che esiste almeno una colorazione che non ci dà poligoni monocromatici”.

“E quindi?”.

“E quindi un milione di vertici sono troppo pochi: abbiamo trovato una limitazione inferiore per R(34,34)”.

“Ah. Non è stato così difficile”.

“Per questo il metodo è potente: permette di capire qualcosa in un universo di calcoli proibitivi”.

“Ordine nel caos”.

“Proprio così. Come disse il matematico Theodore Motzkin descrivendo la teoria di Ramsey: complete disorder is impossible”.






Questa è la seconda parte di un articolo uscito sulla rivista Archimede, numero 4, del 2017. La prima parte è qua.

venerdì 7 settembre 2018

Minacce aliene — Parte 1

Gli alieni invadono la Terra e minacciano di annientarla se entro un anno gli uomini non riusciranno a trovare il numero di Ramsey per cinque rosso e cinque blu. Potremmo far scendere in campo le menti migliori e i calcolatori più veloci del pianeta e probabilmente entro un anno riusciremmo a calcolare quel valore. Se tuttavia gli alieni volessero il numero di Ramsey per sei rosso e sei blu, non avremmo altra scelta se non un attacco preventivo.


“Com’è questa faccenda degli alieni?”.

“Te lo spiego con un gioco”.

“Oh, bene!”.

“Abbiamo questo schema. A turno dobbiamo colorare i segmenti che collegano i punti: io uso il rosso, tu usi il blu. Naturalmente se uno di noi ha colorato un segmento, l’altro non può colorarlo di nuovo”.



“Ok”.

“Perde il primo che forma un triangolo. Comincia tu ”.

“Uhm”.

“Cosa c’è?”.

“Di solito, quando un Vero Matematico propone un gioco, è sicuro di vincere”.

“Eh, c’è del vero in quello che dici”.

“E quindi, se le cose stanno così, io non ho nemmeno la speranza di riuscire a pareggiare. Figuriamoci se posso pensare di vincere”.

“In effetti in questo gioco non è possibile pareggiare, nemmeno giocando male”.

“Davvero? E come è possibile? Non dirmi che, anche colorando i lati a caso, si riesce sempre a creare un triangolo”.

“E invece è proprio così. In questo gioco è impossibile non avere un triangolo. Prova: colora a caso alternativamente di rosso e di blu i segmenti, e guarda come va a finire”.




“Uh, è vero. Però, se non sbaglio, un caso favorevole non dimostra un’affermazione, no?”.

“Molto bene, vedo che i miei sforzi hanno prodotto qualche risultato”.

“Eh, so che i Veri Matematici tengono molto alle loro dimostrazioni, e so che questa non lo è. E mi è venuta anche la curiosità di sapere come si possa affermare che è sempre possibile trovare un triangolo colorato”.

“Bene, bene. La dimostrazione non è difficile: il campo di gara di questo gioco...”.

“A proposito: ha un nome?”.

“Sì, si chiama Sim. Dicevo, il campo di gara è quello che i Veri Matematici chiamano grafo completo composto da 6 vertici”.

“Un esagono con tutte le sue diagonali”.

“Esatto. Qui trattiamo le diagonali vere e proprie e i lati dell’esagono allo stesso modo: li chiamiamo spigoli. Da ogni vertice escono naturalmente cinque spigoli”.

“Naturalmente”.

“Quindi almeno tre verranno colorati allo stesso modo”.

“Uhm, perché?”.

“Vuoi assegnare ogni diagonale a un colore: è come se tu dovessi distribuire cinque maglie in due cassetti, quello rosso e quello blu”.

“Cosa c’entrano le maglie?”.

“E’ un esempio: distribuisci cinque maglie in due cassetti. Quante maglie andranno in ogni cassetto?”.

“Boh, dipende”.

“Mettere una maglia in un cassetto corrisponde a colorare uno dei cinque spigoli. Riesci a fare in modo che nessuno dei due cassetti contenga tre maglie?”.

“Eh, no, è impossibile: posso mettere due maglie in ogni cassetto, per un totale di quattro maglie. Poi però mi rimane la quinta, e da qualche parte devo mettere pure quella”.

“Quindi uno dei due cassetti avrà almeno tre maglie”.

“Perché almeno?”.

“Perché potresti anche mettere tutte le maglie nello stesso cassetto. Qualunque cosa tu faccia, un cassetto conterrà certamente più di due maglie”.

“Va bene”.

“E quindi, comunque tu scelga una colorazione dei cinque spigoli che partono da un vertice dell’esagono, almeno tre di essi avranno lo stesso colore”.

“D’accordo”.

“Supponiamo che sia il blu”.

“Immagino che la dimostrazione con tre spigoli rossi sia simmetrica a questa”.

“Esattamente. I Veri Matematici usano così spesso queste simmetrie che hanno coniato un acronimo apposta: invece di scrivere che la scelta che hanno fatto non fa perdere di generalità al problema, scrivono wlog”.

“Una funzione? Una specie di logaritmo? Che roba è?”.

“Un acronimo: without loss of generality. Alcuni lo usano anche quando parlano”.

“Sono pazzi”.

“Eh, un po’. Ma andiamo avanti: chiamiamo V il vertice che abbiamo scelto. V è connesso con altri tre vertici, che possiamo chiamare R, S e T. Se uno qualsiasi degli spigoli RS, ST o RT è blu, allora abbiamo trovato un triangolo blu. Se nessuno dei tre invece è blu...”.

“...allora abbiamo un triangolo rosso!”.

“Quello di vertici R, S e T, esatto.”.

“E quindi è vero che in una qualsiasi colorazione degli spigoli di questo grafo troviamo sempre un triangolo con i lati dello stesso colore”.

“Una qualsiasi colorazione fatta con due soli colori, naturalmente”.

“Ah, sì, certo. Dunque, al gioco del Sim non si può pareggiare”.

“Proprio così. Ora, naturalmente ai matematici piace generalizzare”.

“Capirai”.




Questa è la prima parte di un articolo uscito sulla rivista Archimede, numero 4, del 2017.

domenica 19 agosto 2018

Come di consueto, classifiche (questa volta non olimpiche)

Ecco la classifica definitiva dei campionati europei 2018, ordinata come al solito secondo la proposta di Simon Tatham.

Uno stato X è stato migliore di un altro stato Y se il medagliere di Y può essere trasformato nel medagliere di X mediante una sequenza di aggiunte di medaglie oppure di sostituzione di medaglie basse con medaglie alte.





sabato 2 giugno 2018

L'inverso del teorema di Pitagora

“L'inverso del teorema di Pitagora?”.

“Eh, sì”.

“Ma cosa significa inverso?”.

“Ti giro la domanda: cosa dice il teorema di Pitagora?”.

“Dice che il quadrato costruito sull'ipotenusa è equivalente alla somma dei quadrati costruiti sui cateti”.

“No”.

“Come no?”.

“No: prendi un triangolo equilatero di lato 1 e dimmi se è vero che 1 + 1 = 1”.

“Ma cosa c'entra un triangolo equilatero? Il triangolo deve essere… Ok, non l'ho detto”.

“Già”.

“Riprovo: il teorema di Pitagora dice che in un triangolo rettangolo il quadrato costruito sull'ipotenusa è equivalente alla somma dei quadrati costruiti sui cateti”.

“Ottimo. Qual era l'errore, quindi?”.

“Avevo dimenticato di specificare il contesto in cui si applica il teorema”.

“Sì, avevi dimenticato l'ipotesi: il teorema di Pitagora vale se il triangolo è rettangolo”.

“E l'inverso, allora?”.

“L'inverso risponde a quest'altra domanda: è vero o no che il quadrato costruito sull'ipotenusa è equivalente alla somma dei quadrati costruiti sui cateti solo se il triangolo è rettangolo?”.

“Ovvio”.

“Mica tanto ovvio: prendi un triangolo, indica con a, b e c i suoi tre lati, sai che vale la relazione a2 + b2 = c2. Puoi dire che il triangolo è rettangolo?”.

“Ma per forza, no?”.

“NO! NON ESISTONO DIMOSTRAZIONI PER FORZA!”.

“Ok, ok, mamma mia che brutto carattere”.

“Scusa eh, ma se tu sai che il verificarsi di qualcosa implica il verificarsi di qualcos'altro, puoi dire che automaticamente il verificarsi della seconda cosa implica il verificarsi della prima?”.

“Fino a pochi secondi fa avrei detto di sì, ma mi pare di capire che invece non sia così. Ho un po' paura a chiedere perché, però”.

“Prendi un numero divisibile per 4: puoi dire che è divisibile anche per 2?”.

“Certo”.

“Perché?”.

“Perché se contiene 4 contiene anche 2, dato che 4 è divisibile per 2”.

“Questa proprietà vale per tutti i numeri divisibili per 4?”.

“Certo”.

“Puoi dire il contrario? Puoi dire che ogni numero divisibile per 2 è divisibile anche per 4?”.

“Eh, no, non tutti. Se prendo 8 va bene, se prendo 6 no”.

“Quindi questo è un esempio di teorema che funziona in una sola direzione: il suo inverso non è un teorema”.

“Ah”.

“È vero che un quadrato ha quattro angoli retti?”.

“Certo”.

“È vero il contrario? Che se un quadrilatero ha quattro angoli retti allora è un quadrato?”.

“Eh, no, un rettangolo ha quattro angoli retti ma non è un quadrato”.

“Non è detto che lo sia, volendo essere precisi”.

“Può esserlo?”.

“Beh, sì. Se la definizione di rettangolo è quadrilatero con quattro angoli retti, allora esso potrebbe anche essere un quadrato. Ma non è vero che ogni rettangolo è un quadrato”.

“Va bene, ho capito”.

“Tornando al teorema di Pitagora: è vero che se in un triangolo il quadrato di un lato è equivalente alla somma dei quadrati degli altri due lati, allora quel triangolo è rettangolo”.

“A questo punto non so più quale sia la risposta. Direi di sì, ma non so perché”.

“La risposta è sì, anche se ormai il motivo per cui quella risposta è affermativa è sparito dai libri scolastici”.

“Perché?”.

“Non ne ho idea. Pigrizia? Poca voglia di spiegare? Chissà”.

“Ma è una dimostrazione difficile?”.

“No, non direi. Te la mostro, nella versione di Euclide. Cominciamo da un triangolo ABC per il quale vale la relazione AB2 + AC2 = BC2. Eccolo qua”.



“Ok. Quindi non sappiamo se è rettangolo, e vogliamo dimostrarlo”.

“Esatto: vogliamo dimostrare che l'angolo in A è retto”.

“Va bene, cominciamo”.

“Dobbiamo fare una costruzione: costruiamo un segmento DA che forma un angolo retto con CA”.

“Quindi prolunghiamo AB? Ma non sappiamo se l'angolo A è retto oppure no”.

“Esatto, ottimo: non prolunghiamo, ma costruiamo noi un angolo che sia retto. Questo vuol dire che ancora non possiamo sapere se i tre punti D, A e B sono allineati oppure no”.

“Ho capito. Quanto deve essere lungo il segmento DA?”.

“Tanto quanto AB”.

“Perfetto, eccolo qua”.



“Poi congiungiamo D con C e formiamo un triangolo”.

“E, questa volta, sappiamo che è un triangolo rettangolo”.

“Proprio così, ecco la figura completa”.



“Ora che si fa?”.

“Scriviamo un po' di uguaglianze. La prima è questa, sei d'accordo? DA2 = AB2”.

“Eh, beh, sì, se DA è uguale a AB lo saranno anche i loro quadrati”.

“Già. Ora aggiungiamo, a destra e a sinistra dell'uguale, la stessa quantità, cioè AC2”.

“Così? DA2 + AC2 = AB2 + AC2”.

“Esatto. Ora guarda cosa c'è a sinistra dell'uguale”.

“C'è la somma dei quadrati di DA e AC… Ah! Il triangolo DAC è rettangolo, quindi per quello posso applicare il teorema di Pitagora, vero?”.

“Certo: questa dimostrazione si appoggia su quel teorema. Prima dimostri il teorema diretto, poi questo”.

“Ah. Ma si può?”.

“Certo, non stai facendo le cose in modo circolare: prima dimostri il teorema di Pitagora, senza usare questo teorema, poi dimostri questo usando quello che hai appena dimostrato”.

“Ok, mi piace. Quindi siamo arrivati al fatto che a sinistra dell'uguale si può applicare il teorema di Pitagora: lo facciamo?”.

“Sì, e quindi possiamo sostituire, al posto di DA2 + AC2, il quadrato dell'ipotenusa, cioè DC2”.

“A destra dell'uguale, però, non posso farlo, perché non so se il triangolo sia rettangolo oppure no”.

“No, ma non ti serve saperlo: per la parte di destra puoi usare direttamente l'ipotesi. Tu sai già quanto vale quella somma”.

“Ehi, ma è vero, è proprio l'ipotesi! So che AB2 + AC2 è uguale a BC2”.

“Certo, e quindi l'uguaglianza è diventata DC2 = BC2”.

“Ma allora posso dire che DC e BC sono uguali”.

“Proprio così: quindi i due triangoli ABC e ACD hanno i tre lati ordinatamente congruenti”.

“E allora sono triangoli congruenti, no?”.

“Sì, è così, per il cosiddetto terzo criterio di congruenza dei triangoli. A questo punto, abbiamo concluso: se i due angoli DAC e CAB sono congruenti…”.

“…dato che DAC è retto, dovrà esserlo anche CAB!”.

“Ed ecco fatto”.

“Avevi ragione, non era difficile. Dicevi che sui libri di scuola non si trova più questa dimostrazione, ma perché? Non è difficile, mi sembra un peccato non metterla”.

“Anche a me”.

giovedì 10 maggio 2018

Come fanno i computer a calcolare le radici quadrate? — Parte 2: l'algoritmo Karatsuba

“La volta scorsa abbiamo visto come si calcola a mano una radice quadrata”.

“Ricordo. Una radice quadrata con resto, se ben ricordo”.

“Esatto. Per essere precisi: dato un numero m, diciamo che s è la sua radice quadrata e r è il resto se valgono queste relazioni:”.

s2m = s2 + r < (s + 1)2

“E abbiamo detto che i computer seguono un algoritmo simile”.

“Ancora esatto: adattano questo algoritmo alle loro caratteristiche, sfruttano la base 2 invece della base 10, e sfruttano soprattutto il fatto di essere molto bravi a compiere operazioni ripetitive. In sostanza imparano a fare i calcoli con un caso relativamente facile, e se poi i numeri diventano troppo grossi allora li spezzettano in modo da ridurre il caso difficile a tanti casi facili”.

“Bello”.

“Posso farti vedere un programmino che simula quello che viene fatto effettivamente dall'algoritmo”.

“Perché dici simula?”.

“Perché le vere implementazioni sono al solito complicate da casi particolari relativi a quanto sono lunghi i gruppi di bit che ogni macchina riesce a gestire velocemente, e quindi i veri sorgenti sono pieni di controlli del tipo se lavori con 32 bit allora fai questo, se invece lavori con 64 allora fai quest'altro, e cose così”.

“Roba da informatici”.

“Già. E poi, per semplicità, il mio programmino funziona in base 10”.

“Ok”.

“L'algoritmo si chiama SqrtRem”.

“Bel nome, molto evocativo”.

“Non l'ho scelto io: è il nome che gli autori della libreria GMP hanno scelto; la prima parte, Sqrt, significa Square Root, cioè radice quadrata, e la seconda, Rem, sta per remainder, cioè resto”.

“Va bene, non critico più i nomi scelti dagli informatici”.

“Meglio così. Ora, abbiamo detto che l'algoritmo riconduce i casi difficili a casi più facili. Si dice che opera ricorsivamente, cioè chiama più volte sé stesso fino a che non è arrivato a un caso gestibile”.

“E qual è questo caso gestibile?”.

“Il caso è gestibile quando il numero di cui dobbiamo calcolare la radice quadrata è composto da al massimo tre cifre”.

“E perché è gestibile?”.

“Perché i quadrati composti da al più tre cifre non sono così tanti, e ce li possiamo calcolare a mano”.

“Cosa?”.

“Sì, hai capito bene: quando arriviamo a un numero composto da tre cifre o meno, diciamo al computer quale risultato deve dare”.

“Questo è barare, però”.

“Anche imparare le tabelline a memoria lo è, allora”.

“Uhm”.

“Rassegnati: inseriamo nel computer la lista di alcuni quadrati e, per loro, non ci poniamo più il problema di estrarre la radice quadrata”.

“Va bene, mi rassegno”.

“Ottimo. Ecco dunque una funzione, che si chiama BaseSqrtRem, che calcola le radici dei numeri composti da al massimo 3 cifre”.




“Oh, molto bene, cerco di capire cosa fa. Vedo intanto un controllo su m: deve effettivamente essere un numero di tre cifre”.

“Esatto”.

“Poi vedo che costruisci un dizionario in cui a ogni quadrato perfetto associ la sua radice”.

“Sì, come vedi non sono tanti. E anche nella realtà si fa così, eh. L'algoritmo memorizza una tabella di valori a cui fare riferimento: serve per terminare il ciclo ricorsivo”.

“Ok, mi fido, immagino che dopo si vedrà questo ciclo. Poi, vediamo che succede: fai un ciclo in cui esplori il dizionario ordinato. Perché lo ordini?”.

“Perché non è detto che i valori dentro a un dizionario python siano ordinati, e a noi invece interessa che lo siano. Per esempio, se vuoi calcolare la radice quadrata di 420 devi cominciare a guardare i valori che sono nella lista dei quadrati, e continui a scorrere la lista finché non trovi un numero che supera 420. Nel frattempo, memorizza l'ultimo valore che hai trovato”.

“In questo caso troverei 441”.

“Sì: il ciclo si blocca non appena trova 441, e in quel momento all'interno della variabile k è memorizzato il valore trovato al passo precedente, cioè 400”.

“Sì, vedo: il ciclo si blocca prima della assegnazione k = i”.

“Perfetto. Ora vedi che si esce dal ciclo e che si memorizza in s il valore di d[400], cioè 20”.

“Questa è la radice di 420, vero?”.

“Sì. Poi viene calcolato il resto sottraendo da 420 il quadrato di s, cioè 400. Risultato: 20”.

“Quindi la radice quadrata di 420 è 20 col resto di 20”.

“Perfetto, e questo è il caso base: quando arriviamo qui sappiamo fare il calcolo”.

“Perché nella lista c'è anche 1024?”.

“Perché se vuoi calcolare la radice di un numero maggiore o uguale a 961 il ciclo deve arrivare a considerare 1024, per poi bloccarsi”.

“Ok, chiaro. E adesso?”.

“Adesso arriva la parte seria: la funzione SqrtRem. L'idea è questa: se ho un numero composto da 4 cifre o più, lo prendo e divido le cifre in quattro gruppetti”.

“Anche nel calcolo a mano facevamo così? Non mi pare”.

“No, facevamo una cosa analoga ma non identica: dividevamo il numero a gruppetti composti da 2 cifre: tenevamo fisso il numero di cifre di cui era composto ogni gruppetto, e in questo modo avevamo un numero di gruppetti variabile”.

“Qui invece teniamo fisso il numero di gruppetti, mentre facciamo variare il numero di cifre che li compongono?”.

“Proprio così. Ti faccio vedere la parte di funzione che si occupa di questa suddivisione:”.



“Ah, ma usi le stringhe?”.

“Sì, ti ho detto che questo programma è un esempio, che in realtà non si fa così, no?”.

“Sì, ma non capisco le stringhe”.

“Immagina di fare i conti a mano: quando dividi un numero in 4 gruppi, lo fai contando le cifre. Tu, operatore manuale, usi le stringhe in questa fase, non ragioni sui valori numerici. Il programma ti copia”.

“Ah, va bene”.

“Quindi, arrivati alla fine di questa parte, nelle quattro variabili a0, a1, a2 e a3 sono contenuti i quattro gruppetti di cifre”.

“E che succede se la divisione non è esatta?”.

“Le cifre in più vanno a finire in a0. Mi spiego meglio: se il numero di cui vuoi calcolare la radice è 12345, i gruppi vengono composti in questo modo: 12|3|4|5. Se invece fosse 123456, i gruppi diventerebbero 123|4|5|6”.

“Ah, ok. Diventano tutti di 2 cifre quando si arriva a 12345678, suppongo”.

“Proprio così. Ora si parte con l'algoritmo vero e proprio, usando la filosofia divide and conquer”.

“Cioè?”.

“Cioè calcoliamo la radice quadrata del numero composto solo dai primi due gruppetti, che sono a0 e a1”.

“E come facciamo?”.

“Richiamiamo la funzione con quel numero”.

“Roba da matti. E funziona?”.

“Certo che funziona: ogni volta accorci il numero di cui vuoi calcolare la radice, e a un certo punto arrivi a un numero composto da al massimo 3 cifre. E di quello sai calcolare la radice. Il difficile è poi tornare indietro e ricomporre, da tutti i pezzettini, la radice del numero iniziale”.

“Ah, ecco”.

“Ecco quindi il nucleo della funzione che calcola la radice quadrata”.



“Oh, qua non si capisce niente”.

“Allora, la prima riga è la chiamata ricorsiva: vedi che viene chiamata nuovamente SqrtRem passandole, però, il numero a3*10^l+a2, cioè il numero composto dai primi due gruppetti di cifre”.

“Perché elevi alla l?”.

“Perché l è il numero di cifre di cui è composto ogni gruppetto: moltiplicare per 10l significa spostare di l cifre a sinistra il numero moltiplicato”.

“Ah, ok. Immagino che nella realtà al posto di 10 ci sia un 2, vero?”.

“Esatto”.

“Quindi dentro a s1 e r1 ci finiranno la radice quadrata e il resto di quel numero”.

“Sì, e ora bisogna mettere a posto i conti, perché così facendo non hai considerato le cifre contenute in a1 e a0”.

“E come si fa?”.

“Forse è meglio seguire i calcoli con un esempio: diciamo che vogliamo calcolare la radice di 12345”.

“Oh, bene, un esempio con dei numeri veri! Allora, divido in quattro gruppetti, che dovrebbero essere questi: 12|3|4|5”.

“Giusto. Ora prendiamo soltanto i primi due, cioè il numero 123, e riapplichiamo di nuovo l'algoritmo”.

“Questa volta però il numero è di 3 cifre, quindi dovremmo trovare il risultato direttamente, vero?”.

“Certo: prova a farlo a mente. Qual è il più grande quadrato minore di 123?”.

“121, il quadrato di 11”.

“Bene, quindi 123 = 112 + 2”.

“Ah, quindi ho trovato s1 = 11 e r1 = 2, vero?”.

“Sì, questo è il primo passo: quello che hai fatto è scrivere 12300 = 12100 + 200. Ma tu vuoi trovare un'espressione simile per 12345”.

“Ho completamente trascurato le cifre 4 e 5”.

“Già. Ora procediamo come si farebbe a mano: se ricordi, c'era un calcolo apparentemente magico che diceva di raddoppiare il risultato parziale trovato fino a questo momento per la radice, per poi eseguire altri calcoli che avevano lo scopo di trovare la cifra successiva”.

“Mi ricordo, avevi spiegato anche il perché”.

“Ottimo. Partiamo sempre dalla stessa idea: una prima stima della radice che stiamo calcolando è 110, ma è soggetta a errore perché siamo partiti da 12300. Magari il numero che vogliamo non è 110 ma 111, o 112”.

“Allora modifichiamo un po' quel 110”.

“Esatto: immagina che sia (110 + q). Se lo elevi al quadrato ottieni 12100 + 220q + q2”.

“E quindi 220q + q2 dovrebbe essere uguale a 12345”.

“Ma tu hai già scritto 12345 come 12100 + 200 + un errore, che è 45. Ora si procede in modo un po' diverso rispetto a quello che si farebbe a mano: si corregge 200 non aggiungendo 45 ma solo 40. Cioè, in realtà non si fa il confronto tra 245 e 220q ma tra 24 e 22q, buttando via l'ultima cifra”.

“Perché? Non considero nemmeno q2? Nel calcolo a mano lo facevamo”.

“Hai ragione, qua non si fa, e non ho trovato una spiegazione sul motivo. Alla fine l'errore che si commette trascurando quel termine viene corretto, ma non so perché si preferisca fare così. Sospetto per la velocità di esecuzione: se confrontiamo 240 con 220q vediamo che ci basta fare una divisione per trovare q, senza procedere per tentativi. Se si commette un errore, alla fine lo si corregge”.

“Ah, ok, quindi avremmo che q = 24/22, cioè 1”.

“Sì, con resto di 2. Questi due valori vengono memorizzati in q e u”.

“Ah, ecco il motivo di quelle due righe di codice. E poi che succede?”.

“Le due righe successive aggiungono la cifra q al risultato, e ricalcolano il resto”.

“E quel controllo sul resto negativo?”.

“Eh, è la correzione di cui ti parlavo prima: i calcoli fatti per q potrebbero, in alcuni casi, dare un resto negativo. Se così fosse, allora diminuiamo s di 1 e aggiorniamo il resto”.

“Non capisco bene l'aggiornamento del resto”.

“Supponi di aver sbagliato per eccesso il calcolo di una radice, cioè come se tu scrivessi A = B2r”.

“Ah, ok, devo sottrarre il resto invece di aggiungerlo”.

“Esatto. Ora, che succede se al posto di B metti B − 1? Come devi correggere l'uguaglianza?”.

“Provo a fare i calcoli: se sviluppo il quadrato del binomio ottengo (B − 1)2 = B2 − 2B + 1”.

“E quindi A = (B − 1)2 + 2B − 1 + r”.

“Ah, ecco, vedo: al vecchio resto devo aggiungere 2B e togliere 1, ho capito”.

“Perfetto. Ecco qua la funzione completa che calcola la radice quadrata di un numero col resto”.

“Ottimo. Ancora una vittoria per la carta e la penna”.

lunedì 2 aprile 2018

Come fanno i computer a calcolare le radici quadrate? — Parte 1: calcolo manuale

“La risposta breve è: le calcolano come faremmo noi per calcolarle a mano”.

“Ah, certo, tutti calcolano radici a mano”.

“La mia professoressa delle medie mi insegnò a farlo, sai?”.

“Anche la mia, ma se devo dire che mi ricordo come si fa, direi una bugia”.

“Sì, il procedimento non è per niente intuitivo, soprattutto in una parte. Ma partiamo dall'inizio: la descrizione completa dell'algoritmo l'ha scritta .mau. un po' di tempo fa, ed è spiegata qua”.

“Oh, bene, bene, ora me la guardo. No, decisamente non mi ricordavo tutto. Anzi, posso dire che mi ricordavo solo che si dovevano raggruppare le cifre del numero a due a due”.

“Sì, quello è il punto di partenza. Vogliamo provare a calcolare una radice quadrata a mano, in modo da sottolineare i punti importanti del procedimento?”.

“Ok, andiamo”.

“Allora, proviamo a calcolare la radice di 7654. Scriviamo il numero raggruppando le cifre a due a due”.

“E quindi formiamo due gruppetti”.

“Sì, e scriviamo in questo modo il tutto:”.

76.54 | 
      |-------
      |

“Ok, ora che succede?”.

“Ora si prendono le prime due cifre e si dà per scontato che la radice del numero composto solo da quelle due cifre la sappiamo calcolare”.

“Io non so quanto valga esattamente la radice di 76, però”.

“Sei in buona compagnia: nessuno lo sa. Ma non ci serve una precisione infinita, perché lavoriamo solo sui numeri interi: per calcolare la radice di 76 ti serve soltanto conoscere le tabelline”.

“Ah, allora posso dire che 8 è troppo poco e 9 è troppo”.

“Approssimiamo per difetto”.

“Allora dico che la radice di 76 è 8”.

“Benissimo, il primo passo è fatto, scriviamo 8 come prima cifra”.

76.54 | 8
      |-------
      |

“Fin qua è stato facile”.

“Ora correggiamo l'errore: calcoliamo il vero quadrato di 8…”.

“Che è 64”.

“Lo scriviamo sotto al 76, e facciamo la differenza, in modo da trovare il resto”.

76.54 | 8
64    |-------
--    |
12    |


“Bene. Adesso? Non ricordo più come si va avanti”.

“Adesso c'è la parte magica del procedimento, ma prima di raccontarla vediamo quello che abbiamo fatto finora. In sostanza abbiamo capito che 76 = 82 + 12”.

“D'accordo”.

“Ma 76 è stato estratto dal numero 7654 prendendo le prime due cifre, e quindi quello che abbiamo fatto in realtà è stato capire che 7600 = 82 × 102 + 1200”.

“Va bene, hai moltiplicato tutto per cento”.

“Sì, in questo modo abbiamo calcolato la radice di 7600, con il suo resto. Però volevamo calcolare la radice di 7654, che è un po' più grande”.

“Ci basterà correggere il resto: 7654 = 82 × 102 + 1254”.

“Ah, certo, ma così il resto diventa un po' troppo grande: non possiamo fare di meglio?”.

“Non saprei. Cioè, immagino di sì, ma non so mica come”.

“Quell'80 è un po' troppo basso, se lo aumentiamo un pochino magari riusciamo a diminuire il resto”.

“Vero, se prendo ad esempio 81 mi viene che 7654 = 812 + 1093”.

“Va già meglio, ma hai scelto 81 a caso. Magari con 82 può andare meglio, o forse con 83, o chissà”.

“E come faccio?”.

“Prova a fare una stima: invece di usare 80, tu vuoi usare 80 + t”.

“E quanto vale t?”.

“Ancora non lo sai: è quello che vuoi stimare. Prova a scrivere 7654 come quadrato di 80 + t. Anzi, per maggiore generalità scrivi 8 × 10 + t”.

“Va bene: 7654 = (8 × 10 + t)2. E adesso?”.

“Adesso svolgi il quadrato di binomio, lasciando indicati tutti i calcoli”.

“Oh, vediamo: quadrato del primo termine, doppio prodotto, quadrato del secondo… Mi viene questa roba:”.

7654 = 802 + 2 × 8 × 10 × t + t2.

“Ottimo. 802 fa 6400, è un numero che avevi già calcolato nel primo passo dell'algoritmo del calcolo della radice quadrata. La parte interessante è quella che segue: 2 × 8 × 10 × t + t2”.

“Che deve dare il famoso 1254”.

“Proprio così. Scriviamolo per bene:”.

2 × 8 × 10 × t + t2 = 1254.

“Ok, e adesso?”.

“Raccogliendo a fattor comune t si ottiene”.

(2 × 8 × 10 + t) × t = 1254

“Bene, e questo mi aiuta a trovare t?”.

“Questo spiega il passaggio magico dell'algoritmo della radice quadrata. Ricordi che avevi trovato la prima cifra, 8?”.

“Sì, e l'avevo scritta in alto”.

“Bene. Adesso il procedimento dice: abbassa altre due cifre di 7654, e poi raddoppia le cifre che hai trovato provvisoriamente per la radice quadrata, scrivile sotto, in questo modo…”.

76.54 | 8
64    |-------
----- | 16
12.54 |


“E poi?”.

“E poi trasforma 16 in decine, e trova quella cifra t delle unità da aggiungere a 16 in modo da trovare un numero 16t tale che 16t × t sia il più vicino possibile a 1254, senza però superarlo”.

“Ma quando scrivi 16t non intendi 16 × t, vero?”.

“No, è per questo che ho sempre esplicitato il simbolo di moltiplicazione: in questo caso con 16t intendo un numero di tre cifre avente 1 come cifra delle centinaia, 6 come cifra delle decine, e t come cifra delle unità”.

“E come si fa a trovare quel numero?”.

“Lo spiega sempre .mau.: in sostanza si va per tentativi, facendo una stima grossolana per eccesso e poi scendendo. Avevamo trovato un resto parziale di 12, dopo aver scritto il primo 8”.

“Vero”.

“Ora, 12 sono diventate centinaia, e la cifra delle decine è diventata 5”.

“Sì, poi 4 è quella delle unità, in modo da ottenere 1254”.

“Tieni solo le prime 3, cioè 125”.

“Ok”.

“Adesso calcola 125 / 16”.

“Viene 7.8 e rotti”.

“Parti quindi da 8, e fai 168 × 8, scrivendolo nello spazio vuoto sotto a 8”.

“Così?”.

76.54 | 8
64    |---------------
----- | 168 × 8 = 1344
12.54 |


“Sì: come vedi 1344 è un numero maggiore di 1254”.

“Allora?”.

“Allora la stima t = 8 era troppo alta, abbassala di uno e ripeti il procedimento”.

76.54 | 8
64    |---------------
----- | 168 × 8 = 1344
12.54 | 167 × 7 = 1169


“Questo va bene, ora puoi scrivere 1169 sotto a 1254 e calcolare il resto giusto. E non dimenticare di aggiungere la cifra 7 al risultato della radice, in alto, di fianco all'8”.

“Ecco:”.

76.54 | 87
64    |---------------
----- | 168 × 8 = 1344
12.54 | 167 × 7 = 1169
11.69 |
----- |
   83 |

“Perfetto, fine del procedimento. La radice di 7654 è 87 con resto di 83”.

“Fammi capire meglio questa cosa del resto, che non l'avevo mai sentito associato alle radici quadrate”.

“Quello che abbiamo fatto è questo: dato m, numero intero positivo, lo abbiamo scritto così”.

m = s2 + r

“Ah, dove s è la radice quadrata approssimata per difetto”.

“E r è il resto, esatto. Nel nostro caso 7654 = 872 + 83”.

“Ho capito”.

“Il procedimento per fare il calcolo a mano è quello di fare i conti a pezzi, dando per scontato che riusciamo a calcolare a mente le radici dei numeri di due cifre”.

“Ok”.

“La cosa strana è che per poter andare avanti e aggiungere una cifra occorre inserire una strana moltiplicazione per 2, che non si sa bene da dove salti fuori”.

“Quando abbiamo preso l'8 appena scritto e lo abbiamo fatto diventare 16?”.

“Proprio così. La spiegazione di quella parte è che quella moltiplicazione per 2 corrisponde al famoso doppio prodotto che salta fuori nello sviluppo del quadrato del binomio”.

“Che roba”.

“E quindi la prossima cifra l'abbiamo cercata intorno all'approssimazione 125 diviso per il doppio prodotto, cioè 125 / 16”.

“Avremmo dovuto fare 1254 / 167”.

“Certo, ma quel 7 non lo conoscevamo ancora…”.

“Ah, già, è vero! E quindi abbiamo stimato 1254 / 16t facendo 125 / 16”.

“Sì, e poi abbiamo aggiustato il tiro”.

“E dici che i computer fanno la stessa cosa?”.

“Non so se tutti i computer facciano così, ma questo è l'algoritmo usato dalla libreria GMP: GNU multiple precision arithmetic library”.

“Dalla descrizione presente nell'introduzione, sembra il meglio che possiamo avere per fare calcoli”.

“Pare proprio di sì: precisione multipla, massima velocità. L'algoritmo usato dalla libreria è in realtà una generalizzazione di questo, ma si basa su questi identici concetti: prendo un numero arbitrariamente grande e lo spezzetto fino a che non so fare i calcoli”.

“A gruppi di 2 cifre?”.

“Non esattamente, ma lo vediamo in dettaglio la prossima volta. Per ora accontentiamoci di definire bene quello che vogliamo fare”.

“La radice quadrata, no?”.

“Certo, ma come definiamo per bene il resto? Quanto può essere grande al massimo?”.

“Ehm”.

“Vedi che occorre, prima di tutto, capire quello che vogliamo. Allora, dato un numero m, diciamo che s è la sua radice quadrata e r è il resto se valgono queste relazioni:”.

s2m = s2 + r < (s + 1)2

“Ok, credo di aver capito, il resto non deve essere così grande da farmi arrivare al quadrato successivo”.

“Esatto”.

martedì 13 marzo 2018

Insomma, pi greco

“Eccoci dunque al punto finale, la quadratura del cerchio”.

“Oh, bene”.

“Facciamo un riassunto di tutto quello che abbiamo detto finora”.

“Ottimo”.

“I numeri reali si dividono in due categorie: i numeri razionali, cioè le frazioni, e i numeri irrazionali”.

“Cioè tutti gli altri”.

“Esatto. Ora, anche gli irrazionali sono divisibili in due categorie: i numeri algebrici (di cui fanno parte anche i razionali) e i numeri trascendenti”.

“I numeri algebrici sono quelli che possono essere soluzioni di equazioni polinomiali, vero?”.

“Equazioni polinomiali a coefficienti interi, altrimenti tutti i numeri potrebbero essere soluzioni dell'equazione x = a, e fine della storia”.

“Giusto”.

“Invece i trascendenti non possono essere soluzioni di equazioni polinomiali a coefficienti interi”.

“E fin qua ci siamo”.

“Alcuni numeri algebrici, poi, sono costruibili”.

“Il che significa che sono costruibili con riga e compasso, vero?”.

“Sì. Con riga e compasso si possono costruire numeri che, a partire dall'unità, possono essere ottenuti con un numero finito di somme, sottrazioni, moltiplicazioni, divisioni, e estrazioni di radice quadrata”.

“E ora c'è pi greco”.

“Già. Il problema della quadratura del cerchio si traduce in questa domanda: usando solo riga e compasso è possibile costruire un quadrato avente la stessa area di un cerchio dato? Domanda che, in linguaggio aritmetico, diventa: pi greco è un numero costruibile?”.

“E la risposta è no”.

“La risposta è: pi greco è un numero trascendente, e quindi se non appartiene all'insieme dei numeri algebrici non può appartenere nemmeno all'insieme dei numeri costruibili, che è un sottoinsieme proprio degli algebrici. Ma la dimostrazione di questa affermazione è lunga e difficile”.

“Lo sospettavo”.

“Ricordi quando abbiamo dimostrato l'esistenza di un numero trascendente?”.

“Sì, abbiamo usato una proprietà dei trascendenti, se ben ricordo, che riguardava le approssimazioni che possiamo fare con le frazioni”.

“Esatto: il numero che abbiamo trovato può essere approssimato con frazioni del tipo m/n con precisione minore di 1/nk, per qualunque k”.

“Anche pi greco, quindi?”.

“Purtroppo no, per pi greco questo metodo non funziona. Bisogna generalizzarlo tanto”.

“Questo tanto mi inquieta”.

“Cominciamo con notare che π ed e, il numero di Nepero, sono strettamente legati”.

“Non sarà la solita storia della formula più bella della matematica?”.

“Eh, sì. Sappiamo che eiπ = −1”.

“Ok, e quindi?”.

“E quindi se riusciamo a dimostrare che ea, con a un qualunque numero algebrico, non può essere uguale a −1, siamo a posto”.

“Fammi capire”.

“Dato che sappiamo che eiπ è effettivamente uguale a −1, se riusciamo a dimostrare quel teorema possiamo concludere che iπ non è algebrico”.

“Quindi iπ è trascendente, ma come facciamo a togliere i?”.

“Beh, è facile, i è algebrico, perché è soluzione dell'equazione a coefficienti interi x+ 1=0, e quindi se il prodotto iπ è trascendente, significa che π deve esserlo”.

“Ah, ecco! Ottimo, quindi in effetti abbiamo spostato il problema dallo studio di pi greco allo studio della funzione esponenziale, vero?”.

“Proprio così. Ora, facciamo un passo più semplice di quello che vorremmo, giusto per capire come funzionano le cose: dimostriamo che e è irrazionale. Ci ricordiamo che per la funzione esponenziale esiste una serie di potenze che converge a essa”.

“Ed ecco che entra in campo l'analisi…”.

“Sì, una dimostrazione di teoria dei numeri fatta con l'analisi: bella roba. Ricordi quale serie di potenze converge all'esponenziale?”.

“Era una serie facile, mi pare 1 + x + x2/2! + x3/3! + …”.

“Esatto. Ora, supponiamo per assurdo che e sia razionale, cioè una frazione. Questo vuol dire che se moltiplico questa fantomatica frazione per un numero sufficientemente grande, ottengo un numero intero”.

“Certamente”.

“Allora calcolo n!e1, con n sufficientemente grande da fare in modo che il denominatore se ne vada. E uso proprio lo sviluppo in serie di ex”.

“Va bene, aspetta che provo a capire. Se prendo la serie dell'esponenziale vedo che si semplificano tanti denominatori”.

“Quanti?”.

“Beh, sicuramente quelli fino a xn/n!”.

“Giusto; e ricorda che abbiamo posto x = 1. Che succede dopo quel termine?”.

“Eh, mi sa che rimane una frazione: 1/(+ 1). Anzi, non solo una, poi c'è 1/(+ 1)(+ 2), e così via”.

“Esatto. E quindi n!e non può essere un intero”.

“E quindi e non può essere razionale! Molto bello”.

“E ora un altro passo di analisi: quello che abbiamo dimostrato non è che esiste soltanto un caso in cui, moltiplicando la frazione che dovrebbe essere uguale a e, si ottiene un assurdo. Di casi come quello che ne sono infiniti, basta prendere il moltiplicatore sempre più grande”.

“D'accordo”.

“Ogni volta che moltiplichiamo l'espansione in serie di e otteniamo una prima parte intera, e poi una coda composta da tante frazioni aventi il numeratore uguale a 1, e il denominatore che diventa sempre più grande.”.

“Immagino che il passo di analisi sia fare diventare infinitamente grande quel denominatore”.

“Immagini bene. Quello che abbiamo fatto, detto in altri termini, è questo: abbiamo trovato due successioni fn e gn tali che la differenza fnegn diventa sempre più piccola man mano che n diventa sempre più grande. Nel nostro caso, giusto per essere chiari, fn è uguale a n!, mentre gn è uguale a 1/(+ 1) + 1/(+ 1)(n + 2) + …”.

“Ok, ho capito”.

“Quindi questa è una tecnica per dimostrare che un numero è irrazionale: trovo due successioni con quelle proprietà, e sono a posto”.

“Bene”.

“Ora un altro passo: passiamo dalla dimostrazione di irrazionalità di e1 alla dimostrazione di irrazionalità di ea, con a razionale diverso da zero”.

“Procediamo sempre allo stesso modo, con quelle due successioni?”.

“Sì, ma ora dobbiamo farlo per il caso generale, dove l'esponente di e è variabile. E l'aiuto ci viene proprio dalle approssimazioni di Padé”.

“Oh”.

“Sì, dal fatto che ex può essere approssimata molto bene dal rapporto f(x)/g(x), eliminando il denominatore possiamo passare all'espressione g(x)ef(x), che diventa sempre più piccola all'aumentare del numero di termini con cui faccio l'approssimazione”.

“Mamma mia”.

“Uno studio super tecnico di come sono fatti i polinomi f(x) e g(x) porta alla dimostrazione dell'ultima affermazione”.

“Super tecnico?”.

“Sì, vengono espressi come funzioni integrali di altre funzioni, in modo da poter costruire delle disuguaglianze comode e utili”.

“Certo, comode e utili…”.

“L'analisi è la matematica delle disuguaglianze: tutto è stima”.

“Andiamo bene”.

“Ti faccio solo un esempio, giusto per darti un'idea del livello: l'approssimazione di Padé di ordine 8 per la funzione esponenziale è questa: ”.

(x8 − 72x7 + 2520x6 − 55440x5 + 831600x4 − 8648640x3 + 60540480x2 − 259459200x + 518918400) / (x8 + 72x7 + 2520x6 + 55440x5 + 831600x4 + 8648640x3 + 60540480x2 + 259459200x + 518918400)

“Argh”.

“Che corrisponde a questa bella formuletta:”.



“Orrore”.

“Dove f(x) è il denominatore della frazione enorme che ho scritto prima, e g(x) il numeratore”.

“Che roba. Ehi, però c'è un'esponenziale con esponente −x, come mai?”.

“L'abbiamo fatto solo per comodità, invece di avere l'esponenziale con esponente x che moltiplica g, abbiamo diviso tutto per ex per ottenere quell'integrale, che ci piace molto perché ha un fattoriale al denominatore. E quando nei denominatori ci sono di mezzo i fattoriali sappiamo che tutto diventa piccolo molto in fretta”.

“Già, il fattoriale diventa enorme molto in fretta”.

“E allora, se immaginiamo che π possa essere una frazione N/D, moltiplicandolo per D dovremmo ottenere un intero, e quindi anche l'espressione f(iDπ) − eiDπg(iDπ) sarà un intero, perché la formula più bella della matematica ci dice che eiπ è uguale a 1, mentre f(x) e g(x) sono polinomi”.

“Siii, e quindi?”.

“E quindi avremmo un intero positivo minore di un numero piccolo quanto vogliamo. Minore di 1, ad esempio”.

“Ma non esistono interi positivi minori di 1, no?”.

“Appunto: è assurdo. Quindi π non può essere una frazione”.

“Ah! Ecco la dimostrazione!”.

“Noi però vogliamo dimostrare che π è trascendente, non ci basta che sia irrazionale”.

“Oh, no, è vero! Per un attimo avevo avuto l'illusione di aver finito”.

“Eh, no. Questo era solo riscaldamento. La strada per dimostrare che π è trascendente segue, però, quella che abbiamo percorso adesso, con ulteriori complicazioni”.

“Capirai”.

“Per prima cosa, si prendono in considerazioni delle approssimazioni di Padé simultanee”.

“Ossignore”.

“Significa semplicemente che approssimano bene non solo in un punto, ma in tanti punti. In quell'integrale che ho scritto sopra, invece di avere una sola parentesi del tipo (x) ce ne saranno tante diverse”.

“Mah”.

“Avremo quindi polinomi f e g che non dipendono solo da una x, ma da tante x diverse”.

“Cioè avremo x1, x2, e così via?”.

“Esatto”.

“Ma tutto questo perché?”.

“Eh, prima non ne abbiamo avuto bisogno perché abbiamo supposto che π fosse una frazione, e ci è bastata una approssimazione di Padé normale”.

Normale”.

“Ora, invece, se vogliamo dimostrare che π è trascendente, l'assurdo dovrebbe partire dalla supposizione che π sia algebrico. E non tutti i numeri algebrici sono frazioni”.

“E allora come si fa?”.

“Se quei numeri algebrici li moltiplichiamo per opportuni altri numeri algebrici, però, diventano frazioni”.

“Uh, ma come? Fammi capire”.

“Prendi per esempio la radice di 2”.

“Ok”.

“Se la moltiplichi per radice di 2, ottieni 2, che è addirittura naturale”.

“Vabbé, così è facile”.

“Prendi allora l'espressione (3 − √2)”.

“Ok”.

“Se la moltiplichi per (3 + √2) ottieni 9 − 2 = 7”.

“Ah, vero. Funziona sempre questa cosa?”.

“Sì, per ogni numero algebrico esistono sempre altri numeri algebrici che, moltiplicati per il primo, mi danno un numero razionale. È legato al fatto che i numeri algebrici sono sempre soluzioni di polinomi con coefficienti interi: quindi dato il numero iniziale, prendo il polinomio di grado minimo di cui questo è soluzione. Questo avrà un certo numero di altre radici, e se le moltiplico tutte ottengo il termine noto di quel polinomio, che è un numero intero”.

“Forse ho capito, posso provare un esempio?”.

“Certo!”.

“Se prendo la radice cubica di 3, so che questa è soluzione di x3 − 3=0”.

“Giusto”.

“Quindi se prendo le tre soluzioni dell'equazione x3 − 3 = 0, e le moltiplico tra loro… cosa ottengo?”.

“Pensaci bene: se le tre soluzioni sono x1, x2 e x3, l'equazione x− 3 = 0 può anche essere scritta come (x1)(x2)(x3) = 0”.

“Vero”.

“E allora se svolgi tutto dove va a finire il prodotto x1x2x3?”.

“Ah! Nel termine noto, che è 3! Molto bene, funziona davvero”.

“E funziona anche con la somma: quanto fa x1 + x2 + x3?”.

“Vediamo, devo sempre prendere in considerazione quel prodotto di tre parentesi?”.

“Sì: dove salta fuori la somma delle tre soluzioni?”.

“Mi pare che si possa trovare nel coefficiente del termine di secondo grado: quando faccio tutti i possibili prodotti, posso raccogliere x2 e ottenere, come coefficiente, la somma x1 + x2 + x3”.

“Per essere più precisi, la somma cambiata di segno, ma non è molto importante. Il fatto importante è che la somma sia il coefficiente del termine di secondo grado, quindi ancora una volta un numero intero”.

“Ah, bene”.

“Dato che questi numeri che servono per avere somma e prodotto interi sono molto importanti in questo campo, i Veri Matematici hanno creato una definizione apposta per loro: si chiamano coniugati della radice del polinomio che abbiamo preso in considerazione”.

“Ok”.

“Ecco allora come funziona il giochino delle approssimazioni di Padé: vogliamo dimostrare che ea non può essere uguale a −1, qualunque sia a, algebrico. Si prendono allora tutti i coniugati di a, e si considerano i prodotti aventi come fattori (ea+ 1), in cui i termini ai sono, appunti, i coniugati”.

“Le cose si complicano”.

“Già. Poi si considerano le approssimazioni di Padé simultanee, cioè quelle approssimazioni che approssimano bene tutti i termini del tipo eb che saltano fuori svolgendo i prodotti appena fatti”.

“Oh, mamma”.

“Ancora una volta salta fuori un integrale con un bel fattoriale al denominatore”.

“E i fattoriali ci piacciono”.

“Esatto. Così risulta un numero naturale che può essere minore di 1”.

“E questo è impossibile”.

“Purché non sia zero…”.

“Santo cielo! Ma non c'è mai fine!”.

“La dimostrazione del fatto che quel numero che salta fuori non è zero ha bisogno delle congruenze, ma non mi azzardo a scrivere tutti i passaggi: ti dico solo che si riesce a vedere che comunque noi scegliamo un numero primo p quel numero è congruente a una certa espressione positiva modulo p. Se quindi prendiamo un numero primo p abbastanza grande, quel numero è positivo”.

“E dato che i numeri primi sono infiniti…”.

“Un numero primo abbastanza grande lo troviamo sempre, e qui la dimostrazione finisce davvero”.

“Gulp. Comincio a capire perché è una dimostrazione del 1882”.

“Eh, sì. Sviluppi in serie, formula di Eulero, integrali, approssimazioni, infinità dei numeri primi: contiene di tutto.”.

“Che fatica! Non oso pensare alla fatica che hanno fatto quelli che sono arrivati alla dimostrazione per primi”.

“Eh, erano bravi”.

lunedì 12 febbraio 2018

Padé, che approssimava bene

“Allora non ce la facciamo a capire se pi greco è trascendente o no? Con tutta la teoria che abbiamo visto…”.

“Eh, non basta”.

“Ma, scusa, avevi detto che se un numero è approssimabile da numeri razionali con errore più piccolo di qualunque potenza del denominatore, allora è trascendente”.

“Esatto”.

“Ma quindi?”.

“Non ho detto il viceversa. Non è mica vero che ogni trascendente è approssimabile come si vuole, purtroppo”.

“Ah”.

“Il numero di Liouville è stato costruito apposta per soddisfare quel teorema, ma pi greco è un'altra cosa. Diciamo che è più naturale del numero di Liouville, ammesso che questa affermazione abbia senso”.

“Ci sarebbe da discutere, infatti”.

“Fatto sta che non si può procedere con pi greco come abbiamo fatto con quel numero. Le cose diventano molto, molto più difficili”.

“Ahi, hai detto molto due volte”.

“Già. Invece di usare frazioni che approssimano, si usano polinomi che approssimano. E per fare vedere che pi greco è trascendente, serve l'analisi”.

“Derivate?”.

“Derivate e integrali, condite con il teorema di infinità dei numeri primi e compagnia bella, tra cui anche la formula più bella della matematica”.

“Uh”.

“Provo a darti un'idea di queste frazioni polinomiali che approssimano le funzioni”.

“Proviamo”.

“Hai presente l'idea che sta sotto alla formula di Taylor?”.

“Ehm”.

“Capirai. L'idea è questa: ogni funzione (che soddisfa determinate ipotesi ragionevoli, naturalmente), può essere approssimata bene quanto si vuole da un polinomio. Se vogliamo che l'approssimazione sia buona, il polinomio deve avere grado alto. Più alto è il grado, migliore è l'approssimazione”.

“Va bene, l'idea me la ricordavo”.

“Prendiamo per esempio la funzione y = ex, che ci servirà”.

“Ok”.

“Ecco un po' di polinomi approssimanti:”.

y = 1
y = 1 + x
y = 1 + x + x2/2
y = 1 + x + x2/2 + x3/6
y = 1 + x + x2/2 + x3/6 + x4/24

“Simpatici”.

“Te li metto anche in un disegno, eccoli qua. In rosso c'è la funzione y = ex, in verde le varie approssimazioni”.




“Non mi dirai che sono belle approssimazioni”.

“Capisco la tua obiezione: devi guardare vicino al punto (0,1). La retta orizzontale è la funzione costante uguale a 1, che approssima come può”.

“Una schifezza”.

“Sì. Poi però abbiamo una retta che approssima meglio, la tangente, e poi delle curve. Se osservi bene, vedi che andando verso destra approssimano sempre meglio la curva rossa”.

“Sì, capisco, ma a sinistra fanno pena”.

“E questo è il problema dei polinomi. La funzione esponenziale ha un asintoto orizzontale, ma i polinomi non ce l'hanno. O salgono sempre, o scendono sempre”.

“E quindi come si fa?”.

“Con queste approssimazioni, non facciamo molto. Ma Padé, che era un matematico francese, ha studiato approssimazioni con frazioni algebriche, cioè frazioni in cui sia il numeratore che il denominatore sono polinomi”.

“E queste approssimano meglio?”.

“Beh, con le frazioni puoi anche fare gli asintoti”.

“Ah”.

“Per esempio, la frazione che ha al numeratore 60 + 24x + 3x2 e al denominatore 60 − 36x + 9x2x3 ha questo grafico”.



“Ah, sembra identica, si vede sbordare un po' di rosso solo agli estremi”.

“Visto? Approssima molto meglio del singolo polinomio, anche se anche qua c'è un difetto”.

“Quale?”.

“Ti faccio vedere il grafico da un po' più lontano”.



“Ah, c'è una parte anche sotto!”.

“Già, non si può avere la perfezione, però questo tipo di approssimazione ci basta”.

“Ma cosa c'entra l'esponenziale con pi greco?”.

“C'entra, c'entra, colpa della formula più bella della matematica”.

martedì 9 gennaio 2018

Il numero di Liouville

“Insomma, come si fa a riconoscere se un numero è algebrico o trascendente?”.

“Prima di provare a rispondere, ecco un riassunto di quanto abbiamo detto finora:”.

Se x è un numero irrazionale, esistono infinite frazioni del tipo m/n, ridotte ai minimi termini, che approssimano x con un errore minore di 1/(√(5)×n2), e la radice di 5 è la più grande costante utilizzabile in questo denominatore.

“Ok, mi ricordo, e ricordo anche che se si prova a aumentare la costante √(5) non è più vero che esistono infinite frazioni con quella proprietà”.

“Bene. Se proviamo ad aumentare ulteriormente l'esponente al denominatore, succede che il teorema non è più vero in generale. Cioè: non è vero che per qualsiasi numero algebrico esistono infinite frazioni del tipo m/n che approssimano quel numero con un errore minore di 1/n3. Questa è una proprietà dei numeri algebrici: se consideriamo i numeri trascendenti, non possiamo più affermarla. Esistono numeri trascendenti che la rispettano, e invece altri numeri trascendenti che possono essere approssimati con infinite frazioni con un errore minore di 1/n3, o anche 1/n4, 1/n1000, eccetera”.

“Addirittura”.

“Sì, esiste una categoria di numeri che possono essere approssimati con un errore minore di 1/nk, per qualunque k ti possa venire in mente”.

“Ah”.

“Ti faccio un esempio, ma prima dobbiamo ricordarci cosa sia il fattoriale”.

“Me lo ricordo, il fattoriale di un numero n è il prodotto di tutti i numeri da 1 fino a n”.

“Sì. Puoi scrivere i fattoriali dei primi numeri?”.

“Ah, certo, eccoli: 1! = 1, 2! = 2, 3! = 6, 4! = 24, …”.

“Ok, fermati pure. Allora, costruiamo un numero decimale in cui le cifre siano 0 oppure 1”.

“Bene, come decidiamo quando mettere 0 e quando mettere 1?”.

“Mettiamo quasi sempre 0, mettiamo 1 solo nelle posizioni 1, 2, 6, 24, eccetera”.

“Nelle posizioni identificate dai fattoriali?”.

“Esattamente. Le prime cifre del numero sono queste:”.

0.1100010000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010…

“Capito. Cos'ha di speciale questo numero?”.

“Questo può essere approssimato bene quanto vuoi con frazioni del tipo m/n in cui l'errore è minore di 1/n elevato a qualunque esponente ti possa venire in mente”.

“Oh, quindi è impossibile che sia algebrico, no?”.

“Proprio così, nessun numero algebrico gode di quella proprietà”.

“E come faccio a approssimarlo così bene?”.

“Te lo spiego con un esempio. Scegli un esponente a cui elevare 1/n, non troppo grande altrimenti dobbiamo scrivere un'infinità di zeri”.

“Facciamo 4, allora. Tanto il teorema che mi hai raccontato dice che non posso superare 2, no?”.

“Esatto. Ok, prendiamo 4 allora. Consideriamo quindi le cifre dopo la virgola del nostro numero fino alla quarta cifra 1. Insomma, prendiamo questo numero razionale:”.

0.110001000000000000000001

“Bene”.

“A che frazione è uguale?”.

“Allora, il quarto 1 si trova in posizione 4!, cioè 24, quindi dovrebbe essere questa frazione: 110001000000000000000001/104!”.

“Giusto. Facciamo così: indichiamo con L l'intero numero, e con A questa approssimazione”.

“Va bene”.

“Calcoliamo quindi LA”.

“Ci sono un sacco di zeri, uhm. Abbiamo in pratica cancellato i primi quattro 1, tutto il resto è rimasto uguale”.

“Giusto. Ora ti scrivo una serie di stime per cercare di capire come sia fatto questa differenza LA, tu seguimi, ok?”.

“Proviamo”.

“Prima di tutto, LA è uguale a 1/105!+1/106!+1/107!+…”.

“Stai scrivendo tutti gli 1 che rimangono, insomma”.

“Esatto. Questo numero è certamente minore di 2/105!”.

“Uhm, d'accordo, hai sostituito la somma di tutte la frazioni da 1/106! in avanti con un altro termine 1/105!”.

“Sì. Ora, la frazione 2/105! è uguale a 2/105×4!”.

“Questo perché 5! è uguale a 5 moltiplicato 4!”.

“Certo. Possiamo anche scrivere che 2/105×4! è uguale a 2/10(4+1)×4!, cioè 2/[104×4!×104!]”.

“Mi pare che tu abbia usato una proprietà delle potenze”.

“Proprio così. Dato che 2/104! è certamente minore di 1, possiamo affermare che tutta la frazione è minore di 1/104×4!”.

“Sì, è chiaro”.

“Riassunto: LA < 1/104×4!”.

“E quindi?”.

“Ricordi chi è A?”.

“L'approssimazione di L che stiamo studiando, cioè 110001000000000000000001/104!”.

“E ricordi quello che vogliamo fare?”.

“Vogliamo mostrare che possiamo approssimare L con frazioni del tipo m/n con un errore minore di 1/n elevato all'esponente che voglio”.

“E tu hai scelto 4 come esponente”.

“Giusto”.

“Ebbene, abbiamo appena trovato una frazione del tipo m/n, dove m = 110001000000000000000001 e n = 104! che approssima A con un errore minore di 1/104×4!, cioè 1/n4”.

“Ah!”.

“E hai visto che l'esponente 4 l'hai scelto tu, potevi scegliere un qualunque numero naturale”.

“Esatto”.

“E quindi hai in realtà infinite frazioni che approssimano L con un errore minore di 1/n4, o minore di 1/n5, eccetera”.

“Bene! E quindi L non è un numero algebrico, ecco fatto”.

“E così abbiamo fatto vedere che esiste almeno un numero trascendente. Bello, eh?”.

“Bello, sì. E anche per pi greco si può fare lo stesso ragionamento?”.

“Eh, magari”.