Python - while - no converge

 
Vista:

while - no converge

Publicado por javier (1 intervención) el 31/10/2022 21:47:54
Hola, tengo el siguiente ciclo y no logro hacerlo converger, En el ciclo, llamo datos de la secuencia anterior para el primer calculo y luego ya que tengo el primer dato, que haga el ciclo de convergencia, hasta la diferencia sea menor que 12 E-10 pero no le doy. Que tal ustedes?

FLO100= 1.5E3
FLOWPC=100
FLOW=FLOWPC*FLO100/100.
print(FLOW)

H=3.65
NND=12 # numero total de secciones
DZ=H/NND # alto
print(DZ)

POW100=0.45E9
POWPC=100
POW=POWPC*POW100/100.
print(POW)

SUM=0
SUM=SUM/NND

F1=NND+2.5
F2=NND+2
I=1

AFLOW=3.98
HG=2.77E6
HL=1.25E6

X0=0.0
XZ=X0

XKC=30.0
XKS=0.8
RCOEF=3.97

RHOL=0.74E3 # SATURATED WATER DENSITY Kg/m3
RHOG=0.035E3 # SATURATED STEAM DENSITY Kg/m3
ETA=(RHOL-RHOG)/RHOL
print("eta", ETA)

PSHP=np.zeros(NND)
XZ=np.zeros(NND)


for I in range(NND):
PSHP[I]=np.sqrt(abs(math.sin(3.14*((F1-I/F2)**2))))

SUM=SUM+PSHP[I]
PSHP[I]=POW*PSHP[I]/SUM

#MUL=DZ*PSHP1/(AFLOW*FLOW*(HG-HL))
XZ[I]=XZ[I-1]+DZ*PSHP[I]/(AFLOW*FLOW*(HG-HL))

print(XZ, XZ[0])

YZ=np.zeros(NND)

SUMA=0.
YZ[0]=XZ[0] #primera aprox
ALF=YZ[0]
SLIP = (1 - ALF) / (XKS - ALF + (1 - XKS) * (ALF ** RCOEF))
YZ[0] = XZ[0] / (SLIP * (1 - ETA) + XZ[0] * (1 - SLIP * (1 - ETA)))
print(ALF, YZ[0])
SUMA = SUMA + abs(ALF - YZ[0])
print(SUMA)


CONV = NND * 1.E-10
while SUMA >= CONV:
for I in range(NND):
ALF=YZ[I]
SLIP = (1 - ALF) / (XKS - ALF + (1 - XKS) * (ALF ** RCOEF))
YZ[I] = XZ[I] / (SLIP * (1 - ETA) + XZ[I] * (1 - SLIP * (1 - ETA)))
print(SUMA)

#print(K)
print(YZ)
print(SUMA)
print(ALF)
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