9 votos

¿Raíces cuadradas exactas no se puede encontrar?

Estoy dando un repaso a algunos de los de mayor nivel de matemáticas para un proyecto de programación. Yo iba a lo largo y luego me di cuenta de que no tengo absolutamente ninguna idea de cómo raíces cuadradas pueden ser calculadas.

Me refiero, por supuesto, he memorizado un montón de cuadrados perfectos. Pero yo no sería capaz de obtener una exacta respuesta de algunos de número arbitrario como 432,434, quisiera?

Busqué en Google cómo calcular raíces cuadradas y siempre todo apunta a que, básicamente, se basa en algoritmos que tienen un grado de error debido a que son más o menos aciertos.

Me parece que no puede averiguar por qué es imposible obtener una raíz cuadrada exacta, aunque. ¿Por qué no se puede conectar $x$ a una función $f(x)$ y obtener el exacto de la raíz cuadrada?

Muy curioso acerca de esto.

46voto

Yves Daoust Puntos 30126

Las raíces cuadradas de no-perfecto-Plaza-números enteros son números irracionales, lo que significa que tienen un número infinito de decimales, que no repita. Así que sería un poco tedioso escribir el valor exacto...


Raíces cuadradas se puede computar, entre otros, por el llamado método de Herón (conocido BC), que es del tipo de "conjetura", pero que converge muy rápidamente.

30voto

Juris Puntos 921

Entiendo que esta pregunta es realmente acerca de la representación de la raíz cuadrada en binario (float) o en notación decimal.

Sin embargo, eso no es lo que estos números son acerca de sí mismos.

$\sqrt 3$ es perfectamente válido en sí mismo un número y una representación exacta de la cantidad que es la raíz cuadrada de 3. No puede ser exactamente representado como un binario o un número decimal como estas representaciones ar bastante limitado (usted no puede incluso encontrar un exacto $1/3$ en cualquiera de esos). Pero se puede encontrar hasta una cierta precisión.

Además, estas representaciones se utilizan en los equipos. Por ejemplo, Wolfram Mathematica no reemplazará $\sqrt 3$ o $\frac 2 {17}$ con un aproximado de representación que podría arruinar la simplificación más tarde. Si usted necesita la precisión, puede exactamente el mismo - guardar el número en una elegante estructura que le permite guardar el hecho de que es una raíz de un número.

9voto

bubba Puntos 16773

Depende de qué tipos de datos disponibles en su entorno de programación. Normalmente, usted sería el uso de doble precisión de punto flotante los números. Pero los números de punto flotante son siempre números racionales (cociente de dos enteros), y las raíces cuadradas son a menudo no es racional, por lo que no pueden representarse exactamente por los valores de punto flotante.

Si usted tiene más exótico conjunto de tipos de datos, usted puede ser capaz de representar algunas (pero no todas) de las raíces cuadradas exactamente.

Pero en realidad no hay mucho punto el cálculo de raíces cuadradas exactamente, a menos que nuestras divisiones y funciones trigonométricas son también exacto (que no lo son, en matemáticas de punto flotante).

6voto

Teleporting Goat Puntos 108

No se puede hallar el valor exacto de las raíces cuadradas de los no-número cuadrado. Por la misma razón no se puede calcular el valor exacto de $\pi$ o $e$.

No es una cuestión de programación o de aproximación. Las raíces cuadradas de los que no son cuadrados de los números son los números irracionales.

Una de sus propiedades es que no se puede calcular de forma exacta, el valor numérico de ellos, no se puede representar en notación decimal. Se puede representar con un símbolo o aproximarse a ellas, pero eso es todo.

$\sqrt 2$ es en realidad el más famoso de número irracional, y es la razón por la que los descubrió.

5voto

Acccumulation Puntos 13

Técnicamente hablando, cuando usted encuentra a $\sqrt2 = 1.414 ...$, está el cálculo de la expansión decimal de la raíz cuadrada de 2. Cuando la gente dice cosas como "calcular la raíz cuadrada de 2", lo que generalmente significa que es encontrar esta expansión decimal. Eso es porque cuando la gente piensa en el término "número", lo que generalmente se piensa es "número representado en formato decimal". Desde la expansión decimal tiene un número infinito de dígitos, es imposible calcular en su totalidad. (Aunque, más técnicamente hablando, la expansión decimal es escribir el número en términos de potencias de diez, mientras que la de punto flotante expresa los números en términos de potencias de dos, pero esa distinción no afecta a este tema en particular).

Sin embargo, si tenemos en cuenta el "número" como simplemente un resumen de los datos de la clase con los métodos en particular, entonces es posible tener una clase de datos en la que "la raíz cuadrada de dos" es un objeto válido, y un objeto cuyo cuadrado es exactamente igual a dos. En este contexto, la frase "calcular la raíz cuadrada de dos" no tiene un significado claro. Podríamos tener un print método que toma un número de dígitos, y las salidas que el número de dígitos. Por ejemplo, podríamos tener que two.power(one.divide(two)).print(5) (i.e "imprimir cinco dígitos después del punto decimal de 2^(1/2)") da la salida 1.41421, pero un lenguaje preciso haría referencia a esto en términos del método que se define en la clase, en lugar de referirse a ella como "calcular" la raíz cuadrada de dos. Si usted acaba de tipo two.power(one.divide(two)), luego, dependiendo de cómo la clase se implementa, de hecho, puede "calcular" la representación de coma flotante de $\sqrt 2$, pero puede representar el objeto en una más, de forma abstracta. En el primer caso, two.power(one.divide(two)).power(two) (es decir, $(\sqrt 2)^2)$) podría ser ligeramente menor que 2, pero en el último caso, podría muy bien volver exactamente 2. (También podría devolver exactamente 2 en el primer caso, dependiendo de cómo el redondeo es configurar).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X