Processing math: 100%
본문 바로가기

Mathematical Physics

SageMath

이 프로그램은 지난 학기 수리물리 시간에 처음으로 다루어본 프로그램이다.

http://www.sagemath.org

 

SageMath Mathematical Software System - Sage

SageMath is a free and open-source mathematical software system.

www.sagemath.org

기본적으로 무료로 사용할 수 있는 오픈-소스 수학 프로그램으로 대수학, 조합론, 미적분학, 수치해석을 포함하는 많은 수학 분야의 문제들을 해결 할 수 있는 프로그램이다.

뿐만 아니라 Jupyter Notebook에도 추가해서 쓸 수 있어서 사용하기가 매우 편리하다.

 

내가 지금 쓰고 있는 것은 9.1 버전인데 다운받지 않고 아래의 SageMathCell을 눌러도 브라우저에서 사용이 가능하다.

브라우저에서 SageMath사용하기

이번 학기에 KMOOC에서 강의하시는 서울시립대학교 수학과 박의용 교수님께서 강의에서 이 프로그램을 사용하는 방법을 브리핑을 하셔서, 모니터링단 활동 내용에 들어가지는 않지만 그 내용을 한 번 올려 본다.

 

파이썬과 문법이 비슷한 듯 하다.

 

벡터의 내적
행렬, 행렬의 곱 표현

# 1 ) 벡터들의 일차결합과 내적, 행렬과의 곱

v = vector[1,1,4]
w = vector[2,2,1]

showv

A = Matrix[[1,2,3],[3,2,1],[1,1,1]]   # 행렬 A
showA

c = A*v  # Av의 계산
showc

 

두 번쨰 주제는 행렬의 기약사다리꼴 변환, 행렬의 kernel의 이다.

전치행렬을 하는 이유는 sagemath 내부 프로그램의 구조가 달라서 우리가 아는 것과 맞게 해 주는 것

# 2) 행렬의 기약사다리꼴 변환, 행렬의 핵Kernal계산
A = matrixQQ,[[0,1,2],[3,4,5],[6,7,8]]   #행렬 A
     # QQ는 유리수로 이루어졌다는 내용
showA
showA.echelonform() # A의 기약사다리꼴

printA.transpose(.kernel)  # 선형사상 L_A의 핵kernel, 즉 AX = 0의 해공간

 

 

세 번째는 구체적인 연립일차방정식의 풀이이다.

# 3) 구체적인 연립일차방정식의 풀이

b = vectorQQ,[0,6,1,3]
A = matrixQQ,[[0,1,1,1],[1,1,1,1],[2,4,1,2],[3,1,2,2]]

showb
showA

solution = A.solve_rightb # AX = b의 해
showsolution

 

행렬의 여러 가지 연산뿐 아니라 행렬식도 계산할 수 있다.

행렬사상의 rank도 계산할 수 있다.

 

마지막으로는 역행렬까지 구하면서 오늘의 주제를 마쳤다.