Suponha que o conjunto de pares ordenados tenha sido ajustado pelo método dos mínimos quadrados a uma curva parabólica do tipo . Os valores de e podem ser obtidos pelo um sistema de equações:
Em que: 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**2for i in x])
sum_x3 = sum([i**3for i in x])
sum_x4 = sum([i**4for i in x])
sum_y = sum(y)
sum_xy = sum([x[i]*y[i] for i inrange(n)])
sum_x2y = sum([x[i]**2 * y[i] for i inrange(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: