Escolar Documentos
Profissional Documentos
Cultura Documentos
Roteiro - e - Funcao - No - Matlab - Serie de Taylor PDF
Roteiro - e - Funcao - No - Matlab - Serie de Taylor PDF
=
=
0 k
k
x
! k
x
e
observamos que o lao for-end executa o clculo de cada termo da srie (varivel termo) para
depois ser somada na varivel soma. No final do roteiro, o resultado exibido na janela de comando
do Matlab usando a instruo disp. Observar que utilizamos no clculo do termo da srie de
Taylor, uma funo extrnseca chamada fatorial que no existe no Matlab, que foi criada na aula
prtica e reproduzida a seguir:
function f = fatorial(n)
f = 1;
for k = 1:n
f = f*k;
end
Observar que numa funo, a primeira linha deve obrigatoriamente conter a declarao
function f = fatorial(n)
e que o nome declarado nesta declarao deve ser o mesmo do programa Matlab, ou seja,
fatorial.m.
Se quisermos criar uma funo para o clculo da funo exponencial, ela ser constituda
pelas seguintes instrues (func0):
function f = func0(x,n)
% Funcao para o calculo de exp x por serie de Taylor
% Devem ser fornecidos dois argumentos: x e o numero de termos n
f = 0;
for i = 1:n
k = i - 1;
f = f + x^k/fatorial(k);
end
Observe as diferenas entre a funo func0 e o roteiro aula2c. Ambos os programas
calculam a funo e
x
por srie de Taylor. A funo func0 tem dois parmetros de entrada: a
varivel x e o nmero de termos n, por isso eles so passados dentro do parentsis separados por
vrgula: func0(x,n). O valor da funo e
x
retorna pela varivel f declarada no cabealho do
programa.
A vantagem da funo que ela pode ser usada como uma funo intrnseca do Matlab.
Como exemplo da aplicao da funo func0, vamos calcular o valor do nmero de Euler e
1
utilizando essa funo com nmero de termos variando de um a dez e comparando o resultado com
o valor exato dado pela funo intrnseca do Matlab exp(1):
% aula3 Roteiro para o calculo do numero de Euler por serie de Taylor
% com numero de termos de um a dez e calculo do respectivo erro de
% truncamento
x = 1;
for i = 1:10
exprox(i) = func0(x,i);
end
erro = abs(exprox - exp(1));
result = [exprox' erro'];
disp([' exp erro'])
disp(result)