Ajuste de funções no python

Existem diversos métodos matemáticos e ferramentas no python para ajustar uma função pré-definida a um conjunto de dados, de modo a calcular seus coeficientes. Esse post tem como objetivo ilustrar alguns dos principais métodos com exemplos práticos.

Ajuste polinomial

O numpy possui um método de ajuste polinomial para um certo grau informado, conforme o exemplo a seguir:

A classe polyfit usa o método dos mínimos quadrados para ajustar um polinômio de grau “deg” (2, no caso) em um conjunto de dados “x vs y”. Já a classe poly1d permite calcular o novo vetor y (valores ajustados para cada valor de x).

O SciPy possui a classe “optimize”, cujo método curve_fit calcula os coeficientes para uma função objetivo, definida pelo programador. Veja o exemplo a seguir, usando os mesmos dados:

A função “func” foi definida como uma função de grau 2, gerando os mesmos resultados que o exemplo com o numpy.

O método minimize (“out = minimize(j, coef, method=’BFGS’)”, por exemplo) recebe um vetor com um chute inicial de valores para cada um dos coeficientes (“coef = [1, 1., 0]”) e uma função objetivo “j” que define como deve ser a minimização (“return abs((y – func(x, *coef)).sum())”).