[ 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




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)