mir.pe (일반/어두운 화면)
최근 수정 시각 : 2024-12-30 02:17:47

매스매티카

매스매티카
Mathematica
파일:매스매티카 로고.svg
<colbgcolor=#dd1100><colcolor=#fff> 개발단체 울프럼 리서치
최초공개 1988년
최신버전 14.1( 2024년 7월 31일)
링크 파일:홈페이지 아이콘.svg

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

[clearfix]

1. 개요

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

2. 개발 배경

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

3. 특징

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

다만, 매스매티카의 진정한 파워는 심볼릭 계산이라고 할 수 있다. 대부분의 프로그램이 수치해석적 방법으로 문제를 푸는 반면, 매스매티카는 분석적 방법으로, 즉 마치 손으로 방정식을 풀거나, 관계식을 유도하는 것처럼, 복잡한 식을 정리하고, 최적의 형태로 만들어내는 데 매우 유용하다. 물론 계수에 [math(x)]에 대한 다항식이 곱해진 선형 미분방정식이나 아예 비선형인 미분방정식을 풀기 위해 역도함수나 급수해를 구할 때, 부정적분이나 무한급수로 정의된 아주 괴상망측하고 금시초문인 특수함수를 맞닥뜨려야 할 때가 있기는 하다.[3] 안타깝게도 피적분함수의 역도함수나 미분방정식의 급수해가 현대수학에서 통용되는 특수함수가 아니라서 정의가 되지 않아 수치해석으로 풀어야 하는 경우도 많다.[4]

또한, 입자물리 등에 사용되는 다양한 행렬의 복잡한 계산을 위한 패키지도 따로 존재하고, 손으로 계산할 시 몇 시간이나 걸릴 계산을 단 몇 분으로 가능하게 한다. xAct와 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 역시 매스매티카를 기반으로 제작되었기 때문에 매스매티카 문법이 그대로 먹힌다.

wolfram cloud도 매스매티카 기반이다.

6. 사용 예

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

이렇듯, 각종 수치계산과 자연계열 학생들의 경우엔 전공에서 식으로만 풀었던 것을 시각화해서 공부할 수 있다.
[1] 해당 그래프는 양자역학 2차원 무한 퍼텐셜 우물 문제에서 한 변의 길이가 [math(\pi)]인 정사각형 상자 내에 갇힌 입자의 확률밀도함수를 나타낸 것이다. [2] 물론, C나 포트란으로 하려면 본인이 불편한 개발 환경에서 Quadrature이나 Monte-Carlo 같은 수치 적분 알고리즘들을 설계하고 검증할 수 있는 시간이나 노력이 있어야 한다. [3] 아주 단순한 예시로 단진자 미분방정식이 있다. 고등학교 및 일반물리학 수준에서는 미세한 각도만 고려해 선형근사가 가능해서 손으로 단순히 풀리지만, 일반적인 각도에서는 선형근사 또한 오차가 매우 심해지기 때문에 비선형인 상태 그대로 풀어야 한다. 이 경우 야코비 타원 함수를 사용한 해가 도출된다. [4] 대표적인 예시가 "코드클린"과 같은 허위 백신 프로그램을 제거하기 위해 수학 문제를 풀어야 하는 상황을 풍자하기 위해 만들어진 [math(\displaystyle \int_0^\frac{1}{3} \frac{e^{-x^2}}{\sqrt{1-x^2}} \mathrm d x)]의 참값을 구하라는 문제인데, 골때리는 것이 피적분함수의 역도함수가 학계에서 정의되지 않았기 때문에 참값을 도출할 수 없어 수치해석적 방법으로 해결해야 한다. 다만, 이 함수의 정의역 전체에 대한 이상적분 [math(\displaystyle \int_{-1}^{1} \frac{e^{-x^2}}{\sqrt{1-x^2}} \mathrm d x)]의 값은 [math(\frac{\pi}{\sqrt{e}} I_0(\frac{1}{2}))]라는 제1종 수정 베셀 함수를 활용한 참값이 도출된다. [5] If문도 함수처럼 써야 한다. [6] 예를 들면 Not에 ! 기호와 ¬기호를 둘 다 사용한다거나 변수의 지역화를 위해서는 Block, Module을 설정해 첫번째 Argument로 변수들을 넣어야 하는 특이한 문법을 써야 하고, 그 외에 Type Checking만을 하기 위해서 정규 표현식 수준의 Pattern Matching을 이용해야 하는 등 배워야 할 문법들이 많다. [7] List가 붙은 것은 데이터를 입력으로 받고, 그렇지 않은 것은 함수를 형식으로 받는다고 보면 된다. [8] 해당 내용은 수리물리학에서 라플라스 방정식(2u=0\nabla^{2}u=0)을 이용하여, 사각 평면의 한 변은 100℃로, 나머지 세 변은 0으로 유지시켰을 때의 정상 온도 분포를 시각화한 것이다. [9] 해당 내용은 줄을 뜯었을 때, 진동을 어떻게 하는 지 시각화 한 것이다. [10] 해당 내용은 전자기학 중에서 균일한 전기장 영역에 도체 구를 넣었을 때의 전기장 분포를 알아본 것이다.(조건은 임의로 잡고 시각화)