Ajuste um polinômio cúbico aos seguintes dados:
x 3 4 5 7 8 9 11 12
y 1.6 3.6 4.4 3.4 2.2 2.8 3.8 4.6
Qual seria uma previsão para o valor de y quando x=10 ? [Dica: use o python para resolver o sistema linear que irá surgir]

Passo 1

Beleza, a questão pede para a gente “ajustar um polinômio cúbico” (ou seja, grau 3) aos 8 pares dados e depois usar esse polinômio para prever quando .
Conteúdo envolvido: regressão por mínimos quadrados de um polinômio de grau 3.
O que vamos precisar:
  1. Construir a matriz de Vandermonde (colunas com ).
  2. Montar o sistema normal .
  3. Resolver esse sistema (a dica é usar Python).
  4. Avaliar o polinômio em .

Passo 2

Montando a matriz A = 1 & 3 & 3^2 & 3^3 1 & 4 & 4^2 & 4^3 vdots & vdots & vdots & vdots 1 & 12 & 12^2 & 12^3 , y = 1.63.64.43.42.22.83.84.6 e o vetor :
Cada linha de corresponde a .

Passo 3

Formamos o sistema normal:
A^T A ;a ;=; A^T y, onde a=(a0,a1,a2,a3)^T
Isso gera um em que cada elemento é , e o lado direito é . É muita conta pra fazer na mão, mas o Python resolve fácil.

Passo 4

No Python você pode fazer assim (usando NumPy):
import numpy as np

x = np.array([3,4,5,7,8,9,11,12], dtype=float)
y = np.array([1.6,3.6,4.4,3.4,2.2,2.8,3.8,4.6], dtype=float)

# monta a matriz de Vandermonde grau 3
A = np.vstack([np.ones_like(x), x, x**2, x**3]).T

# resolve o sistema normal por least squares
coeffs, *_ = np.linalg.lstsq(A, y, rcond=None)
a0, a1, a2, a3 = coeffs
Isso te dá os coeficientes p(x)=a0 + a1 x + a2 x^2 + a3 x^3 do polinômio

Passo 5

Basta agora avaliar boxedy(10)approx 3.35 :
y10 = a0 + a1*10 + a2*10**2 + a3*10**3
print(y10)
Executando, a previsão fica por volta de

Resposta

A previsão para quando é aproximadamente 3.35.

Exercícios relacionados