Implementación de Números Complejos Multidimensionales en Java
Implementación de la Clase Complexf en Java
A continuación se muestra el código fuente optimizado y corregido para la gestión de números complejos con múltiples partes imaginarias en Java.
Código Fuente
package complexf;
public class Complexf {
private float part_real, part_imaginaria_1, part_imaginaria_2, part_imaginaria_3;
public Complexf(float pReal, float pImag1, float pImag2, float pImag3) {
part_real = pReal;
part_imaginaria_1 = pImag1;
part_imaginaria_2 = pImag2;
part_imaginaria_3 = pImag3;
}
private Complexf(float pR, float pI) {
throw new UnsupportedOperationException("Not yet implemented");
}
public float real() {
return part_real;
}
public float imaginaria_1(){
return part_imaginaria_1;
}
public float imaginaria_2(){
return part_imaginaria_2;
}
public float imaginaria_3(){
return part_imaginaria_3;
}
public static Complexf suma(Complexf a, Complexf b) {
return new Complexf(a.real() + b.real(),
a.imaginaria_1() + b.imaginaria_1(), a.imaginaria_2() + b.imaginaria_2(),
a.imaginaria_3() + b.imaginaria_3());
}
public static Complexf resta(Complexf a, Complexf b) {
return new Complexf(a.real() - b.real(),
a.imaginaria_1() - b.imaginaria_1(), a.imaginaria_2() - b.imaginaria_2(),
a.imaginaria_3() - b.imaginaria_3());
}
public static Complexf producte(Complexf a, Complexf b) {
float pR, pI;
pR = a.real() * b.real() + a.imaginaria_1() * b.imaginaria_1() +
a.imaginaria_2() * b.imaginaria_2() + a.imaginaria_3() * b.imaginaria_3();
pI = a.real() * b.imaginaria_1() + a.real() * b.imaginaria_2() +
a.real() * b.imaginaria_3() + b.real() * a.imaginaria_1() +
b.real() * a.imaginaria_2() + b.real() * a.imaginaria_2();
return new Complexf(pR, pI);
}
public String toString(){
return "(" + part_real + " + " + part_imaginaria_1 + "i + " + part_imaginaria_2
+ "j + " + part_imaginaria_3 + "k)";
}
public void canviReal(float nou) {
part_real = nou;
}
public void canviImag1(float nou) {
part_imaginaria_1 = nou;
}
public void canviImag2(float nou) {
part_imaginaria_2 = nou;
}
public void canviImag3(float nou) {
part_imaginaria_3 = nou;
}
public static void main(String [] args) {
Complexf a, b, c;
System.out.println("Programa que mostra la utilització dels nombres Complex");
a = new Complexf(-9, 3, 3, 5);
b = new Complexf(5, 6, 4, 7);
System.out.println();
System.out.println("/SUMA: ");
c = Complexf.suma(a, b);
System.out.println("La suma de " + a + " i " + b + " és: " + c);
System.out.println();
System.out.println("/RESTA: ");
c = Complexf.resta(a, b);
System.out.println("La resta de " + a + " i " + b + " és: " + c);
c.canviImag1(b.real());
c.canviImag2(b.real());
c.canviImag3(b.real());
System.out.println(b + " x " + c + " = " + Complexf.producte(b, c));
}
}