[scientific computing] SageMath에서 사용하는 숫자

 

SageMath(이하 Sage)를 설치해서 사용해보려 했던 사람들은 느껴본 적이 있겠지만, 이 프로그램은 사용설명서가 매우 불친절하다. 한 수 더 떠서 공식 매뉴얼 곳곳에서는 수학적인 것을 알아야만 그 함수가 뭘 하는 함수인지 알 수가 있는 경우가 많고, 매뉴얼을 볼 때마다 같은 내용을 여러 방식으로 표현할 수 있게 난잡하게 설명이 되어 있어서 독학으로 익히기에는 별로 좋지 않은 구조로 되어 있다. 하지만 그 분량과 내용을 보면 어쩌면 처음 사용하는 사람들에게만 불친절한듯 하기도 하다.

최근에 어떤 계산을 하기 위해 Sage를 켰다가 아무것도 못하고 Wolfram Language로 다시 작업을 했던 안좋은 경험 때문에 Sage 사용법을 한 번 정리해야겠다는 생각이 들어서 이 글을 작성하게 되었다.

Sage의 기능을 보통의 학부생이 당장 사용할 수 있는 구조로 소개해보려고 했는데, 소개 순서는 통상 우리가 교육과정을 통해 경험해 왔을 순서를 따르되, 세부적인 내용으로 들어가면 Sage에서 독특하게 발견할 수 있는 기능을 추가해 보기로 했다. 그 첫 번째 글이 될 이 글은 Sage의 여러 내용 중 Sage가 표현할 수 있는 숫자에 대해 다룬다.

이 글의 내용을 혹시 실습하려고 한다면 Sage(이 글을 쓰고있는 시점에서는 최신버전이 8.9다)를 설치하기보다는 Sage의 클라우드 서비스인 CoCalc에 접속해서 회원가입을 하고 사용하는 것을 추천한다. Sage는 빈번하게 버전업이 되기 때문이기도 하고, 기본명령을 익히는데는 직접 설치한 것과 큰 차이가 없기 때문이다.

 

 

기초적인, 대중적인 숫자

자연수, 정수, 유리수, 실수, 복소수는 평소에 쓰던 방식으로 그냥 입력하면 사용할 수 있다.

 

 

위에서 보이듯, 복소수에서 사용하게 될 허수단위는 I로 쓰게 된다. 이 외에 우리가 많이 쓰는 $\pi$, $e$등도 다음과 같이 예약이 되어 있다.

 

 

위에 보이는 함수 n(...)은 괄호 안에 있는 수의 근삿값을 구해주는 함수이다. n 대신에 N이나 numerical_approx를 사용해도 된다. (다른 프로그램을 사용했던 사람들을 위한 장치인 것 같다.) ‘In [10]’이라 되어 있는 것처럼 소수점 아래 몇 번째 자리까지 구해야 하는지를 digits=..으로 정해줄 수도 있다.

진법 변환

10진수를 다른 진법의 수로 바꿀 수 있다. digits를 통해 10진법의 수의 각 자리 숫자를 나열할 수 있고, 다른 진법으로 바꿀 수도 있다. 단, 결과는 역순으로 봐야 한다.

 

 

연산과 관계

위에서 언급한 숫자들 사이의 연산은 =(대입), +-*(곱셈), /(나눗셈), //(정수나눗셈), %(모듈로), **(거듭제곱), ^(거듭제곱)이 있는데, 이중 몇 가지는 추가 설명이 필요하다.

%

다음 그림과 같이, a % b의 계산은 b가 양수일 때만 a를 b로 나눈 나머지와 같다.

 

 

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

//

% 연산의 경우와 마찬가지로, a // b의 계산결과가 몫과 같은 경우는 다음과 같이 b가 양수일 때다.

 

 

/

/ 연산은 정수와 정수끼리의 경우에는 유리수로 계산한다. 만약, 근삿값이 필요하다면 nNnumerical_approx 함수를 이용해서 얻어낸다. 정수끼리의 계산이 아니라면 자동으로 소숫점이 있는 숫자가 결과값으로 나타난다.

 

 

**와 ^

**와 ^는 둘 다 거듭제곱을 나타낸다. 수식편집기나 Mathematica, Maple 등에서는 거듭제곱으로 ^를 사용하고 Python에서는 **을 거듭제곱으로 사용하기 때문에 둘 다 적용한듯 하다. 그리고, 아래 결과를 통해 알 수 있듯, 유리수 지수는 유리수꼴로 쓰는 것이 소수 지수로 쓰는 것보다 더 정확한 결과를 얻을 수 있다.

 

 

관계 연산자

Sage에서는 위에서 살펴본 복소수 외에 TrueFalse라는 값을 사용할 수 있다. 각각 참, 거짓을 의미한다. 이 값은 직접 사용할 수도 있고, 등식, 부등식의 참, 거짓을 통해서 사용할 수도 있다. 일단, TrueFalse 사이에 적용할 수 있는 연산은 andornot이 있다. (몇 가지 더 있는데 생략한다.)

 

 

참, 거짓을 등식, 부등식 등을 통해 만들어낼 수도 있는데, 이때 사용하는 기호가 ==>>=<<=!= 정도다. ==와 =는 다른 기호임에 주의해야 한다. ==는 ‘같다’를 의미하고 =는 우변의 것을 좌변에 대입한다는 것을 의미한다. !=는 서로 다름을 나타내는 기호다.

 

 

배운사람들만 아는 숫자

Sage는 수학과 수업시간에나 들어볼법한 숫자들도 처리할 수 있다. 대칭군, 유한체들도 처리할 수 있고, 정수, 유리수도 수학적 관점에서 구분해 처리할 수 있다. 혹시 현재 공부하고 있는 대상을 Sage로 계산할 수 있는지를 알고싶으면 매뉴얼은 어려우니 구글검색을 통해 뒤져보는 것이 좋다. 아래 실행예는 Dihedral Group을 계산해 본 것이다.

 

 

 

[출처] https://pkjung.tistory.com/177?category=812584

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
» [scientific computing] SageMath에서 사용하는 숫자 file 졸리운_곰 2021.08.14 42
23 [sagemath] sagemath 설치와 세팅, scientific computig file 졸리운_곰 2021.08.14 60
22 [도스 (MS-DOS) 시절 엔지니어링 프로그램과 호환을 위한] OpenBGI library file 졸리운_곰 2020.10.18 78
21 Octave — Scientific Programming Language Crash Course file 졸리운_곰 2020.09.19 86
20 gnuplot 기초 사용법 졸리운_곰 2020.07.09 203
19 gnuplot 사용법 file 졸리운_곰 2020.07.09 95
18 GNUPLOT 사용법, 함수 그래프 그리기, 두 함수 사이의 영역 색칠하기 file 졸리운_곰 2020.07.09 653
17 Windows 환경의 C++ 언어에서 gnuplot을 사용한 그래프 출력 2  file 졸리운_곰 2020.07.07 404
16 Windows 환경의 C++언어에서 gnuplot을 사용한 그래프 출력 file 졸리운_곰 2020.07.07 347
15 가장 간단한 수치해석, essential example programs for physics [python] file 졸리운_곰 2020.06.17 86
14 2018 수치해석 실습자료 file 졸리운_곰 2020.06.17 146
13 [Fortran] Numerical Recipes in Fortran 졸리운_곰 2020.03.26 36
12 희소행렬 file 졸리운_곰 2020.02.12 88
11 The method to use Scilab function in C++ code file 졸리운_곰 2016.08.10 98
10 Visual Basic for Electronics Engineering Applications (2nd ed.) file 졸리운_곰 2016.04.25 84
9 log함수의 도시 semilogx file 가을의 곰을... 2013.02.04 733
8 log함수의 도시 semilogy file 가을의 곰을... 2013.02.04 1255
7 로그함수의 도시 loglog file 가을의 곰을... 2013.02.04 809
6 극좌표계의 Plot file 가을의 곰을... 2013.02.03 870
5 표시 부호 (mark) 만으로 도시 file 가을의 곰을... 2013.02.03 616
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED