Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo ajustar los límites de una imagen a una curva usando mínimos cuadrados en Python

Cómo ajustar los límites de una imagen a una curva usando mínimos cuadrados en Python

Este artículo es un ejemplo de Python de ajuste de curvas basado en el método de mínimos cuadrados. Compártelo de la siguiente manera para tu referencia:

No implementes el método de mínimos cuadrados manualmente aquí, simplemente llama a la función de optimización implementada por la biblioteca scipy.

Considere la siguiente ecuación funcional con 4 parámetros:

Datos de construcción 123456789101112131415import numpy as npfrom scipy import optimizaciónimport matplotlib.pyplot as pltdef logistic4(x, A, B, C, D) : ?retorno (A-D)/(1+(x/C)**B)+Ddef residuales(p, y, x):?A, B, C, D = p?retorno y - logístico4(x, A, B , C, D)def peval(x, p):?A , B, C, D = p?retorno logístico4(x, A, B, C, D)A, B, C, D = .5, 2.5 , 8, 7.3x = np.linspace(0, 20, 20)y_true = logistic4(x, A, B, C, D)y_meas = y_true + 0.2 * np.random.randn(len(y_true))

Llame a la función de caja de herramientas para optimización 1234p0 = [1/2]*4plesq = optimizar.leastsq(residuals, p0, args=(y_meas, x))# la función lesssq en realidad se estima en función del error (y_meas-y_true) Parámetros del modelo (también llamado función)#

plot 12345678plt.figure(figsize=(6, 4.5))plt.plot(x, peval(x, plesq[0]), x, y_meas, ' o', x, y_ true)plt.legend(['Fit', 'Noisy', 'True'], loc='upper left')plt.title('mínimo cuadrado para los datos ruidosos (mediciones)') para i, (param, true, est) en enumerate(zip('ABCD', [A, B, C, D], plesq[0]):?plt.text(11, 2-i*.5, ' { } = {:.2f}, est({:.2f}) = {:.2f}'.format(param, true, param, est))plt.savefig('./logisitic.png')plt. show ()

Espero que lo que dije en este artículo sea útil para su programación en Python.