JAVA: Complex Number
Tarih: 9 Ocak 2014 Yorum: 0

(Complex Number) Write a ComplexNumber class that is similar to the RationalNumber. The class contains:

  • Private double data fields named as re and im (corresponding to real and imaginary parts, respectively).
  • The following methods
    • A constructor that creates a ComplexNumber object for the specified two double parameters (public ComplexNumber(double r, double i)
    • get methods for the real and imaginary parts (public double getReal(), public double getImaginary() )
    • public ComplexNumber reciprocal()
    • public ComplexNumber add(ComplexNumber)
    • public ComplexNumber subtract(ComplexNumber)
    • public ComplexNumber multiply(ComplexNumber)
    • public ComplexNumber divide(ComplexNumber)
    • public boolean equals(ComplexNumber)
    • public ComplexNumber conjugate()
    • public double getAngle()
    • public double getMagnitude()
    • public String toString()

Implement the class.  Write a test program that tests all methods in the class.

For any information regarding Complex Numbers you can visit Wikipedia (http://en.wikipedia.org/wiki/Complex_number).

 

ComplexNumber.java

/**
 * Complex number. 
 */
public class ComplexNumber {

    private double re, im;

    // Constructor 1
    public ComplexNumber(double r, double i){
    	this.re	= r;
    	this.im	= i;
    }

    // Get complex number real part.
    public double getReal(){
    	return this.re;
    }

    // Get complex number imaginary part.
    public double getImaginary(){
    	return this.im;
    }

    // Complex number reciprocal.
    public ComplexNumber reciprocal(){
    	double comnum1	= re / (Math.pow(re, 2) + Math.pow(im, 2));
    	double comnum2	= (im * (-1)) / (Math.pow(re, 2) + Math.pow(im, 2));
    	return new ComplexNumber(comnum1, comnum2);
    }

    // Complex number addition.
    public ComplexNumber add(ComplexNumber cn){
    	double comnum1	= re + cn.getReal();
    	double comnum2	= im + cn.getImaginary();
    	return new ComplexNumber(comnum1, comnum2);
    }

    // Complex number subtraction.
    public ComplexNumber subtract(ComplexNumber cn){
    	double comnum1	= re - cn.getReal(); 
    	double comnum2	= im - cn.getImaginary();
    	return new ComplexNumber(comnum1, comnum2);
    }

    // Complex number multiplication.
    public ComplexNumber multiply(ComplexNumber cn){
    	double comnum1	= re * cn.getReal() - im * cn.getImaginary();
    	double comnum2	= im * cn.getReal() + re * cn.getImaginary();
    	return new ComplexNumber(comnum1, comnum2);
    }

    // Complex number division.
    public ComplexNumber divide(ComplexNumber cn){
    	double comnum1	= (re * cn.getReal() + im * cn.getImaginary()) / (Math.pow(cn.getReal(), 2) + Math.pow(cn.getImaginary(), 2));  
    	double comnum2 	= (im * cn.getReal() - re * cn.getImaginary()) / (Math.pow(cn.getReal(), 2) + Math.pow(cn.getImaginary(), 2));
    	return new ComplexNumber(comnum1, comnum2);
    }

    // Complex number equations.
    public boolean equals(ComplexNumber cn){
    	boolean result;
    	if(re == cn.getReal() && im == cn.getImaginary()){
    		result = true;
    	}else{
    		result = false;
    	}
    	return result;
    }

    // Complex number conjugation.
    public ComplexNumber conjugate(){
    	return new ComplexNumber(re, im * (-1));
    }

    // Get angle.
    public double getAngle(){
    	double X = Math.toDegrees(Math.atan( im / re));
		if(re >= 0 && im > 0){
			return X;
		}else if((re < 0 && im < 0) || (re < 0 && im > 0)){
			return X + 180;
		}else{
			return X + 360;
		}
    }

    // Calculate magnitude.
    public double getMagnitude(){
    	return Math.sqrt(Math.pow(re, 2) + Math.pow(im, 2));
    }

    // toString method.
    public String toString(){
    	String result;
    	if(im == 0){
    		result = re + "";
    	}else if(re == 0){
    		result = im + "i";
    	}else if (im < 0){
    		result = re + "-" + (im * (-1)) + "i";
    	}else{
    		result = re + "+" + im + "i";
    	}
    	return result;
    }   	
} // End od class

 

ComplexNumberTest.java

/**
 * Complex number. 
 */
public class ComplexNumberTest {

	public static void main(String [] args){

		// Create ComplexNumber object.
		ComplexNumber cn1 	= new ComplexNumber(4, 3);
		ComplexNumber cn2	= new ComplexNumber(2, -2);

			// Print complex numbers.
			System.out.println("The Complex Number 1 is "+ cn1 +"\nThe Complex Number 2 is "+ cn2);

			// Print complex numbers equal.
			if(cn1.equals(cn2)){
				System.out.println("\nComplex Number 1 and Complex Number 2 are equal.");
			}else{
				System.out.println("\nComplex Number 1 and Complex Number 2 are not equal.");
			}

			// Print complex numbers reciprocal.
			System.out.println("\nThe reciprocal of Complex Number 1 is " + cn1.reciprocal());
			System.out.println("The reciprocal of Complex Number 2 is " + cn2.reciprocal());

			// Print complex numbers reciprocal.
			System.out.println("\nThe conjugate of Complex Number 1 is " + cn1.conjugate());
			System.out.println("The conjugate of Complex Number 2 is " + cn2.conjugate());

			// Print complex numbers addition, subtraction, multiplication, division.
			System.out.println("\nComplex Number 1 + Complex Number 2 is " + cn1.add(cn2));
			System.out.println("Complex Number 1 - Complex Number 2 is " + cn1.subtract(cn2));
			System.out.println("Complex Number 1 * Complex Number 2 is " + cn1.multiply(cn2));
			System.out.println("Complex Number 1 / Complex Number 2 is " + cn1.divide(cn2));

			// Pring complex numbers angle.
			System.out.println("\nThe angle of Complex Number 1 is " + cn1.getAngle());
			System.out.println("The angle of Complex Number 2 is " + cn2.getAngle());

			// Print complex numbers magnitude.
			System.out.println("\nThe magnitude of Complex Number 1 is " + cn1.getMagnitude());
			System.out.println("The magnitude of Complex Number 2 is " + cn2.getMagnitude());

	}
}



Yorum Yok:


Yorum Yap:

Yorum yapabilmek için giriş yapmalısınız.




tema yapımcısı wordpress alexa bilgileri Webmaster Creative Commons v3 ile Lisanslanmıştır!


Akif ARSLAN © 2012 - 2024
Sitede bulunan istediğiniz cümleyi veya içeriği, istediğiniz gibi, istediğiniz yerde, istediğiniz zaman ve istediğiniz kişilerle paylaşabilirsiniz.