Lucas Ferreira Loz Postado Dezembro 25, 2018 Denunciar Share Postado Dezembro 25, 2018 Bom, estou tentando criar um programa que crie um vetor e insira valores nesse vetor usando uma função, até determinado ponto depois use outra função import matplotlib.pyplot as plt import numpy as np import sympy as sym x=sym.symbols('x') #curva de equilibrio a12=2 x=np.linspace(0,1,40) y=(a12*x)/(1+x*(a12-1)) #reta de retificação x1=np.linspace(0.5,0.98,40) b=0.27528 a=0.71910 y1=a*x1+b #reta de alimentação xa=np.ones(40)*0.5 ya=np.linspace(0.5,0.6348,40) #reta de esgotamento xs=np.linspace(xb,xf,40) ys=1.28*xs-0.0056 #pratos teoricos yp=np.ones(40)*0.6 xp=np.ones(40)*0.6 i=1 yp[0]=0.9799 xp[0]=0.98 prat=0 while i<25: if xp>0.5: xp=(yp[i-1])/(a12+yp[i-1]*(1-a12)) yp=yp[i-1] xp[i+1]=xp yp[i+1]=a*xp[i+1]+b i=i+2 else: xp=(yp[i-1])/(a12+yp[i-1]*(1-a12)) yp=yp[i-1] xp[i+1]=xp yp[i+1]=1.28*xp[i+1]-0.0056 i=i+2 eu gostaria que em xp<0.5 o meu programa use outra função Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Lucas Ferreira Loz Postado Dezembro 26, 2018 Autor Denunciar Share Postado Dezembro 26, 2018 import matplotlib.pyplot as plt import numpy as np import sympy as sym x=sym.symbols('x') #curva de equilibrio a12=2 x=np.linspace(0,1,40) y=(a12*x)/(1+x*(a12-1)) #reta de retificação x1=np.linspace(0.5,0.98,40) b=0.27528 a=0.71910 y1=a*x1+b #reta de alimentação xa=np.ones(40)*0.5 ya=np.linspace(0.5,0.6348,40) #reta de esgotamento xs=np.linspace(xb,xf,40) ys=1.28*xs-0.0056 #pratos teoricos yp=np.ones(40) xp=np.ones(40) i=1 yp[0]=0.9799 xp[0]=0.98 prat=0 while i<22: xp=(yp[i-1])/(a12+yp[i-1]*(1-a12)) yp=yp[i-1] xp[i+1]=xp yp[i+1]=a*xp[i+1]+b i=i+2 i=24 while i<40: xp=(yp[i-1])/(a12+yp[i-1]*(1-a12)) yp=yp[i-1] xp[i+1]=xp yp[i+1]=1.28*xp[i+1]-0.0056 i=i+2 xp usem esse código. O problema é que os valores no segundo while estão dando negativos Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ArteEN Postado Dezembro 26, 2018 Denunciar Share Postado Dezembro 26, 2018 def dobro(x): print(x, x * 2) def triplo(x): print(x, x * 3) ### for i in range(1, 22, 2): #de 1 à 21, pulando de 2 em 2 dobro(i) for i in range(24, 41, 2): #de 24 à 40, pulando de 2 em 2 triplo(i) você não tem condições dentro do loop, acho que nesse caso, um loop for seria melhor que while Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Lucas Ferreira Loz
Bom, estou tentando criar um programa que crie um vetor e insira valores nesse vetor usando uma função, até determinado ponto depois use outra função
import matplotlib.pyplot as plt
import numpy as np
import sympy as sym
x=sym.symbols('x')
#curva de equilibrio
a12=2
x=np.linspace(0,1,40)
y=(a12*x)/(1+x*(a12-1))
#reta de retificação
x1=np.linspace(0.5,0.98,40)
b=0.27528
a=0.71910
y1=a*x1+b
#reta de alimentação
xa=np.ones(40)*0.5
ya=np.linspace(0.5,0.6348,40)
#reta de esgotamento
xs=np.linspace(xb,xf,40)
ys=1.28*xs-0.0056
#pratos teoricos
yp=np.ones(40)*0.6
xp=np.ones(40)*0.6
i=1
yp[0]=0.9799
xp[0]=0.98
prat=0
while i<25:
if xp>0.5:
xp=(yp[i-1])/(a12+yp[i-1]*(1-a12))
yp=yp[i-1]
xp[i+1]=xp
yp[i+1]=a*xp[i+1]+b
i=i+2
else:
xp=(yp[i-1])/(a12+yp[i-1]*(1-a12))
yp=yp[i-1]
xp[i+1]=xp
yp[i+1]=1.28*xp[i+1]-0.0056
i=i+2
eu gostaria que em xp<0.5 o meu programa use outra função
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.