공학에서는 배열을 많이 사용하게 된다.
따라서 배열을 계산하는 방법은 기본적으로 익혀야 한다.
행렬의 덧셈과 뺄셈)
- 행과 열의 크기가 각각 같은 배열에 대해서만 연산 가능
- – 같은 위치의 원소를 각각 더하거나 당기고 구한다.
C행렬은 덧셈이므로 같은 위치의 원소를 더해 행렬로 나타낸 것이다.
D행렬은 뺄셈이므로 같은 위치의 A원소-B원소를 한 결과를 행렬로 나타낸 것이다.
행렬에 스칼라 값을 덧셈, 뺄셈, 곱셈, 나눗셈을 할 경우,
계산하고자 하는 행렬의 모든 원소에게 스칼라 연산을 각각 해준다.
행렬의 곱셈)
- 행렬 곱셈이 불가능한 경우에 주의하면서 계산하면 된다.
- 행렬의 곱은 앞 행렬의 열 수와 뒤의 계산되는 행렬의 행 수가 같아야 한다.
- A=(m, n) 행렬이면 B=(n, k) 행렬 형태로 n값이 같아야 곱셈을 할 수 있다. m과 k의 값은 관계없다.
- – 행렬의 곱은 교환법칙이 성립하지 않으므로 유의하자.
A(2,3),B(3,2)
A*B=(2,3)*(3,2)이므로 곱셈이 가능하며 결과는 2행 2열 행렬이 되었다.
B*A=(3,2)*(2,3)이므로 곱셈이 가능하며 결과는 3행 3열 행렬이 되었다.
따라서, A*B와 B*A가 같지 않음을 알 수 있다.
행렬의 나눗셈)
행렬의 나눗셈을 이해하기 위해서는 알아야 할 개념이 몇 가지 있다.
- 항등행렬(단위행렬)
- 대각선 원소가 모두 1이고 그 이외의 원소는 0인 정사각 행렬
- MATLAB에서는 eys(n) 명령어 사용
- 행렬에 단위 행렬을 곱해도 값이 변하지 않는다.
A*eye (3) 값이 A행렬 값과 같다.
- 역행렬
- A*B=B*A=I(단위행렬)가 성립하는 A와 B는 서로 역행렬 관계이다.
- MATLAB에서 A의 역행렬은 A^-1 또는 inv(A) 명령을 사용한다.
0.0000이 나온것은 가격이 작아서 0이라고 생각한다.
B 행렬을 A의 역행렬로 정의하고 역행렬인지 확인해 보았다.
A*B=B*A의 결과가 같은 것을 볼 수 있다.
- 행렬식
- 역행렬이 존재하기 위한 조건을 알아보기 위해 행렬식 사용
- 행렬식 determinant=0이면 역행렬이 존재하지 않는다.
- MATLAB에서는 det(A) 명령어를 사용한다.
- Ax=b의 해x를 구하는 2가지 방법
- — 역행렬 이용
- Ax=b→inv(A)*Ax=inv(A)*b→x=inv(A)*b
- MATLAB 명령: x=inv(A)*b
— 좌나눗셈 이용
왼쪽 나눗셈을 이용하면 Gauss 소거법을 이용하여 계산하게 된다.
MATLAB 명령: x=Ab
결과값이 같은 것을 볼 수 있다.
이론적으로는 같지만 계산 방식이 다르다.
행렬의 크기가 크면 정확도 측면에서 가우스 소거법을 이용하는 왼쪽 나눗셈이 유리하다.
원소별 연산)
두 행렬의 원소와 원소끼리의 곱셈, 나눗셈, 덧셈 등을 연산할 수 있다.
점(.) 뒤에 연산 기호를 붙여 계산하면 된다.기호 설명. * 원소별 곱셈.원소별 복수승./ 원소별 우측 나눗셈. 원소별 좌측 나눗셈
내장함수에서의 배열 사용)
내장함수의 입력인자가 행렬인 경우
- 함수에 의해 정의된 연산이 원소별 연산과 같이 배열의 각 원소들에 대해 이루어진다.
- – 출력은 입력 행렬과 같은 크기의 행렬이 된다.함수 설명 예 mean(A) A가 벡터, 행렬이면 원소의 평균값을 알려준다.>> A= [5924]; > mean (A)ans= 5C= max (A) A가 벡터라면, C는 A에서 가장 큰 원소이다.A가 행렬일 경우 C는 A의 각 열에서 가장 큰 원소로 구성된 행 벡터이다.A=[123;456;789];> C=max(A) C=789 [d,n]=max(A) A가 벡터라면, d는 A에서 가장 큰 원소이며 n은 원소 위치이다. (최대값이 여러 개인 경우에는 최초의 최대값 위치).A= [5924111];> [d,n]=max(A)d=11n=5min(A)최소치를 찾는다는 점을 제외하고 max(A)와 동일> A= [123;456;789];> C=min(A)C=123 [d,n]=min(A)최소치를 찾는다는 점을 제외하고 [d,n]=max(A)=2]
- A=[5924];>B=[2-21;32-1;2-32];>a=[123];>b=[241];sum(v)v:벡터벡터원소의 합>sum(A)ans=20sort(v)v:벡터벡터원소를 오르막 순서로 정렬>sort(A)ans=2459median(v)v:벡터벡터벡터벡터의 중앙값,b:벡터(원소 3개)두 벡터 외적 >cross(a,b