Computer Science/선형대수 with C++

    [C/C++] 행렬의 연산 : 상등

    상등: 두 행렬의 크기가 같고 각각 대응하는 성분이 모두 같은 두 행렬아래 두 행렬은 상등이다.C++로 구현하기메소드 오버라이딩을 통해 행렬의 상등 연산을 구현해보자.#include #include "matrix.h"using namespace std;int main() { Matrix m1(3, 4); Matrix m2(3, 4); Matrix m3(3, 3); if (m1 == m2) printf("m1과 m2는 같은 행렬\n"); else printf("m1과 m2는 다른 행렬\n"); if (m2 == m3) printf("m2과 m3는 같은 행렬\n"); else printf("m2과 m3는 다른 행렬\n"); return 0;}...class Matr..

    [C/C++] 전치 행렬

    전치 행렬: 기존 행렬의 행과 열을 교환하여 얻은 행렬, MijT = Mji행과 열을 교환하기 때문에 기존 행렬과 크기 달라진다. m X n 행렬 -> n X m 행렬C++로 구현하기Matrix 클래스의 메소드로 transpose()를 추가했다.#include #include "matrix.h"using namespace std;int main() { Matrix m1(3, 4); printf("기존 행렬\n"); m1.print(); m1.transpose(); printf("전치 행렬\n"); m1.print(); return 0;}...class Matrix { int **mat; int row; int col;public: ... void..

    [C/C++] 단위행렬, 영행렬

    단위 행렬: 주대각선 원소가 모두 1이며 나머지 원소는 모두 0인 정사각 행렬(정사각 행렬은 행과 열의 크기가 같은 행렬)영 행렬: 모든 원소가 0인 행렬 (행렬 덧셈의 항등원)C++로 구현하기사실 단위행렬은 정사각행렬이어야 하지만 정사각행렬이 아니어도 처리하도록 코드를 짰다.기존 생성자 함수를 오버로딩해 type이라는 인자를 하나 더 받는 경우를 추가했다.type 인자 값이 0이면 해당 행렬은 영행렬이고, 1이면 단위행렬이다.두 함수의 경우 값을 입력할 필요가 없기 때문에 입력을 받지 않고 자동으로 값을 할당한다.#include #include "matrix.h"using namespace std;int main() { // 영행렬 Matrix m1(2, 3, 0); // 단위 행렬 ..

    [C/C++] 행렬

    선형대수를 복습하며 C++ 클래스로 만들어보려고 한다. (코드의 효율은 일단 좀 미뤄두고....)행렬: 수 또는 문자들을 행과 열을 갖는 직사각형 모양으로 나열하여 묶어둔 것위 행렬은 m X n 크기의 행렬이다.원소 Amn는 m행 n열의 값을 나타낸다.C++로 구현하기Matrix라는 클래스로 행렬을 구현했다.생성자 파라미터로 배열의 크기를 전달받고 생성자에서 배열 크기에 맞는 2차원 배열을 동적할당 및 원소 값 입력을 받는다. 아래와 같은 main() 함수로 행렬을 생성 및 출력해보자.#include #include "matrix.h"using namespace std;int main() { Matrix m1(3, 3); Matrix m2(3, 2); m1.print(); m2.pr..