Documente Academic
Documente Profesional
Documente Cultură
Libreras Externas
Librera: Commons math
Uso: Nmeros complejos
I3TzShadow 1
La librera Commons math de apache incluye diversas funciones
matemticas ocupadas habitualmente y que no vienen definidas
en la paquetera de java.
http://commons.apache.org/proper/commons-math/index.html
I3TzShadow 2
Para este tutorial se utilizo la versin de Java 1.8.0.112 (tanto
JRE como JSE) para correr los programas.
Se utilizo el IDE Eclipse para compilar y crear las clases.
Para agregar la librera commons-math3-3.6.1 a nuestro
proyecto se tienen 2 formas
La primera es colocarla en la carpeta:
C:\Program Files\Java\jre1.8.0_112\lib\ext
I3TzShadow 3
La otra forma es crear el proyecto habitualmente usando
cualquier opcin:
I3TzShadow 4
Se abre una nueva ventana y hay que asegurarnos que se
este en el apartado de: Java Build Path.
Despus seleccionar la pestaa: Libraries.
Y por ultimo dar clic en: Add External JARs
Buscamos el archivo *.jar que deseemos agregar, en este caso
la librera de commons math
Una vez seleccionada, damos clic en: Apply
Por ultimo en: Ok
I3TzShadow 5
I3TzShadow 6
Creamos la clase donde usaremos los nmeros complejos,
importamos la librera commons math para poder hacer uso de
los nmeros complejos as como diversas operaciones.
import org.apache.commons.math3.complex.*;
I3TzShadow 7
Creamos clase NumerosComplejos, y creamos el numero complejo c1 =
-31.1 + 41.4i y lo mostramos en pantalla:
Y al correrlo obtenemos:
I3TzShadow 8
Creamos el objeto para darle formato a nuestro texto de salida:
I3TzShadow 9
Y obtenemos esta salida:
I3TzShadow 10
Para la suma se usa la funcin add de la siguiente forma:
complejo_1.add(complejo_2) = complejo_1+complejo_2
I3TzShadow 11
Se agregan las
operaciones al
cdigo e
imprimimos
los resultados en
pantalla por
medio del
formateador (sal):
I3TzShadow 12
Obteniendo los siguientes resultados en pantalla
I3TzShadow 13
Para obtener magnitud y ngulo, haremos uso de 2 funciones:
abs() para obtener la magnitud, y getArgument() para obtener el
ngulo en radianes. Usamos el numero c1 para mostrar su
funcionamiento mediante la implementacin del siguiente cdigo:
Estas funciones regresan una variable tipo Doble, por lo que ser
necesario crear una variable del mismo tipo para guardar el
resultado, en este cdigo se usan las variables: r para guardar la
magnitud y theta para guardar el ngulo.
I3TzShadow 14
I3TzShadow 15
Y se obtienen los siguientes resultados.
Y
Cualquiera de las 2 formas es valida y para comprobarlo se
implemento el siguiente cdigo:
I3TzShadow 16
I3TzShadow 17
Y se obtuvieron los siguientes resultados:
I3TzShadow 18
Invertir un numero complejo infinito.
I3TzShadow 19
Y se obtienen los siguientes resultados:
I3TzShadow 20
Para crear un numero complejo, con esta librera, se puede hacer de
2 formas distintas:
La primera es creando 1 variable real de valor infinito(positivo o
negativo), y crear el numero complejo a travs de su constructor.
La segunda es crear un objeto a partir de la funcin (INF) que ya
viene incluida en la librera.
I3TzShadow 21
Para la inversin de un numero (x) en general se tienen 2 formas:
La primera que es dividir 1 entre el numero que queremos
invertir. (1/x)
La segunda es elevar a la potencia -1 el numero que
queremos invertir. (x-1)
I3TzShadow 22
Para hacer la inversin de un numero mediante la divisin (1/x) es
necesario crear un numero complejo con el valor 1 en la parte
real, esto es debido a que la funcin divide solo acepta nmeros
complejos en el numerador, en cambio en el denominador acepta
nmeros complejos o reales.
En cdigo seria:
I3TzShadow 23
Ahora simplemente hacemos la divisin de nuestro numerador(1+0i)
y el denominador que es el numero complejo infinito.
A continuacin se muestra todas las combinaciones entre las formas
de crear el numerador y el denominador:
I3TzShadow 24
Recordemos que:
El Reciproco de un numero es otro que, al multiplicarlo por el original sea igual a la
unidad.
Para obtener dicho numero basta con dividir 1 sobre el numero del cual
quisiramos saber su reciproco.
Este mtodo nos genera un nuevo numero complejo, por lo cual ser
necesario crear una nueva variable de tipo compleja en donde guardarla.
I3TzShadow 25
La funcin pow(), dentro de esta librera, nos permite elevar un
numero complejo a una potencia real o una potencia compleja.
El cdigo se implementa de la siguiente forma:
complejo_1.pow(complejo_2) = (complejo_1)complejo_2
O bien
complejo_1.pow(real) = (complejo_1)real
I3TzShadow 26
Para invertir el numero complejo c3= 15-0.3i, hacemos uso del
real -1 el cual guardaremos en una variable (inv) de tipo doble y
mostramos el resultado en pantalla:
Y se obtiene:
Y se obtiene
I3TzShadow 27
Donde el elemento NaN(Not a Number) nos da a entender que el
resultado obtenido en esa operacin no es un numero por lo
cual, laso operaciones subsecuentes donde se utilice este
elemento siempre darn como resultado un NaN.
I3TzShadow 28
Aplicamos las mismas operaciones que en el caso de los
complejos.
I3TzShadow 29