매스매티카

**매스매티카**(Mathematica)는 스티븐 울프램이 처음 고안하고 Wolfram Research에 의해 개발된 과학, 공학 등에서 널리 사용하는 계산용 소프트웨어이다. 1988년에 버전 1.0을 발매하였으며, 2019년 4월 16일 12.0.0을, 2021년 6월 12.3.1을, 2021년 12월 13일 13을 출시하였으며 2024년 1월 9일 14.0.0, 그리고 8월 5일 최신 버전인 14.3.0이 출시되었다.

## 개요
매스매티카는 기호적 수학 계산 프로그램으로서 해석적인 계산이 가능하며 컴퓨터 대수학 시스템이라 칭하기도 한다. 매스매티카는 수많은 과학, 공학, 수학 및 컴퓨팅 분야에서 사용되어오고 있다. 예를 들어 어떤 함수의 적분을 구할 때 수치적인 방법으로 적분값을 구하는 것뿐만 아니라 해석적인 방법으로 부정적분 값을 구할 수 있다.

Wolfram Research의 창시자인 스티븐 울프램과 그의 팀은 1986년부터 새로운 수식 처리 시스템의 개발을 시작하여 1988년 그 첫 번째 버전을 출시했다. 울프램은 당초 이 시스템을 Omega 그 후 PolyMath라 칭했으나, 당시 NeXT 사의 사장이었던 스티브 잡스와 상담 후 보다 일반적인 단어를 재해석하여 "Mathematica"라 이름 붙여졌다.

역대 Mathematica의 로고에 사용되고있는 것은 "스파이키"라는 3 차원 다면체로 초대 Mathematica는 대형 이십 면체, 이후 버전에서는 쌍곡선 이십 면체를 장식 한 것이 사용되고있다.

Mathematica는 C/C++ 및 Java로 구현되어 있지만, 확장 가능한 라이브러리는 모두 Wolfram 언어로 쓰여져있다. 실제로 새로운 코드 (Wolfram 언어로 작성된 텍스트 파일)은 Mathematica의 "패키지 (.m 파일)"로 추가된다. Mathematica는 4,000개 이상의 고도로 정교한 내장 함수를 포함하고 있으며 이것을 빌딩 블록처럼 조합해 사용하는 것으로, 프로그램 생성이 용이하다. 시스템으로의 Mathematica는 Wolfram 언어를 해석하여 실제로 계산을 수행하는 커널과 그 계산 결과를 표시하는 프런트 엔드의 두 부분으로 구성된다. 커널 및 프론트 엔드 사이의 통신은 "MathLink" 프로토콜이 사용된다.

## 기능
[섬네일|325px|[Dini's surface plotted with adjustable parameters]]
매스매티카의 주요 기능
* 초등함수와 특수 함수의 수학적 함수 라이브러리
* sparse arrays 지원을 포함하는 행렬 및 데이터 조작 툴
* 복소수, 임의 정밀도, 구간 산술, 기호적 연산의 지원
* 2D 및 3D 데이터, 함수 및 지리적 시각화, 애니메이션 툴
* 디오판토스 방정식, 상미분방정식, 편미분방정식, 미분대수방정식, 지연미분방정식, 확률미분방정식 그리고 재귀식 등의 방정식 시스템 해법
* 이산 및 연속 미적분학의 수치적 기호적 툴
* 140 가지 이상의 분포 피팅, 가설 검정, 확률 계산, 기대값 계산 다변량 통계학 라이브러리
* 검정 된 데이터, 템포럴 데이터, 시계열 및 유닛 베이스 데이터 지원
* 렌덤 프로세스와 쿼리의 계산 및 시뮬레이션
* 데이터, 이미지, 사운드의 지도 학습 그리고 자율 학습 머신 러닝 툴
* 2D, 3D, 그리고 고차원 계산기하학
* 절차적 프로그래밍, 함수형 프로그래밍 그리고 객체 지향 프로그래밍 등을 지원하는 다중 패러다임 프로그래밍 언어 구성
* 계산 및 응용을 위한 사용자 인터페이스 추가 툴킷
* 이미지 인식을 포함한 영상 처리 그리고 수학 형태학의 2D 및 3D 툴
* 유향 그래프 및 무향 그래프의 시각화 및 분석 툴
* Tools for combinatoric problems
* 문자열 조작 정규식 및 의미 분석을 포함하는 텍스트 마이닝 툴
* 클러스터 분석, 서열 정렬 및 패턴 매칭 등의 데이터 마이닝 툴
* 정수론 함수 라이브러리
* 채권, 연금, 파생 상품, 옵션 거래를 포함한 금융 계산 툴
* 군론 및 기호적 텐서 함수f
* 음향과 이미지 데이터의 웨이블릿 분석을 포함한 신호 처리 라이브러리
* 선형, 비선형 컨트롤 시스템 라이브러리
* 연속 및 이산 적분 변환
* 데이터, 이미지, 동영상, 음향, 컴퓨터 지원 설계, GIS, 문서 및 생의학 등의 다양한 포맷 가져 오기 및 내보내기 필터
* 수학, 과학, 사회 경제 관련 인포 및 WolframAlpha가 제공하는 데이터와 연산에 접근 가능한 데이터 베이스 컬랙션
* 수식 편집기, 자동 리포트 생성기 등 기술 용어 처리
* DLL, SQL, Java, .NET, C++, Fortran, CUDA, OpenCL, 및 http 기반 시스템 연결 툴
* 병렬 프로그래밍 툴
* 인터넷 접속시 "자유 형식 언어 입력" (자연어 사용자 인터페이스)과 Wolfram 언어를 노트북에 모두 사용

## 인터페이스
Mathematica는 사용자와 상호 작용할 수 있는 프론트 엔드와 Wolfram 언어 코드로 연산을 수행하는 커널의 두 부분으로 구성된다. 노트북 형식의 프론트 엔드는 Mathematica 시스템의 GUI를 담당하는 부분이며 포맷된 텍스트 및 수학 타입셋, 그래픽, GUI 요소, 테이블, 음향 결과와 함께 프로그램 코드를 포함하는 노트북 문서의 생성 및 수정이 가능하다. 모든 내용 및 서식 설정은 알고리즘 또는 인터랙티브하게 편집 가능하며 일반적인 프로세싱 기능 대부분을 지원하고 있다. 프론트 엔드와 커널은 서로 독립적으로 시작하고 "MathLink"라는 프로토콜을 사용하여 통신하고 있다.

하나의 노트북에서 데이터의 처리부터 시각화, 문서 작성까지 원활하게 수행할 수 있는 것은 Mathematica의 가장 큰 장점 중 하나이다. 노트북에서는 사용자의 입력 (텍스트와 Wolfram 코드)과 커널 연산 결과 (그래픽과 사운드 포함)는 모두 계층화 된 '셀'에 포함되어 문서의 개요 및 섹션 분할을 용이하게 할 수 있다. 노트북의 내용은 모두 Wolfram 언어로 기술되어 있으며, 그 자체를 Wolfram 언어로 생성, 수정, 해석하는 것이 가능하다. 노트북에서 TeX 나 XML 등의 다른 포맷으로의 변환은 이 기능을 이용한 구문 분석을 통해 실현되고있다.

Mathematica 표준 노트북 이외에도 대체 프런트 엔드가 존재한다. 2006년에는 Eclipse 기반 통합 개발 환경의, Wolfram Workbench가 등장했다. Mathemarica의 프로젝트 기반 코드 개발 도구가되고 있으며, 버전 관리, 디버깅, 프로파일링, 테스팅 등의 기능이있다. 또한 Mathematica 커널은 커멘드 라인 프론트 엔트 역시 포함하고있으며, 다른 인터페이스로는 GNU readline, MASH 기반의 JMath,가 있으며 UNIX 명령 줄에서 직접 커널을 호출하여 상호작용할 수 있다.

## 계산 가능한 데이터
Mathematica는 일관된 프레임 워크에서 관리되는 데이터 집합이 포함되어 있으며, 즉시 계산에 사용할 수 있는 엄선된 데이터 컬랙션을 포함하고 있다. 또한 Mathematica는 지속적으로 데이터를 업데이트하는 온라인 서비스 Wolfram Alpha와 통합되어 있다. 수학 데이터, 뿐만 아니라 천문학 데이터, 화학 데이터, 지정학적 데이터, 언어 데이터, 생명 과학 데이터, 금융 데이터, 기상 데이터 등 다수의 계산 가능한 데이터를 포함하고 있다.

## 라이선스 및 사용 가능한 플랫폼
Mathematica는 영리 목적, 교육용, 그리고 사용 용도에 따른 각기 다른 컴퓨터 사유 소프트웨어이다. Mathematica 10은 마이크로소프트 윈도우 (Vist, 7,8, 10), Apple 사의 OS X, 리눅스, Raspbian, 그리고 온라인 서비스 등 다양한 버전을 지원한다. 모든 플랫폼은 64 비트 구현을 지원한다.

## 버전 기록

* Mathematica 1.0 (1988년 6월 23일)
* Mathematica 1.1 (1988년 10월 31일)
* Mathematica 1.2 (1989년 8월 1일)
* Mathematica 2.0 (1991년 1월 15일)
* Mathematica 2.1 (1992년 6월 15일)
* Mathematica 2.2 (1993년 6월 1일)
* Mathematica 3.0 (1996년 9월 3일)
* Mathematica 4.0 (1999년 5월 19일)
* Mathematica 4.1 (2000년 11월 2일)
* Mathematica 4.2 (2002년 11월 1일)
* Mathematica 5.0 (2003년 6월 12일)
* Mathematica 5.1 (2004년 10월 25일)
* Mathematica 5.2 (2005년 6월 20일)
* Mathematica 6.0 (2007년 5월 1일)
* Mathematica 7.0 (2008년 11월 18일)
* Mathematica 8.0 (2010년 11월 15일)
* Mathematica 9.0 (2012년 11월 28일)
* Mathematica 10.0 (2014년 7월 9일)
* Mathematica 10.0.1 (2014년 9월 17일)
* Mathematica 10.0.2 (2014년 12월 10일)
* Mathematica 10.1 (2015년 3월 30일)
* Mathematica 10.2 (2015년 7월 14일)
* Mathematica 10.3 (2015년 10월 15일)
* Mathematica 10.3.1 (2015년 12월 16일)
* Mathematica 10.4 (2016년 3월 2일)
* Mathematica 10.4.1 (2016년 4월 18일)
* Mathematica 11.0.0 (2016년 8월 8일)
* Mathematica 11.0.1 (2016년 9월 22일)
* Mathematica 11.1.0 (2017년 3월 16일)
* Mathematica 11.1.1 (2017년 4월 19일)
* Mathematica 11.2.0 (2017년 9월 14일)
* Mathematica 11.3.0 (2018년 3월 18일)
* Mathematica 12.0.0 (2019년 4월 16일)
* Mathematica 12.1.0 (2020년 3월 18일)

## 같이 보기
* 프로그래밍 언어의 비교
* 동적 프로그래밍 언어
* 4세대 프로그래밍 언어
* 함수형 프로그래밍
* 문학적 프로그래밍
* 수학 소프트웨어
* 울프럼 알파
* 울프럼 언어
* SageMath
* 다중 페러다임 프로그래밍 언어

### 유사한 프로그램
* 메이플: Maple. 계산용 프로그램
* 매트랩: Matlab. 계산용 프로그램
* 매스캐드: Mathcad. 계산용 프로그램

## 각주

## 외부 링크

* 
* Mathematica 문서 센터
* 이미지 식별 Mathematica 기반 웹사이트
* Wolfram Demonstrations Project Mathematica 기반 데모
* Mathematica 역사의 단면 코드 베이스 및 함수 관련 문서

분류:1988년 소프트웨어
분류:크로스 플랫폼 소프트웨어
분류:수식 편집기
분류:수치 프로그래밍 언어
분류:수치 해석 소프트웨어
분류:컴퓨터 대수학 시스템
분류:천문학 데이터베이스
분류:물리학 소프트웨어
분류:시계열 소프트웨어
분류:통계 프로그래밍 언어
분류:Qt를 사용하는 소프트웨어
분류:리눅스용 컴퓨터 대수학 시스템 소프트웨어
분류:MacOS용 컴퓨터 대수학 시스템 소프트웨어
분류:윈도우용 컴퓨터 대수학 시스템 소프트웨어
분류:기계 학습 및 데이터 마이닝 소프트웨어