행렬

행렬은 Numbers 의 집합입니다 .

행렬은 Rectangular Array 입니다.

행렬은 열로 배열됩니다 .

매트릭스 차원

매트릭스 에는 1개의 행과 3개의 열이 있습니다.

C =  
2 5

행렬 의 차원 은 ( 1 x 3 )입니다.


이 행렬에는 2 개의 행과 3개의 열이 있습니다.

C =  
2 5
4 7 1

행렬의 차원은 ( 2 x 3 )입니다.


정사각형 행렬

정사각형 행렬행과 열의 수가 같은 행렬입니다.

nxn 행렬은 차수가 n인 정방 행렬로 알려져 있습니다.

2x2 행렬(2차 제곱 행렬) :

C =  
1 2
4

4x4 행렬(차수가 4인 정방 행렬) :

C =  
1 -2 4
5 6 -7 8
4 2 -1
8 7 6 -5

대각선 행렬

대각선 행렬 은 대각선 항목에 값이 있고 나머지 항목에는 0 이 있습니다.

C =   
2 0 0
0 5 0
0 0

스칼라 행렬

스칼라 행렬 은 대각선 항목이 동일 하고 나머지 항목 0 입니다.

C =   
0 0 0
0 0 0
0 0 0
0 0 0

아이덴티티 매트릭스

Identity Matrix대각선이 1이고 나머지 0입니다 .

이것은 1에 해당하는 행렬입니다. 기호는 I 입니다.

나는 =   
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1

행렬에 단위 행렬을 곱하면 결과가 원본과 같습니다.


제로 매트릭스

Zero Matrix (Null Matrix)에는 0만 있습니다 .

C =   
0 0 0
0 0 0

등 행렬

각 요소가 다음과 일치하는 경우 행렬은 같음 입니다.

2 5
4 7 1
  =  
2 5
4 7 1

음수 행렬

행렬 의 음수 는 이해하기 쉽습니다.

  -  
-2 5
-4 7 1
  =  
2 -5 -삼
4 -7 -1

JavaScript의 선형 대수학

선형 대수학에서 가장 간단한 수학 객체는 Scalar 입니다 .

const scalar = 1;

또 다른 간단한 수학 객체는 Array 입니다 .

const array = [ 1, 2, 3 ];

행렬은 2차원 배열 입니다 .

const matrix = [ [1,2],[3,4],[5,6] ];

벡터는 열이 하나만 있는 행렬 로 작성할 수 있습니다 .

const vector = [ [1],[2],[3] ];

벡터는 배열 로도 작성할 수 있습니다 .

const vector = [ 1, 2, 3 ];

자바스크립트 매트릭스 연산

JavaScript에서 프로그래밍 행렬 연산은 루프의 스파게티가 되기 쉽습니다.

JavScript 라이브러리를 사용하면 골치 아픈 일을 많이 줄일 수 있습니다.

행렬 연산에 사용하는 가장 일반적인 라이브러리 중 하나는 math.js 입니다.

한 줄의 코드로 웹 페이지에 추가할 수 있습니다.

math.js 사용

<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjs/9.3.2/math.js"></script>

행렬 추가

두 행렬의 차원이 같으면 다음과 같이 추가할 수 있습니다.

2 5
4 7 1
 + 
4 7 1
2 5
 = 
6 12 4
6 12 4

예시

const mA = math.matrix([[1, 2], [3, 4], [5, 6]]);
const mB = math.matrix([[1,-1], [2,-2], [3,-3]]);

// Matrix Addition
const matrixAdd = math.add(mA, mB);

// Result [ [2, 1], [5, 2], [8, 3] ]


행렬 빼기

두 행렬의 차원이 같으면 뺄 수 있습니다.

2 5
4 7 1
 - 
4 7 1
2 5
 = 
-2 -2 2
2 2 -2

예시

const mA = math.matrix([[1, 2], [3, 4], [5, 6]]);
const mB = math.matrix([[1,-1], [2,-2], [3,-3]]);

// Matrix Subtraction
const matrixSub = math.subtract(mA, mB);

// Result [ [0, 3], [1, 6], [2, 9] ]

행렬을 더하거나 빼려면 차원이 같아야 합니다.


스칼라 곱셈

행과 열에 있는 숫자를 행렬 이라고 하고 단일 숫자를 스칼라 라고 합니다.

행렬에 스칼라를 곱하는 것은 쉽습니다. 행렬의 각 숫자를 스칼라와 곱하기만 하면 됩니다.

2 5
4 7 1
   x 2 =   
4 10 6
8 14 2

예시

const mA = math.matrix([[1, 2], [3, 4], [5, 6]]);

// Matrix Multiplication
const matrixMult = math.multiply(2, mA);

// Result [ [2, 4], [6, 8], [10, 12] ]

예시

const mA = math.matrix([[0, 2], [4, 6], [8, 10]]);

// Matrix Division
const matrixDiv = math.divide(mA, 2);

// Result [ [0, 1], [2, 3], [4, 5] ]


행렬 전치

행렬을 전치한다는 것은 행을 열로 바꾸는 것을 의미합니다.

행과 열을 바꿀 때 대각선을 중심으로 행렬을 회전합니다.

A =   
1 2
4
    A T =  
1
2 4

곱셈 행렬

행렬을 곱하는 것은 더 어렵습니다.

행렬 A의 행 수가 행렬 B의 열 개수와 같을 때만 두 행렬을 곱할 수 있습니다.

그런 다음 "내적"을 컴파일해야 합니다.

A 의 각 행에 있는 숫자와 B 의 각 열에 있는 숫자를 곱한 다음 곱을 더해야 합니다 .

예시

const mA = math.matrix([[1, 2, 3]]);
const mB = math.matrix([[1, 2, 3], [1, 2, 3], [1, 2, 3]]);

// Matrix Multiplication
const matrixMult = math.multiply(mA, mB);

// Result [ [6, 12, 18] ]

설명:

1
2
 엑스 
1 1 1
2 2 2
 = 
1x1 + 2x1 + 3x1
1x2 + 2x2 + 3x2
1x3 + 2x3 + 3x3
 = 
6
12
18

행렬을 곱하는 방법을 알면 많은 복잡한 방정식을 풀 수 있습니다.

예시

당신은 장미를 판매합니다.

  • 빨간 장미는 개당 3달러
  • 흰 장미는 개당 4달러입니다.
  • 노란 장미는 개당 2달러입니다.
  • 월요일 당신은 260송이의 장미를 팔았습니다
  • 화요일 당신은 200송이의 장미를 팔았습니다
  • 수요일 당신은 120송이의 장미를 팔았습니다

모든 판매의 가치는 무엇이었습니까?

붉은 장미$3 하얀색$4 노랑$2
1208060
화요일907040
604020
$3
$4
$2
 엑스 
120 80 60
90 70 40
60 40 20
 = 
$800
$630
$380
 = 
$1810

예시

const mA = math.matrix([[3, 4, 2]]);
const mB = math.matrix([[120, 90, 60], [80, 70, 40], [60, 40, 20]);

// Matrix Multiplication
const matrixMult = math.multiply(mA, mB);

// Result [ [800, 630, 380] ]

설명:

$3
$4
$2
 엑스 
120 80 60
90 70 40
60 40 20
 = 
$3x120 + $4x80 + $2x60
$3x90 + $4x70 + $2x40
$3x60 + $4x40 + $2x20
 = 
$800
$630
$380

행렬 분해

AI를 사용하면 행렬을 인수분해하는 방법을 알아야 합니다.

행렬 분해는 특히 선형 최소제곱에서 선형 대수학의 핵심 도구입니다.