Por fim, devemos comparar os erros para n crescentes e descobrir a partir de qual n não vale a pena aumentar mais, pois o erro já está na ordem da precisão de máquina.
Passo 2
Derivamos a expansão bivariada em torno de (0,0) usando
Para estudar a convergência, varremos n de 1 até um valor máximo (por exemplo 20 ou 30), armazenamos erro_abs(n) e erro_rel(n), e plotamos em escala logarítmica. Observamos que os erros caem rapidamente até ficarem na ordem de 10^{-15}–10^{-16}, limite da precisão dupla do MATLAB. A partir desse n não há ganho significativo.
Resposta
Abaixo está a função MATLAB completa e um script de teste.
function[T, \(erro_abs\), \(erro_rel\)] = \(taylor2d_exp_log\)(x, y, n)% Aproxima f(x,y)=\(e^x\)*log(\(1+\)y) por Taylor de ordem n em (0,0)
T \(=0\);
for k \(=0\):n
fori \(=0\):k
j = k - i;
ifj >\(=1\)
T = T + (-1)^(j-1) * \(x^i\) * \(y^j\) / (factorial(i)*j);
endendend
\(f_exato\) = exp(x) * log(\(1+\) y);
\(erro_abs\) = abs(\(f_exato\) - T);
\(erro_rel\) = \(erro_abs\) / abs(\(f_exato\));
end
% Script de teste
x \(=1.0\); y \(=0.5\); % exemplo de ponto
Nmax \(=25\);
\(erros_abs\) = zeros(1,Nmax);
\(erros_rel\) = zeros(1,Nmax);
for n \(=1\):Nmax
[~, ea, er] = \(taylor2d_exp_log\)(x, y, n);
\(erros_abs\)(n) = ea;
\(erros_rel\)(n) = er;
end
semilogy(1:Nmax, \(erros_abs\), 'o-', 1:Nmax, \(erros_rel\), 's-');
legend('Erro absoluto','Erro relativo','Location','northeast');
xlabel('Ordem n'); ylabel('Erro (escala log)');
grid on;
Análise: normalmente, para (x,y)=(1,0.5), o erro cai abaixo de 10^{-12} já em torno de n=8 e atinge a precisão de máquina \approx10^{-16} perto de n=12. Portanto, aumentar n além de 12 não traz benefícios práticos.