Scipy optimizar raíz

Scipy optimizar raíz

Python es un lenguaje informático orientado a objetos, estructurado y funcional. Su aplicación no solo se limita a tipos específicos, lo que lo convierte en un idioma de propósito general. Es un lenguaje de programación bien familiar, y ofrece una variedad de bibliotecas para escribir los diferentes programas de software en este idioma. El guión de este idioma también es similar al idioma inglés. En virtud de este hecho, Python tiene el crédito de ser un lenguaje de programación para principiantes para aplicaciones como la informática científica y técnica, la integración, el procesamiento de señales e imágenes, y la interpolación de la biblioteca de Python, que es "Scipy", que se ocupa de todos Tales funciones específicas.

Scipy tiene un atributo de la función llamada "Optimizar. raíz ()". Esta función contiene los optimizadores. Los optimizadores representan el conjunto de esas funciones o los procedimientos que reducen el valor/salida final de la función o la raíz de esa función al valor más pequeño posible.

Procedimiento:

El procedimiento de este artículo sigue algunos pasos importantes. En primer lugar, aprenderemos sobre el "Optimizar. función root () ". Luego, sabremos qué módulos del SciPy se requieren para trabajar con esta función. También aprenderemos sobre la sintaxis de optimizar.Función root () en el script de Python. Entonces, haremos algunos ejemplos para conseguir este tema.

Sintaxis:

La siguiente es la sintaxis y el método de declaración para la llamada de la optimización.función raíz en el programa Python:

$ Scipy.optimizar.root (diversión, x0, args = (), método = 'hybr', jac = none, tol = none, callback = none, options = none)

La primera función de parámetro en la lista de argumentos de entrada de esta función es la "diversión". Esta es la ecuación o la función en la que queremos aplicar el "Optimizar. Root () "Función. El siguiente es "x0", que es un invitado inicial para calcular las raíces. El "args" es el parámetro adicional que podemos agregar al objetivo de la función. Y el "método" es un parámetro importante que define el tipo de solucionador de la función optimizador. "Jac" significa jacobiano. Si su valor se especifica al valor "verdadero", la función devuelve el valor del jacobiano con la función de objeción. En un caso alternativo, el jacobiano se calcula numéricamente y es otro parámetro opcional. Entonces el "tol" es la tolerancia para la detención de la función y depende del tipo de solucionador; De nuevo, un parámetro opcional.

Valor de retorno:

La función devuelve el objeto de tipo de resultado optimizado en la salida que tiene la matriz que representa la solución. El mensaje de éxito es una bandera booleana, lo que significa que la función está saliendo con el éxito y la causa del mensaje de terminación.

Ejemplo 1:

El "Optimizar.La función root () "optimiza la función y reduce o aumenta el valor según el requisito en el programa. También encuentra las raíces para una función que puede ser en forma de una ecuación no lineal.

Con la sintaxis anterior que tenemos que aprender, hagamos un ejemplo muy básico para esta optimización.función root () y encontrar las raíces para una ecuación o función no lineal. La plataforma que usaremos para usar el compilador de Python es "Google Collab". Este es un programa de código abierto y proporciona todos los paquetes que ya están instalados y descargados. Para comenzar con el nuevo programa, asigne un nuevo cuaderno en Google Drive en la colaboración.

Después de crear con éxito un cuaderno, integremos los paquetes de Python requeridos en el programa. Para eso, integraremos el SciPy. Dado que la optimización del atributo de Scipy tiene el módulo "raíz", tenemos que importar la raíz del "SciPy.Optimizar". Ya que ya discutimos que optimizar.root () toma el "func" en su lista de argumentos de entrada y el func es simplemente una forma de la ecuación no lineal, integramos la biblioteca "matemáticas" para escribir estas ecuaciones no lineales con el módulo que se requiere en la función ecuación. La ecuación para la función de este ejemplo es la siguiente:

a + sin (a)

La ecuación dada tiene la función trigonométrica que es "pecado". Integramos la biblioteca de matemáticas como el "pecado". Con esta importación de los paquetes de Python requeridos, ahora definimos la ecuación en la función. Para esta tarea, creamos una función con el nombre "func" y el tipo de retorno "def". Pasamos la variable "A" al argumento de la función. Luego, hacemos que la función devuelva la ecuación como "return x + sin (x)".

Ahora, llamamos a esta función para usar esta ecuación en el método "root ()" como su argumento de entrada. Llame a la función "root ()" y pase el nombre de la función para la cual definimos la ecuación como "func" junto con el valor de suposición inicial igual a "0" para las raíces. Ahora, muestre los resultados con el método print (). El programa para esta función con su salida se muestra en el siguiente fragmento:

De Scipy.optimizar la raíz de importación
De matemáticas importar pecado
Def func (a):
devolver a + sin (a)
valor = root (func, 0)
Imprimir (valor)

La función devolvió la matriz de solución como la raíz de la ecuación. La solución ha convergido.

Ejemplo 2:

Con el mismo método que aprendimos en el primer ejemplo, podemos agregar la función "JAC" con la ecuación y aplicar el "Optimizar.Root () "función para obtener el valor mínimo de la función. Importar el "Scipy.optimizar "como" raíz "y" numpy "como" np ". Declare la función "func" y devuelva la ecuación como "[a [0] + 0.4*(A [0] - A [1]) ** 2 - 1.0, 0.4*(a [1] - a [0]) ** 2 + a [1]] ". Defina otra función, "jacobian", que es el parámetro adicional y devuelve la ecuación en ella como "[[1 + 1.4*(a [0] - a [1]) ** 2, -1.4*(A [0] - A [1]) ** 2], [-1.4*(A [1] - A [0]) ** 2, 1 + 1.4*(a [1] - a [0]) ** 2]] ". Pase el "func", la suposición inicial "x0", el "jacobiano" y el "solucionador /método" como "hybr" a la función "root ()" y ejecute el programa de la siguiente manera:

importar numpy como np
De Scipy.optimizar la raíz de importación
Def func (a):
devolver [a [0] + 0.4*(A [0] - A [1]) ** 2 - 1.0,
0.4*(A [1] - A [0]) ** 2 + A [1]]
Def jacobian (a):
devolver np.matriz ([[1 + 1.4*(a [0] - a [1]) ** 2, -1.4*(A [0] - A [1]) ** 2], [-1.4*(A [1] - A [0]) ** 2, 1 + 1.4*(a [1] - a [0]) ** 2]])
valor = root (func, [0, 0], jac = jacobian, método = 'hybr')
Imprimir (valor)

La función devolvió las raíces optimizadas como la matriz de soluciones con los otros dos parámetros.

Conclusión

El trabajo e implementación del "Scipy's Optimize.La función root () "se muestra en este artículo. Realizamos la función root () en dos ejemplos separados y con diferentes parámetros de función.