Il trucco indiano

Il forum di Base5, dove è possibile postare problemi, quiz, indovinelli, rompicapo, enigmi e quant'altro riguardi la matematica ricreativa e oltre.

Moderatori: Gianfranco, Bruno

Rispondi
0-§
Livello 6
Livello 6
Messaggi: 454
Iscritto il: ven nov 18, 2005 10:33 pm
Località: Bologna

Il trucco indiano

Messaggio da 0-§ » dom gen 13, 2019 2:13 pm

Da un libro uscito di recente sulla storia della matematica [1], trovo un metodo curioso (risalente al testo indiano Aryabhatiya) per calcolare la funzione $\sin(x)$.

Si consideri un cerchio di raggio $R=3438$ e si suddivida l'arco di ampiezza 90° in 24 parti. Al primo angolo (di 3°45') si assegni un valore $a_1=225$.
I valori successivi vengono poi calcolati con il seguente metodo ricorsivo: avendo definito
$\displaystyle S_i=\sum_{j=1}^i a_i$
si pone:
$a_{i+1}=a_i+a_1-\frac{S_i}{a_1}$ (*)
Così facendo, si trova una sequenza $a_i,\,i=1,\dots,24$, tale per cui $a_i/R$ dà (approssimativamente) il valore dell'angolo corrispondente: per esempio, al quarto angolo (pari a 15°) il metodo indiano dà $a_4 \approx 890$, cosicché $a_4/R \approx 0.258879 \approx \sin(15°) \approx 0.258819$.

Bello! Però rimangono dei dubbi:
  • Come funziona il metodo indiano e perché dà risultati esatti?
  • Si potrebbe migliorare l'approssimazione cambiando l'equazione (*)?
  • Il metodo si può estendere ad altre funzioni trascendenti di uso comune?
Gli autori di [1] avvertono che "Presso gli Indiani, l'efficacia di un procedimento di calcolo era considerata sufficiente a garantire la sua correttezza scientifica; ogni altro tipo di dimostrazione era ritenuta superflua", per cui tocca a noi...

Buona domenica a tutti
Zerinf

[1] "La matematica e la sua storia, vol. II - Dal tramonto greco al Medioevo", di B. D'Amore e S. Sbaragli, ed. Dedalo 2018.

(*) Nota bene: nel libro di D'Amore vi è un errore di battitura, dove al posto di $a_1$ a denominatore nella frazione dell'eq. (*) è indicato $a_i$.
Lo scopo principale di una dichiarazione DATA è quello di dare dei nomi alle costanti; anziché inserire ogni volta 3.141592653589793 come valore di \pi, con una dichiarazione DATA si può assegnare tale valore alla variabile PI che può essere poi usata per indicare la costante. Ciò rende anche più semplice modificare il programma, qualora il valore di \pi dovesse cambiare.

-Da un vecchio manuale FORTRAN della Xerox

Gianfranco
Supervisore del sito
Supervisore del sito
Messaggi: 1006
Iscritto il: ven mag 20, 2005 8:51 pm
Località: Sestri Levante
Contatta:

Re: Il trucco indiano

Messaggio da Gianfranco » lun gen 14, 2019 9:46 pm

0-§ ha scritto:
dom gen 13, 2019 2:13 pm
  • Come funziona il metodo indiano e perché dà risultati esatti?
Grazie zerinf, affascinante e misterioso questo problema di matematica indiana...
Lancio qualche idea, per chi vorrà approfondire.

1) Ho usato un foglio elettronico per calcolare i 24 valori di sen(n pi/48) con 1<=n<=24. Ok, sono straordinariamente buoni per il 500 d.C.

2) In questa pagina: https://demo.cloodon.com/maths/?sid=713 ho trovato che Aryabhata I (476–550) scrisse la seguente formula:

\large \sin{((n+1)x)}-\sin{(n x) }=\frac{224 \sin{( n x) }}{225}-\sin{(( n-1) x)}

3) Con un po' di elaborazione, si ottiene questa formula ricorsiva per calcolare il \sin{((n+1)x)} conoscendo \sin{(x)} e \sin{((n-1)x)}

\large \sin{((n+1)x)}=\frac{449 \sin{(n x)}}{225}-\sin{(( n-1)x) }

4) Ho preso i primi due valori di sen(x) ottenuti con il metodo descritto da d'Amore e ho applicato quest'ultima formula ottenendo tutti i successivi valori uguali a quelli del metodo con la sommatoria.
Quindi, questa forse è l'origine...

5) Per calcolare i successivi valori con la formula ricorsiva di Aryabhata, bisogna assumere che:

\large \sin{3,75^ \circ}=\sin{\frac{\pi}{48}}=\frac{225}{3438} (valore arrotondato)

Come avrà fatto a calcolarlo?

Poi le cose filano lisce fino a 90°

\sin(0)=0

\sin (\pi/48)=\frac{225}{3438}

sin (2\pi/48)=\frac{449}{225} \cdot \frac{225}{3438}-0=\frac{449}{3438}

e così via...

6) Naturalmente bisogna anche dimostrare quella bellissima formula.
Pace e bene a tutti.
Gianfranco

0-§
Livello 6
Livello 6
Messaggi: 454
Iscritto il: ven nov 18, 2005 10:33 pm
Località: Bologna

Re: Il trucco indiano

Messaggio da 0-§ » dom gen 20, 2019 10:53 am

Ciao Gianfranco, sono contento che il metodo ti sia piaciuto :)
Gianfranco ha scritto:
lun gen 14, 2019 9:46 pm
1) Ho usato un foglio elettronico per calcolare i 24 valori di sen(n pi/48) con 1<=n<=24. Ok, sono straordinariamente buoni per il 500 d.C.
Un primo esercizio interessante è provare a cambiare la spaziatura degli angoli, ovvero a dividere l'angolo di $\pi/2$ in step più piccoli.
Gianfranco ha scritto:
lun gen 14, 2019 9:46 pm
2) In questa pagina: https://demo.cloodon.com/maths/?sid=713 ho trovato che Aryabhata I (476–550) scrisse la seguente formula:

\large \sin{((n+1)x)}-\sin{(n x) }=\frac{224 \sin{( n x) }}{225}-\sin{(( n-1) x)}
Non riesco a trovare la formula in questione nella pagina che hai linkato. Peraltro, così com'è scritta non mi torna e suppongo che possa essere un'approssimazione valida solo per angoli piccoli. Sbaglio?

Buona domenica a tutti
Zerinf
Lo scopo principale di una dichiarazione DATA è quello di dare dei nomi alle costanti; anziché inserire ogni volta 3.141592653589793 come valore di \pi, con una dichiarazione DATA si può assegnare tale valore alla variabile PI che può essere poi usata per indicare la costante. Ciò rende anche più semplice modificare il programma, qualora il valore di \pi dovesse cambiare.

-Da un vecchio manuale FORTRAN della Xerox

Gianfranco
Supervisore del sito
Supervisore del sito
Messaggi: 1006
Iscritto il: ven mag 20, 2005 8:51 pm
Località: Sestri Levante
Contatta:

Re: Il trucco indiano

Messaggio da Gianfranco » dom gen 20, 2019 11:38 am

Ciao Zerinf e buona domenica.

La formula si trova più o meno a metà della pagina web ed è scritta inline con caratteri normali (no-latex).
Riporto qui sotto un copia e incolla:
  • Contains the earliest tables of sine, cosine and versine values, in 3.75° intervals from 0° to 90°, to 4 decimal places of accuracy.
  • Contains the trigonometric formula sin(n + 1)x − sin nx = sin nx − sin(n − 1)x − (1/225)sin nx.
  • Spherical trigonometry
Puoi usare le parole della citazione per fare una ricerca nella pagina.

AGGIORNAMENTO. La versione originale dell'articolo si trova su Wikipedia. (https://en.wikipedia.org/wiki/Indian_mathematics)

Effettivamente non ho riportato la formula identica ma con una semplice elaborazione al secondo membro.

Sì, la formula di Aryabhata non è "esatta" ma proprio per questo è ancora più affascinante e anche perché funziona, usandola con precauzione.
La cosa più interessante, per me, è che si può facilmente trasformare in una specie di funzione ricorsiva.
Mi piacerebbe scoprire di più su questa formula, capire come ci si può arrivare, trovare se ha dei collegamenti con gli sviluppi in serie delle funzioni trigonometriche che si imparano oggi etc.
Non ho letto il libro del prof. D'Amore, ma srebbe interessante sapere se anche lui ha usato questa formula per presentare il metodo di Aryabhata.
Pace e bene a tutti.
Gianfranco

0-§
Livello 6
Livello 6
Messaggi: 454
Iscritto il: ven nov 18, 2005 10:33 pm
Località: Bologna

Re: Il trucco indiano

Messaggio da 0-§ » dom gen 20, 2019 5:13 pm

Gianfranco ha scritto:
dom gen 20, 2019 11:38 am
Ciao Zerinf e buona domenica.

La formula si trova più o meno a metà della pagina web ed è scritta inline con caratteri normali (no-latex).
Hai ragione, non me ne ero accorto :oops:

Penso che la formula si possa quantomeno giustificare con gli sviluppi in serie. Definiamo:
$f_1(x)=\sin((n + 1)x) − \sin( nx)$
$f_2(x)=\alpha \sin( nx) − \sin((n - 1)x)$
dove $\alpha$ è un parametro libero (224/225 nella formula di Aryabhata) che possiamo variare per rendere migliore l'approssimazione.
Si vede che: $f_1(0)=f_2(0)=0$ e $f_1''(0)=f_2''(0)=0$. Per la derivata prima si ottiene $f_1'(0)=1,\;f_2'(0)=1 - n + n \alpha$. Si vede come, ponendo $\alpha=1$, le due funzioni abbiano espansione in serie di MacLaurin (intorno ad $x=0$) uguale fino alla derivata seconda:
$f_1(x)\approx f_2(x) \approx x , x \ll \pi/2$
Questo però non spiega il fattore 224/225 di Aryabhata, che però è circa uguale a 1; forse la loro approssimazione era un po' approssimativa...
Gianfranco ha scritto:
dom gen 20, 2019 11:38 am
Non ho letto il libro del prof. D'Amore, ma srebbe interessante sapere se anche lui ha usato questa formula per presentare il metodo di Aryabhata.
Io ho trovato una dimostrazione diversa del metodo per calcolare la tabella nel libro di D'Amore; non so quale metodo abbia usato, ma faceva riferimento a testi più vecchi e che ancora non ho avuto modo di consultare.
Lo scopo principale di una dichiarazione DATA è quello di dare dei nomi alle costanti; anziché inserire ogni volta 3.141592653589793 come valore di \pi, con una dichiarazione DATA si può assegnare tale valore alla variabile PI che può essere poi usata per indicare la costante. Ciò rende anche più semplice modificare il programma, qualora il valore di \pi dovesse cambiare.

-Da un vecchio manuale FORTRAN della Xerox

Rispondi