Scipy mildsq

Scipy mildsq
Scipy es una biblioteca de Python de código abierto que ofrece soluciones para problemas matemáticos y científicos. Se basa en Numpy, extendiendo la funcionalidad al proporcionar herramientas adicionales para la informática de matrices y la estructura de datos especializadas.

La amplia gama de comandos de alto nivel permite al usuario visualizar y transformar los datos. Uno de los comandos o funciones en la biblioteca de optimización de SciPy es mínimo (). La función LENTSQ () utiliza el método de minimización de mínimo cuadrado.

En este artículo, le haremos aprender sobre la función LENTSQ (); Su sintaxis, cómo funciona, y proporcionaremos algunos ejemplos útiles que lo ayudarán a comprender cómo implementar la función mínima (). Revisa este artículo si eres nuevo en el concepto de scipy lestsq y quieres aprender sobre él.

¿Cuál es la sintaxis de la función LESTSQ ()??

La función LENTSQ () minimiza la suma del cuadrado de un conjunto de ecuaciones. Se usa para resolver un problema de mínimo cuadrado no lineal. El scipy.LESTSQ () tiene la siguiente sintaxis:

# Scipy.optimizar.MildSq (f, x, args = (), df = none, fulloutput = 0, fryerive = 0, f-tol = 1.49012e-08, x-tol = 1.49012e-08, g-tol = 0.0, max-fev = 0, eps-fcn = none, fac = 100, dia = none)

Los parámetros de la función MENTSQ () se describen de la siguiente manera: el parámetro 'F' se puede llamar, toma el argumento vector 'N' y devuelve el número de punto flotante 'M'. Es importante que 'm> = n' y no deban devolver nans.

El parámetro 'X' especifica el punto de partida para la minimización. El parámetro 'args' es un valor de tupla utilizado para colocar cualquier argumento adicional necesario para la función y es un parámetro opcional. El 'DF' es otro parámetro invocable utilizado para calcular el jacobiano de la función con derivadas en las filas. También es un parámetro opcional.

'FullOutput' es un parámetro opcional y devuelve todas las salidas opcionales. El 'Colderive' es un parámetro bool opcional que especifica la función jacobiana que calcula los derivados en las columnas. El 'f-tol' es un parámetro flotante opcional utilizado para presentar el error relativo deseado en la suma de los cuadrados.

El 'X-Tol' es otro parámetro flotante opcional utilizado para presentar el error relativo deseado en la solución aproximada. El 'g-tol' es un parámetro opcional utilizado para presentar la ortogonalidad entre las columnas jacobianas y los vectores de funciones en un número de punto flotante. El 'Max-FEV' especifica el número máximo de llamadas a la función; Sin embargo, es un parámetro opcional.

El 'EPS-FCN' especifica la longitud del paso deseable para la distancia hacia adelante de la función. El 'fac', un parámetro opcional, determina el límite del paso inicial y, finalmente, el último parámetro opcional 'Dia' sirve como factor de escala para las variables.

A continuación, elaboraremos el uso de la función MENTSQ () con la ayuda de ejemplos simples y directos.

Ejemplo 1:

Comenzaremos con un ejemplo muy simple y básico para que no se confunda al principio y deje de leer más. Este es el programa sencillo que lo ayudará a comprender la funcionalidad del método LENTSQ ().

Veamos el código a continuación. Tenga en cuenta que el código se ejecuta en la colaboración. El colaboratorio es un intérprete de Python de código abierto que se utiliza para implementar y ejecutar programas de Python. Es una herramienta gratuita y abiertamente disponible en el repositorio de Google. Puedes descargar fácilmente el .PY Extension File después de implementar y ejecutar su programa en un cuaderno de colaboración y luego ejecutar en cualquier otro intérprete de Python como Jupyter o Spyder.

De Scipy.Optimizar la importación LENTSSS
Def func_one (ABC):
Return 33*(ABC-2) ** 1+3
print (LENTSSQ (FUNC_One, 0))

Veamos la salida a continuación:

Ejemplo 2:

En este ejemplo, presentaremos el jacobiano de la función de error utilizando la función de algopía para explicar el uso de la función mínima (). Aquí, puede ver que las bibliotecas se importan primero que son importantes para la ejecución del código.

Luego, hemos creado las matrices NP indicadas como 'y_data' y 'val'. Después de eso, hemos definido tres funciones y les hemos pasado los valores requeridos. Y finalmente, los valores estimados y el número total de llamadas realizadas por la función se muestran como puede ver en las líneas finales del programa de código.

importar numpy como np
de scipy import optimizar
Importar algopía como ALG
y_data = np.matriz ([0.2387, 0.1214, -0.0321, 0.2456, 0.6453, 0.4578, 0.2214, 0.2814, 0.2774, 0.5671, 0.4454, 0.6743, 0.1109, 0.1543, 0.0203, 0.1286, 0, 0, 0])
val = np.matriz ([58., 78, 109, 118, 129, 141, 165, 176, 178, 265, 246, 265, 272, 288, 299, 301, 344, 356, 332]))
Def func (p, val):
return p [0] + (p [1] -p [0]) * ((1/(1 + alg.exp (-p [2]*(val-p [3])))) + (1/(1 + alg.exp (p [4]*(val -p [5])))) -1)
Def error_func (p, val, y):
regreso func (p, val) -y
Def jac_error_func (P, val, y):
AP = ALG.UTPM.init_jacobian (p)
return alg.UTPM.Extract_jacobian (ERROR_FUNC (AP, Val, Y))
adivina = np.Array ([0, max (y_data), 0.1, 120, -0.1, 250])
p2, c, información, msg, éxito = optimizar.LESTSQ (ERROR_FUNC, GUESS, Args = (val, y_data), dfun = jac_error_func, full_output = 1)
Imprimir ('La estimación de la función LENTSSQ () es:', P2, éxito)
Imprimir ('El número total de llamadas de la función es:', info ['NFEV'])

Cuando ejecute el código dado, podrá ver la siguiente salida.

Ejemplo 3:

El uso básico de la función de minimización mínimas de mínimo es el ajuste de la curva. Este es el punto donde se utiliza una técnica de modelo parametrizado para ajustar los valores numéricos.

En el siguiente ejemplo, mostraremos cómo modelar la curva de los datos de ajuste y verificar las diferencias en el ajuste. Estamos utilizando dos ecuaciones para definir dos tipos de funciones para adaptarse. Las ecuaciones se pueden cambiar, por lo que si desea usar sus ecuaciones, simplemente reemplace la ecuación dada con sus ecuaciones y está listo para comenzar.

De esta manera, puede comprender mejor y observar la diferencia adecuada. Vea el código dado a continuación:

De Scipy.Optimizar la importación LENTSSS
Importar matplotlib.Pyplot como MTB
One = Array ([6, 8, 11, 4, 2, 3, 6, 8, 5, 7,8, 11, 14])
Two = Array (Range (Len (One)))
Def func_one (param, uno, dos):
ABC, XYZ, ABZ = Param [0], Param [1], Aram [2]
Salida = Two-Lab • One •• 2+XYZ • One+Abzi
salida de retorno
Def func_two (param, uno, dos):
ABC, XYZ, ABZ = Param [0], Param [1], Param [2]
salida = dos- (ABC*One ** 3+XYZ*One+ABZ)
salida de retorno
Param = [0, 0, 0]
output_two = LENTSSQ (FUNC One, Param, (uno, dos))
ABC, xyz, abz = output_two [0] [0], output_two [0] [1], output_two [0] [2]
yfit1 = abc*one ** 2+xyz*one+abz
output_two = LENTSQ (FUNC_TWO, Param, (uno, dos)) ABC, XYZ, ABZ = Output_Two [0] [0], Output_Two [0] [1], Output_Two [0] [2]
yfit2 = ABC*One ** 3+Two*One+ABZ
mtb.Plot (uno, dos, 'bo', etiqueta = "Y-Originat")
mtb.Plot (uno, yfitl, color = "negro", etiqueta = "y = ox^24-bx+c")
mtb.Plot (uno, yfit2, color = "rojo", etiqueta = "y = ox^24-b+c")
mtb.xlabel ('x')
mtb.Ylabel ('Y')
mtb.Legend (loc = 'best', fancybox = true, shadow = true)
mtb.cuadrícula (verdadera)
mtb.espectáculo()

La salida de lo anterior se da a continuación:

Conclusión

En este artículo, hemos presentado detalles sobre la función mínima () de scipy. Hemos visto la sintaxis de LESTSQ () con la explicación de cada parámetro requerido y opcional en detalle. La función LENTSQ () toma 12 parámetros de los cuales 2 son parámetros obligatorios y los 10 restantes son parámetros opcionales.

Además, cómo usar la función LENDSQ () también se menciona con ejemplos. El primer ejemplo es muy simple y básico y explica el uso básico de la función, mientras que los otros dos ejemplos explican la funcionalidad compleja de la función mínima ().