이 프로그램은 지난 학기 수리물리 시간에 처음으로 다루어본 프로그램이다.
SageMath Mathematical Software System - Sage
SageMath is a free and open-source mathematical software system.
www.sagemath.org
기본적으로 무료로 사용할 수 있는 오픈-소스 수학 프로그램으로 대수학, 조합론, 미적분학, 수치해석을 포함하는 많은 수학 분야의 문제들을 해결 할 수 있는 프로그램이다.
뿐만 아니라 Jupyter Notebook에도 추가해서 쓸 수 있어서 사용하기가 매우 편리하다.
내가 지금 쓰고 있는 것은 9.1 버전인데 다운받지 않고 아래의 SageMathCell을 눌러도 브라우저에서 사용이 가능하다.
이번 학기에 KMOOC에서 강의하시는 서울시립대학교 수학과 박의용 교수님께서 강의에서 이 프로그램을 사용하는 방법을 브리핑을 하셔서, 모니터링단 활동 내용에 들어가지는 않지만 그 내용을 한 번 올려 본다.
파이썬과 문법이 비슷한 듯 하다.
# 1 ) 벡터들의 일차결합과 내적, 행렬과의 곱
v = vector([1,1,-4])
w = vector([2,2,-1])
show(v)
A = Matrix([[1,2,3],[3,2,1],[1,1,1]]) # 행렬 A
show(A)
c = A*v # Av의 계산
show(c)
두 번쨰 주제는 행렬의 기약사다리꼴 변환, 행렬의 kernel의 이다.
# 2) 행렬의 기약사다리꼴 변환, 행렬의 핵(Kernal)계산
A = matrix(QQ, [[0,1,2], [3,4,5], [6,7,8]]) #행렬 A
# QQ는 유리수로 이루어졌다는 내용
show(A)
show(A.echelon_form()) # A의 기약사다리꼴
print(A.transpose().kernel()) # 선형사상 L_A의 핵(kernel), 즉 AX = 0의 해공간
세 번째는 구체적인 연립일차방정식의 풀이이다.
# 3) 구체적인 연립일차방정식의 풀이
b = vector(QQ, [0,6,-1,3])
A = matrix(QQ, [[0,-1,-1,1], [1,1,1,1], [2,4,1,-2], [3,1,-2,2]])
show(b)
show(A)
solution = A.solve_right(b) # AX = b의 해
show(solution)
행렬의 여러 가지 연산뿐 아니라 행렬식도 계산할 수 있다.
행렬사상의 rank도 계산할 수 있다.
마지막으로는 역행렬까지 구하면서 오늘의 주제를 마쳤다.
'Mathematical Physics' 카테고리의 다른 글
Sturm Liouville Theorem (0) | 2021.03.22 |
---|---|
Fourier Series로 계단함수 만들기 (0) | 2020.12.13 |
수리물리학 - 쐐기 위에서 미끄러지는 물체 (0) | 2020.11.16 |
공학수학 문제풀이 (1) | 2020.10.08 |
매트랩 이용해서 공수 문제 그래프로 그리기 (0) | 2020.09.28 |