Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++로 선형 방정식을 행렬 형태로 표현하는 프로그램

이 글에서는 선형 연립방정식을 행렬 형태로 나타내는 C++ 프로그램을 다룹니다. 사용자로부터 변수의 개수와 각 변수의 계수를 입력받은 뒤, 이를 계수 행렬과 상수 벡터의 곱 형태인 Ax = d 구조로 출력해 줍니다.

알고리즘

시작
    1) 변수의 개수 n과 각 변수의 계수를 입력받는다.
    2) matrix[n][n] 배열과 constant[n][1] 배열을 선언한다.
    3) 이중 반복문(i = 0 ~ n-1, j = 0 ~ n-1)을 사용하여
       각 변수의 계수를 행렬의 원소로 입력받는다.
    4) 중첩된 for 루프를 통해 행렬을 화면에 출력한다.
끝

예제 코드

#include<iostream>
using namespace std;
int main(void) {
    char variable[] = { 'x', 'y', 'z', 'd' };
    cout << "Enter the number of variables in the equations: ";
    int n;
    cin >> n;
    cout << "\nEnter the coefficients of each variable for each equation, ax + by + cz + ... = d:";
    int matrix[n][n];
    int constant[n][1];
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            cin >> matrix[i][j];
        }
        cin >> constant[i][0];
    }
    cout << "Matrix representation is: "<<endl;
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            cout << " " << matrix[i][j];
        }
        cout << " " << variable[i];
        cout << " = " << constant[i][0];
        cout << "\n";
    }
    return 0;
}

코드 설명

프로그램은 먼저 변수 이름을 담은 문자 배열 variable[]을 선언하여 x, y, z 등의 변수 기호를 저장합니다. 그다음 변수의 개수 n을 입력받고, n×n 크기의 계수 행렬 matrix와 n×1 크기의 상수 열벡터 constant를 생성합니다.

이중 for 루프를 통해 각 방정식의 계수를 행 단위로 입력받으며, 한 행이 끝날 때마다 해당 방정식의 상수항도 함께 저장합니다. 마지막으로 중첩된 for 루프를 사용해 행렬의 각 행과 대응되는 변수, 그리고 등호 오른쪽의 상수를 함께 출력함으로써 방정식계를 행렬 형태로 보여줍니다.

실행 결과

Enter the number of variables in the equations: 3
Enter the coefficients of each variable for each equation,
ax + by + cz + ... = d:
1 2 3 4
5 6 7 9
8 5 2 1
Matrix representation is:
1 2 3 x = 4
5 6 7 y = 9
8 5 2 z = 1

위 실행 결과에서 볼 수 있듯이, 세 개의 방정식이 하나의 계수 행렬과 상수 벡터로 깔끔하게 정리됩니다. 이러한 행렬 표현은 가우스 소거법, 크라메르 공식 등 다양한 선형대수학 기법을 적용할 때 유용하게 활용됩니다.