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");
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.