4/11/09

Clase Numero Complejo - Suma, Resta, Producto


El término número complejo describe la suma de un número real y un número imaginario (que es un múltiplo real de la unidad imaginaria, que se indica con la letra i).

En matemáticas, los números constituyen un cuerpo y, en general, se consideran como puntos del plano: el plano complejo. La propiedad más importante que caracteriza a los números complejos es el teorema fundamental del álgebra, que afirma que cualquier ecuación algebraica de grado n tiene exactamente n soluciones complejas.

Un número complejo se representa en forma binomial como:
    z = a + bi
donde:
  • "a" es la parte real
  • "b" es la parte imaginaria

Suma.

La suma z + w de los números complejos z = a + b i, w = c + d i, es el número complejo

z + w = (a + b i) + (c + d i) = (a + c) + (b + d) i
ejemplo:
(4 + 3 i) + (5 + 9 i) = (4 + 5) + (3 + 9) i = 9 + 12 i

Resta.

La resta  z – w de los números complejos z = a + b i, w = c + d i, es la suma de z y del inverso aditivo de w

z - w = z + (-w) = (a + b i) + (-c - d i) = (a - c) + (b - d) i
ejemplo:
(9 - 5i) - (4 + 7i) = (9 - 4) + (+5 - 7)i = 5 - 2i.

Producto.
(a + bi ) (c + di ) = (ac - bd) + (ad + bc)i

ejemplo
                                   (2 + 3i)(4 + 7i)= 2*4 + 2*7i + 4*3i + 3*7*i2
                                                        = 8 + 14i + 12i + 21*(-1)
                                                        = (8 - 21) + (14 + 12)i
                                                        = -13 + 26i.

Recordando las reglas para operar con numeros complejos, diseñaremos nuestra clase "Numero Complejo".


public class Complejo { 
    private int real; 
    private int img; 
 
    public Complejo (){ 
        real=0; 
        img=0; 
    } 
     
    public Complejo(double r, double i){ 
        real =(int) r; 
        img = (int)i; 
    } 
     
    public Complejo(int r, int i){ 
        real = r; 
        img = i; 
    } 
     
    public Complejo sumar(Complejo c){ 
/** 
     * Metodo que devuelve la suma de dos complejos 
     * @param  Un numero complejo c 
     * @return La suma de complejos en r 
     */ 
        Complejo r= new Complejo(); 
        r.setReal(real + c.getReal()); 
        r.setImg(img + c.getImg()); 
        return r; 
    } 
    public Complejo restar(Complejo c){ 
/** 
     * Metodo que devuelve la resta de dos complejos 
     * @param  El numero complejo c a restar 
     * @return La resta de complejos en r 
     */         
        Complejo r= new Complejo(); 
        r.setReal(real - c.getReal()); 
        r.setImg(img - c.getImg()); 
        return r; 
    } 
 
    public Complejo multiplicar(Complejo c){ 
/** 
     * Metodo que devuelve la multiplicacion de dos complejos 
     * @param  El numero complejo c a multiplicar 
     * @return La multiplicacion de complejos en r 
     */         
        Complejo r= new Complejo(); 
        r.setReal(real*c.getReal() - img*c.getImg()); 
        r.setImg(real*c.getImg() + img*c.getReal()); 
        return r; 
    } 
 
    public int getReal() { 
        return real; 
    } 
 
    public void setReal(int real) { 
        this.real = real; 
    } 
 
    public int getImg() { 
        return img; 
    } 
 
    public void setImg(int img) { 
        this.img = img; 
    } 
     
    public String getString(){ 
/** 
     * Metodo que devuelve el numero complejo en la forma a+bi   
     * @return Un string del complejo en el formato a+bi 
     */         
        if (this.img>=0) return " "+this.real+" + "+this.img+"i"; 
        else return " "+this.real+" "+this.img+"i"; 
    } 
     
} 



Explicacion:
Disponemos de dos variables "real" e "img"


de 3 constructores "complejo", uno sin atributos, un segundo que espera reales y que concertira a entero y finalmente un tercero que acepta valores enteros.


Las funciones SUMAR, RESTAR Y MULTIPLICAR.



Funciones para devolver y colocar variables en los objetos.


Una funcion "getstring" que nos sirve para devolver el resultado segun el formato de los numeros complejos (a+bi).

2 comentarios:

  1. Muy limpio su codigo ;) , un saludo!!

    ResponderEliminar
  2. me marca un erro en if(this.img =>0) dice "cannot implicitly convert int to bool" , me podrias ayudar.? gracias

    ResponderEliminar