Suponha que o conjunto de pares ordenados (x1, y1) ;(x2, y2) ; ldots ;(xn, yn) tenha sido ajustado pelo método dos mínimos quadrados a uma curva parabólica do tipo y=a0+a1 x+a2 x^2. Os valores de a0, a1 e a2 podem ser obtidos pelo um sistema de equações:
A X=B em [a0, a1, a2]^T
Em que:
A=[cccn & sumi=1^n xi & sumi=1^n xi^2 sumi=1^n xi & sumi=1^n xi^2 & sumi=1^n xi^3 sumi=1^n xi^2 & sumi=1^n xi^3 & sumi=1^n xi^4] e B=[csumi=1^n yi sumi=1^n xi yi sumi=1^n xi^2 yi]
Utilize o colab e desenvolva um código em python para determinar os valores de a0, a1 e a2 em que os dados de entrada são os pontos (x1, y1) ;(x2, y2) ; ldots ;(xn, yn)

Passo 1

Beleza, vamos dar uma olhada no que a questão está pedindo. Temos um conjunto de pares ordenados (x1, y1), (x2, y2), ldots, (xn, yn) e queremos ajustar esses pontos a uma curva parabólica usando o método dos mínimos quadrados. A equação da parábola é do tipo y = a0 + a1x + a2x^2. Para encontrar os coeficientes a0, a1 e a2, vamos precisar montar e resolver um sistema de equações lineares representado por A X = B, onde A é uma matriz que envolve somas dos valores de x e x^2, e B é um vetor com somas que envolvem os valores de y.
Vamos usar programação em Python, especificamente no Colab, para calcular esses coeficientes. Para isso, precisaremos entender como montar as matrizes A e B com base nos nossos dados e então resolver o sistema para encontrar a0, a1 e a2.

Passo 2

Primeiro, vamos entender como construir a matriz A e o vetor B. A matriz A é uma matriz 3x3 cujos elementos são somas dos diferentes poderes de x:
A = n & sum xi & sum xi^2 sum xi & sum xi^2 & sum xi^3 sum xi^2 & sum xi^3 & sum xi^4
E o vetor B é um vetor coluna com elementos que são somas envolvendo os valores de y:
B = sum yi sum xi yi sum xi^2 yi
Essas somas vão depender dos dados dos pontos (xi, yi) que temos.

Passo 3

Agora, vamos para o código em Python. Primeiro, precisamos ter nossos dados organizados. Vou supor que temos os valores de x e y armazenados em listas. Por exemplo:
# Dados de exemplo
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
Claro, você pode substituir esses valores pelos seus dados reais.

Passo 4

Em seguida, vamos importar as bibliotecas necessárias. Vamos usar o NumPy para facilitar os cálculos matriciais.
import numpy as np
O NumPy é uma biblioteca poderosa para operações numéricas e é bastante usada em ciência de dados e engenharia.

Passo 5

Vamos calcular todas as somas necessárias para construir a matriz A e o vetor B. Primeiro, precisamos do número de pontos n.
n = len(x)
Em seguida, calculamos as somas:
sum_x = sum(x)
sum_x2 = sum([i**2 for i in x])
sum_x3 = sum([i**3 for i in x])
sum_x4 = sum([i**4 for i in x])

sum_y = sum(y)
sum_xy = sum([x[i]*y[i] for i in range(n)])
sum_x2y = sum([x[i]**2 * y[i] for i in range(n)])
Aqui, estamos elevando cada elemento de x às potências necessárias e multiplicando pelos correspondentes y para as somas de xy e x^2y.

Passo 6

Agora, podemos construir a matriz A e o vetor B utilizando as somas que calculamos:
A = np.array([
    [n, sum_x, sum_x2],
    [sum_x, sum_x2, sum_x3],
    [sum_x2, sum_x3, sum_x4]
])

B = np.array([sum_y, sum_xy, sum_x2y])
Aqui, usamos a função np.array para criar os arrays que representam a matriz e o vetor.

Passo 7

Com a matriz A e o vetor B prontos, podemos resolver o sistema de equações A X = B para encontrar os coeficientes a0, a1 e a2. Para isso, usamos a função np.linalg.solve do NumPy:
a = np.linalg.solve(A, B)
Essa função retorna uma lista com os valores de a0, a1 e a2.

Passo 8

Finalmente, vamos imprimir os valores dos coeficientes para ver o resultado:
a0, a1, a2 = a
print(f"a0 = {a0}")
print(f"a1 = {a1}")
print(f"a2 = {a2}")
Isso vai mostrar os valores calculados para a0, a1 e a2, que são os coeficientes da nossa parábola ajustada pelos mínimos quadrados.

Resposta

Seguindo os passos acima, você conseguirá calcular os valores de a0, a1 e a2 para ajustar a curva parabólica aos seus dados usando Python no Colab.

Exercícios relacionados