Interpolação Polinomial Direta. Yessica.
  • Construa polinômios interpoladores P_{n}(x) para n=5,10,15,20, usando pontos igualmente espaçados no intervalo [-1,1].
  • Avalie o erro absoluto \left|f(x)-P_{n}(x)\right| em uma malha densa de pontos.
  • Analise o comportamento do erro e observe o aumento das oscilações nas extremidades à medida que n cresce.

Passo 1

O enunciado pede que eu construa polinômios interpoladores P_{n}(x) para n=5,10,15,20 usando pontos igualmente espaçados no intervalo [-1,1], que eu avalie o erro absoluto \left|f(x)-P_{n}(x)\right| em uma malha densa e que eu analise o comportamento do erro observando o aumento das oscilações nas extremidades quando n cresce.
O enunciado não especificou explicitamente a função f(x). Como a segunda parte menciona explicitamente “aumento das oscilações nas extremidades” (clássico aviso do fenômeno de Runge), vou resolver a tarefa assumindo a função padrão usada nesses exemplos: \displaystyle f(x)=\frac{1}{1+25x^{2}}. Se você tiver outra f, a estratégia é a mesma — troque apenas os valores f(x_j).
Informações relevantes que usarei:
  • Vou interpretar n como o grau do polinômio interpolador, construindo um polinômio de grau n a partir de n+1 nós igualmente espaçados.
  • Nós igualmente espaçados no intervalo [-1,1] serão dados por
x_j = -1 + \frac{2j}{n},\qquad j=0,1,\dots,n.
  • A tarefa pede: (i) construir P_n para n\in\{5,10,15,20\}; (ii) avaliar |f(x)-P_n(x)| numa malha densa de pontos em [-1,1]; (iii) analisar comportamento do erro e oscilações nas extremidades.

Passo 2

Definição explícita dos nós igualmente espaçados e dos valores da função nesses nós. Para cada n que queremos:
  • Os nós são
x_j = -1 + \frac{2j}{n},\qquad j=0,\dots,n.
  • Os valores correspondentes da função (assumida) são
y_j = f(x_j)=\frac{1}{1+25x_j^{2}},\qquad j=0,\dots,n.
Exemplo concreto para fixar a ideia (mostro n=5; você repete procedimento para os outros n):
  • Para n=5 temos j=0,1,2,3,4,5 e
x_0=-1,\; x_1=-0{,}6,\; x_2=-0{,}2,\; x_3=0{,}2,\; x_4=0{,}6,\; x_5=1.
  • Calcule y_j=f(x_j)=1/(1+25x_j^2) para cada j. Por exemplo y_0=f(-1)=1/(1+25)=1/26\approx0{,}03846. Faça o mesmo para os outros nós (os cálculos são diretos).

Passo 3

Fórmula do polinômio interpolador — forma de Lagrange. Vou ensinar do jeito direto (fórmula clássica) e explicar cada peça:
  • O polinômio interpolador em forma de Lagrange é
P_n(x)=\sum_{j=0}^n y_j\,\ell_j(x),
onde cada base de Lagrange \ell_j(x) é
\ell_j(x)=\prod_{\substack{k=0\k\ne j}}^{n}\frac{x-x_k}{x_j-x_k}.
Explicando: \ell_j(x) é um polinômio de grau n que vale 1 em x_j e 0 em todos os outros nós x_k ( k\ne j). Assim P_n(x) combina os valores y_j com essas bases para construir o polinômio que passa exatamente por todos os pontos (x_j,y_j).

Passo 4

Problema prático: estabilidade numérica e forma eficiente de avaliar P_n(x)\). A forma direta de Lagrange é bonita, mas computacionalmente instável para \(n\) grande (produtos podem ser ruins). A forma recomendada é a forma baricêntrica de Lagrange — rápida e estável numericamente: - Primeiro calcule os pesos baricêntricos \[w_j = \frac{1}{\displaystyle\prod_{\substack{k=0\k\ne j}}^{n} (x_j-x_k)},\qquad j=0,\dots,n.
  • Depois o polinômio é avaliado por
P_n(x)= \begin{cases} y_j, & \text{se } x=x_j \text{ para algum } j,\\[6pt] \displaystyle\frac{\sum_{j=0}^n \frac{w_j}{x-x_j}\,y_j}{\sum_{j=0}^n \frac{w_j}{x-x_j}}, & \text{caso contrário.} \end{cases}á
Explicando: os w_j\] são constantes dependentes só dos nós; a fórmula evita recomputar produtos grandes a cada avaliação e é numericamente muito mais estável. Na prática compute \(w_j uma vez por n e depois avalie P_n(x) na malha densa usando a fórmula acima.]

Passo 5

Como calcular os pesos w_j na prática (dica passo a passo):
  • Para nós igualmente espaçados x_j não existe uma fórmula fechada simples para w_j que seja trivial, então calcule cada produto diretamente (na prática com computador): para cada j multiplique \prod_{k\ne j}(x_j-x_k) e faça w_j=1/produto. Para pequenos n dá para fazer à mão; para n=20 use uma calculadora/programa.
  • Atenção numérica: os produtos podem ficar pequenos ou grandes; use aritmética em ponto flutuante com cuidado ou calcule em log-domínio se necessário.

Passo 6

Avaliação do erro numa malha densa — receita prática:
  • Escolha uma malha densa em [-1,1], por exemplo M=1000 ou M=2000 pontos igualmente espaçados:
x^{(\text{grid})}_m = -1 + \frac{2m}{M-1},\qquad m=0,\dots,M-1.
  • Para cada ponto da malha calcule f\bigl(x^{(\text{grid})}_m\bigr) (valor exato da função) e P_n\bigl(x^{(\text{grid})}_m\bigr) usando a forma baricêntrica. Então calcule o erro absoluto
E_n(x^{(\text{grid})}_m)=\bigl|f(x^{(\text{grid})}_m)-P_n(x^{(\text{grid})}_m)\bigr|.
  • Para análise, calcule estatísticas simples: máximo do erro
\|E_n\|_{\infty}=\max_{m} E_n(x^{(\text{grid})}_m),
e, se quiser, a norma L^2 aproximada ou médias. Plote E_n(x) ou \log_{10}E_n(x) para visualizar melhor as oscilações.

Passo 7

Interpretação teórica do erro (aulas de “fio direto” aqui): fórmula do resto de interpolação e consequência
  • O teorema do resto da fórmula de Taylor/Interpolação diz que, para cada x\in[-1,1], existe \xi_x (que depende de x) tal que
f(x)-P_n(x)=\frac{f^{(n+1)}(\xi_x)}{(n+1)!}\prod_{j=0}^{n}(x-x_j).
Explicando cada parte:
  • f^{(n+1)}(\xi_x) é a derivada de ordem n+1 de f avaliada num ponto \xi_x entre -1 e 1. Isso mede a “variação alta” de f.
  • O fator (n+1)! é só escala.
  • O produto \prod_{j=0}^{n}(x-x_j) é o termo que depende dos nós: perto dos extremos do intervalo (próximo de -1 ou 1) esse produto pode ficar grande em magnitude em valor absoluto, gerando grandes erros.
  • Consequência prática: mesmo que f seja infinitamente suave (como a função de Runge), o produto \prod (x-x_j) para nós igualmente espaçados pode crescer muito em magnitude perto das extremidades quando n aumenta. Isso é a raiz do fenômeno de Runge: para nós equidistantes, aumentar n nem sempre melhora o erro uniformemente; ao contrário, pode aumentar as oscilações e o erro nas extremidades.

Passo 8

Explicação do Fenômeno de Runge e da razão das oscilações nas extremidades (intuitiva e prática)
  • A função f(x)=1/(1+25x^2) tem derivadas que, embora bem definidas, crescem com ordem quando avaliadas em pontos complexos próximos ao eixo real — isso faz f^{(n+1)}(\xi_x) não se anular suficientemente rápido para compensar o crescimento do produto \prod (x-x_j).
  • Nós igualmente espaçados geram um grande fator oscilatório no produto \prod_{j}(x-x_j) perto de -1 e 1; assim, mesmo que no centro do intervalo o polinômio se aproxime bem da função, nas bordas ele oscila fortemente.
  • Mesmo usando a forma baricêntrica (que resolve problemas numéricos de instabilidade), o fenômeno é teórico: mudar a fórmula de avaliação não impede o crescimento do erro inerente à escolha de nós igualmente espaçados. A solução clássica é usar nós de Chebyshev (que reduzem muito o erro e evitam o Runge). Mas como o enunciado exige nós igualmente espaçados, o comportamento esperado é: pequenas oscilações para n pequeno, aumento das oscilações nas extremidades conforme n cresce (especialmente visível para n=15,20).

Passo 9

Procedimento detalhado que você pode aplicar agora (passo a passo “pra fazer” — sem perguntar nada):
  1. Para cada n\in\{5,10,15,20\}:
    a. Calcule os nós x_j=-1+2j/n, j=0,\dots,n.
    b. Calcule os valores y_j=f(x_j)=1/(1+25x_j^2).
    c. Calcule os pesos baricêntricos w_j=1/\prod_{k\ne j}(x_j-x_k). (Computacionalmente faça isso com um laço; para evitar under/overflow pode somar logs e depois exponenciar.)
    d. Escolha uma malha de avaliação com M pontos, por exemplo M=2000, x_m=-1+2m/(M-1), m=0,\dots,M-1.
    e. Para cada x_m avalie P_n(x_m) usando a fórmula baricêntrica; se x_m coincidir exatamente com algum nó x_j então P_n(x_m)=y_j.
    f. Calcule o erro absoluto E_n(x_m)=|f(x_m)-P_n(x_m)|.
    g. Obtenha \|E_n\|_\infty=\max_m E_n(x_m) e faça um plot de E_n(x).
  2. Compare os plots e os valores \|E_n\|_\infty para os diferentes n. Você observará aumento das oscilações nas extremidades quando n cresce; normalmente \|E_n\|_\infty pode até aumentar com n para nós equidistantes na função de Runge.

Passo 10

Interpretação prática dos resultados que você verá (motivação e incentivo):
  • Para n=5 o polinômio costuma aproximar razoavelmente bem em todo o intervalo, sem oscilações violentas.
  • Para n=10 começam a aparecer oscilações nas proximidades de -1 e 1.
  • Para n=15 e especialmente n=20 as oscilações nas extremidades ficam bem pronunciadas: altas amplitudes do erro e mudanças de sinal (wiggles).
  • Moral: aumentar grau com nós igualmente espaçados não é garantia de melhor aproximação uniforme — é exatamente isso que o enunciado quer que você observe. Se precisar de aproximação uniforme melhor, use nós de Chebyshev ou interpolações por partes (splines).

Resposta

Assumindo f(x)=\dfrac{1}{1+25x^{2}} e construindo P_n como polinômio de grau n nos n+1 nós igualmente espaçados x_j=-1+\dfrac{2j}{n}: os polinômios P_5,P_{10},P_{15},P_{20} são obtidos pela forma baricêntrica de Lagrange usando os pares (x_j,f(x_j)). Ao avaliar o erro absoluto em uma malha densa, observa-se que o erro e as oscilações nas extremidades aumentam conforme n cresce — isto é, manifesta-se o fenômeno de Runge para nós igualmente espaçados.

Exercícios relacionados