Articles of curva de ajuste

ajuste negativo de la curva de scipy

Me gustaría encajar una curva con curve_fit y evitar que se vuelva negativa. Desafortunadamente, el código de abajo no funciona. ¿Alguna pista? ¡Muchas gracias! # Imports from scipy.optimize import curve_fit import numpy as np import matplotlib.pyplot as plt xData = [0.0009824379203203417, 0.0011014182912933933, 0.0012433979929054324, 0.0014147106052612918, 0.0016240300315499524, 0.0018834904507916608, 0.002210485320720769, 0.002630660216394964, 0.0031830988618379067, 0.003929751681281367, 0.0049735919716217296, 0.0064961201261998095, 0.008841941282883075, 0.012732395447351627, 0.019894367886486918, […]

pasando argumentos a una función para ajustar

Estoy tratando de ajustar una función que toma como entrada 2 variables independientes x, y y 3 parámetros que se encuentran a, b, c. Este es mi código de prueba: import numpy as np from scipy.optimize import curve_fit def func(x,y, a, b, c): return a*np.exp(-b*(x+y)) + cy= x = np.linspace(0,4,50) z = func(x,y, 2.5, 1.3, […]

Extraño resultado con el ajuste de la curva de Python (scipy)

Este es mi código (es un ejemplo de un fragmento de código más grande): from scipy.optimize import curve_fit def func(x, a, b): return a + b*x xlist = [10, 30, 50, 70, 90, 110, 130, 150, 170, 190, 210, 230] ylist = [0.0074999999999999997, 0.011875, 0.0057812499999999999, 0.0036458333333333334, 0.0020312500000000001, 0.0013125000000000001, 0.00098958333333333342, 0.00089285714285714283, 0.00074218750000000001, 0.00093749999999999997, 0.00071874999999999999, 0.00088068181818181821] popt, […]

SciPy lesssq se ajusta a una onda sinusoidal que falla

Estoy tratando de averiguar qué es lo que no entiendo aquí. Estoy siguiendo http://www.scipy.org/Cookbook/FittingData y tratando de encajar una onda sinusoidal. El problema real son los datos del magnetómetro satelital que producen una buena onda sinusoidal en una nave espacial que gira. Creé un conjunto de datos y luego trato de ajustarlo para recuperar las […]

Ajuste de la función exponencial a través de dos puntos de datos con scipy curve_fit

Quiero ajustar una función exponencial y=x ** pw con un pw constante para ajustar dos puntos de datos. La función scipy curve_fit debe optimizar adj1 y adj2 . He intentado con el código de abajo, pero no pude hacerlo funcionar. La curva no pasa por los puntos de datos. ¿Cómo puedo arreglarlo? import numpy as […]

Se que scipy curve_fit puede hacerlo mejor

Estoy usando python / numpy / scipy para implementar este algoritmo para alinear dos modelos digitales de elevación (DEM) basados ​​en el aspecto del terreno y la pendiente: “Co-registro y correcciones de sesgo de los conjuntos de datos de elevación del satélite para cuantificar el cambio del grosor del glaciar”, C. Nuth y A. Kääb, […]

Cómo ajustar polinomio a datos con barras de error.

Actualmente estoy usando numpy.polyfit (x, y, grados) para ajustar un polinomio a los datos experimentales. Sin embargo, me gustaría ajustar un polinomio que use una ponderación basada en los errores de los puntos. He encontrado scipy.curve_fit que hace uso de pesos y supongo que podría establecer la función, ‘f’, en la forma de un polinomio […]

Interpolación cúbica por trozos que conserva la forma para la curva 3D en python

Tengo una curva en el espacio 3D. Quiero usar una forma de interpolación cúbica por trozos que conserva la forma similar a pchip en matlab. Investigué las funciones proporcionadas en scipy.interpolate, por ejemplo, interp2d, pero las funciones funcionan para algunas estructuras de curvas y no para los puntos de datos que tengo. ¿Alguna idea de […]

Restricción de valores para curve_fit (scipy.optimize)

Estoy tratando de ajustar una curva de crecimiento logístico a mis datos usando curve_fit usando la siguiente función como entrada. def logistic(x, y0, k, d, a, b): if b > 0 and a > 0: y = (k * pow(1 + np.exp(d – (a * b * x) ), (-1/b) )) + y0 elif b […]

El ajuste exponencial de la curva no se ajustará

Al intentar trazar una curva exponencial a un conjunto de datos: import matplotlib import matplotlib.pyplot as plt from matplotlib import style from matplotlib import pylab import numpy as np from scipy.optimize import curve_fit x = np.array([30,40,50,60]) y = np.array([0.027679854,0.055639098,0.114814815,0.240740741]) def exponenial_func(x, a, b, c): return a*np.exp(-b*x)+c popt, pcov = curve_fit(exponenial_func, x, y, p0=(1, 1e-6, 1)) […]