Escrever um programa no MatLab com o objetivo de calcular aproximações de uma função
, usando o polinômio de Taylor para
na origem.
O valor de
e
e o número de termos do polinômio de Taylor,
, são dados de entrada.
Analisar os resultados obtidos pelos
- Erro absoluto
- Erro relativo
- Fazer reflexões
A partir de qual
o erro é tão pequeno que não compensa aumentar seu valor?
O projeto deve ser feito em grupo de no máximo 5 alunos, cada função só pode ser implementada por um grupo.
Data da entrega até dia 21/08/2025 até às 18:00, pelo drive:
https://drive.google.com/drive/folders/lrBwu02ViFBbwi7BIEeD2iNoHhPwt107C?usp=sharing
Funções:
https://drive.google.com/drive/folders/lrBwu02ViFBbwi7BIEeD2iNoHhPwt107C?usp=sharing
Passo 1
O enunciado pede um programa em MATLAB que, para dados de entrada
e um inteiro
, calcule a aproximação de
pelo polinômio de Taylor de ordem
centrado na origem, e em seguida avalie o erro absoluto e o erro relativo dessa aproximação. Por fim, devemos refletir a partir de qual
o incremento de ordem não traz ganho significativo dado o custo computacional e o limite de precisão da máquina.
Passo 2
Derivamos o polinômio de Taylor de
em torno de
. Como
é fator constante e
, a aproximação de ordem
é
Passo 3
Escrevemos o esqueleto do programa em MATLAB:
function [Tn, ea, er] = \(taylor2D_xexpY\)(x,y,n)
% Tn = aproximação polinomial de ordem n
% ea = erro absoluto |f-Tn|
% er = erro relativo ea/|f|
Tn = x * sum( y.^ (0:n) ./ factorial(0:n) );
\(f_exato\) = x * exp(y);
ea = abs(\(f_exato\) - Tn);
er = ea / abs(\(f_exato\));
end
Passo 4
Para analisar o comportamento do erro, definimos um laço que incrementa
até um valor máximo, memória ou precisão limite, e armazenamos
e
. Por exemplo:
maxN \(=20\);
for n \(=0\):maxN
[Tn(n\(+1\)), ea(n\(+1\)), er(n\(+1\))] = \(taylor2D_xexpY\)(x,y,n);
end
Passo 5
Refletimos sobre a convergência: o termo de resto em módulo é aproximadamente
Como o factorial cresce muito rápido, para valores moderados de
e em precisão dupla, já com
temos
o que está no nível de ruído de ponto flutuante. Aumentar
além disso não reduzirá o erro absoluto de forma significativa, mas vai consumir mais tempo de CPU.
Resposta
Em geral, para
em torno de 1 e cálculo em precisão dupla, a partir de
o erro absoluto atinge a ordem de
, e não compensa aumentar
além desse valor.