벡터의 입력은 행렬을 입력하는 형식으로 한 줄만 입력해주면 되겠죠.
A=(1,2,3) 이란 벡터와, B=(2,4,5)이라는 벡터를 만들어 보겠습니다.
>> A=[1,2,3]
A =
1 2 3
>> B=[2,4,5]
B =
2 4 5
이제 이걸로 벡터의 내적을 한번 구해보려고 하는데요.
벡터의 내적은....딱히 설명안해도 알거라는 정모군의 조언에 따라 생략하도록 하겠습니다ㅠㅠㅠㅠ
내적에 대한 명령어는 dot입니다.
>> dot(A,B)
ans =
25
네 25가 나옵니다. 실제와 같은 결과인지 확인을 해보세요~ 1*2 + 2*4 + 3*5 = 25
2) 벡터의 외적
벡터의 외적같은 경우는 "반드시 크기가 3인 벡터를 써야 합니다" 즉, i ,j k성분을 가진 벡터끼리만 외적이 가능합니다.
명령어는cross입니다.
>> cross(A,B)
ans =
-2 1 0
3) 행렬의 곱셈
행렬의 곱셈은 다음과 같이 주어집니다. 역시나 고등학교때 배운 수1에서 이미 배웠습니다 후후후후
하지만 요럴때일수록 한번정도 복습은 해줘야 겠죠.
앞의 행렬의 가로줄과 뒤의 행렬의 세로줄을 내적하는 형태로 곱셈은 이루어 집니다.
말이 어려우니 예를 한번 보도록 해요.
보시면 아시겠지만(응?) 앞의 행렬의 첫번째 가로줄과 옆의 행렬의 첫번째 세로줄의 내적이 바로 결과값의 (첫번째,첫번째) 성분이 되는 것을 알 수 있습니다. 1*1+2*2=5
마찬가지로 다른 결과값도 다음과 같이 계산이 되겠지요.
자 이런 노가다스러운 과정을 매트랩에선 단 한방의 계산으로 끝내버려 줍니다. * 를 입력해주면 되요. 한번 보실까요?
>> A=[1 2; 3 4; 5 6]
A =
1 2
3 4
5 6
>> B=[1 3; 2 4]
B =
1 3
2 4
A와 B를 입력하였습니다. 그다음 사뿐하게 A*B를 눌러주면!
>> A*B
ans =
5 11
11 25
17 39
네, 매우 간단하게 표시가 되는 것을 알 수 있습니다.
4) 행렬의 덧셈
으흑 작성도중 날라갔습니다 ㅠㅠ
행렬의 덧셈은 두 행렬의 크기가 같을 때 가능한데요. 같은 성분끼리 더해주는 겁니다.
명령어는 +입니다. 예를 한번 보시죠
>> A=[1 2; 3 4]
A =
1 2
3 4
>> B=[1 2 ; 3 4]
B =
1 2
3 4
>> A+B
ans =
2 4
6 8
네 간단하죠? 빼기는 -를 써주시면 됩니다.
5) transpose matrix(전치행렬)
transpose matrix는 least square method 등과 같은 수치해석에서 꽤나 쏠쏠하게 사용되는 행렬입니다.
square matrix(정방행렬)이라 불리는 형태로 나타낼 때 사용되기 때문인데요,
뭐 그런 수학적인 얘기는 접어두고 일단 요 트랜스포스 매트릭스가 뭔지 한번 알아보죠.(다해놓고선)
간단히 말하자면 행렬의 행과 열이 바뀌는 겁니다. 이거 참 너무 쉬워서 죄송스러울 지경입니다 허허
행렬 A가 있을때 A의 transpose matrix는 요렇게 나타냅니다.
왠지 마음에 들군요 이거.
자 그럼 트랜스포스가 뭔지 알았으니 명령어를 함 쳐볼까요.
명령어는 transpose( 행렬 ) 혹은 행렬'로 치면 됩니다. 예를 봅시다.
>> A=[1 2 3; 4 5 6]
A =
1 2 3
4 5 6
>> transpose(A)
ans =
1 4
2 5
3 6
>> A'
ans =
1 4
2 5
3 6
전 주로A'의 형태로 많이 씁니다. 편하잖아요ㅋ
6) inverse matrix(역행렬)
네, 드디어 행렬의 꽃인 inverse matrix입니다!!!!
매트랩에서는 요 inverse matrix를 쉽게 구하는 명령어가 있습니다. 바로 inv(행렬)
아, inverse matrix는 A*X = I (I는 단위행렬) 이 되도록 하는 행렬 X를 말하는데요.
이때 주의할 점은 함수 A는 square matrix 즉, 정방행렬이여야 하고, determinant가 0이 아니여야 한다는 조건이 필요합니다.
determinant는 간단하게 분수에서 분모와 같은 성분이라고 생각하시면 되겠네요.
determinant를 구하는 명령어는 det(행렬) 입니다.
만일 determinant가 0인 경우나 정방행렬이 아닌 경우라면 오류 메세지가 뜨게 됩니다.