MATLAB - Tutorial do GNU Octave

GNU Octave é uma linguagem de programação de alto nível como MATLAB e é principalmente compatível com MATLAB. Ele também é usado para cálculos numéricos.

Octave tem as seguintes características comuns com o MATLAB -

  • matrizes são tipos de dados fundamentais
  • tem suporte integrado para números complexos
  • tem funções matemáticas e bibliotecas integradas
  • suporta funções definidas pelo usuário

GNU Octave também é um software livremente redistribuível. Você pode redistribuí-lo e / ou modificá-lo de acordo com os termos da GNU General Public License (GPL) conforme publicada pela Free Software Foundation.

MATLAB vs Octave

A maioria dos programas do MATLAB roda no Octave, mas alguns dos programas do Octave podem não rodar no MATLAB porque o Octave permite alguma sintaxe que o MATLAB não permite.

Por exemplo, MATLAB suporta apenas aspas simples, mas Octave suporta aspas simples e duplas para definir strings. Se você estiver procurando por um tutorial sobre o Octave, por favor, siga este tutorial desde o início, que cobre tanto o MATLAB quanto o Octave.

Exemplos Compatíveis

Quase todos os exemplos cobertos neste tutorial são compatíveis com MATLAB e também com Octave. Vamos tentar o seguinte exemplo em MATLAB e Octave que produz o mesmo resultado sem quaisquer alterações de sintaxe -

Este exemplo cria um mapa de superfície 3D para a função g = xe - (x 2 + y 2 ) . Crie um arquivo de script e digite o seguinte código -

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

Quando você executa o arquivo, o MATLAB exibe o seguinte mapa 3-D -

Exemplos não compatíveis

Embora todas as funcionalidades principais do MATLAB estejam disponíveis no Octave, existem algumas funcionalidades, por exemplo, Cálculo diferencial e de integração, que não correspondem exatamente nos dois idiomas. Este tutorial tentou fornecer os dois tipos de exemplos em que eles diferiam em sua sintaxe.

Considere o seguinte exemplo em que MATLAB e Octave usam funções diferentes para obter a área de uma curva: f (x) = x 2 cos (x) para −4 ≤ x ≤ 9. A seguir está a versão MATLAB do código -

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

Quando você executa o arquivo, o MATLAB traça o gráfico -

O seguinte resultado é exibido

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

Mas para dar área da mesma curva no Octave, você terá que fazer uso de symbolic pacote da seguinte forma -

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));