Ir para conteúdo
Fórum Script Brasil
  • 0

array e condicional


Lucas Ferreira Loz

Pergunta

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

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0
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

 

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...