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.

Sympy es muy lento al resolver ecuaciones utilizando la función “solve”.

Actualmente estoy tratando de resolver una ecuación para T, pero desafortunadamente no puedo obtener una solución debido a que el programa se ejecuta durante demasiado tiempo.
¿Hay alguna forma de acelerar el tiempo que toma resolver la ecuación?

Código:

Psat_scale = 101325/760

Zi, a, b, c, T, P, VF = symbols('Zi a b c T P VF')

Ki = (exp(a-(b/(T+c)))*Psat_scale)/P
RR = 0

<h1>Constantes</h1>

P_val = 1
z_vals = [0.4, 0.6]
a_vals = [15.9008, 16.0963]
b_vals = [2788.51, 3346.65]
c_vals = [-52.36, -57.84]

<h1>Parte 2</h1>

for i in range(2):
  Ki_val = Ki.subs(a, a_vals[i]).subs(b, b_vals[i]).subs(c, c_vals[i]).subs(P, P_val)
  temp_RR_numerator = z_vals[i]*(Ki_val-1)
  temp_RR_denominator = 1+(Ki_val-1)*0
  RR += (temp_RR_numerator/temp_RR_denominator)

RR_equ = Eq(RR, 0)

print(solve(RR_equ, T, simplify=True))
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Hay algunas formas de potencialmente acelerar el tiempo tomado para resolver la ecuación:

    1. Simplificar la ecuación: Si la ecuación es demasiado compleja, podría ser útil simplificarla antes de intentar resolverla. Esto se puede hacer usando la función simplify de sympy.

    2. Usar métodos numéricos: Si la ecuación simbólica no se puede resolver analíticamente, se pueden utilizar métodos numéricos. Sympy proporciona muchos solucionadores numéricos, como nsolve y root.

    3. Optimizar el código: El código actual tiene un bucle que podría ser vectorizado para mejorar el rendimiento. Además, almacenar en caché los resultados intermedios podría reducir la cantidad de cálculos necesarios.

    4. Utilizar un algoritmo más eficiente: A veces puede haber un algoritmo más eficiente disponible para resolver un tipo específico de ecuación. Investigar e implementar estos algoritmos podría conducir a mejoras significativas en la velocidad.

Comments are closed.