Articles of curva de ajuste

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)) […]

scipy curve_fit no puede ajustarse a una función de tophat

Estoy tratando de ajustar una función de sombrero de copa a algunos datos, es decir. f (x) es constante para toda la línea real, excepto para un segmento de longitud finita que es igual a otra constante. Mis parámetros son las dos constantes de la función tophat, el punto medio y el ancho, y estoy […]

Ajuste de datos experimentales dentro de dos regiones diferentes

Estoy ajustando un conjunto de datos experimentales ( muestra ) dentro de dos regiones experimentales diferentes y se puede express con dos funciones matemáticas de la siguiente manera: 1ª región: y = m*x + c ( the slope can be constrained to zero) 2da región: y = d*exp(-k*x) los datos experimentales se muestran a continuación […]

scipy curve_fit no le gusta el módulo de matemáticas

Al intentar crear un ejemplo con scipy.optimize curve_fit , encontré que scipy parece ser incompatible con el módulo math de Python. Mientras que la función f1 funciona bien, f2 muestra un mensaje de error. from scipy.optimize import curve_fit from math import sin, pi, log, exp, floor, fabs, pow x_axis = np.asarray([pi * i / 6 […]

scipy.optimize.curvefit: error asimétrico de ajuste

Intento ajustar una función a mis datos usando scipy.optimize.curvefit . Q=optimization.curve_fit(func,X,Y, x0,ERR) y funciona bien. Sin embargo, ahora estoy intentando usar un error asimétrico y no tengo idea de cómo hacerlo, o incluso si es posible. Por error asimétrico quiero decir que el error no es por ejemplo: 3+-0.5 sino 3 +0.6 -0.2 . De […]

Ajustar una función vectorial con curve_fit en Scipy

Quiero ajustar una función con salida vectorial usando curve_fit de curve_fit (o algo más apropiado si está disponible). Por ejemplo, considere la siguiente función: import numpy as np def fmodel(x, a, b): return np.vstack([a*np.sin(b*x), a*x**2 – b*x, a*np.exp(b/x)]) Cada componente es una función diferente, pero comparten los parámetros que deseo ajustar. Idealmente, yo haría algo […]