다음: 일러두기, 이전: 옥타브 실행, 상위 문서: 소개   [차례][찾아보기]


1.2 간단한 예시

본 사용설명서는 모든 옥타브 기능을 자세하게 설명합니다. 그러나, 설명을 보기 전에 약간의 사용례를 보는 것이 도움이 될 것입니다.

옥타브를 처음 사용하신다면, 아래 예시를 실행해 보면서 옥타브를 배우는 편이 좋습니다. ‘octave:13>’라고 표기된 부분은 입력줄이고, 입력이 끝나면 입력쇠를 누릅니다. 그러면 해 또는 도표가 출력됩니다.

1.2.1 기초 연산

옥타브는 기초적인 수치 계산에 사용하기 쉽습니다. 옥타브는 산술 연산자(+,-,*,/), 멱수(^), 자연 로그 및 자연 로그의 밑(log, exp), 삼각함수(sin, cos…) 연산을 할 줄 압니다. 더욱이, 실수 및 허수(i, j)에 기반해 연산합니다. 추가로, 자연 로그의 밑(e)과 원주율(pi) 등 일부 수학 상수는 미리 정의되어 있습니다.

한 예로, 오일러 항등식을 풀면,


 i*pi
e     = -1

허용 오차 내의 값인 -1을 구합니다.

octave:1> exp (i*pi)

1.2.2 행렬 만들기

벡터 공간과 행렬은 수치 해석의 기본 구성 요소입니다. 새 행렬을 만들고, 나중에 참조하기 위해 변수로 저장하려면, 다음과 같이 입력하십시오.

octave:1> A = [ 1, 1, 2; 3, 5, 8; 13, 21, 34 ]

옥타브는 행렬을 깔끔하게 쌍반점으로 구분된 한 줄로 출력합니다. 각 원소는 한 줄에서 반점 또는 띄어쓰기로 구분되며, 각 행은 쌍반점 또는 줄바꿈으로 구분됩니다. 쌍반점으로 명령을 끝내면 명령 처리 결과가 출력되지 않습니다. 예시로,

octave:2> B = rand (3, 2);

는 0에서 1 사이의 무작위 원소를 가진 3행 2열짜리 행렬을 만듭니다.

변수값을 출력하려면, 명령 처리기에 간단하게 변수명을 입력하면 됩니다. 행렬 B에 저장된 값을 보려면 아래와 같이 입력합니다.

octave:3> B

1.2.3 행렬 연산

옥타브는 표준 수학 표기법을 사용하여, 연산자가 스칼라, 벡터, 행렬, 다차원 배열 중 어디에서 작동할지 모르는 저수준 언어에 비해 유리합니다. 행렬 A에 스칼라 값을 곱하려면 아래와 같이 입력합니다.

octave:4> 2 * A

배열 A와 배열 B를 곱하려면,

octave:5> A * B

행렬 곱셈 전치 행렬 A * A을 하려면,

octave:6> A' * A

1.2.4 선형 방정식 풀기

선형 방정식 풀이는 수치 해석에서 흔합니다. 일차 방정식 A가로 = b를 풀기 위해서는 왼쪽 나누기 연산자 '\'가 필요합니다.

가로 = A \ b

이는 개념 상 inv (A) * b와 같으나, 직접 역행렬 연산을 하지 않습니다.

계수가 홀로 쓰이면, 경고가 출력되고, 최소한의 표준 연산을 합니다.

화학반응식의 균형을 맞추어야 하는 간단한 화학 예시가 있습니다. 수소와 산소를 태우면 물이 생성된다는 점을 생각합시다.

H2 + O2 --> H2O

위 화학식은 잘못되었습니다. 질량 보존 법칙에 따르면, 반응식의 각 원소 원자의 좌우항 개수는 일치해야 합니다. 개별 수소와 산소 방정식으로 전체 반응식을 쓰면,

x1*H2 + x2*O2 --> H2O
H: 2*x1 + 0*x2 --> 2
O: 0*x1 + 2*x2 --> 1

옥타브에서는 단 3번만에 결과를 도출합니다.

octave:1> A = [ 2, 0; 0, 2 ];
octave:2> b = [ 2; 1 ];
octave:3> x = A \ b

1.2.5 미적분

옥타브에는 비선형 방정식을 푸는 정형화된 내장 함수가 있습니다.

dx
-- = f (x, t)
dt

초기 조건과 함께 합니다.

x(t = t0) = x0

이 방식으로 적분 방적식을 옥타브로 풀려면, 먼저 함수 f(x,t)를 정의해야 합니다. 함수 전체를 단순히 명령줄에 입력하기 해도 되는 경우가 있는, 매우 간단한 작업입니다. 아래 명령은 비선형 미분 방정식의 중요 부분인 우항을 정의합니다. 함수를 입력할 때마다 개별 창에 응답하는데, 이는 사용자가 입력을 전부 완료할 때를 기다린다는 표시입니다.

octave:1> function xdot = f (x, t)
>
>  r = 0.25;
>  k = 1.4;
>  a = 1.5;
>  b = 0.16;
>  c = 0.9;
>  d = 0.8;
>
>  xdot(1) = r*x(1)*(1 - x(1)/k) - a*x(1)*x(2)/(1 + b*x(1));
>  xdot(2) = c*a*x(1)*x(2)/(1 + b*x(1)) - d*x(2);
>
> endfunction

초기 조건을 줍니다.

octave:2> x0 = [1; 2];

그리고 쌍반점 벡터로 출력 시간을 설정합니다. 첫 출력은 초기 조건을 준 후 바로 나옴에 유의하십시오.

octave:3> t = linspace (0, 50, 200)';

개별 방정식 정의를 통합하기도 쉽습니다.

octave:4> x = lsode ("f", x0, t);

lsode 함수는 the Livermore Solver for Ordinary Differential Equations, described in A. C. Hindmarsh, ODEPACK, a Systematized Collection of ODE Solvers, in: Scientific Computing, R. S. Stepleman et al. (Eds.), North-Holland, Amsterdam, 1983, pages 55–64. 에서 가져왔습니다.

1.2.6 시각화

위에서 설명한 풀이 예시를 시각화하려면, 아래 명령을 입력하면 됩니다.

octave:1> plot (t, x)

옥타브가 자동으로 개별 창에 도표를 그립니다.

도표가 표시될 때 함께 저장되기를 원한다면, 아래처럼 출력 명령을 사용하면 됩니다.

print -dpdf foo.pdf

출력된 도표가 들어있는 이동식 문서 형식인 foo.pdf가 생성됩니다.
명령어

help print

print 명령의 매개변수와 더 많은 출력 형식 목록을 알려줍니다.

1.2.7 도움말과 문서

옥타브에는 광범위한 도움말이 존재합니다. 같은 자료를 공유하기 때문에, 동일한 도움말을 옥타브 명령 처리기에서도 볼 수 있습니다.

제대로 된 도움을 얻기 위해서는, 먼저 사용하려는 명령어의 이름을 알아야 합니다. 명령어 이름이 언제나 직관적이지는 않지만, help --list를 입력해 보는 것이 좋은 출발입니다. 이 명령은 모든 연산자와 예약어, 내장 함수, 현재 상태의 옥타브에서 불러올 수 있는 함수를 보여줍니다. 다른 방법으로는 lookfor 함수로 문서를 탐색하는 것입니다. (도움 얻기에서 자세히 보기)

사용하려는 함수의 이름을 알았으면, 단순히 help 명령에 함수 이름을 덧붙이는 것만으로 많은 정보를 얻을 수 있습니다.

help plot

plot함수 도움말을 출력합니다.

옥타브 도움말 도구는 인포라는 별도의 풀그림을 통해 옥타브에 내장된 도움말 전문을 제공합니다. 인포를 실행하면 옥타브 도움말 전체를 가진 차림표 중심 풀그림이 나타납니다. 본 사용설명서의 도움 얻기에서 인포 사용법을 볼 수 있습니다.

1.2.8 입력 내용 편집

옥타브 명령 처리기에서 이맥스 또는 vi 형식 편집 명령으로 편집 취소, 편집, 이전 명령 다시 사용이 가능합니다. 기본 글쇠 설정은 이맥스 형식을 따릅니다. 이전 명령 다시 사용은 제어쇠-p(이하 C-p)입니다. 이 명령은 직전 입력을 불러옵니다. C-n은 입력줄 줄바꿈을 하고, C-b는 반디를 줄 끝으로 보내며, C-f는 반디를 줄 앞으로 보냅니다.

명령줄 편집에 대한 전체 도움말은 명령줄 편집에 있습니다.


다음: 일러두기, 이전: 옥타브 실행, 상위 문서: 소개   [차례][찾아보기]