Módulos matemáticos en Python Math and Cmath

Cuando escribimos programas en nuestra vida cotidiana, generalmente nos encontramos con situaciones en las que necesitamos usar un poco de matemáticas para hacer la tarea. Al igual que otros lenguajes de programación, Python proporciona varios operadores para realizar cálculos básicos como * para la multiplicación, % para módulo, y // para división de piso.

Si está escribiendo un programa para realizar tareas específicas como estudiar movimientos periódicos o simular circuitos eléctricos, deberá trabajar con funciones trigonométricas y con números complejos. Si bien no puede usar estas funciones directamente, puede acceder a ellas incluyendo primero dos módulos matemáticos. Estos módulos son matemáticas y matemáticas.. 

La primera le da acceso a funciones hiperbólicas, trigonométricas y logarítmicas para números reales, mientras que la última le permite trabajar con números complejos. En este tutorial, repasaré todas las funciones importantes que ofrecen estos módulos. A menos que se mencione explícitamente, todos los valores devueltos son flotantes.

Funciones aritméticas

Estas funciones realizan diversas operaciones aritméticas, como calcular el piso, el techo o el valor absoluto de un número utilizando la piso (x), ceil (x), y fabs (x) funciones respectivamente. La función ceil (x) devolverá el entero más pequeño que sea mayor o igual que X. similar, piso (x) devuelve el mayor entero menor o igual que X. los fabs (x) función devuelve el valor absoluto de X.

También puede realizar operaciones no triviales como calcular el factorial de un número usando factorial (x). Un factorial es el producto de un entero y todos los enteros positivos más pequeños que él. Se usa ampliamente cuando se trata de combinaciones y permutaciones. También se puede utilizar para calcular el valor de las funciones seno y coseno.. 

importar matemáticas def getsin (x): multiplicador = 1 resultado = 0 para i en el rango (1,20,2): resultado + = multiplicador * pow (x, i) /math.factorial (i) multiplicador * = -1 retorno resultado getsin (math.pi / 2) # devuelve 1.0 getsin (math.pi / 4) # devuelve 0.7071067811865475

Otra función útil en el mates módulo es gcd (x, y), que te da el mayor divisor común (GCD) de dos números X y y. Cuando X y y ambos no son cero, esta función devuelve el mayor entero positivo que divide ambos X y y. Puede usarlo indirectamente para calcular el múltiplo común más bajo de dos números usando la siguiente fórmula:

gcd (a, b) x lcm (a, b) = a x b

Estas son algunas de las funciones aritméticas que ofrece Python:

importar math math.ceil (1.001) # devuelve 2 math.floor (1.001) # devuelve 1 math.factorial (10) # devuelve 3628800 math.gcd (10,125) # devuelve 5 math.trunc (1.001) # devuelve 1 math.trunc (1.999) # devuelve 1

Funciones trigonométricas

Estas funciones relacionan los ángulos de un triángulo con sus lados. Tienen muchas aplicaciones, incluido el estudio de triángulos y el modelado de fenómenos periódicos como el sonido y las ondas de luz. Tenga en cuenta que el ángulo que proporciona está en radianes.

Se puede calcular pecado (x), cos (x), y bronceado (x) directamente utilizando este módulo. Sin embargo, no hay una fórmula directa para calcular cosec (x), seg (x), y cuna (x), pero su valor es igual al recíproco del valor devuelto por pecado (x), cos (x), y bronceado (x) respectivamente.

En lugar de calcular el valor de las funciones trigonométricas en un cierto ángulo, también puede hacer el inverso y calcular el ángulo en el que tienen un valor dado utilizando asin (x), acos (x), y atan (x)

¿Está familiarizado con el teorema de Pitágoras? Afirma que el cuadrado de la hipotenusa (el lado opuesto al ángulo recto) es igual a la suma de los cuadrados de los otros dos lados. La hipotenusa también es el lado más grande de un triángulo rectángulo. El módulo de matemáticas proporciona la hipo (a, b) Función para calcular la longitud de la hipotenusa..

import math math.sin (math.pi / 4) # devuelve 0.7071067811865476 math.cos (math.pi) # devuelve -1.0 math.tan (math.pi / 6) # devuelve 0.5773502691896257 math.hypot (12,5) # devuelve 13.0 math.atan (0.5773502691896257) # devuelve 0.5235987755982988 math.asin (0.7071067811865476) # devuelve 0.7853981633974484

Funciones hiperbolicas

Las funciones hiperbólicas son análogas a las funciones trigonométricas que se basan en una hipérbola en lugar de un círculo. En trigonometría, los puntos (cos segundo, pecado segundo) representan los puntos de un círculo unitario. En el caso de las funciones hiperbólicas, los puntos (cosh segundo, sinh segundo) Representan los puntos que forman la mitad derecha de una hipérbola equilátera. 

Al igual que las funciones trigonométricas, puede calcular el valor de sinh (x), cosh (x), y tanh (x) directamente. El resto de los valores se pueden calcular utilizando varias relaciones entre estos tres valores. También hay otras funciones como asinh (x), acosh (x), y atanh (x), que se puede utilizar para calcular el inverso de los valores hiperbólicos correspondientes.

import math math.sinh (math.pi) # devuelve 11.548739357257746 math.cosh (math.pi) # devuelve 11.591953275521519 math.cosh (math.pi) # devuelve 0.9962720762207579.v.v.z.in (s) .http.php (11.548739357257746) # devuelve 3.141592653589793 math.atanh (0.99627207622075) # devuelve 3.141592653589798

Ya que math.pi es igual a aproximadamente 3.141592653589793, cuando usamos asinh () en el valor devuelto por sinh (math.pi), tenemos nuestro π de vuelta.

Poder y funciones logarítmicas

Probablemente tratará con poderes y logaritmos más a menudo que con funciones hiperbólicas o trigonométricas. Afortunadamente, la mates El módulo proporciona muchas funciones para ayudarnos a calcular logaritmos..

Puedes usar log (x, [base]) para calcular el registro de un número dado X a la base dada. Si omite el argumento base opcional, el registro de x se calcula para la base e. aquí, mi es una constante matemática cuyo valor es 2.71828182 ... y se puede acceder usando matemáticas.e. Por cierto, Python también te permite acceder a otra constante π usando math.pi.

Si desea calcular los valores logarítmicos de base 2 o base 10, utilice log2 (x) y log10 (x) devolverá resultados más precisos que log (x, 2) y log (x, 10). Tenga en cuenta que no hay log3 (x) función, por lo que tendrás que seguir usando log (x, 3) Para calcular los valores logarítmicos de base 3. Lo mismo ocurre con todas las demás bases..

Si el valor cuyo logaritmo está calculando es muy cercano a 1, puede usar log1p (x). los 1p en log1p significa 1 más. Por lo tanto, log1p (x) calcula log (1 + x) donde x está cerca de cero. Sin embargo, los resultados son más precisos con log1p (x).

También puedes calcular el valor de un número. X elevado al poder y mediante el uso pow (x, y). Antes de calcular las potencias, esta función convierte ambos argumentos al tipo float. Si desea que el resultado final se calcule en potencias enteras exactas, debe utilizar el comando integrado. pow () función o la ** operador.

También puedes calcular la raíz cuadrada de cualquier número dado X mediante el uso sqrt (x), Pero lo mismo también se puede lograr usando pow (x, 0.5).

import math math.exp (5) # devuelve 148.4131591025766 math.e ** 5 # devuelve 148.4131591025765 math.log (148.41315910257657) # devuelve 5.0 math.log (148.41315910257257257257) 2.171472409516258 math.log (1.0000025) # devuelve 2.4999968749105643e-06 math.log1p (0.0000025) # devuelve 2.4999968750052084e-06 math.pow (12.5, 2.8) # devuelve 1178.5500657314767 math.pow (144, 0.5) y se devuelve a 12.04. (144) # devuelve 12.0 

Números complejos

Los números complejos se almacenan internamente utilizando coordenadas rectangulares o cartesianas. Un numero complejo z se representará en coordenadas cartesianas como z = x + iy, dónde X representa la parte real y y representa la parte imaginaria. Otra forma de representarlos es usando coordenadas polares.. 

En este caso, el número complejo z se definiría como una combinación del módulo r y ángulo de fase fi. El módulo r es la distancia entre el número complejo z y el origen. El ángulo phi es el ángulo contrario a las manecillas del reloj medido en radianes desde el eje x positivo hasta la unión del segmento de línea z y el origen.

Al tratar con números complejos, la cmath módulo puede ser de gran ayuda El módulo de un número complejo se puede calcular utilizando el incorporado abdominales() función, y su fase se puede calcular utilizando la fase (z) Función disponible en el módulo cmath. Puede convertir un número complejo en forma rectangular a forma polar usando polar (z), que devolverá un par (r, phi), dónde r es abs (z) y phi es fase (z)

Del mismo modo, puede convertir un número complejo en forma polar a forma rectangular usando rect (r, phi). El número complejo devuelto por esta función es r * (math.cos (phi) + math.sin (phi) * 1j).

import cmath cmath.polar (complejo (1.0, 1.0)) # devuelve (1.4142135623730951, 0.7853981633974483) cmath.phase (complejo (1.0, 1.0)) # retornos 0.7853981633974483 abs (complejo (1.0, 1.0)) # retornos 1.4142135623730951

los cmath El módulo también nos permite usar funciones matemáticas regulares con números complejos. Por ejemplo, puede calcular la raíz cuadrada de un número complejo usando sqrt (z) o su coseno usando cos (z)

importar cmath cmath.sqrt (complejo (25.0, 25.0)) # devuelve (5.49342056733905 + 2.2754493028111367j) cmath.cos (complejo (25.0, 25.0)) # devuelve (35685729345.58163 + 4764987221.458499j)

Los números complejos tienen muchas aplicaciones como el modelado de circuitos eléctricos, dinámica de fluidos y análisis de señales. Si necesita trabajar en alguna de esas cosas, el cmath módulo no te decepcionará. 

Pensamientos finales

Todas estas funciones que discutimos anteriormente tienen sus aplicaciones específicas. Por ejemplo, puede utilizar el factorial (x) Función para resolver problemas de permutación y combinación. Puede usar las funciones trigonométricas para resolver un vector en coordenadas cartesianas. También puede usar funciones trigonométricas para simular funciones periódicas como ondas de luz y sonido. 

De manera similar, la curva de una cuerda que cuelga entre dos polos se puede determinar usando una función hiperbólica. Dado que todas estas funciones están disponibles directamente en el mates módulo, hace que sea muy fácil crear pequeños programas que realizan todas estas tareas.

Espero que disfrutes este tutorial. Si tienes alguna duda, avísame en los comentarios..