맨위로가기

맥시마 (소프트웨어)

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

Maxima는 1982년 MIT에서 개발된 Macsyma를 기반으로 하는 컴퓨터 대수 시스템이다. ALGOL과 유사한 문법과 Lisp과 유사한 의미론을 가진 프로그래밍 언어를 포함하며, 기호 계산, 수치 계산, 프로그래밍 기능을 제공한다. 다양한 그래픽 사용자 인터페이스를 지원하며, 다른 상용 수식 처리 시스템과 비교하여 오픈 소스라는 장점을 가진다.

더 읽어볼만한 페이지

  • 커먼 리스프 소프트웨어 - Cyc
    Cyc는 더글러스 레너트가 시작한 인공지능 프로젝트로, 인간 수준의 지식을 컴퓨터에 구축하는 것을 목표로 지식베이스와 추론 엔진을 활용하며, 다양한 분야에 응용되었으나 데이터 구축의 어려움으로 비판받기도 했다.
  • 커먼 리스프 소프트웨어 - ACT-R
    ACT-R은 존 R. 앤더슨이 개발한 인지 아키텍처이자 모델링 언어로서, 선언적 기억과 절차적 기억을 바탕으로 인지 과정을 설명하며, 다양한 분야에 응용되고 활발한 연구가 진행되고 있다.
  • 리스프로 작성된 자유 소프트웨어 - GNU 이맥스
    GNU 이맥스는 1984년 리처드 스톨먼이 개발한 자유 소프트웨어 텍스트 편집기로, C 언어와 Emacs Lisp를 사용하며, 다양한 기능과 확장성을 통해 텍스트 편집, 프로그래밍, 파일 관리 등 다양한 용도로 사용된다.
  • 리스프로 작성된 자유 소프트웨어 - 리듀스 (컴퓨터 대수학 시스템)
    REDUCE는 1960년대 앤서니 C. 허언에 의해 개발된 컴퓨터 대수학 시스템으로, Standard LISP로 구현되었고, ALGOL과 유사한 구문인 RLISP를 사용하며, 다양한 운영 체제에서 사용 가능하고, 2008년 오픈 소스화되어 수정된 BSD 라이선스에 따라 배포된다.
  • 윈도우용 컴퓨터 대수학 시스템 소프트웨어 - 메이플 (소프트웨어)
    메이플은 Maplesoft에서 개발한 컴퓨터 대수 시스템 소프트웨어로, 기호 및 수치 계산, 시각화, 프로그래밍 기능을 제공하며 수학적 모델링, 시뮬레이션, 데이터 분석 등에 활용되어 교육 및 연구 개발 분야에서 널리 사용된다.
  • 윈도우용 컴퓨터 대수학 시스템 소프트웨어 - SageMath
    SageMath는 윌리엄 스타인이 개발한 파이썬 기반의 수학 소프트웨어로, 다양한 오픈 소스 수학 패키지를 통합하여 여러 분야의 수학 계산을 지원하며, GNU 일반 공중 사용 허가서에 따라 배포되는 자유 소프트웨어이다.
맥시마 (소프트웨어) - [IT 관련 정보]에 관한 문서
기본 정보
Maxima 로고
Maxima 로고
Ubuntu Linux에서의 wxMaxima 스크린샷
Ubuntu Linux에서의 wxMaxima 스크린샷
개발자Macsyma 그룹 (Project MAC)
자원 봉사 기여자
최초 공개일1982년
최신 버전5.47.0
최신 릴리스 날짜2023년 5월 31일
프로그래밍 언어커먼 리스프
운영 체제크로스 플랫폼
장르수식 처리 시스템
라이선스GPL
웹사이트maxima.sourceforge.io

2. 역사

Maxima는 MIT에서 미국 에너지부 및 기타 정부 기관의 자금 지원을 받아 개발된 1982년 버전의 Macsyma를 기반으로 한다.[1] Macsyma의 한 버전은 1982년부터 2001년 사망할 때까지 빌 쉘터(en)에 의해 유지되었다.[1] 1998년, 쉘터는 에너지부로부터 자신의 버전을 GPL 하에 배포할 수 있는 권한을 얻었다.[1] 이렇게 공개된 프로그램은 '''Maxima''' ('''맥시마''')라고 불리게 되었다.

2001년 쉘터의 사망 이후, '''Maxima''' ('''맥시마''')는 개발자와 이용자 그룹에 의해 독자적으로 개발이 계속되고 있다.[1] Maxima는 1982년부터 1999년까지 Macsyma의 상업 버전에 이루어진 많은 수정 및 개선 사항을 포함하지 않는다.[1] 핵심 기능은 유사하지만, 이러한 개선 사항에 의존하는 코드는 Maxima에서 작동하지 않을 수 있으며, Macsyma에서 수정된 버그가 Maxima에 여전히 존재할 수 있고 그 반대의 경우도 마찬가지이다.[1] Maxima는 국제 신경정보학 조정 시설 하에 2019년에 구글 코드 인 써머에 참여했다.[1]

3. 구현

Maxima는 GNU Common Lisp로 이식되면서 개발이 시작되었지만, 이후 CLISP나 CMU Common Lisp (CMUCL)에서도 동작하도록 개량되었다. V5.9 이후부터는 CLISP나 CMUCL이 표준이 되었다.[1]

Maxima는 문법적으로는 ALGOL에, 의미적으로는 Lisp에 각각 유사한 프로그래밍 언어를 갖추고 있어, 프로그래밍이나 컴퓨터 대수 교육용으로도 사용할 수 있다.[1]

또한 Maxima는 다른 수식 처리 시스템과 마찬가지로 고도의 기호 처리 기능을 갖추고 있으며, 유리수나 임의 정밀도 정수, 임의 정밀도 부동 소수점 연산을 가능하게 한다. 부동 소수점 수나 배열 처리를 보다 효율적인 FORTRAN 등으로 처리하기 위한 프로그램 내보내기도 지원된다.[1]

Maxima를 그래픽 사용자 인터페이스(GUI)에서 조작하기 위한 프론트엔드로는 TeX와 Emacs의 발상을 계승한 GNU TeXmacs, wxWidgets에 기반한 wxMaxima, Emacs용 패키지 imaxima 등이 있다.[1]

4. 기능

맥시마는 기호 연산에 특화되어 있지만, 임의 정밀도 정수, 유리수, 부동 소수점과 같은 수치적 기능도 제공한다. 공간 및 시간 제약에 따라 수치 연산에 제한이 있을 수 있다.[10]

맥시마는 ALGOL과 유사한 구문을 갖지만 Lisp와 유사한 의미론을 가진 완전한 프로그래밍 언어이다. Common Lisp로 작성되었으며, 맥시마에서 기본 Lisp을 호출할 수 있으므로 프로그래밍 방식으로 접근하고 확장할 수 있다. 그림을 그리는 데에는 gnuplot을 사용한다.[1]

프로그래밍 및 컴퓨터 대수 교육용으로도 사용할 수 있으며,[3] 명령어 처리 및 배치 처리를 통한 프로그램이 가능하다.[4]
표기법 (입력 규칙)[4]

항목내용
주석
실행
대입
n차 해 (리스트)`[해[1],해[2],...]`
연산 (가감승제, 함수)
추출
다항식
해법
미분 방정식
그래프 표시 (2D, 3D)
프로그램
함수화(리스트화)`block([지역 변수 리스트], 일련의 절차,return(계산 결과));`
파일 입출력


4. 1. 기호 계산

맥시마는 다항식 인수분해, 다항식 최대공약수 계산, 전개, 실수부와 허수부 분리, 삼각 함수의 지수 함수 변환 등 다양한 방법으로 기호 대수식을 재구성할 수 있도록 지원한다. 삼각 함수, 근, 지수 함수를 포함하는 대수식을 단순화하는 다양한 기술을 가지고 있다. 기호 부정 적분, 정적분, 극한을 계산할 수 있다. 닫힌 형식의 급수 전개와 테일러-매클로린-로랑 급수의 항을 구할 수 있다. 기호 항목이 있는 행렬 조작을 수행할 수 있다.[10]

4. 2. 수치 계산

맥시마는 기호 연산에 특화되어 있지만, 임의 정밀도 정수, 유리수, 부동 소수점과 같은 수치적 기능도 제공한다. 이때, 공간 및 시간 제약에 따라 수치 연산에 제한이 있을 수 있다.

4. 3. 프로그래밍

맥시마는 ALGOL과 유사한 구문을 갖지만 Lisp와 유사한 의미론을 가진 완전한 프로그래밍 언어이다. Common Lisp로 작성되었으며, 맥시마에서 기본 Lisp을 호출할 수 있으므로 프로그래밍 방식으로 접근하고 확장할 수 있다. 그림을 그리는 데에는 gnuplot을 사용한다.[1]

맥시마는 문법적으로는 ALGOL에, 의미적으로는 Lisp에 각각 유사한 프로그래밍 언어를 갖추고 있어, 프로그래밍이나 컴퓨터 대수 교육용으로도 사용할 수 있게 되어 있다.[3]

명령어 처리 및 배치 처리를 통한 프로그램이 가능하다.[4]
표기법 (입력 규칙)[4]

항목내용
주석
실행
대입
n차 해 (리스트)`[해[1],해[2],...]`
연산 (가감승제, 함수)
추출
다항식
해법
미분 방정식
그래프 표시 (2D, 3D)
프로그램
함수화(리스트화)`block([지역 변수 리스트], 일련의 절차,return(계산 결과));`
파일 입출력


4. 4. 기타 기능

맥시마는 방정식 풀기, 미분, 극한, 급수 전개, 특수 함수 등 다양한 기능을 제공한다. 조건식, 분기, 반복문 등을 사용한 프로그래밍이 가능하다. 파일 입출력 기능을 지원한다.[1]

다음은 맥시마의 기타 기능에 대한 표이다.

기능설명
주석`/* 주석 행 */`
실행결과를 표시하려면 식의 마지막에 `;`를 입력하고 줄 바꿈한다. 결과를 표시하지 않으려면 `맥시마는 방정식 풀기, 미분, 극한, 급수 전개, 특수 함수 등 다양한 기능을 제공한다. 조건식, 분기, 반복문 등을 사용한 프로그래밍이 가능하다. 파일 입출력 기능을 지원한다.[1]

다음은 맥시마의 기타 기능에 대한 표이다.

를 입력하고 줄 바꿈한다.
대입변수: `변수:대입식;`, 함수: `함수(변수):=대입식;`, `ev(식,변수=수식);`
n차 해`[해[1],해[2],...]` (리스트로 표시)
연산`+` (덧셈), `-` (뺄셈), `*` (곱셈), `/` (나눗셈), `**` 또는 `^` (거듭제곱), `()` (괄호 안의 처리를 우선)
삼각 함수`sin()`, `cos()`, `tan()` 외 다수
추출분수: `ratsimp(유리식);` (통분), `num(분자/분모);` (분자 추출), `denom(분자/분모);` (분모 추출) / 우변, 좌변: `rhs(좌변=우변);` (우변 추출), `lhs(좌변=우변);` (좌변 추출)
다항식`expand(다항식);` (전개), `factor(다항식);` (인수분해), `taylor(함수,변수,전개 중심,근사 차수);` (테일러 전개)
해법`solve([방정식 리스트],[변수 리스트]);` (방정식 풀기), `limit(함수,변수,접근 값);` (극한값), `diff(함수,변수,계수);` (미분), `integrate(함수,변수,시작 값,종료 값);` (적분), `sum(함수,첨자 변수,초기 값,종료 값);` (총합), `product(함수,첨자 변수,초기 값,종료 값);` (총곱)
미분 방정식`atvalue(함수,독립변수=값,함수 값);` (초기값 대입), `desolve(미분 방정식,구하는 함수);` (미분 방정식 풀기)
그래프 표시2차원: `plot2d([함수,...],[변수,시작 값,종료 값]);`, 3차원: `plot3d([함수,...],[변수1,시작 값1,종료 값1],[변수2,시작 값2,종료 값2]);`
조건식`=` (같다), `#` (같지 않다), `<`, `>`, `>=`, `<=` (실수로서 대소 관계), `and`, `or`
분기`if 조건식 then 참인 경우의 처리 else 거짓인 경우의 처리;`
반복(루프)`for 카운터명:초기 값 step 증분 thru 종료 값 do (반복 실행 절차);`, `for 카운터명:초기 값 step 증분 while 조건식 do (반복 실행 절차);`
함수화(리스트화)`block([지역 변수 리스트], 일련의 절차,return(계산 결과));`
파일 입출력내보내기: `save("파일 이름",all);`, 읽기: `loadfile("파일 이름");`
실행 결과 표시`playback(all);`


5. 인터페이스

맥시마용 wxMaxima 인터페이스 스크린샷


맥시마는 다음과 같은 다양한 그래픽 사용자 인터페이스(GUI)를 제공한다.

  • [https://wxmaxima-developers.github.io/wxmaxima/ wxMaxima][3]: wxWidgets 프레임워크를 사용하는 고품질 그래픽 프론트 엔드이다. Mathematica 노트북과 유사한 셀 구조를 제공한다.
  • Project Jupyter용 커널: Python으로 작성된 유연한 노트북 스타일의 GUI를 제공한다.[4]
  • GMaxima: GTK+를 사용하는 맥시마 인터페이스이다.[5]
  • Cantor: Qt를 사용하여 맥시마(SageMath, R, KAlgebra)와 인터페이스할 수 있다.[6]
  • GNU TeXmacs, LyX: 수학 편집기 프로그램으로, 맥시마에 대한 대화형 GUI를 제공한다.
  • Imaxima: Emacs 및 XEmacs 상호 작용 모드를 활성화하는 프론트 엔드이다.
  • Kayali[7]
  • Climaxima:[8] CLIM 기반 프론트 엔드이다.[9]

6. 다른 시스템과의 비교

결과가 초기하 함수가 되는 적분 등의 출력은, Mathematica나 Maple에 비해 현재 구현상 한계가 있다는 보고가 있다.[10]

7. 한국어 자료


  • 요코타 히로시, 《처음 만나는 Maxima》, 공학사, ISBN 978-4777512010, (2006년 9월).
  • 타케우치 카오루, 《처음 만나는 수식 처리 소프트웨어 - Maxima로 즐기는 수식 계산과 물리 그래픽》, 코단샤(블루 백스), ISBN 978-4062575607, (2007년 7월 20일).[1]
  • 아카마 세키, 《Maxima로 배우는 미분 적분 - 무료 '수식 처리 소프트웨어'를 사용하여 효율적으로 학습》, 공학사(I・O BOOKS), ISBN 978-4777515905 (2011년 4월 1일).[2]

참조

[1] 웹사이트 GSOC 2019 completed successfully » Belgian Neuroinformatics http://neuroinformat[...]
[2] 서적 Introduction to Modeling for Biosciences Springer
[3] 웹사이트 wxMaxima, a document based interface for the computer algebra system Maxima https://wxmaxima-dev[...] 2021-11-29
[4] 웹사이트 Maxima-Jupyter https://github.com/r[...] 2021-10-13
[5] 웹사이트 GMaxima :: Home http://gmaxima.ackov[...] 2014-04-02
[6] 웹사이트 Cantor https://cantor.kde.o[...] 2020-01-15
[7] 웹사이트 Kayali download http://kayali.source[...] SourceForge 2013-04-19
[8] 웹사이트 Flathub—An app store and build service for Linux https://flathub.org/[...] 2019-09-27
[9] 간행물 GitHub - lokedhs/maxima-client: Maxima client. https://github.com/l[...] 2019-08-27
[10] 문서 竹内薫]]2007『はじめての数式処理ソフト---Maximaで楽しむ数式計算と物理グラフィック』[[講談社]]:21-2



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com