SlideShare ist ein Scribd-Unternehmen logo
1 von 16
INSTITUTO TECNOLÓGICO SUPERIOR
             DE MISANTLA


    INGENIERÍA EN TECNOLOGIAS DE LA
     INFORMACION Y COMUNICACIONES

                         ALGEBRA LINEAL
                               UNIDAD I
                     NUMEROS COMPLEJOS
Reporte del tema:

    DOCUMENTACION DE PROGRAMA

Alumnos:

               RITA IBETT TRUJILLO ORTIZ
                OSCAR SANCHEZ MOLINA
           FRANCISCO ADOLFO AGUILAR GOMEZ

Docente:

              DR. SIMON PEDRO ARGUIJO HERNANDEZ




Fecha de entrega: 9 DE ENERODE 2012
DOCUMENTACION DEL PROGRAMA DE NUMEROS COMPLEJOS



INTRODUCCIÓN ................................................................................................................................... 3



MARCO TEORICO ................................................................................................................................ 4



DESARROLLO ....................................................................................................................................... 6



RESULTADOS ..................................................................................................................................... 12



CONCLUSIÓN..................................................................................................................................... 15



RECOMENDACIONES ........................................................................................................................ 16
INTRODUCCIÓN

      En esta primera unidad de Algebra Lineal estuvimos viendo Numero
Complejos el manejo de suma, resta, multiplicación, división, potenciación y raíz.Y
para facilitar la realización de estas operaciones el docente nos puso a hacer un
programa que nos ayudara, aparte de que contaba para nuestra calificación.

      Pues para empezar tuvimos que investigar sobre el tema, para eso el
docente durante las clases nos estuvo explicando cada paso de como realizar
cada operación y para pasarlo a java tuvimos que buscar en internet información
para poder implementar nuestro código.

      El término número complejo describe la suma de un número real y un
número imaginario. Los números complejos se utilizan en todos los campos de las
matemáticas, en muchos de la física (y notoriamente en la mecánica cuántica) y
en ingeniería, especialmente en la electrónica y las telecomunicaciones, por su
utilidad para representar las ondas electromagnéticas y la corriente eléctrica.



Los números complejos representan todas las raíces de los polinomios, a
diferencia de los reales.Los números complejos son la herramienta de trabajo del
álgebra ordinaria, llamada álgebra de los números complejos, así como de ramas
de las matemáticas puras y aplicadas como variable compleja, aerodinámica y
electromagnetismo entre otras de gran importancia.Contienen a los números
reales y los imaginarios puros y constituyen una de las construcciones teóricas
más         importantes          de         la        inteligencia        humana.



      Los Números Complejos surgen al resolver ecuaciones algebraicas en las
que hay que calcular raíces cuadradas de números negativos.
MARCO TEORICO

      Los Números Complejos surgen al resolver ecuaciones algebraicas en las
que hay que calcular raíces cuadradas de números negativos.

Algo parecido les ocurrió a los pitagóricos al intentar medir la diagonal de un
cuadrado de lado 1, se dieron cuenta que no había ningún número (sólo conocían
los números naturales y fraccionarios) que midiese la diagonal. Esto dio origen a
los números reales.

      Los números naturales, enteros, fraccionarios y reales se pueden
representar comopuntos de una recta (la recta de los números reales).

      Los Números Complejos podemos imaginarlos como puntos de un plano (el
plano de los números complejos). En ese plano podemos trazar unos ejes
perpendiculares que nos sirvan de referencia para localizar los puntos del plano.

      Lo habitual es utilizar las coordenadas del punto (x,y). Cuando
representamos un número complejo de esta forma decimos que está en forma
cartesiana.Esta interpretación de los números complejos (considerarlos puntos en
un plano) se debe a Gauss y a Hamilton.

      También se suele utilizar un vector para localizar el punto.En un vector con
principio en el origen de coordenadas y fin en el punto, identifica el punto de una
manera inequívoca.

      Al extremo del vector se le llama Afijo del complejo.Ese vector lo podemos
descomponer en dos vectores: un vector con principio en el origen de
coordenadas y fin el valor de la abscisa del punto (x,y), y otro vector con principio
el origen de coordenadas y fin la ordenada del punto (x,y).

Entonces el punto se representaría como una suma de vectores a + b.

      Si definimos unos vectores unitarios sobre el Eje X o Real, ya que en el
representamos la Parte Real del número complejo y sobre el eje Y o Eje
Imaginario, representamos la parte Imaginaria. Entonces podemos representar el
número de esta forma xr + yi.

       Los vectores r e i tienen módulo 1, además el vector i se define cumpliendo
esta condición: i2 = -1.

       Cómo r tiene módulo 1 y sus potencias también son 1, no se escribe,
quedando por lo tanto el número en la forma x + yi. Esta forma de representar un
número complejo se llama Forma Binaria.
DESARROLLO
El programa se desarrollo en netBeans para resolver todas las operaciones que
efectúa el programa de Numeros Complejos este programa lo logramos elaborar
mediante pseudocódigos y algoritmos.

Primero declaramos nuestras variables generales, las que ocuparemos durante
todo nuestro desarrollo de código.


             publicclassNComplejosextendsjavax.swin
             g.JFrame {


             double r1, r2,im1,im2,n;
                 String resultadosop="";
             publicNComplejos() {
             initComponents();
                 }




Les asignamos valores a nuestros botones cada uno tendrá un valor k utilizaremos
para resolver las operaciones.


        jLabel1.setText("Real");

                   jLabel2.setText("Imaginario");

                   jLabel3.setText("+");

                   jLabel4.setText("Z1 = ");

                   jLabel5.setText("Z2 = ");

                   jLabel6.setText("+");

                   jLabel7.setText("i");

                   jLabel8.setText("i");
Les asignamos valores a los botones, a cada uno le toca diferente operación.

     jButton1.setText("Operaciones + - / *");
             jButton1.addActionListener(newjava.awt.event.ActionListener()   {
     publicvoidactionPerformed(java.awt.event.ActionEventevt) {
                     jButton1ActionPerformed(evt);
                 }
             });
             jButton2.setText("Potencia Z1");
             jButton2.addActionListener(newjava.awt.event.ActionListener()   {
     publicvoidactionPerformed(java.awt.event.ActionEventevt) {
                     jButton2ActionPerformed(evt);
              }
             });
     jButton3.setText("Raiz Z1");
             jButton3.addActionListener(newjava.awt.event.ActionListener()   {
     publicvoidactionPerformed(java.awt.event.ActionEventevt) {
                     jButton3ActionPerformed(evt);
                 }
             });
            jButton4.setText("Polar, Exp");
             jButton4.addActionListener(newjava.awt.event.ActionListener()   {
     publicvoidactionPerformed(java.awt.event.ActionEventevt) {
                     jButton4ActionPerformed(evt);
                 }
             });
             jTextArea1.setColumns(20);
             jTextArea1.setRows(5);
             jScrollPane1.setViewportView(jTextArea1);

             jButton5.setText("Potencia Z2");
             jButton5.addActionListener(newjava.awt.event.ActionListener() {
     publicvoidactionPerformed(java.awt.event.ActionEventevt) {
                     jButton5ActionPerformed(evt);
                 }
             });
             jButton6.setText("Raiz Z2");
             jButton6.addActionListener(newjava.awt.event.ActionListener() {
     publicvoidactionPerformed(java.awt.event.ActionEventevt) {
                     jButton6ActionPerformed(evt);
                 }
             });
             jButton7.setText("raiz");
             jButton7.addActionListener(newjava.awt.event.ActionListener() {
     publicvoidactionPerformed(java.awt.event.ActionEventevt) {
                     jButton7ActionPerformed(evt);
                 }
             });
             jButton8.setText("raiz");
             jButton8.addActionListener(newjava.awt.event.ActionListener() {
     publicvoidactionPerformed(java.awt.event.ActionEventevt) {
                     jButton8ActionPerformed(evt);
                 }
             });
             jButton9.setText("raiz");
             jButton9.addActionListener(newjava.awt.event.ActionListener() {
     publicvoidactionPerformed(java.awt.event.ActionEventevt) {
                     jButton9ActionPerformed(evt);
                 }
             });
             jButton10.setText("raiz");
             jButton10.addActionListener(newjava.awt.event.ActionListener() {
     publicvoidactionPerformed(java.awt.event.ActionEventevt) {
                     jButton10ActionPerformed(evt);
                 }
             });
Nuestro método para determinar la potencia de nuestro primer numero de los
números complejos.


 privatevoid jButton2ActionPerformed(java.awt.event.ActionEventevt)

 {//GEN-FIRST:event_jButton2ActionPerformed
 resultadosop = "";
         r1=Double.parseDouble(jTextField1.getText());
         im1=Double.parseDouble(jTextField2.getText());
         n=Float.parseFloat(JOptionPane.showInputDialog("Elevado a la potencia : "));
 doubler,teta;
         r=Math.sqrt(r1*r1+im1*im1);
         teta =Math.atan2(im1,r1);
         teta = teta/Math.PI;
         r=Math.pow(r, n);
         teta = teta*n;
 resultadosop+="El resultado Z1^"+n+" es: nn" +r+" [ cos (" + teta+" pi ) + j sen (
 "+teta+" pi) ]n";
        jTextArea1.setText(resultadosop);

 }//GEN-LAST:event_jButton2ActionPerformed




Creamos nuestro método el que realizara las operaciones básicas como suma,
resta, multiplicación y división.




privatevoid jButton1ActionPerformed(java.awt.event.ActionEventevt) {//GEN-
FIRST:event_jButton1ActionPerformed
resultadosop = "";
        r1=Double.parseDouble(jTextField1.getText());
        im1=Double.parseDouble(jTextField2.getText());
        r2=Double.parseDouble(jTextField3.getText());
        im2=Double.parseDouble(jTextField4.getText());
resultadosop+="Z1="+r1+" + "+im1+" j , Z2="+r2+" + "+im2+" jnn";
        suma(r1,im1,r2,im2);
        resta(r1,im1,r2,im2);
mult(r1,im1,r2,im2);
        div(r1,im1,r2,im2);
        jTextArea1.setText(resultadosop);
}//GEN-LAST:event_jButton1ActionPerformed
De ahí nuestro método para sacar la raíz de nuestro primer numero de los
números complejos.

 privatevoid jButton3ActionPerformed(java.awt.event.ActionEventevt) {//GEN-
 FIRST:event_jButton3ActionPerformed
 resultadosop = "";
         r1=Double.parseDouble(jTextField1.getText());
         im1=Double.parseDouble(jTextField2.getText());
         n=Float.parseFloat(JOptionPane.showInputDialog("Elevado ala raiz(4 = 1/4) :
 "));
 doublenn= 1/n;
 double r,teta,teta2;
         r=Math.sqrt(r1*r1+im1*im1);
         teta =Math.atan2(im1,r1);
         teta = teta/Math.PI;
         r=Math.pow(r, nn);
 resultadosop = "Z1^(1/"+n+")";
 for(int i=0;i<n;i++){
             teta2 = ((2*Math.PI*i)+teta)/n;
 resultadosop+="n W "+i+" = "+r+" [ cos (" + teta2+" pi ) + j sen ( "+teta2+" pi )
 ]";
         }
         jTextArea1.setText(resultadosop);
 }//GEN-LAST:event_jButton3ActionPerformed




Realizamos nuestro código para sacar la exponenciación, también agregamos la
forma cartesiana, la forma polar y muestra el conjugado de nuestro primer numero.


 privatevoid jButton4ActionPerformed(java.awt.event.ActionEventevt) {//GEN-
 FIRST:event_jButton4ActionPerformed
 resultadosop = "";
         r1=Double.parseDouble(jTextField1.getText());
         im1=Double.parseDouble(jTextField2.getText());
 doubler,teta;
         r=Math.sqrt(r1*r1+im1*im1);
         teta =Math.atan2(im1,r1);
         teta = teta/Math.PI;
 resultadosop+="Forma Cartesiana : Z1="+r1+" + "+im1+" j n";
 resultadosop+="Forma Polar(Trigonometrica) : Z1=" +r+" [ cos (" + teta+" pi) + j
 sen ( "+teta+" pi ) ]n";
 resultadosop+="Forma Exponencial : Z1=" +r+" exp { j " + teta+" pi }n";
 resultadosop+="Conjugado : Z1="+r1+" + "+im1*(-1)+" jn";
         jTextArea1.setText(resultadosop);
 }//GEN-LAST:event_jButton4ActionPerformed
Ahora haremos un método de potenciación para nuestro segundo numero.

 privatevoid jButton5ActionPerformed(java.awt.event.ActionEventevt) {//GEN-
 FIRST:event_jButton5ActionPerformed
 resultadosop = "";
         r2=Double.parseDouble(jTextField3.getText());
         im2=Double.parseDouble(jTextField4.getText());
         n=Float.parseFloat(JOptionPane.showInputDialog("Elevado a la potencia :
 "));
 double rr,teta2;
 rr=Math.sqrt(r2*r2+im2*im2);
         teta2 =Math.atan2(im2,r2);
 rr=Math.pow(rr, n);
         teta2 = teta2/Math.PI;
         teta2 = teta2*n;
 resultadosop+="nEl resultado Z2^"+n+"es: nn" +rr+" [ cos (" + teta2+" pi ) +
 j sen ( "+teta2+" pi ) ]n";
         jTextArea1.setText(resultadosop);
 }//GEN-LAST:event_jButton5ActionPerformed




Aquí mostramos el método para nuestra raíz de nuestro segundo numero.

 privatevoid jButton6ActionPerformed(java.awt.event.ActionEventevt) {//GEN-
 FIRST:event_jButton6ActionPerformed
 resultadosop = "";
         r1=Double.parseDouble(jTextField3.getText());
         im1=Double.parseDouble(jTextField4.getText());
         n=Float.parseFloat(JOptionPane.showInputDialog("Elevado a la raiz(4 =
 1/4) : "));
 doublenn= 1/n;
 double r,teta,teta2;
         r=Math.sqrt(r1*r1+im1*im1);
         teta =Math.atan2(im1,r1);
         r=Math.pow(r, nn);
         teta = teta/Math.PI;
 resultadosop = "Z1^(1/"+n+")";
 for(int i=0;i<n;i++){
             teta2 = ((2*Math.PI*i)+teta)/n;
 resultadosop+="n W "+i+" : "+r+" [ cos (" + teta2+" pi ) + j sen ( "+teta2+" pi
 ) ]";
         }
         jTextArea1.setText(resultadosop);
 }//GEN-LAST:event_jButton6ActionPerformed
Este es nuestro método para sacar la suma de números complejos.
 privatevoidsuma(double r1, double im1, double r2, double im2) {
 doubler,i;
         r=r1+r2;
 i=im1+im2;
 resultadosop+="nLasumaes: " +r+" + " + i+" j ";
     }




Aquí encontramos como realizar nuestro método de resta de números complejos.

 privatevoidresta(double r1, double im1, double r2, double im2) {
 doubler,i;
         r=r1-r2;
 i=im1-im2;
 resultadosop+="nLarestaes: " +r+" + " + i+" j ";
     }




Después realizamos un método para la multiplicación de números complejos.

 privatevoidmult(double r1, double im1, double r2, double im2) {
 doubler,i;
         r=r1*r2 - im1*im2;
 i=r1*im2 + im1*r2;
 resultadosop+="nLamultiplicaciones: " +r+" + " + i+" j ";
     }




Por ultimo de nuestra clase nComplejos realizamos un método para la división de
números complejos.

 privatevoid div(double r1, double im1, double r2, double im2) {
 doubler,i,divi;
 divi=r2*r2+im2*im2;
         r=(r1*r2 + im1*im2)/divi;
 i=(im1*r2-r1*im2)/divi;
 resultadosop+="nLa division es: " +r+" + " + i+" j n";
     }
RESULTADOS
Aquí se muestra como realiza las operaciones básicas de la operación insertada
de números complejos.




Cuando seleccionamos la opción de potencias, nos muestra el siguiente cuadro
donde nos muestra o nos pide la potencia a la cual lo elevaremos.
Después nos muestra el resultado en potencia.




Después si le ponemos raíz de z1 nos manda el siguiente cuadro:




Después si le ponemos la opción de potencia de z2 nos aparece:
Si le damos la opción de raíz de z2 le insertamos a la potencia que queremos
elevarlo:




Si le damos la opción de polar, exponenciación, conjugado nos muestra lo
siguiente:
CONCLUSIÓN
     Pues puedo decir que con la elaboración de este programa aprendimos
mucho mas aparte de los conceptos dados en clase.

     Porque los conceptos los pudimos llevar a la practica, con un poco de
esfuerzo y estudio pudimos realizar este programa que no estuvo nada fácil,
porque si hubo varias dudas y había cosas que no terminábamos de
comprender.

     Pero con la ayuda del docente y de algunos libros, internet, incluso
preguntando a otros docentes pudimos lograr una elaboración buena, no
tanto como hubiéramos querido pero logramos hacer un buen trabajo.

     La calificación hacia este programa no fue como nosotros la
esperábamos pero nos entretuvimos un buen rato para lograrlo.
RECOMENDACIONES


Como recomendación podemos sugerir lo siguiente:



      Practicar los temas que se incluyen en el software



      Consultar más fuentes de información con diferentes autores



      Estudiar los principios de programación para comprender de mejor manera
      el programa.

Weitere ähnliche Inhalte

Was ist angesagt?

Tap u2-componentes y librerias-programa para cifrar y descifrar cadenas
Tap u2-componentes y librerias-programa para cifrar y descifrar cadenasTap u2-componentes y librerias-programa para cifrar y descifrar cadenas
Tap u2-componentes y librerias-programa para cifrar y descifrar cadenasJosé Antonio Sandoval Acosta
 
Funciones con arrays y vectores en c
Funciones con arrays y vectores en cFunciones con arrays y vectores en c
Funciones con arrays y vectores en cDiego Maxdj Chicaiza
 
Proyecto tres en_raya_f_inal_mathias_y_grupo
Proyecto tres en_raya_f_inal_mathias_y_grupoProyecto tres en_raya_f_inal_mathias_y_grupo
Proyecto tres en_raya_f_inal_mathias_y_grupoRobertho Mathias
 
Funciones con vectores y matrices
Funciones con vectores y matricesFunciones con vectores y matrices
Funciones con vectores y matricespaulinaguec
 
Ejercicios en Netbeans
Ejercicios en NetbeansEjercicios en Netbeans
Ejercicios en Netbeansedgar muñoz
 
ESTRUCTURAS ARRAYS Y DATOS C++
ESTRUCTURAS ARRAYS Y DATOS C++ESTRUCTURAS ARRAYS Y DATOS C++
ESTRUCTURAS ARRAYS Y DATOS C++Riki Tapia
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datosRiki Tapia
 
visual Basic silverio y misael
visual Basic silverio y misaelvisual Basic silverio y misael
visual Basic silverio y misaelmisael1514
 
Funciones con vectores y matrices
Funciones con vectores y matricesFunciones con vectores y matrices
Funciones con vectores y matricesJohanna Marin
 
SCJP, Clase 7: Generics
SCJP, Clase 7: GenericsSCJP, Clase 7: Generics
SCJP, Clase 7: Genericsflekoso
 
Algoritmos condicionales..
Algoritmos condicionales..Algoritmos condicionales..
Algoritmos condicionales..linderburillo
 

Was ist angesagt? (20)

Tap u2-componentes y librerias-programa para cifrar y descifrar cadenas
Tap u2-componentes y librerias-programa para cifrar y descifrar cadenasTap u2-componentes y librerias-programa para cifrar y descifrar cadenas
Tap u2-componentes y librerias-programa para cifrar y descifrar cadenas
 
Elemento 4
Elemento 4Elemento 4
Elemento 4
 
Funciones con arrays y vectores en c
Funciones con arrays y vectores en cFunciones con arrays y vectores en c
Funciones con arrays y vectores en c
 
Proyecto tres en_raya_f_inal_mathias_y_grupo
Proyecto tres en_raya_f_inal_mathias_y_grupoProyecto tres en_raya_f_inal_mathias_y_grupo
Proyecto tres en_raya_f_inal_mathias_y_grupo
 
Acciones funciones
Acciones funcionesAcciones funciones
Acciones funciones
 
Funciones con vectores y matrices
Funciones con vectores y matricesFunciones con vectores y matrices
Funciones con vectores y matrices
 
Ejemplo de aplicación cliente-servidor en C#
Ejemplo de aplicación cliente-servidor  en C#Ejemplo de aplicación cliente-servidor  en C#
Ejemplo de aplicación cliente-servidor en C#
 
Ejercicios en Netbeans
Ejercicios en NetbeansEjercicios en Netbeans
Ejercicios en Netbeans
 
Arreglos C#
Arreglos C#Arreglos C#
Arreglos C#
 
Awt
AwtAwt
Awt
 
Clase8popu
Clase8popuClase8popu
Clase8popu
 
ESTRUCTURAS ARRAYS Y DATOS C++
ESTRUCTURAS ARRAYS Y DATOS C++ESTRUCTURAS ARRAYS Y DATOS C++
ESTRUCTURAS ARRAYS Y DATOS C++
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Misael
MisaelMisael
Misael
 
Elemento n3
Elemento n3Elemento n3
Elemento n3
 
visual Basic silverio y misael
visual Basic silverio y misaelvisual Basic silverio y misael
visual Basic silverio y misael
 
Funciones con vectores y matrices
Funciones con vectores y matricesFunciones con vectores y matrices
Funciones con vectores y matrices
 
Programas Propuestos Capítulo IV
Programas Propuestos Capítulo IVProgramas Propuestos Capítulo IV
Programas Propuestos Capítulo IV
 
SCJP, Clase 7: Generics
SCJP, Clase 7: GenericsSCJP, Clase 7: Generics
SCJP, Clase 7: Generics
 
Algoritmos condicionales..
Algoritmos condicionales..Algoritmos condicionales..
Algoritmos condicionales..
 

Ähnlich wie Primer programa documentado de algebra

Ähnlich wie Primer programa documentado de algebra (20)

Gestion de la Memoria Final!!!!!.docx
Gestion de la Memoria Final!!!!!.docxGestion de la Memoria Final!!!!!.docx
Gestion de la Memoria Final!!!!!.docx
 
Codigo ejercicios
Codigo ejerciciosCodigo ejercicios
Codigo ejercicios
 
Unidad temática v
Unidad temática vUnidad temática v
Unidad temática v
 
Introduccion a JAVA
Introduccion a JAVAIntroduccion a JAVA
Introduccion a JAVA
 
Ejercicios tema1
Ejercicios tema1Ejercicios tema1
Ejercicios tema1
 
Arreglos bidimensionales Java parte 4
Arreglos bidimensionales Java parte 4Arreglos bidimensionales Java parte 4
Arreglos bidimensionales Java parte 4
 
Temaswing
TemaswingTemaswing
Temaswing
 
Programa arreglos 2
Programa arreglos 2Programa arreglos 2
Programa arreglos 2
 
In 21
In 21In 21
In 21
 
Manejo de eventos en java
Manejo de eventos en javaManejo de eventos en java
Manejo de eventos en java
 
Programación i
Programación iProgramación i
Programación i
 
Resolución de problemas con java
Resolución de problemas con javaResolución de problemas con java
Resolución de problemas con java
 
Programa calculadora
Programa calculadoraPrograma calculadora
Programa calculadora
 
Taller de repaso de metodos y arreglos
Taller de repaso de metodos y arreglosTaller de repaso de metodos y arreglos
Taller de repaso de metodos y arreglos
 
C# calculadora
C# calculadoraC# calculadora
C# calculadora
 
Programa arreglos 1
Programa arreglos 1Programa arreglos 1
Programa arreglos 1
 
Interfaz gráfica de usuario
Interfaz gráfica de usuarioInterfaz gráfica de usuario
Interfaz gráfica de usuario
 
Java problems
Java problemsJava problems
Java problems
 
REPORTES JASPERREPORT E IREPORT SIN CONEXIÓN A UNA BBDD
REPORTES JASPERREPORT E IREPORT SIN CONEXIÓN A UNA BBDDREPORTES JASPERREPORT E IREPORT SIN CONEXIÓN A UNA BBDD
REPORTES JASPERREPORT E IREPORT SIN CONEXIÓN A UNA BBDD
 
Mingo santiago
Mingo santiagoMingo santiago
Mingo santiago
 

Primer programa documentado de algebra

  • 1. INSTITUTO TECNOLÓGICO SUPERIOR DE MISANTLA INGENIERÍA EN TECNOLOGIAS DE LA INFORMACION Y COMUNICACIONES ALGEBRA LINEAL UNIDAD I NUMEROS COMPLEJOS Reporte del tema: DOCUMENTACION DE PROGRAMA Alumnos: RITA IBETT TRUJILLO ORTIZ OSCAR SANCHEZ MOLINA FRANCISCO ADOLFO AGUILAR GOMEZ Docente: DR. SIMON PEDRO ARGUIJO HERNANDEZ Fecha de entrega: 9 DE ENERODE 2012
  • 2. DOCUMENTACION DEL PROGRAMA DE NUMEROS COMPLEJOS INTRODUCCIÓN ................................................................................................................................... 3 MARCO TEORICO ................................................................................................................................ 4 DESARROLLO ....................................................................................................................................... 6 RESULTADOS ..................................................................................................................................... 12 CONCLUSIÓN..................................................................................................................................... 15 RECOMENDACIONES ........................................................................................................................ 16
  • 3. INTRODUCCIÓN En esta primera unidad de Algebra Lineal estuvimos viendo Numero Complejos el manejo de suma, resta, multiplicación, división, potenciación y raíz.Y para facilitar la realización de estas operaciones el docente nos puso a hacer un programa que nos ayudara, aparte de que contaba para nuestra calificación. Pues para empezar tuvimos que investigar sobre el tema, para eso el docente durante las clases nos estuvo explicando cada paso de como realizar cada operación y para pasarlo a java tuvimos que buscar en internet información para poder implementar nuestro código. El término número complejo describe la suma de un número real y un número imaginario. Los números complejos se utilizan en todos los campos de las matemáticas, en muchos de la física (y notoriamente en la mecánica cuántica) y en ingeniería, especialmente en la electrónica y las telecomunicaciones, por su utilidad para representar las ondas electromagnéticas y la corriente eléctrica. Los números complejos representan todas las raíces de los polinomios, a diferencia de los reales.Los números complejos son la herramienta de trabajo del álgebra ordinaria, llamada álgebra de los números complejos, así como de ramas de las matemáticas puras y aplicadas como variable compleja, aerodinámica y electromagnetismo entre otras de gran importancia.Contienen a los números reales y los imaginarios puros y constituyen una de las construcciones teóricas más importantes de la inteligencia humana. Los Números Complejos surgen al resolver ecuaciones algebraicas en las que hay que calcular raíces cuadradas de números negativos.
  • 4. MARCO TEORICO Los Números Complejos surgen al resolver ecuaciones algebraicas en las que hay que calcular raíces cuadradas de números negativos. Algo parecido les ocurrió a los pitagóricos al intentar medir la diagonal de un cuadrado de lado 1, se dieron cuenta que no había ningún número (sólo conocían los números naturales y fraccionarios) que midiese la diagonal. Esto dio origen a los números reales. Los números naturales, enteros, fraccionarios y reales se pueden representar comopuntos de una recta (la recta de los números reales). Los Números Complejos podemos imaginarlos como puntos de un plano (el plano de los números complejos). En ese plano podemos trazar unos ejes perpendiculares que nos sirvan de referencia para localizar los puntos del plano. Lo habitual es utilizar las coordenadas del punto (x,y). Cuando representamos un número complejo de esta forma decimos que está en forma cartesiana.Esta interpretación de los números complejos (considerarlos puntos en un plano) se debe a Gauss y a Hamilton. También se suele utilizar un vector para localizar el punto.En un vector con principio en el origen de coordenadas y fin en el punto, identifica el punto de una manera inequívoca. Al extremo del vector se le llama Afijo del complejo.Ese vector lo podemos descomponer en dos vectores: un vector con principio en el origen de coordenadas y fin el valor de la abscisa del punto (x,y), y otro vector con principio el origen de coordenadas y fin la ordenada del punto (x,y). Entonces el punto se representaría como una suma de vectores a + b. Si definimos unos vectores unitarios sobre el Eje X o Real, ya que en el representamos la Parte Real del número complejo y sobre el eje Y o Eje
  • 5. Imaginario, representamos la parte Imaginaria. Entonces podemos representar el número de esta forma xr + yi. Los vectores r e i tienen módulo 1, además el vector i se define cumpliendo esta condición: i2 = -1. Cómo r tiene módulo 1 y sus potencias también son 1, no se escribe, quedando por lo tanto el número en la forma x + yi. Esta forma de representar un número complejo se llama Forma Binaria.
  • 6. DESARROLLO El programa se desarrollo en netBeans para resolver todas las operaciones que efectúa el programa de Numeros Complejos este programa lo logramos elaborar mediante pseudocódigos y algoritmos. Primero declaramos nuestras variables generales, las que ocuparemos durante todo nuestro desarrollo de código. publicclassNComplejosextendsjavax.swin g.JFrame { double r1, r2,im1,im2,n; String resultadosop=""; publicNComplejos() { initComponents(); } Les asignamos valores a nuestros botones cada uno tendrá un valor k utilizaremos para resolver las operaciones. jLabel1.setText("Real"); jLabel2.setText("Imaginario"); jLabel3.setText("+"); jLabel4.setText("Z1 = "); jLabel5.setText("Z2 = "); jLabel6.setText("+"); jLabel7.setText("i"); jLabel8.setText("i");
  • 7. Les asignamos valores a los botones, a cada uno le toca diferente operación. jButton1.setText("Operaciones + - / *"); jButton1.addActionListener(newjava.awt.event.ActionListener() { publicvoidactionPerformed(java.awt.event.ActionEventevt) { jButton1ActionPerformed(evt); } }); jButton2.setText("Potencia Z1"); jButton2.addActionListener(newjava.awt.event.ActionListener() { publicvoidactionPerformed(java.awt.event.ActionEventevt) { jButton2ActionPerformed(evt); } }); jButton3.setText("Raiz Z1"); jButton3.addActionListener(newjava.awt.event.ActionListener() { publicvoidactionPerformed(java.awt.event.ActionEventevt) { jButton3ActionPerformed(evt); } }); jButton4.setText("Polar, Exp"); jButton4.addActionListener(newjava.awt.event.ActionListener() { publicvoidactionPerformed(java.awt.event.ActionEventevt) { jButton4ActionPerformed(evt); } }); jTextArea1.setColumns(20); jTextArea1.setRows(5); jScrollPane1.setViewportView(jTextArea1); jButton5.setText("Potencia Z2"); jButton5.addActionListener(newjava.awt.event.ActionListener() { publicvoidactionPerformed(java.awt.event.ActionEventevt) { jButton5ActionPerformed(evt); } }); jButton6.setText("Raiz Z2"); jButton6.addActionListener(newjava.awt.event.ActionListener() { publicvoidactionPerformed(java.awt.event.ActionEventevt) { jButton6ActionPerformed(evt); } }); jButton7.setText("raiz"); jButton7.addActionListener(newjava.awt.event.ActionListener() { publicvoidactionPerformed(java.awt.event.ActionEventevt) { jButton7ActionPerformed(evt); } }); jButton8.setText("raiz"); jButton8.addActionListener(newjava.awt.event.ActionListener() { publicvoidactionPerformed(java.awt.event.ActionEventevt) { jButton8ActionPerformed(evt); } }); jButton9.setText("raiz"); jButton9.addActionListener(newjava.awt.event.ActionListener() { publicvoidactionPerformed(java.awt.event.ActionEventevt) { jButton9ActionPerformed(evt); } }); jButton10.setText("raiz"); jButton10.addActionListener(newjava.awt.event.ActionListener() { publicvoidactionPerformed(java.awt.event.ActionEventevt) { jButton10ActionPerformed(evt); } });
  • 8. Nuestro método para determinar la potencia de nuestro primer numero de los números complejos. privatevoid jButton2ActionPerformed(java.awt.event.ActionEventevt) {//GEN-FIRST:event_jButton2ActionPerformed resultadosop = ""; r1=Double.parseDouble(jTextField1.getText()); im1=Double.parseDouble(jTextField2.getText()); n=Float.parseFloat(JOptionPane.showInputDialog("Elevado a la potencia : ")); doubler,teta; r=Math.sqrt(r1*r1+im1*im1); teta =Math.atan2(im1,r1); teta = teta/Math.PI; r=Math.pow(r, n); teta = teta*n; resultadosop+="El resultado Z1^"+n+" es: nn" +r+" [ cos (" + teta+" pi ) + j sen ( "+teta+" pi) ]n"; jTextArea1.setText(resultadosop); }//GEN-LAST:event_jButton2ActionPerformed Creamos nuestro método el que realizara las operaciones básicas como suma, resta, multiplicación y división. privatevoid jButton1ActionPerformed(java.awt.event.ActionEventevt) {//GEN- FIRST:event_jButton1ActionPerformed resultadosop = ""; r1=Double.parseDouble(jTextField1.getText()); im1=Double.parseDouble(jTextField2.getText()); r2=Double.parseDouble(jTextField3.getText()); im2=Double.parseDouble(jTextField4.getText()); resultadosop+="Z1="+r1+" + "+im1+" j , Z2="+r2+" + "+im2+" jnn"; suma(r1,im1,r2,im2); resta(r1,im1,r2,im2); mult(r1,im1,r2,im2); div(r1,im1,r2,im2); jTextArea1.setText(resultadosop); }//GEN-LAST:event_jButton1ActionPerformed
  • 9. De ahí nuestro método para sacar la raíz de nuestro primer numero de los números complejos. privatevoid jButton3ActionPerformed(java.awt.event.ActionEventevt) {//GEN- FIRST:event_jButton3ActionPerformed resultadosop = ""; r1=Double.parseDouble(jTextField1.getText()); im1=Double.parseDouble(jTextField2.getText()); n=Float.parseFloat(JOptionPane.showInputDialog("Elevado ala raiz(4 = 1/4) : ")); doublenn= 1/n; double r,teta,teta2; r=Math.sqrt(r1*r1+im1*im1); teta =Math.atan2(im1,r1); teta = teta/Math.PI; r=Math.pow(r, nn); resultadosop = "Z1^(1/"+n+")"; for(int i=0;i<n;i++){ teta2 = ((2*Math.PI*i)+teta)/n; resultadosop+="n W "+i+" = "+r+" [ cos (" + teta2+" pi ) + j sen ( "+teta2+" pi ) ]"; } jTextArea1.setText(resultadosop); }//GEN-LAST:event_jButton3ActionPerformed Realizamos nuestro código para sacar la exponenciación, también agregamos la forma cartesiana, la forma polar y muestra el conjugado de nuestro primer numero. privatevoid jButton4ActionPerformed(java.awt.event.ActionEventevt) {//GEN- FIRST:event_jButton4ActionPerformed resultadosop = ""; r1=Double.parseDouble(jTextField1.getText()); im1=Double.parseDouble(jTextField2.getText()); doubler,teta; r=Math.sqrt(r1*r1+im1*im1); teta =Math.atan2(im1,r1); teta = teta/Math.PI; resultadosop+="Forma Cartesiana : Z1="+r1+" + "+im1+" j n"; resultadosop+="Forma Polar(Trigonometrica) : Z1=" +r+" [ cos (" + teta+" pi) + j sen ( "+teta+" pi ) ]n"; resultadosop+="Forma Exponencial : Z1=" +r+" exp { j " + teta+" pi }n"; resultadosop+="Conjugado : Z1="+r1+" + "+im1*(-1)+" jn"; jTextArea1.setText(resultadosop); }//GEN-LAST:event_jButton4ActionPerformed
  • 10. Ahora haremos un método de potenciación para nuestro segundo numero. privatevoid jButton5ActionPerformed(java.awt.event.ActionEventevt) {//GEN- FIRST:event_jButton5ActionPerformed resultadosop = ""; r2=Double.parseDouble(jTextField3.getText()); im2=Double.parseDouble(jTextField4.getText()); n=Float.parseFloat(JOptionPane.showInputDialog("Elevado a la potencia : ")); double rr,teta2; rr=Math.sqrt(r2*r2+im2*im2); teta2 =Math.atan2(im2,r2); rr=Math.pow(rr, n); teta2 = teta2/Math.PI; teta2 = teta2*n; resultadosop+="nEl resultado Z2^"+n+"es: nn" +rr+" [ cos (" + teta2+" pi ) + j sen ( "+teta2+" pi ) ]n"; jTextArea1.setText(resultadosop); }//GEN-LAST:event_jButton5ActionPerformed Aquí mostramos el método para nuestra raíz de nuestro segundo numero. privatevoid jButton6ActionPerformed(java.awt.event.ActionEventevt) {//GEN- FIRST:event_jButton6ActionPerformed resultadosop = ""; r1=Double.parseDouble(jTextField3.getText()); im1=Double.parseDouble(jTextField4.getText()); n=Float.parseFloat(JOptionPane.showInputDialog("Elevado a la raiz(4 = 1/4) : ")); doublenn= 1/n; double r,teta,teta2; r=Math.sqrt(r1*r1+im1*im1); teta =Math.atan2(im1,r1); r=Math.pow(r, nn); teta = teta/Math.PI; resultadosop = "Z1^(1/"+n+")"; for(int i=0;i<n;i++){ teta2 = ((2*Math.PI*i)+teta)/n; resultadosop+="n W "+i+" : "+r+" [ cos (" + teta2+" pi ) + j sen ( "+teta2+" pi ) ]"; } jTextArea1.setText(resultadosop); }//GEN-LAST:event_jButton6ActionPerformed
  • 11. Este es nuestro método para sacar la suma de números complejos. privatevoidsuma(double r1, double im1, double r2, double im2) { doubler,i; r=r1+r2; i=im1+im2; resultadosop+="nLasumaes: " +r+" + " + i+" j "; } Aquí encontramos como realizar nuestro método de resta de números complejos. privatevoidresta(double r1, double im1, double r2, double im2) { doubler,i; r=r1-r2; i=im1-im2; resultadosop+="nLarestaes: " +r+" + " + i+" j "; } Después realizamos un método para la multiplicación de números complejos. privatevoidmult(double r1, double im1, double r2, double im2) { doubler,i; r=r1*r2 - im1*im2; i=r1*im2 + im1*r2; resultadosop+="nLamultiplicaciones: " +r+" + " + i+" j "; } Por ultimo de nuestra clase nComplejos realizamos un método para la división de números complejos. privatevoid div(double r1, double im1, double r2, double im2) { doubler,i,divi; divi=r2*r2+im2*im2; r=(r1*r2 + im1*im2)/divi; i=(im1*r2-r1*im2)/divi; resultadosop+="nLa division es: " +r+" + " + i+" j n"; }
  • 12. RESULTADOS Aquí se muestra como realiza las operaciones básicas de la operación insertada de números complejos. Cuando seleccionamos la opción de potencias, nos muestra el siguiente cuadro donde nos muestra o nos pide la potencia a la cual lo elevaremos.
  • 13. Después nos muestra el resultado en potencia. Después si le ponemos raíz de z1 nos manda el siguiente cuadro: Después si le ponemos la opción de potencia de z2 nos aparece:
  • 14. Si le damos la opción de raíz de z2 le insertamos a la potencia que queremos elevarlo: Si le damos la opción de polar, exponenciación, conjugado nos muestra lo siguiente:
  • 15. CONCLUSIÓN Pues puedo decir que con la elaboración de este programa aprendimos mucho mas aparte de los conceptos dados en clase. Porque los conceptos los pudimos llevar a la practica, con un poco de esfuerzo y estudio pudimos realizar este programa que no estuvo nada fácil, porque si hubo varias dudas y había cosas que no terminábamos de comprender. Pero con la ayuda del docente y de algunos libros, internet, incluso preguntando a otros docentes pudimos lograr una elaboración buena, no tanto como hubiéramos querido pero logramos hacer un buen trabajo. La calificación hacia este programa no fue como nosotros la esperábamos pero nos entretuvimos un buen rato para lograrlo.
  • 16. RECOMENDACIONES Como recomendación podemos sugerir lo siguiente: Practicar los temas que se incluyen en el software Consultar más fuentes de información con diferentes autores Estudiar los principios de programación para comprender de mejor manera el programa.