3.2.43 Polinômio interpolador é o nome dado ao polinômio de grau determinado por (e que passa através de) pontos, ( ) com todos os distintos. Esse polinômio interpolador forma uma base para quadraturas numéricas.
(a) Mostre que exigir que um polinômio de grau em passe por cada um dos pontos ( ) com todos os distintos resulta em equações simultâneas da forma
(b) Escreva um programa de computador que lerá pontos de dados e retornará os coeficientes . Se houver uma sub-rotina disponível, use-a para resolver equações simultâneas.
(c) Reescreva o conjunto de equações simultâneas como uma equação matricial
(d) Repita o cálculo de computador da parte (b), mas, desta vez, resolva para o vetor invertendo a matriz (novamente, usando uma sub-rotina).
Passo 1
O enunciado pede para construir o polinômio interpolador de grau que passa pelos pontos , com todos os distintos, e aí . Mostrar que isso gera equações lineares em . . Escrever um pseudocódigo que leia os pontos e devolva os coeficientes usando uma sub-rotina de solução de sistemas. . Reescrever esse sistema na forma matricial . . Resolver o mesmo usando inversão de .
Passo 2
Para um polinômio de grau escrevemos
Exigir para cada dá exatamente
ou seja, equações lineares em incógnitas .
Passo 3
Um pseudocódigo simples que lê pontos e retorna o vetor de coeficientes é:
ler \(n\)
para \(i\) de \(1\) até \(n\)
ler \(x[i], y[i]\)
para \(i\) de \(1\) até \(n\)
para \(j\) de \(0\) até \(n-1\)
M[i][j+1] \leftarrow x[i]^j
chamar subrotina \(solve\_linear\_system\)(M, y, A)
imprimir A
Aqui (M,y,A) preenche o vetor tal que .
Passo 4
Definindo o vetor coluna
e a matriz de Vandermonde
o sistema fica simplesmente
Passo 5
Em vez de chamar diretamente uma subrotina de sistema linear, podemos inverter (supondo-a não singular) e computar
No pseudocódigo, bastaria trocar
chamar \(solve\_linear\_system\)(M,y,A)
por
invX \leftarrow chamar subrotina \(invert\_matrix\)(M)
A \leftarrow invX \cdot y
Resposta
(a) Substituindo em obtemos
(b) Pseudocódigo:
ler \(n\)
para \(i\) de \(1\) até \(n\)
ler \(x[i], y[i]\)
para \(i\) de \(1\) até \(n\)
para \(j\) de \(0\) até \(n-1\)
M[i][j+1] \leftarrow x[i]^j
chamar \(solve\_linear\_system\)(M, y, A)
imprimir A
(c) Na forma matricial, com , e a matriz de Vandermonde, temos
(d) Resolvendo por inversão:
usando uma sub-rotina de inversão de matriz.
Cálculo - George Arfken - Métodos Matemáticos para Engenharia e Física - 7ª Edição - Capítulo 3.2 - Ex. 3.2.43