Escrever um programa no MatLab com o objetivo de calcular aproximações de uma função f(x, y), usando o polinômio de Taylor para f(x, y) na origem.
O valor de x e y e o número de termos do polinômio de Taylor, n, são dados de entrada.
Analisar os resultados obtidos pelos
  • Erro absoluto
  • Erro relativo
  • Fazer reflexões
A partir de qual n 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:
f(x, y)=\sin \left(x^{2}+y^{2}\right)

Passo 1

O enunciado pede para implementar em MATLAB um programa que, dada uma função de duas variáveis
f(x,y)=\sin\bigl(x^2+y^2\bigr),
calcule sua aproximação pelo polinômio de Taylor centrado na origem, usando n termos da série, e avalie o erro absoluto e relativo. Precisamos lembrar que, para a série de Taylor de \sin t em t=0, vale
\sin t = \sum_{m=0}^{\infty} (-1)^m \frac{t^{2m+1}}{(2m+1)!},
onde aqui t = x^2 + y^2.

Passo 2

Derivamos explicitamente o polinômio de Taylor de ordem n (número de termos) para f. Substituindo t=x^2+y^2 na série truncada, a aproximação de f com n termos é
T_n(x,y) = \sum_{m=0}^{n-1} (-1)^m \frac{(x^2+y^2)^{2m+1}}{(2m+1)!}.
Note que usamos n termos, então m vai de 0 a n-1.

Passo 3

Implementamos o código MATLAB que:
  1. Lê os valores de x, y e n.
  2. Calcula t = x^2 + y^2.
  3. Monta o somatório de m=0 a n-1 para obter T_n(x,y).
  4. Avalia f_{\text{exata}} = \sin(t).
  5. Computa
E_{\text{abs}} = \bigl|T_n(x,y) - f_{\text{exata}}\bigr|, \quad E_{\text{rel}} = \frac{E_{\text{abs}}}{\bigl|\sin(t)\bigr|}.
  1. Exibe os valores de T_n, f_{\text{exata}}, E_{\text{abs}} e E_{\text{rel}}.
Exemplo de função MATLAB (salvar em taylor2D.m):
function [Tn, fex, Eabs, Erel] = taylor2D(x, y, n)
 t = \(x^2\) + \(y^2\);
 Tn \(=0\);
 for m \(=0\):(n-1)
 Tn = Tn + (-1)^m * t^(2*m\(+1\)) / factorial(2*m\(+1\));
 end
 fex = sin(t);
 Eabs = abs(Tn - fex);
 if fex~\(=0\)
 Erel = Eabs / abs(fex);
 else
 Erel = NaN; % evita divisão por zero
 end
 fprintf('T_%d(%g,%g)=%.8f
', n, x, y, Tn);
 fprintf('f( %g,%g ) = %.8f
', x, y, fex);
 fprintf('Erro absoluto = %.2e
', Eabs);
 fprintf('Erro relativo = %.2e
', Erel);
end

Passo 4

Para analisar o comportamento do erro em função de n, escolhemos um par (x,y) fixo (por exemplo (0.5,0.3)) e avaliamos em laço:
x \(=0.5\); y \(=0.3\);
for n \(=1\):10
 [~,~,Eabs,Erel] = taylor2D(x,y,n);
 % armazenar ou plotar Eabs e Erel versus n
end
Geralmente observa-se que, após certo n, o erro absoluto e relativo param de diminuir de forma significativa, devido a erros de truncamento numérico e testes de máquina.

Passo 5

Reflexão:
  • Para pontos próximos à origem t pequeno), a série converge muito rápido e poucos termos (por exemplo n=4 ou 5 já dão erro menor que 10^{-8}.
  • Para t maior, são necessários mais termos, mas atinge-se logo o patamar de precisão da máquina (em torno de 10^{-16} para dupla precisão).
  • Aumentar n além de onde o erro estaciona não reduz o erro, apenas aumenta o custo computacional.
Portanto, a partir de n\approx5 a n\approx7 (dependendo de (x,y)) o erro já está na ordem de 10^{-12} a 10^{-16}, e não compensa usar mais termos.

Resposta

Segue o programa MATLAB taylor2D.m e procedimentos de análise de erro. A partir de n\approx5 costuma-se atingir a precisão máxima da máquina, de modo que aumentar n não traz benefícios práticos.

Exercícios relacionados