Fórum Python, Fazer gráfico, 2 parábolas. #605116
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
Curtir tópico
+ 0
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
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)