[ Foro de Python ]

¿Cómo hacer que este código entregue resultados más rápido?

10-Nov-2021 16:01
Invitado (Rodrigo)
0 Respuestas

Estoy elaborando un programa en Python en el que necesito replicar la función SOLVER que tiene Excel y algunas calculadoras programables.
Defino los valores que utilizo y dejo que Python resuelva las ecuaciones, despejando las incógnitas llamadas "yn" e "yc"
Estas ecuaciones entregan muchas raíces, por lo que añadí ciertas restricciones para que el resultado entregado sea exclusivamente la raíz positiva.
Hasta ahí todo bien. El problema es que al darle RUN al código, éste tarda cerca de 1 minuto en entregar resultados.

Me gustaría saber si alguien me puede ayudar indicándome qué corregir para hacer el código más eficiente.
Se los agradecería enormemente.

Adjunto programa:

Q=2.5
b=3
z=0.5
g=9.81
n1=0.001
S0=0.7

from sympy.solvers import solve
from sympy import Symbol

#Cálculo yc
C = Symbol('C')
yc=solve(((((b+C*z)*C)**3)/(b+2*C*z))-((Q**2)/g),C)

#Cálculo yn
W = Symbol('W')
yn=solve(((b*W+(z*(W**2)))**5)/((b+2*W*(1+z**2)**(1/2))**2)-(((Q*n1)/(S0**(1/2)))**3),W)

if z == 0:
p = yc[0]
q = yn[0]
else:
p = yc[1]
q = yn[1]
print(p)
print(q)
yc=p
yn=q




Si ya eres usuario del sistema, puedes contestar desde tu cuenta y así ganar prestigio.

Si sólo eres un visitante, puedes optar por...