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 objetivo é implementar em MATLAB uma rotina que aproxime
pelo polinômio de Taylor de ordem
em
. Vamos precisar de –
- Saber a expansão em série de Taylor de
em . - Obter o termo geral para
. - Programar um laço para somar até
. - Calcular erro absoluto e erro relativo comparando com o valor exato
. - Experimentar para vários
e analisar quando o erro para de diminuir sensivelmente.
Passo 2
Derivação do termo geral. Sabemos que
Tomando
, obtemos o polinômio de Taylor truncado em
termos:
Passo 3
Esboço do algoritmo em MATLAB:
- Calcular
. - Inicializar
. - Para
até : -
-
Passo 4
Protocolo de experimentação e análise de erro:
- Fixar um ponto de teste, por exemplo
. - Para
(sugestão ):
– Calcular
– Guardar erros em vetores. - Fazer gráficos (em escala semilog) de
e versus . - Observar a partir de qual
o erro absoluto e relativo atingem a ordem de (limite da precisão de máquina) e praticamente não melhoram.
Passo 5
Reflexões típicas:
- Para
de ordem , já em torno de ou o erro absoluto fica abaixo de . - A partir desse
, os termos adicionais são da ordem de rotação numérica (máquina) e não reduzem o erro. - Aumentar
além desse ponto só aumenta o custo computacional sem ganho em precisão.
Resposta
Segue o código MATLAB sugerido e a conclusão sobre
:
function [P, \(err_abs\), \(err_rel\)] = \(taylor_cosxy\)(x, y, n)
% Aproxima cos(\(x^2\)+\(y^2\)) pelo polinômio de Taylor de n termos
r\(2=\) x.^\(2+\) y.^2;
P \(=0\);
for k \(=0\):n
P = P + (-1)^k * r2.^(2*k) / factorial(2*k);
end
ftrue = cos(r2);
\(err_abs\) = abs(P - ftrue);
\(err_rel\) = \(err_abs\) ./ abs(ftrue);
end
Experimentos mostram que, para
tipicamente em
, a partir de
o erro absoluto já está na casa de
e não melhora de modo confiável com
maior. Portanto, usa-se
como ponto em que o erro é tão pequeno que não compensa encarecer mais cálculos.