Dato un numero A positivo, prendi un numero Y positivo tale che A·Y < 2.
Calcola Y·(2−A·Y) e prendi come nuovo valore di Y il risultato.
Ripeti lo stesso calcolo col nuovo Y. E così via. Che cosa ottieni?
Esempio: A = 7; Y = 0.1 Y = Y*(2-A*Y) # 0.13 Y = Y*(2-A*Y) # 0.1417 Y = Y*(2-A*Y) # 0.14284777 Y = Y*(2-A*Y) # 0.14285714224219 Y = Y*(2-A*Y) # 0.142857142857143 Y = Y*(2-A*Y) # 0.142857142857143 Altro esempio: A = 0.04; Y = 1 Y = Y*(2-A*Y) # 1.96 Y = Y*(2-A*Y) # 3.766336 Y = Y*(2-A*Y) # 6.96526052540416 Y = Y*(2-A*Y) # 11.9899268833382 Y = Y*(2-A*Y) # 18.2295198999645 Y = Y*(2-A*Y) # 23.166423968601 Y = Y*(2-A*Y) # 24.8655199574832 Y = Y*(2-A*Y) # 24.9992766047266 Y = Y*(2-A*Y) # 24.999999979068 Y = Y*(2-A*Y) # 25
I calcoli sono facilissimi usando questa calcolatrice. Un esempio: A = 25, Y = 0.01 (metto 25 in A, 0.01 in M e, inzialmente, M in B; in B ottengo via via le uscite):
Viene calcolato il reciproco di A. Questo esercizio dà un'idea degli algortimi molto semplici
che sono stati impiegati per eseguire le operazioni nei computer e nelle calcolatrici.
Per l'uomo sono importanti le attività di calcolo approssimato
L'algortimo può essere rappresentato facilmente con un diagramma come quello a lato, scrivendo il testo in modo preformattato (modo che usa un font con caratteri di eguali dimensioni, e rappresenta gli spazi bianchi). Vedi. |
input A input B | ---> Y = Y*(2-A*Y) | | | scrivi Y | | --- vuoi continuare? ----> END SI' NO |
Potremmo realizzare il calcolo online con un semplice programmino in JavaScript (software incorporato in tutti i browser). Vai qui: http://macosa.dima.unige.it/js/js.htm, clicca "macosa.dima.unige.it/js.com" e metti nella finestra in alto:
<pre><script> with(Math) { A=5; Y=0.3; document.writeln("A*Y = ",A*Y) N=10 for(i=1;i<=N;i=i+1) {Y=Y*(2-A*Y); document.writeln("Y = ",Y)} } </script></pre>
e con:
A=5; Y=2/9
Ottieni:
A*Y = 1.5 Y = 0.15 Y = 0.1875 Y = 0.19921875 Y = 0.1999969482421875 Y = 0.19999999995343387 Y = 0.2 Y = 0.2 Y = 0.2 Y = 0.2 Y = 0.2 | A*Y = 1.1111111111111112 Y = 0.19753086419753085 Y = 0.19996951684194483 Y = 0.19999999535388538 Y = 0.19999999999999987 Y = 0.2 Y = 0.2 Y = 0.2 Y = 0.2 Y = 0.2 Y = 0.2 |
Vedi qui per qualche
riflessione didattica. Se sei intereressato a realizzare diagrammi come quello a fianco con R vedi qui. |
BF=4; HF=3 boxW(-50,50, -30,70) # BOX() # I put it to see the grid; then I take it off x=c(-10,10,10,-10); y=c(50,50,70,70); polyC(x,y,"yellow") A=c(0,65); ptexT(A,"input A") A=c(0,55); ptexT(A,"input Y") dart(0,50, 0,40, 1) x=c(-15,15,15,-15); y=c(30,30,40,40); polyC(x,y,"yellow") A=c(0,35); ptexT(A,"Y = Y*(2 - A*Y)") dart(0,30, 0,20, 1) x=c(-10,10,10,-10); y=c(10,10,20,20); polyC(x,y,"yellow") A=c(0,15); ptexT(A,"scrivi Y") dart(0,10, 0,0, 1) x=c(-20,20,20,-20); y=c(-10,-10,0,0); polyC(x,y,"yellow") A=c(0,-5); ptexT(A,"vuoi continuare?") A=c(-15,5); ptexT(A,"SI'") A=c(15,5); ptexT(A,"NO") dart(-20,0, -20,35, 1) dart(-20,35, -15,35, 1) dart(20,0, 20,10, 1) x=c(15,25,25,15); y=c(10,10,20,20); polyC(x,y,"yellow") A=c(20,15); ptexT(A,"END")