English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

MATLAB-GNU Octave 튜토리얼

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

Octave와 MATLAB은 다음과 같은 공통 특징을 가집니다-

  • 행렬은 기본 데이터 타입입니다

  • 복잡수 지원을 내장하고 있습니다

  • 내장된 수학 함수와 라이브러리를 가지고 있습니다

  • 사용자 정의 함수를 지원합니다

GNU Octave는 무료로 재배포할 수 있는 소프트웨어입니다. 자유 소프트웨어 재단이 발행한 GNU 일반 공중 허가(GPL) 조건에 따라 재배포하고/또는 수정하십시오.

MATLAB vs Octave

대부분의 MATLAB 프로그램은 Octave에서 실행됩니다. 그러나 Octave는 MATLAB에서 실행되지 않을 수 있는 일부 Octave 프로그램을 허용하기 때문에, Octave는 MATLAB에서 실행되지 않을 수 있는 일부 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이 다음과 같이 표시합니다3-D 매핑-

불일치 사례

MATLAB의 모든 핵심 기능은 Octave에서 사용할 수 있지만, 일부 기능(예: 미분과 적분 계산)은 두 언어 모두에서 완전히 일치하지 않습니다. 이 가이드는 두 언어의 문법이 다른 두 예제를 제공합니다.

다음 예제를 고려해 보겠습니다. MATLAB과 Octave는 곡선의 면적을 얻기 위해 다른 함수를 사용합니다: f(x)= x 2 cos(x)은 −4≤x≤9이하는 코드의 MATLAB 버전입니다-

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

파일을 실행할 때 MATLAB이 그래프를 그립니다-

다음 결과를 표시합니다

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

하지만 Octave에서 동일한 곡선의 면적을 제공하려면 다음과 같이 사용해야 합니다.시뮬레이션패키지-

pkg load symbolic
시뮬레이션
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('면적: '), disp(double(a));