Home > Guide > Numeri complessi Java

Numeri complessi Java

Se si hanno problemi nella visualizzazione della applet, scaricate la macchina virtuale Java dal sito della Sun all'indirizzo http://java.com/it/download/manual.jsp. Inoltre, se avete Windows XP SP2, dovete cliccare sulla barra delle informazioni e scegliere "Consenti contenuto bloccato...".

download.gif (383 byte)Complexjava.zip (11,3 kb)

L'applet sovrastante utilizza la classe Complex per effettuare operazioni con i numeri complessi. Il file zip contiene anche il codice dell'applet.

public class Complex

{

public double re,im;

 

/* Costruttori */

public Complex(){
re=0;
im=0;

}

 

public Complex(double a,double b){
re=a;
im=b;

}

 

/* Crea un numero complesso da modulo e fase */

public static Complex fromPolar(double r,double teta){
    return new Complex(r*Math.cos(teta),r*Math.sin(teta));
}

 

/* Restituiscono modulo e fase di un numero complesso */

public double abs(){
return Math.sqrt(re*re+im*im);

}

 

public double arg(){
return Math.atan2(im,re);

}

 

/* Complesso coniugato */

public Complex conjugate(){
    return new Complex(re,-im);
}

 

/* Operazioni elementari */

public Complex add(Complex b){
    return new Complex(re+b.re,im+b.im);
}

 

public Complex subtract(Complex b){
    return new Complex(re-b.re,im-b.im);
}

 

public Complex multiply(Complex b){
    return new Complex(re*b.re-im*b.im,im*b.re+re*b.im);
}

 

public Complex divide(Complex b){
    Complex w=this.multiply(b.conjugate());
    double t=b.re*b.re+b.im*b.im;
    return new Complex(w.re/t, w.im/t);
}

 

public Complex pow(int n){
    return fromPolar(Math.pow(abs(),n),arg()*n);
}

 

/* Radici di un numero complesso */

public Complex[] root(Complex z,int n){
    Complex[] roots=new Complex[n];
    for(int k=0;k<n;k++)
    {
        roots[k]=fromPolar(Math.pow(z.abs(),1/(double)n),(z.arg()+2*k*Math.PI)/n);
    }
    return roots;

}

 

}

Home
Scrivimi

Torna su
Indietro

Visite dal 17 marzo 2004

Per visualizzare al meglio il sito si consiglia di utilizzare Mozilla Firefox oppure Internet Explorer versione 5 o sucessiva alla risoluzione di 800x600 con caratteri medi.