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

 
Vista:

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

Publicado por Rodrigo (1 intervención) el 10/11/2021 15:47:29
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
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Interesante

Publicado por Felipe (1 intervención) el 10/11/2021 15:56:47
muy interesante
intentaré darle resultado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar