PRÁCTICA 050

Publicado por Gio M en 22:39
Bueno ya con esta sería la práctica 50 de los ejercicios propuestos en esta sección. Si practicaste todos los ejercicios que vienen acá y ya eres capaz de resolverlos o al menos lograr algo similar, aunque no sirva, y ver tus errores, estás listo para dar el siguiente paso. Para probar nuestro esfuerzo acá tenemos la cereza en el pastel:

Ejercicio 50

Crea una función iterativa que saque una raíz cuadrada utilizando el método de bisección.



Análisis y Conclusiones

Bueno, conozco el nombre de dos métodos para sacar raíces cuadradas, el método por Bisección y el Cálculo de Newton-Raphson. El método Newton-Raphson consume menos recursos ya que usa menos iteraciones para resolver la raíz.

Sin embargo, y como es costumbre, nos hemos complicado la vida y decidido probar el método de Bisección.

La función recibe un número, y devuelve su raíz cuadrada.

El método matemático es el siguiente

Recibe n, supongamos que queremos saber la raíz cuadrada de 2, por lo tanto n vale 2

n = n
elemento1 = 0
elemento2 = n = 2

El elemento1 debe ser cero, porque primero calcula en el intervalo desde 0 a 2

fórmula1 = (0 + n) / 2 = 1

fórmula2 = valor absoluto de 2 - (fórmula1 ** 2) = 1

En este punto se hace la pregunta, ¿Es menor o mayor el resultado de fórmula2, a n?

Si la respuesta es sí, entonces ahora elemento2 toma el valor de fórmula1
Si la respuesta es no, entonces ahora elemento1 toma el valor de fórmula1

Luego va creando intervalos y evaluando, haciendo una comparación con un margen de error decidido por nosotros, que sería 0.0001

Se comporta algo así:

[0,2]
[1,2]
[1,1.5]
[1.25,1.5]

Y así dividiendo y comparando hasta llegar a la raíz cuadrada del número.

Pues tuve que tener mucho cuidado haciendo esta función porque hay una cuestión jodida con los números decimales, que si no especificas que devuelva decimales, no lo hace.

Así pues, tuve que hacer cosas como dividir n entre 1.0, para que devolviera algo como n.0 y luego seguir trabajando con la función. Luego la cuestión de las fórmulas quise reducirlas lo mejor que se pudiese, pero no hubo forma, por eso quedó tanto código en la función, no encontré una mejor manera de hacerla (Y quería que quedara todo dentro de una sola función.)

Recuerdo que en Scheme se hacía pero recursivamente y necesitaba más de una función:



A pesar de ser algo relativamente fácil de comprender, se necesita querer aprenderlo, o comprenderlo.

El cálculo de raíces es un muy buen ejercicio para prepararse para los primeros exámenes de introducción del TEC.

0 Respuestas a 'PRÁCTICA 050'

Publicar un comentario