Funções do Usuário em Matlab Criando arquivo de funções na Janela do EDITOR
Funções em Matlab Para além das funções pré-definidas no Matlab, o usuário pode também criar as suas próprias funções. Use o EDITOR para tal. O comando function permite criá-las. Uma função deve ser definida da seguinte forma: function y = nomefuncao(par1,par2) % o código da função é escrito aqui y = par1 + sqrt(par2) O(s) valor(es) dos parâmetros de entrada da função deve(m) ser associado(s) ao(s) parâmetro(s) de saída. sqrt(...) é a função pré-definida que calcula a raiz quadrada de um número real, no caso par2.
Funções em Matlab A função pode ter vários parâmetros de entrada e de saída (no exemplo anterior apenas há um parâmetro de saída (y). Caso houvesse mais do que um parâmetro de saída, em vez de function y = ... seria function [y1, y2, y3] = .... O código relativo à função deve ser gravado num arquivo .m De modo mais simples, use o nome do arquivo .m como tendo o nome da função.
Funções em Matlab A função pode depois ser chamada a partir da janela de comando, no prompt: >> .... do Matlab ou a partir do interior de um arquivo .m, tal como se tratasse de uma função pré-definida do Matlab.
Funções em Matlab NOTAS IMPORTANTES: • Caso o nome dado à função seja diferente do nome do arquivo .m criado quando da definição da mesma, é este último nome que deve ser usado para invocar a função!!! • As variáveis definidas no interior da função não serão acessíveis a partir do espaço de trabalho do Matlab (workspace). • Tenha em mente que uma função não atribui nenhum valor a nenhuma variável. • A excepção a esta regra acontece se definirmos variáveis globais no corpo da função.
Funções em Matlab Eis um exemplo de uma função definida pelo usuário, que recebe como parâmetro de entrada um conjunto de pontos t e representa uma espiral a três dimensões: function [x,y,z] = spir3(t) x = cos(20*t).*exp(-t.^2); y = sin(20*t).*exp(-t.^2); z = exp(-t.^2); plot3(x,y,z); plot3 é o nome da função para plotar o gráfico da espiral (experimente). cos(..), sin(..), exp(..) são as funções pré-definidas coseno, seno e exponencial.
Funções em Matlab A função vai ser gravada no arquivo spir3.m e invocada a partir da janela de comando do Matlab da seguinte forma: >> spir3(0:0.01:5); Onde o ponto inicial é 0. O ponto final é 5. E o passo dentro do intervalo [0, 5] é 0.01. Caso se deseje ter os valores de x, y e z, deve-se invocar a função da seguinte forma [x,y,z] = spir3(0:0.01:5);
Funções em Matlab Quando se invoca (chama-se) a função na janela de comando (>>), o que ocorre é que os valores fornecidos na chamada da função, são passados por valor a cada um dos parâmetros de entrada, enquanto os valores calculados dos parâmetros de saída são passados aos correspondentes valores de saída, definidas para saída da função no prompt (>>) da janela de comando. Por exemplo: >> [a,b,c] = spir3(0:0.01:5); 0:0.01:5 é passado a t, e [x, y, z] é passado a [a,b,c] , respectivamente, passando x para a, y para b, z para c. Neste caso poderíamos também ter >> [x,y,z] = spir3(0:0.01:5);
Funções em Matlab Exemplo, na janela do EDITOR crie o arquivo valor_absoluto.m com o seguinte conteúdo: function v = valor_absoluto(x) if x >= 0 v = x; else v = -x; Experimente na janela de comando, chamar a função valor_absoluto : >> v = valor_absoluto(-9) ans = 9, onde -9 é o valor de x. >> v = valor_absoluto(107) ans = 107, onde 107 é o valor de x. >> w = valor_absoluto(-19) ans = 19, onde -19 é o valor de x. >> y = valor_absoluto(13) ans= 13, onde 13 é o valor de x.
Integração Numérica em Matlab Para efetuar uma integração numérica no Matlab, usam-se habitualmente dois comandos: • quad • quadl Como exemplo, pretende-se calcular o integral de uma dada função. Comecemos por definir a função F(x)=3x^2+5 da seguinte forma: function y = F(x) y = 3*x.^2 + 5; E armazenar a função F num arquivo F.m
Integração Numérica em Matlab A integral da função anterior, no intervalo [5,10], pode então ser calculado através de: >> quad(‘F',5,10) O método de cálculo: adaptação recursiva da regra de Simpson ans = 900.0000