Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

자바로 복소수 표현하고 더하기: 실수부와 허수부 연산 완벽 가이드

복소수(Complex Number)는 실수부(real part)와 허수부(imaginary part)를 함께 가지는 수입니다. 복소수는 일반적인 숫자처럼 더하기, 빼기, 곱하기, 나누기를 할 수 있으며, 이때 각각의 실수부끼리, 허수부끼리 독립적으로 연산이 수행됩니다.

예를 들어 두 복소수를 더할 때는 첫 번째 수의 실수부와 두 번째 수의 실수부를 더하고, 허수부도 마찬가지 방식으로 서로 더하면 됩니다.

자바 코드 예제

아래 예제에서는 자바 클래스를 활용해 복소수를 표현하고, 두 복소수의 덧셈을 구현합니다.

public class Demo{
    double my_real;
    double my_imag;
    public Demo(double my_real, double my_imag){
        this.my_real = my_real;
        this.my_imag = my_imag;
    }
    public static void main(String[] args){
        Demo n1 = new Demo(76.8, 24.0),
        n2 = new Demo(65.9, 11.23),
        temp;
        temp = add(n1, n2);
        System.out.printf("The sum of two complex numbers is %.1f + %.1fi", temp.my_real,
        temp.my_imag);
    }
    public static Demo add(Demo n1, Demo n2){
        Demo temp = new Demo(0.0, 0.0);
        temp.my_real = n1.my_real + n2.my_real;
        temp.my_imag = n1.my_imag + n2.my_imag;
        return(temp);
    }
}

실행 결과

The sum of two complex numbers is 142.7 + 35.2i

코드 동작 원리

Demo 클래스 정의: Demo라는 이름의 클래스에는 double 타입의 필드 두 개인 my_real(실수부)과 my_imag(허수부)가 선언되어 있습니다. 생성자는 이 두 값을 매개변수로 받아 객체를 초기화합니다.

덧셈 메서드(add): add 메서드는 두 개의 Demo 객체를 매개변수로 받습니다. 메서드 내부에서 임시(temp) 객체를 새로 생성한 뒤, 첫 번째 객체와 두 번째 객체의 실수부를 서로 더해 임시 객체의 실수부에 저장하고, 허수부 역시 같은 방식으로 더해 저장합니다. 최종적으로 이 임시 객체가 반환됩니다.

main 메서드: main 함수 안에서는 Demo 클래스의 인스턴스 두 개(n1, n2)를 각각 생성합니다. 그다음 add 함수를 호출하여 두 복소수의 합을 구하고, 그 결과를 main 함수 내에서 생성된 임시 객체에 할당합니다.

결과 출력: 마지막으로 System.out.printf를 사용하여 계산된 결과를 콘솔에 출력합니다. 출력 형식은 "%.1f + %.1fi"로 지정되어 소수점 첫째 자리까지 표시되며, 허수부 뒤에는 'i'가 붙어 복소수 형태로 나타납니다.

마무리

이처럼 자바에서는 별도의 내장 복소수 타입이 없더라도, 클래스와 객체를 활용하면 복소수를 손쉽게 표현하고 사칙연산을 구현할 수 있습니다. 위 예제의 add 메서드를 확장하면 뺄셈(subtract), 곱셈(multiply) 등 다른 연산도 유사한 방식으로 추가할 수 있습니다. 복소수 연산은 신호 처리, 전기 공학, 과학 계산 분야에서 널리 활용되므로, 객체지향 프로그래밍 연습 겸으로 직접 구현해 보는 것도 좋은 학습 방법입니다.