Python, Fazer gráfico, 2 parábolas.

04/09/2019

0

Quero fazer duas parábolas com a<0 iguais, cada uma com seu intervalo. Tipo quando terminar uma começar a outra. No entanto no meu código aparentemente ele faz duas funções virarem uma.
# Bibliotecas
import matplotlib.pyplot as plt
import math


# -- Programa principal --
# inicialização de variável
soma = 0

# entrada de dados
xi = float(input('Digite o valor inicial do intervalo: '))

xf = float(input('Digite o valor final do intervalo: '))
while xf<=xi:
    print('Erro! \\nO valor final deve ser maior do que o valor inicial!!')
    xi = float(input('Digite o valor inicial do intervalo: '))
    xf = float(input('Digite o valor final do intervalo: '))

base = 0.1

# plotagem do objeto
x = xi     
while(x<=xf):

    if -10< x < 12.2:
        y = -4*x**2+4
    elif 12.3 < x < 22.3:
        y = -4*x**2+4
    
        


    
    
 
    plt.plot(x,y,marker='o',color='black')
    plt.bar(x,y,base)
    
    soma = soma + (base*y)
    x = x + base

# exibição da área aproximada
print('\\n\\n*******************************')    
print('Área aproximada:',soma,'u.a.')
print('*******************************')    
# exibicao do grafico
plt.xlabel('x (m)')
plt.ylabel('y (m)')
plt.show()
Marcos

Marcos

Responder

Posts

04/09/2019

Gérson

Quero fazer duas parábolas com a<0 iguais, cada uma com seu intervalo. Tipo quando terminar uma começar a outra. No entanto no meu código aparentemente ele faz duas funções virarem uma.
# Bibliotecas
import matplotlib.pyplot as plt
import math


# -- Programa principal --
# inicialização de variável
soma = 0

# entrada de dados
xi = float(input('Digite o valor inicial do intervalo: '))

xf = float(input('Digite o valor final do intervalo: '))
while xf<=xi:
    print('Erro! \\\\nO valor final deve ser maior do que o valor inicial!!')
    xi = float(input('Digite o valor inicial do intervalo: '))
    xf = float(input('Digite o valor final do intervalo: '))

base = 0.1

# plotagem do objeto
x = xi     
while(x<=xf):

    if -10< x < 12.2:
        y = -4*x**2+4
    elif 12.3 < x < 22.3:
        y = -4*x**2+4
    
        


    
    
 
    plt.plot(x,y,marker='o',color='black')
    plt.bar(x,y,base)
    
    soma = soma + (base*y)
    x = x + base

# exibição da área aproximada
print('\\\\n\\\\n*******************************')    
print('Área aproximada:',soma,'u.a.')
print('*******************************')    
# exibicao do grafico
plt.xlabel('x (m)')
plt.ylabel('y (m)')
plt.show()


Bom dia amigo
Pelo que testei aqui e pode entender da sua função, realmente ela aparenta que esta unindo. Mas não esta. Oque acontece e que o limite de uma função para outra e muito proximo, isso faz com que parece estar juntas.
Sua f(x)= -4*(x^2) +4
Uma termina em 12.2 e a outra começa em 12.3. Logo uma sera a continuidade da outra.

if -10< x < 12.2:
y = -4*x**2+4
elif 12.3 < x < 22.3:
y = -2*x**2+4

Muda essa delta de -4 para -2, no elif. Que ficara mais facil de ver a descontinuidade.


Tenho alguns exemplos de plotagem de grafico e mineração com Python no meu git:
https://github.com/gerssonmg/mineracao_de_dados
https://github.com/gerssonmg/pandas

E dois videos explicando:
https://www.youtube.com/watch?v=_wVBVdvkTgM
https://www.youtube.com/watch?v=eVf_UjfemBo

Essas implementação tem algumas features avançadas, mas da pra você aprender bastante coisa eu acredito.
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar