MATLAB-GNU Octave 튜토리얼

GNU Octave는 MATLAB과 같은 고급 프로그래밍 언어이며 대부분 MATLAB과 호환됩니다. 또한 수치 계산에도 사용됩니다.

Octave는 MATLAB에서 다음과 같은 공통 기능을 가지고 있습니다.

  • 행렬은 기본 데이터 유형입니다.
  • 복소수에 대한 지원이 내장되어 있습니다.
  • 내장 수학 함수와 라이브러리가 있습니다.
  • 사용자 정의 함수를 지원합니다.

GNU Octave는 또한 자유롭게 재배포 할 수있는 소프트웨어입니다. Free Software Foundation에서 발행 한 GNU General Public License (GPL)의 조건에 따라 재배포 및 / 또는 수정할 수 있습니다.

MATLAB과 Octave

대부분의 MATLAB 프로그램은 Octave에서 실행되지만 Octave는 MATLAB에서 허용하지 않는 일부 구문을 허용하기 때문에 일부 Octave 프로그램은 MATLAB에서 실행되지 않을 수 있습니다.

예를 들어, MATLAB은 작은 따옴표 만 지원하지만 Octave는 문자열 정의를 위해 작은 따옴표와 큰 따옴표를 모두 지원합니다. Octave에 대한 튜토리얼을 찾고 있다면 처음부터이 튜토리얼을 통해 MATLAB과 Octave를 모두 다룹니다.

호환 가능한 예

이 튜토리얼에서 다루는 거의 모든 예제는 MATLAB 및 Octave와 호환됩니다. 구문 변경없이 동일한 결과를 생성하는 MATLAB과 Octave에서 다음 예제를 시도해 보겠습니다.

이 예제에서는 g = xe- (x 2 + y 2 ) 함수에 대한 3D 표면 맵을 만듭니다 . 스크립트 파일을 만들고 다음 코드를 입력하십시오-

[x,y] = meshgrid(-2:.2:2);
g = x .* exp(-x.^2 - y.^2);
surf(x, y, g)
print -deps graph.eps

파일을 실행하면 MATLAB은 다음 3D 맵을 표시합니다.

호환되지 않는 예

MATLAB의 모든 핵심 기능은 Octave에서 사용할 수 있지만 두 언어에서 정확히 일치하지 않는 미분 및 적분 미적분과 같은 일부 기능이 있습니다. 이 튜토리얼은 구문이 다른 두 가지 유형의 예제를 제공하려고 시도했습니다.

MATLAB과 Octave가 곡선의 면적을 구하기 위해 서로 다른 함수를 사용하는 다음 예제를 고려하십시오. f (x) = x 2 cos (x) for −4 ≤ x ≤ 9 다음은 MATLAB 버전의 코드입니다.

f = x^2*cos(x);
ezplot(f, [-4,9])
a = int(f, -4, 9)
disp('Area: '), disp(double(a));

파일을 실행하면 MATLAB은 그래프를 플로팅합니다.

다음 결과가 표시됩니다.

a =
8*cos(4) + 18*cos(9) + 14*sin(4) + 79*sin(9)
 
Area: 
   0.3326

그러나 Octave에서 동일한 곡선의 영역을 제공하려면 다음을 사용해야합니다. symbolic 다음과 같이 패키지-

pkg load symbolic
symbols

x = sym("x");
f = inline("x^2*cos(x)");

ezplot(f, [-4,9])
print -deps graph.eps

[a, ierror, nfneval] = quad(f, -4, 9);
display('Area: '), disp(double(a));