El método dice que, dada una ecuación f(x)=0, el valor de x puede irse aproximando mediante esta relación de recurrencia:
¿Cuál debe ser nuestra función?
Queremos encontrar el valor x de la siguiente ecuación:
para un valor conocido de n.
Entonces:
es decir:
para f :x
devuelve :x * :x - :n
fin
para f' :x
devuelve 2 * :x
fin
El procedimiento aproxima da un valor inicial a x de 1 y luego usa la relación de recurrencia 10 veces mostrando cada vez la aproximación obtenida:
para aproxima :n
escribe frase [Aproximando la Raíz Cuadrada de:] :n
haz "x 1
repite 10 [haz "x :x - (f :x) / (f' :x) escribe.aproximación]
fin
El procedimiento escribe.aproximación imprime tres números en una línea mostrando: la aproximación, el valor de la raíz cuadrada calculada internamente, y la diferencia entre ambos.
para escribe.aproximación
escribe `[
,[formatonumero (:x) 20 16]
,[formatonumero (raizcuadrada :n) 20 16]
,[formatonumero (abs :x - raizcuadrada :n) 20 16]
]
fin
aproxima 2
Aproximando la Raíz Cuadrada de: 2
1.5000000000000000 1.4142135623730951 0.0857864376269049
1.4166666666666667 1.4142135623730951 0.0024531042935716
1.4142156862745099 1.4142135623730951 0.0000021239014147
1.4142135623746899 1.4142135623730951 0.0000000000015947
1.4142135623730951 1.4142135623730951 0.0000000000000000
1.4142135623730949 1.4142135623730951 0.0000000000000002
1.4142135623730951 1.4142135623730951 0.0000000000000000
1.4142135623730949 1.4142135623730951 0.0000000000000002
1.4142135623730951 1.4142135623730951 0.0000000000000000
1.4142135623730949 1.4142135623730951 0.0000000000000002
aproxima 961
Aproximando la Raíz Cuadrada de: 961
481.0000000000000000 31.0000000000000000 450.0000000000000000
241.4989604989604900 31.0000000000000000 210.4989604989604900
122.7391368467891500 31.0000000000000000 91.7391368467891510
65.2843751618499080 31.0000000000000000 34.2843751618499080
40.0022947858842950 31.0000000000000000 9.0022947858842954
32.0129582795904640 31.0000000000000000 1.0129582795904639
31.0160260802395910 31.0000000000000000 0.0160260802395911
31.0000041403635510 31.0000000000000000 0.0000041403635507
31.0000000000002770 31.0000000000000000 0.0000000000002771
31.0000000000000000 31.0000000000000000 0.0000000000000000
Este es un documento libre.
Autor: Daniel Ajoy
Esta obra está bajo una Licencia Creative Commons Atribución-CompartirIgual 3.0 Unported.