MatLab Octave Scilab의 계산 정확도 비교

MatLab Octave Scilab의 계산 정확도 비교
안내: 본 포스트의 한글 요약 및 분석 리포트는 AI 기술을 통해 자동 생성되었습니다. 정보의 정확성을 위해 하단의 [원본 논문 뷰어] 또는 ArXiv 원문을 반드시 참조하시기 바랍니다.

초록

본 논문은 i386 환경에서 Windows, Ubuntu, macOS 세 운영체제에 설치된 MatLab, Octave, Scilab의 수치 연산 정확성을 평가한다. NIST 표준 데이터와 자체 제작한 행렬·통계 테스트를 이용해 각 플랫폼이 제공하는 함수들의 결과를 인증값과 비교하고, 유효한 유효숫자 자릿수를 측정한다. 또한 입력값의 미세 변동에 대한 민감도를 확인하기 위해 일부 데이터에 대해 몬테카를로 시뮬레이션을 수행하였다.

상세 분석

논문은 먼저 실험 환경을 상세히 기술한다. i386 아키텍처의 64비트 CPU와 8 GB RAM을 갖춘 동일 하드웨어에 세 운영체제(Windows 10 64‑bit, Ubuntu 20.04 LTS, macOS Catalina)를 설치하고, 각각 최신 버전의 MatLab R2023a, Octave 8.2.0, Scilab 6.1.1을 배포하였다. 테스트는 두 가지 축으로 구성된다. 첫 번째는 선형대수 연산으로, 3×3부터 10×10까지 다양한 크기의 정수·실수 행렬에 대해 행렬식, 고유값, 고유벡터를 계산하고, NIST가 제공한 정확값과 비교한다. 두 번째는 통계 연산으로, 평균, 표준편차, 1‑lag 자기상관, 단순 선형 회귀 계수, 그리고 정규·지수·베타·카이제곱 분포의 극값을 구한다. 각 연산마다 “정확한 유효숫자 자리수”(significant digits) 를 계산하기 위해 절대 오차와 상대 오차를 동시에 고려하였다.

결과는 플랫폼별·OS별로 크게 차이가 없으며, 대부분의 연산에서 1415자리(IEEE‑754 배정밀도)까지 일치한다. 다만, 행렬식 계산에서 Scilab은 특정 대형 정수 행렬에 대해 12자리 이하로 정확도가 떨어졌고, Octave은 고유값 정렬 순서가 다르게 나타나 비교 시 추가적인 매핑이 필요했다. 통계 함수에서는 MatLab이 가장 일관된 결과를 보였으며, 특히 회귀 계수와 상관계수에서 15자리까지 정확했다. Octave와 Scilab은 일부 확률분포의 극값(예: 카이제곱 0.99 분위수)에서 1314자리 정도로 약간 낮았다.

몬테카를로 실험에서는 입력값에 ±1e‑6 수준의 잡음을 추가했을 때, 모든 플랫폼이 평균적으로 0.5~1.2자리의 유효숫자 손실을 보였으며, 이는 수치 연산 자체의 조건수(condition number)와 직접 연관됨을 확인했다. 특히, 고조건수 행렬(조건수 > 1e 12)에서는 Scilab이 가장 큰 변동성을 나타냈다.

전반적으로 논문은 세 플랫폼이 현대 수치 계산 요구를 충족한다는 결론을 내리지만, 고정밀이 요구되는 특수 상황(대형 행렬식, 고조건수 문제)에서는 MatLab이 가장 안전한 선택임을 강조한다.


댓글 및 학술 토론

Loading comments...

의견 남기기