ID:
PW:

     0 분
     8 분


무료 수학프로그램. SMath 강좌.


손으로 쓴 것처럼 표현하고 계산하는 프로그램.
프로그램 사이트 : http://en.smath.info


SMath 강좌 (6) 행렬 (2/2)
이석종  2014-12-28 23:41:35, 조회 : 3,367, 추천 : 245

tut06_matrix2 무료 수학프로그램 SMath 강좌 (6) 매트릭스(2/2)

오늘은 지난 강좌에 이어 매트릭스 기능들을 알아보도록 하겠습니다.
지난 시간에는 toolbar에 있는 기능을 위주로 알아봤고, 이번 강좌는 매트릭스 연산과 함수(function)를 중심으로
알아보도록 하겠습니다.

우선 매트릭스 연산입니다. 매트릭스연산에는 역행렬(-1), 그리고  dot product(*),  더하기(+), 빼기(-) 가 있습니다.

예제 행렬로 a행렬을 아래와 같이 정의하겠습니다.


역행렬을 구하기 위해서 a^-1을 입력하고 =을 입력합니다. 아래와 같이 결과가 나옵니다.

검산을 해보기 위해서 역행렬 구하는 공식중 여인자행렬을 이용하는 공식으로 검산을 해보겠습니다.


이 공식을 SMath의 행렬식 구하기와() 여인자 구하기()를 이용해서 표현하면 아래와 같이 표현할 수 있고
그결과는 ^-1를 이용해서 구한 값과 같이 나옴을 알 수 있습니다.



행렬 더하기


행렬더하기는 + 연산자를 이용하면 됩니다.  a+a (행렬 더하기 행렬)의 결과는 아래와 같습니다.
행렬에 스칼라량 2를 더할 수도 있습니다.


행렬 빼기

행렬더하기와 마찬가지입니다.
a-a의 결과는 영행렬이 나오고, 행렬에 스칼라량 2를 뺄 수도 있습니다.
 

스칼라 2에서 행렬 a를 빼면 즉 2-a를 하면 2+(-1)*a를 한 것과 같은 결과입니다.


행렬곱하기

스칼라곱하기 행렬을 해보겠습니다. 2*a , a*2 의 결과는 같습니다.



행렬 곱하기 행렬을 해보겠습니다. a*a의결과는 아래와 같습니다.


기억을 더듬어 a*a의 1행을 구해보면 -1, 5 ,8로 맞습니다.


아래와 같이 a행렬에 a행렬의 역행렬을 곱하면 단위행렬이 나오는 것을 확인할 수 있습니다.



행렬관련함수(function)

함수(function)은 [Insert]메뉴의 [Function]이나 상단툴바를 이용하여 입력할 수 있습니다. 물론 함수명을
알고 있다면 직접 입력하는 것이 더 편합니다.


[Insert][Function]이나 를 선택하면 아래 그림과 같이 함수 입력창이 나타납니다.


Category별로 Function의 이름으로 선택할 수 있으며, 아래쪽에는 예제와 설명을 볼 수있습니다.

행렬관련 함수는 [Matrix and vector] Category에서 찾을 수 있습니다.

* diag(u) : vector u (column matrix)의 요소로가 대각요소가 되고 나머지 요는 0으로 된을 행렬을구해줍니다.



* identity(n) : n x n의 identity matrix를 구해줍니다.
 


* matrix(n,m) : n행, m열의 모든요소가 0인 행렬을 만들어줍니다.



* reverse(matrix) : matrix나 vetor의 행을 거꾸로 만듭니다.


* submatrix(matrix,is,ie,js,je) : matrix의 부분matrix를 추출합니다. is행부터 ie행까지, js열부터 je열까지를 추출합니다.


* col(matrix,j) : matrix에서 j번째 열을 추출합니다..



* row(matrix,i) : matrix에서 i번째 행을 추출합니다.


 
* augment(m1,m2) : m1 matrix에 m2 matrix를 열을 기준으로 병치(juxtaposition)한다. 이때 두 matrix의 행의 개수가 같아야 합니다.



* stack(m1,m2) : m1 matrix에 m2 matrix를 행을 기준으로 병치(juxtaposition)한다. 이때 두 matrix의 열의 개수가 같아야 합니다.



[Matrix and vector]관련 function에는 matrix의 속성, 정보 등을 구할 수 있는 여러가지 함수가 있습니다.

* cols(matrix) : matrix의 열의 수를 구합니다.

* det(matrix) : matrix의 행렬식(determinant)을 구합니다. 이 함수는 |matrix|로 표현됩니다.

* el(matrix,i,j) : matrix의 i행, j열의 요소를 구합니다. matrix [ i , j를 입력하는 것과 같으며 표현은 matrix 옆에 i와 j가 빈칸으로 구분된 아래첨자로 표현됩니다.

* length(matrix) : matrix의 전체 요소수를 구합니다.

* max(matrix) : matrix의 가장 큰 요소를 구합니다.

* min(matrix) : matrix의 가장 작은 요소를 구합니다.

* norm1(matrix) : matrix의 L1 Norm을 구해줍니다. L1 Norm은 각 요소의 절대값을 더한 값.

* norme(matrix) : matrix의 Euclidean Norm을 구해줍니다. Euclidean Norm은 각 요소의 제곱을 더한 후 root를 취한 값.

* normi(matrix) : matrix의 infinite Norm을 구해줍니다.

* rank(matrix) : matrix의 rank을 구해줍니다. (행 또는 열에서 선형독립인 벡터의 개수)

* tr(matrix) : matrix의 trace를 구해줍니다.(대각요소들의 합)

위의 함수들의 예는 아래와 같습니다.



Matrix Sorting 함수.

* csort(matrix,j) : j열의 값을 기준으로 오름차순으로 sort합니다. 즉 행의 순서를 바꿉니다.



* rsort(matrix,i) : i행의 값을 기준으로 오름차순으로 sort합니다. 즉 열의 순서를 바꿉니다.




* sort(vector) : vector(column matrix)를 오름차순으로 sorting합니다.



엑셀의 강력한 기능이 테이블 기능이라고 생각합니다. 업무를 하다보면 테이블을 많이 사용하는데,
엑셀의 테이블 기능에 해당하는 것이 SMath에서는 행렬기능이라고 생각합니다.

물론 SMath에도 테이블 기능이 있습니다만, 엑셀처럼 cell 개념이 아니라 matrix내용을 보기좋게
테이블 형태로 보여주는 기능입니다. SMath에서 matrix기능과 table기능을 적절하게 조합해서
사용하면 엑셀처럼 사용할 수 있습니다. 이 과정에서 matrix 관련함수들을 알고 있어야 합니다.


  추천하기   목록보기

번호 제목   작성자 작성일 조회
7  SMATH업데이트. SMath Studio 0.97.5737 available    이석종 2015/09/28 2067
 SMath 강좌 (6) 행렬 (2/2)  [1]  이석종 2014/12/28 3367
5  SMath 강좌 (5) 행렬 (1/2)    이석종 2014/12/26 2764
4  SMath 강좌 (4) 그래프  [140]  이석종 2014/12/23 116354
3  SMath 강좌 (3) 단위사용하기    이석종 2014/12/16 1976
2  SMath 강좌 (2) 수식 정의 및 편집    이석종 2014/12/16 1718
1  SMath 강좌 (1) 소개 및 설치    이석종 2014/12/16 2789

    목록보기 1
       

Copyright 1999-2018 Zeroboard / skin by zero
구조설계의 미래를 준비하는 모임 [구조설계미래포럼]