Use o botão abaixo para reportar erros ou dar sugestões.

Cálculo Numérico - Versão GNU Octave

A.7 Funções


Além das muitas funções já pré-definidas no GNU Octave, podemos definir nossas próprias funções usando:

  • Anonymous functions
  • Functions (script)

Definir uma função como anonymous function é apropriada para funções com poucas instruções. Quando a função exige uma grande quantidade de código para ser definida, a melhor opção é usar a instrução function. Veja os seguintes exemplos:

Exemplo A.7.1. O seguinte código:

>> f = @(x) x + sin(x)  
f =  
@(x) x + sin (x)

define, no GNU Octave, a função f(x) = x + sen x.

Observe que f(π) = π. Confirme isso computando:

>> f(pi)  
ans =  3.1416

no GNU Octave.

Alternativamente, definimos a mesma função com o código:

function [y] = f(x)  
   y = x + sin(x);  
endfunction

Verifique!

Observação A.7.1. Um script (por exemplo, CAMINHO/foo.m) contendo apenas a declaração de uma função pode ser usado no prompt via o comando run:

>> run "CAMINHO/foo.m"

Exemplo A.7.2. O seguinte código GNU Octave:

function [z] = h(x,y)  
   if (x < y)  
      z = y - x;  
   else  
      z = x - y;  
   endif  
endfunction

define a função:

h(x,y) = y − x ,x < y x − y , x ≥ y (A.3)

Verifique!

Exemplo A.7.3. O seguinte código:

function [y] = J(x)  
   y(1,1) = 2*x(1);  
   y(1,2) = 2*x(2);  
 
   y(2,1) = -x(2)*sin(x(1)*x(2));  
   y(2,2) = -x(1)*sin(x(1)*x(2));  
endfunction

define a matriz jacobiana J(x1,x2) := ∂(f1,f2) ∂(x1,x2) da função:

f(x1,x2) = (x12 + x 22, cos(x 1x2)). (A.4)

Exemplo A.7.4. O seguinte código:

function [a,b] = v(x,y)  
   if (x > y)  
     a = 1;  
     b = 2;  
     return;  
   else  
     a = 2;  
     b = 1;  
     return;  
   end  
endfunction

define a função v que toma duas variáveis e retorna duas variáveis. Por exemplo:

>> [i,j] = v(3,2)  
i =  1  
j =  2

Creative Commons License Este texto é disponibilizado nos termos da licença Creative Commons Atribuição-CompartilhaIgual 3.0 Não Adaptada (CC-BY-SA 3.0). Página gerada em 19/8/2020 às 17:36:34.

Informe erros ou edite você mesmo!