es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Escribiendo un script de Python para resolver un sistema de cuatro ecuaciones con cuatro incógnitas en Python.

Tengo un sistema de cuatro ecuaciones con cuatro incógnitas que se muestra a continuación. Cada ecuación (f1,f2,f3,f4) se establece igual a cero y he intentado usar fsolve sin éxito. El problema puede ser que estos sean no lineales. Cualquier ayuda para configurar un script que resuelva estas cuatro incógnitas en Python sería muy apreciada. Tenga en cuenta que el código resumido a continuación no tiene una sintaxis correcta, es esencialmente solo un resumen textual de las ecuaciones/sistema:

V = variable independiente de 0 a 300

Qcu = ?
Qzn = ?
Ccu = ?
Czn = ?

f1 = [(QcuCzn)/(QznCcu)] – 3
f2 = Qzn + Qcu – 3.5
f3 = Czn + (QznV) – 0.189
f4 = Ccu + (Qcu
V) – 0.917

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para resolver este sistema de ecuaciones no lineales en Python, puedes usar el paquete scipy.optimize, específicamente la función fsolve(). Primero, define una función que tome los cuatro incógnitas (Qcu, Qzn, Ccu y Czn) y devuelva un conjunto de cuatro ecuaciones (f1, f2, f3, f4).

    import numpy as np
    from scipy.optimize import fsolve
    
    def equations(vars):
        Qcu, Qzn, Ccu, Czn = vars
    
        f1 = (Qcu*Czn)/(Qzn*Ccu) - 3
        f2 = Qzn + Qcu - 3.5
        f3 = Czn + (Qzn*V) - 0.189
        f4 = Ccu + (Qcu*V) - 0.917
    
        return [f1, f2, f3, f4]
    

    Para resolver el sistema, puedes llamar a fsolve() con la función equations() y una suposición inicial para las incógnitas.

    # suposición inicial de las incógnitas
    guess = np.array([1.0, 1.0, 1.0, 1.0])
    
    # resolver el sistema de ecuaciones
    solutions = fsolve(equations, guess)
    

    La variable solutions contendrá los valores que resuelven el sistema de ecuaciones.

Comments are closed.