Numerical Analysis Software Package
수치해석 : Kendall Atkinson 저, 김선영 옮김, 희중당, 1994 (원서 : Elementary Numerical Analysis : John Wiley & Sons, 1993), page 414~419
이 책에 포함된 프로그램은 공부한 수치해석에 통찰력을 키우도록 설계되었다. 이것들은 정확하고, 효율적이고, 실패율이 적고, 편리한 코드를 만드는데 사용하도록 쓰여진 것은 아니다. 그런 컴퓨터코드를 위해서는 과거 15~20 년 동안 쓰여진 좋은 수치해석 프로그램 패키지를 쓰도록 해야 한다. 이 부록에서 이런 패키지에 관한 정보와 함께 리스트를 작성하겠다. 대부분의 이런 패키지들은 포트란으로 쓰여졌으며, 따라서 이것들은 포트란 프로그래밍 환경에서 사용된다. 수치해석에서 일반적으로 널리 사용되는 라이브러리가 두개 있다. 각 라이브러리는 수치해석에서 가장 표준적인 프로그램을 포함한다. 이 두 라이브러리는 대부분의 컴퓨터와 미니컴퓨터에서 쓸 수 있고, 어떤 부분은 마이크로컴퓨터에서도 사용이 가능하다. 또, 이 부록에서 논의되지 않는 패키지도 라이브러리에 있다.
1. IMSL (International
Mathematics and Statistics Library)
이 라이브러리는 수치해석과 통계학의
문제를 푸는 900개 이상의 부프로그램을 포함한다. 이 라이브러리는 MATH/LIBRARY,
STAT/LIBRARY, SFUN/LIBRARY 라고 불리는 세부분으로 구성되며, 이 부분들은
개별적으로 이용가능하다. MATH/LIBRARY 는 기초 수치해석 영역의 대부분을 다루고
STAT/LIBRARY 는 통계학과 확률에 대해 SFUN/LIBRARY 는 특별한 함수에 대한
프로그램의 모음이다. LIBRARY 에 대한 좀더 많은 정보를 얻기 위해 다음에서
찾아보라.
IMSL, Inc.
2500 Parkwest Tower One
2500 City West
Boulevard
Houston, Texas 77042-3020
2. NAG (Numerical Algorithms
Group) 이 라이브러리는 수치해석과 통계학의 기본 문제들을 다루는 500 이상의
부프로그램을 포함한다. 라이브러리에 대해 더 많은 정보를 원한다면 다음과
접촉하라.
Numerical Algorithms Groups, Inc.
1400 Opus Place, Suite
200
Downers Grove, Illinois 60515-5702
1972 년 이래로, 많은 수의 양질의 수치해석 프로그램 패키지가 특별한 문제 영역에 관해 쓰여져왔다. 이런 패키지들은 일반적으로 최신의 (state-of-the-art) 알고리즘, 기종이 다른 컴퓨터에서도 쓸 수 있는 성질 (portability), 높은 정확도와 효율성, 적은 실패율 (robustness) 로 특성지어진다. 이 패키지의 많은 아이디어는 IMSL 과 NAG 라이브러리에 포함되어 있으나, 이런 패키지를 따로 따로 사용하는 것이 유용한 때가 많다. 이것들은 실제 포트란 소스 코드가 필요하면 수정할 수 있으며 큰 라이브러리보다 때로는 완전히 문서화된다. 우리는 여기서 몇몇 특별한 패키지만을 보기로 하자.
1. EISPACK
(collection of Fortran subroutines that compute the eigenvalues and eigenvectors
of nine classes of matrices) 이것은 여러
형태의 행렬에 대해 고유치와 고유벡터를 구하는 문제를 푼다. 이는 앞 문장에서
언급된 패키지들 중 첫번째이며, 현재 이용가능한 버전은 그것의 3 release 이다.
다른 몇몇 패키지처럼, Argonne National Laboratory 와 Science Foundation
에 의해 재정보조를 받은 몇몇 대학의 연구원들에 의해 개발되었다. 패키지의
자세한 설명과 프로그램의 리스트를 보려면 다음의 논문을 보아라...... 지금은
EISPACK 대신에 LAPACK (Linear
Algebra Package) 가 사용된다.
B.
T. Smith, J. M. Boyle, J. J. Dongarra, B. S. Garbow, Y. Ikebe, V. C. Klema,
and C. B. Moler (1976), Matrix Eigensystem Routines-EISPACK Guide,
2nd ed., Lecture Notes in Computer Science, Volume 6, Springer-Verlag,
1976.
B. S. Garbow, J. M. Boyle, J. J. Dongarra, and C. B. Moler, Matrix
Eigen-system Routines-EISPACK Guide Extension Lecture Notes in Computer
Science, Volume 51 Springer-Verlag, 1977.
2. LINPACK (a collection of Fortran subroutines that analyze and solve linear equations and linear least-squares problems) 이는 선형대수방정식의 계에 대한 해를 구하는 패키지이다. 여러 형태의 계수행렬을 위한 부프로그램이 포함되어 있다. 이 프로그램의 버전은 네 종류의 컴퓨터 연산, 즉 실수의 단일정밀도, 배정밀도와 허수의 단일정밀도, 배정밀도에 사용가능하다. 오차 관찰도 가능하며, 선형계에 대해 계수행렬의 조건을 체크할 수 있다. 코드는 LINPACK 를 통해 이용가능하다. LINPACK 에서의 문서화와 모든 프로그램의 리스팅 (listing) 에 대해서는 J. J. Dongarra, J. R. Bunch, C. B. Moler, G. W. Stewart, LINPACK 사용자 가이드,, SIAM Publications, 1979 를 보라. LINPACK 과 수치적 선형대수에서 Fortran 의 사용에 대해 더 알고 싶으면, Coleman-Van Loan (1988) 을 보라 ....... 지금은 LINPACK 대신에 LAPACK (Linear Algebra Package) 가 사용된다.
3. MINPACK. 이것은 비선형 대수방정식의 문제와 비선형최소자승법 문제를 푸는 프로그램이다. 제 2 판은 앞으로 나올 것이며, 비제한적인 최적문제와 제한적인 최적문제의 프로그램을 포함한다. 이 코드는 NETLIB 에서 이용가능하며 사용자 안내가 패키지와 함께 있다.
4. LLSQ. 이것은 선형최소자승문제를 푸는 프로그램의 모음이다. LLSQ 에서 포트란 프로그램의 목록과 최소자승문제는 C. Lawson and R. Hanson, Solving Least Squares Problems. Prentice-Hall. 1974 에 나와있다.
5. B-SPLINE. 이 패키지는 spline 함수의 구성, 계산, 미분, 적분에 대한 부프로그램을 포함한다. 이 프로그램은 [C. deBoor, A Practical Guide to Spline, Springer-Verlag, 1978] 의 일부분이다. 이 코드는 NETLIB 로부터 사용할 수 있다.
6. LAPACK. 이 패키지는 EISPACK 와 LINPACK 에 있는 프로그램을 결합, 수정, 확장한다. 이 새로운 프로그램은 1980 년대와 1990 년대에 널리 이용가능한 vector 컴퓨터와 parallel 컴퓨터에 잘 적용된다. 이 프로그램은 NAG 와 NETLIB 로부터 이용가능하다. 이 패키지를 더 잘 알고자하면 [E. Anderson, et al, LAPACK User's Guide, SIAM publications, 1992] 를 보라.
C.1 NETLIB
이것은 수학 소프트웨어의 큰 모음이며 전자우편에 의해 사용가능하다. 이것은 Oak Ridge National Laboratory 에 위치하며 이 모음에 있는 프로그램은 무료로 이용가능하다. NETLIB 사용법을 배우기 위해 send index 메시지를 전자우편함주소 netlib@ornl.gov로 보내야 한다. NETLIB 내용에 관한 목록과 사용법을 받을 수 있을 것이다.
C.2 상호작용의 수치해석 프로그램
마이크로컴퓨터에서 사용되는 수치해석을 위한 용이한 프로그램이 과거 몇 년동안 개발되었다. 강력한 명령어와 쉬운 프로그래밍, 편리한 그래프를 가진 것을 둘만 나열하면 다음과 같다.
MATLAB : mathematical computing, visualization, and a powerful language
The Mathworks, Inc. Cochituate Place 24 Prime Park Way Natick, MA 01760-1520, USA
GAUSS : fast matrix programming language
APTECH Systems, Inc. 23804 SE Kent-Kangley Road Maple Valley, WA 98038
수치적 선형대수에 대한 MATLAB 에 대해서는 Coleman-Van Laon (1988) 을 찾아보자.
C.3 기호수학 프로그램
1980 년대에 수치적 수학보다는 기호수학을 위한 컴퓨터프로그램이 많이 사용되기 시작했다. 기호수학 프로그램 사용의 증가는 수치해석을 포함하여 수학의 교수법과 연구에 변화를 가져왔다. 이러한 새로운 컴퓨터 이용이 우리에게 앞으로 어떻게 변화를 줄지는 아직 명확치 않다. 그러나 이것들은 수학의 모든 영역에 중요한 영향을 미칠 것으로 보인다. 다음은 주요한 컴퓨터대수시스템의 주소이다. 이는 모두 mainframe 에서 개인용 컴퓨터까지의 모든 컴퓨터에 사용할 수 있다.
MACSYMA Division Symbolics Inc. 8 New England Executive Park Burlington, Massachusetts 01803 USA
Waterloo Maple Software 160 Columbia Street West Waterloo, Ontario N2L 3L3 Canada
MATHEMATICA : 단순한 계산에서 대규모의 프로그래밍과 문서 조작까지
Wolfram Research, Inc. 100 Trade Center Drive Champaign, Illinois 61820-7237 USA
C.4 수학소프트웨어에 관한 문헌
수학에 관한 새로운 프로그램이나 정보에 관한 몇몇 정기간행물이 있다. 몇몇은 Association for Computing Machinery (ACM) 에서 발행한다. 여기선 이에 관한 언급은 생략하기로 하자. 위의 것에 대한 정보를 얻으려면 다음에 연락해보자.
ACM 11 West 42nd Street New York, NY 10036
1. ACM Transactions on Mathematical Software. 이 저널은 수치해석 소프트웨어의 실행 (test) 과 발전 (development) 에 관한 내용을 포함한다. 또 다양한 수치해석 문제에 새로운 프로그램을 포함한다. 이런 프로그램은 보통 매우 조심스럽게 쓰여지며, 다른 컴퓨터에 사용할 수 있는 형태이다.
2. Collected Algorithms of the ACM. 이것은 ACM 저널에 발표된 모든 프로그램을 수록하고 있으며, 이것을 ACM 과 따로 구독함으로써 얻을 수 있다. 모든 새로운 수학프로그램은 ACM Transactions Software 에 수록되어 있다. 컴퓨터가 읽을 수 있는 알고리즘은 NETLIB 으로부터 얻을 수 있다.
3. ACM SIGNUM Newsletter. SIGNUM ACM 안에서 수치해석에 종사하는 조직인 Special Interest Group in Numerical Mathematics 의 약자이다. 새로운 소프트웨어 패키지에 대한 정보가 이 newsletter 에 있다.
이 부록에서 살펴본 것은 현재 존재하는 수학소프트웨어의 극히 작은 일부분만 언급한 것이다. 또 여기서 다룬 프로그램은 미국에서 주로 얻을 수 있는 것이었는데 이는 저자가 이런 프로그램과 익숙하기 때문이다.