나무모에 미러 (일반/어두운 화면)
최근 수정 시각 : 2024-02-26 01:42:41

매스매티카

매스매티카
Mathematica
<colbgcolor=#dd1100><colcolor=#fff> 개발단체 울프럼 리서치
최초공개 1988년
최신버전 13.2(2022년 12월 27일)
링크 파일:홈페이지 아이콘.svg
파일:매스매티카_2.png
매스매티카를 이용하여 그래프를 그린 모습[1]

1. 개요2. 개발 배경3. 특징
3.1. 장점3.2. 단점
4. 기능5. 기타6. 사용 예

[clearfix]

1. 개요


파일:매스매티카 로고.svg

Mathematica

울프럼 리서치에서 만들어 판매중인 외계인 고문 수학 프로그램. "Wolfram 언어"라는 독창적인 문법을 기반으로 하고 있다.

공식 홈페이지 여기이다. 1988년 첫 버전이 출시되었고 2022년 12월 27일 기준 최신 버전은 13.2이다.

2. 개발 배경

입자 상호작용의 양자장적 현상들을 이론적으로 분석하는 연구를 하기위해 프로그램을 짜던 이론물리학자 스티븐 울프럼은 1980년대 초반부터 컴퓨터의 작동 구조중 하나인 세포 자동자에 관해 연구하기 시작했고 연구 분야를 이론컴퓨터과학으로 확장시켰다. 연구가 한창 무르익어갈 무렵인 1988년에 컴퓨터과학 R&D 기업 울프럼 리서치의 출범과 함께 매스매티카가 개발되었다.

3. 특징

수치계산 자체는 포트란이나 C언어 등을 쓰는 편이 매스매티카를 사용하는 것보다 낫다. 예를 들어 NIntegrate 등의 명령어를 사용하여 다중적분하는 경우는 시간도 오래 걸리고, 컴퓨터의 성능에 크게 의존한다.[2]

다만, 매스매티카의 진정한 파워는 심볼릭 계산이라고 할 수 있다. 대부분의 프로그램이 수치해석적 방법으로 문제를 푸는 반면, 매스매티카는 분석적 방법으로, 즉 마치 손으로 방정식을 풀거나, 관계식을 유도하는 것처럼, 복잡한 식을 정리하고, 최적의 형태로 만들어내는 데 매우 유용하다.

또한, 입자물리 등에 사용되는 다양한 행렬의 복잡한 계산을 위한 패키지도 따로 존재하고, 손으로 계산할 시 몇 시간이나 걸릴 계산을 단 몇 분으로 가능하게 한다. Feyncalc라는 패키지가 대표적. 수치결과의 시각화도 꽤 우수하며, 예술적인 표현도 가능하다.

매트랩(MATLAB)과는 용도가 비슷하지만 약간 접근 방식이 다르다. 공대에서는 매트랩을 더 많이 쓰는 편.

인터프리터 언어처럼 작동되지만 Wolfram Virtual Machine이라는 개념이 언급되는 것을 보면, 가상 머신 위에서 작동되며, 바이트코드로 컴파일하는 기능도 가지고 있다. 다른 프로그래밍 언어들과 달리 아무것도 Assign되지 않은 미지수 개념이 존재하고, 이는 Symbol이라는 특수 타입으로 인식되어, 이를 이용해 컴퓨터 프로그래밍 언어에 수식이라는 개념을 접목시킬 수 있다.

3.1. 장점

3.2. 단점

4. 기능


기본적으로 수학과 수치 해석을 위한 언어이지만, 함수가 몇 천 가지나 되는 만큼 기능이 많은 편이다. 게다가 셀룰러 오토마타, 자동차 내비게이션, 유니티 엔진과 같은 괴상해 보이는 시뮬레이션들까지 할 수 있다.

5. 기타

물리학과 그 이웃 학문을 연구하게 된다면 메이플, MATLAB과 함께 많이 다루게 될 것이다.

상상만 했던 각종 다변수함수를 매스매티카에서 실제로 그릴 수 있다.

매스매티카라는 이름은 스티브 잡스가 지어줬다. 그 전에는 오메가, 폴리매스라는 이름을 후보로 정해뒀었다고.#

NeXT 사에서 컴퓨터를 팔아먹으려고 이걸 번들로 넣었다가 아니 카피 하나로도 그 비싼 매스매티카를 번들로 넣었다고?? CERN이 그 제품을 사들여 대박을 만들어낸 주인공으로 자리매김하였다고 한다. 그 덕분에 최초의 웹 서버는 팀 버너스 리가 쓰던 NeXT 컴퓨터가 먹었다.

50편으로 만들어진 한국어로 된 매스매티카 넓고 얇은 입문 강의를 유튜브에서 무료로 볼 수 있다. 버전 10으로 만든 강의이지만 모든 명령어를 11에서도 그대로 사용할 수 있다.

워낙 비싼 프로그램이기 때문에 학교에서 라이선스를 사 주는 것이 아니면 열에 아홉은 구버전을 어둠의 루트로 구해서 사용하는 경우가 많다. 학생용은 학교에서 라이선스를 사 주더라도 따로 울프럼에 사용자 등록을 해서 키를 받아 사용해야 한다. 게다가 이렇게 불편한 짓을 매년 해야 계속해서 쓸 수 있다.

2013년, 라즈베리 파이와 제휴를 맺어서 Raspberry Pi OS의 기본 설치 환경에 무료로 실리게 되었다. # 다만 고성능 PC도 버벅거리게 만드는 프로그램을 그런 작은 디바이스에 무슨 생각으로 올린 건지는 의문이 든다.

울프럼 리서치의 정보연산 엔진인 Wolfram Alpha 역시 매스매티카를 기반으로 제작되었기 때문에 매스매티카 문법이 그대로 먹힌다.

6. 사용 예

기본적인 함수의 그래프 작성과 미적분, 행렬 대수, 편·상미분 방정식 풀이, 데이터 분석, 이미지 계산 등 무궁무진하게 사용 가능하다.
기본적인 방정식 풀이
파일:매스매티카_new_2.png
기본적인 행렬대수
파일:매스매티카_편미분_정상온도분포_수정.png
편미분 방정식을 풀고, 시각화[6]
파일:매스매티카_편미분_수정.gif
편미분 방정식을 풀고, 시각화[7]
파일:매스매티카_벡터장.png
벡터장(Vector Field)의 시각화[8]

이렇듯, 각종 수치계산과 자연계열 학생들의 경우엔 전공에서 식으로만 풀었던 것을 시각화해서 공부할 수 있다.


[1] 해당 그래프는 양자역학2차원 무한 퍼텐셜 우물 문제에서 한 변의 길이가 [math(\pi)]인 정사각형 상자 내에 갇힌 입자의 확률밀도함수를 나타낸 것이다.[2] 물론, C나 포트란으로 하려면 본인이 불편한 개발 환경에서 Quadrature이나 Monte-Carlo 같은 수치 적분 알고리즘들을 설계하고 검증할 수 있는 시간이나 노력이 있어야 한다.[3] If문도 함수처럼 써야 한다.[4] 예를 들면 Not에 ! 기호와 ¬기호를 둘 다 사용한다거나 변수의 지역화를 위해서는 Block, Module을 설정해 첫번째 Argument로 변수들을 넣어야 하는 특이한 문법을 써야 하고, 그 외에 Type Checking만을 하기 위해서 정규 표현식 수준의 Pattern Matching을 이용해야 하는 등 배워야 할 문법들이 많다.[5] List가 붙은 것은 데이터를 입력으로 받고, 그렇지 않은 것은 함수를 형식으로 받는다고 보면 된다.[6] 해당 내용은 수리물리학에서 라플라스 방정식(2u=0\nabla^{2}u=0)을 이용하여, 사각 평면의 한 변은 100℃로, 나머지 세 변은 0으로 유지시켰을 때의 정상 온도 분포를 시각화한 것이다.[7] 해당 내용은 줄을 뜯었을 때, 진동을 어떻게 하는 지 시각화 한 것이다.[8] 해당 내용은 전자기학 중에서 균일한 전기장 영역에 도체 구를 넣었을 때의 전기장 분포를 알아본 것이다.(조건은 임의로 잡고 시각화)