Está en la página 1de 18

EJERCICIOS

Para resolver ecuaciones no lineales en Python, una


de las formas más comunes es utilizar la biblioteca
SciPy, específicamente el módulo optimize.
resolver una ecuación no lineal simple usando esta
biblioteca. Supongamos que queremos encontrar la
raíz de la ecuación no lineal x2−cos(x)=0.
 Este script define primero la función objetivo func(x), que es
simplemente la función matemática x2−cos(x). Luego, utiliza la
función root de SciPy para encontrar una raíz de esta función,
comenzando desde un valor inicial de x=0.5. El método root
devuelve un objeto que contiene información sobre la solución. El
campo .x del objeto contiene la solución encontrada, que es el
valor de x que hace que func(x) sea igual a cero, o lo más cerca
posible dentro de la tolerancia de cálculo.

 Este ejemplo utiliza el método por defecto ('hybr'), pero root


admite varios métodos de solución, y puedes elegir el más adecuado
para tu problema específico consultando la documentación de SciPy.
códigos

Los métodos utilizados en los códigos


proporcionados para resolver ecuaciones no
lineales en Python con SciPy se basan en distintos
algoritmos numéricos implementados en las
funciones fsolve y root. :
Ejemplo 1: fsolve
•Método utilizado: Por defecto, fsolve
utiliza un algoritmo de tipo Quasi-
Newton, en particular el método de
Broyden-Fletcher-Goldfarb-Shanno (BFGS)
para aproximaciones de la matriz
jacobiana, cuando no se provee
explícitamente. Este método es eficaz
para encontrar raíces de ecuaciones no
lineales y sistemas de ecuaciones no
lineales, especialmente cuando se
dispone de buenos valores iniciales.
Ejemplo 2: Sistema de Ecuaciones
No Lineales con fsolve

•Método utilizado: Al igual que en el


primer ejemplo, para sistemas de
ecuaciones, fsolve sigue utilizando el
mismo enfoque Quasi-Newton. La
diferencia aquí es que se trabaja con
vectores de funciones y vectores de
soluciones, pero el núcleo del algoritmo
subyacente permanece siendo el mismo.
Ejemplo 3: root con el método de Krylov
Método utilizado: Este ejemplo específicamente solicita el uso del método de Krylov
a través del parámetro method='krylov'. El método de Krylov no requiere del cálculo de
la derivada de la función (Jacobianos), lo que lo hace adecuado para problemas de gran
dimensión donde dichas derivadas son difíciles de calcular o cuando se prefiere evitar su
cálculo. Es parte de los métodos de solución aproximada y es particularmente útil para
sistemas de ecuaciones lineales grandes y dispersas, aunque su aplicación aquí se
muestra en un contexto simplificado.

Cada uno de estos métodos tiene sus ventajas y aplicaciones ideales. La elección entre
fsolve y root, así como la selección del método específico dentro de root ('hybr', 'lm',
'krylov', etc.), depende de las características del problema a resolver, incluyendo la
disponibilidad de derivadas, el tamaño del sistema de ecuaciones, y la precisión
requerida.

Para problemas más complejos o cuando se desconocen las propiedades específicas del
problema, puede ser útil experimentar con diferentes métodos y valores iniciales para
encontrar la solución más estable y precisa.
Ejemplo 1: Resolución de una Ecuación No Lineal con fsolve

La función fsolve del módulo optimize es útil para encontrar las


raíces de una ecuación no lineal. A diferencia de root, fsolve está
específicamente diseñado para sistemas de ecuaciones no lineales,
pero funciona igual de bien con una sola ecuación.
Ejemplo 2: Sistema de Ecuaciones No
Lineales
 Para resolver un sistema de ecuaciones no lineales, puedes definir una
función que devuelva un array de valores, representando las ecuaciones del
sistema.
Ejemplo 3: Uso de Diferentes Métodos con root

El método root permite especificar


diferentes algoritmos de solución. Este ejemplo
muestra cómo usar un método específico, como el
método de Newton (especificado como 'krylov' en
este contexto para sistemas de ecuaciones).

También podría gustarte