António Galante Posted December 16, 2020 at 09:46 PM Report Share #620757 Posted December 16, 2020 at 09:46 PM Olá, Estou a ter dificuldades para criar um programa, em que basicamente consiste no seguinte, preciso criar um gráfico de uma função definida por ramos e, em seguida, criar um gráfico com o cálculo da derivada e do integral da função por meio das aproximações progressivas e regressivas. A minha principal dificuldade está a ser ao definir a função pois apenas quero mostrar o gráfico a partir de uma determinada zona da função. Tenho aqui também uma solução que utilizei num programa anterior para dar a entender mais ou menos aquilo que quero fazer. Espero que me possam ajudar, obrigado import matplotlib.pyplot as plt #Cálculo de h max_x = 100 h=4 n_pontos = int(max_x/h) print(n_pontos) x = [i*h for i in range(n_pontos)] #Definição da função f(x), f'(x) e Int(x) f=[] for y in x: f.append(y**2+5) df=[2*y for y in x] intf=[y**3/3+5*y for y in x] #Desenho do Gráfico: plt.figure(1) plt.plot(x,f,'ro-') plt.legend(['$f(y)=x^2+5$']) plt.grid() plt.show() plt.figure(2) plt.plot(x,f,'r-') plt.plot(x,df,'k-') plt.plot(x,intf,'g-') plt.legend(['$f(y)=x^2+5$','$f\'(y)=2x$',r'$\int_{}^{}f(y)=\dfrac{y^3}{3}+5y$']) plt.grid() plt.show() # Aproximação com derivada regressiva de f(t) dfr = [(f[n]-f[n-1])/h for n in range(1,n_pontos)] #------------------------------------------------------------ # Integral de Riemann de f(t) # - Resolução usando uma função soma() def soma(a): s[0] = s[0] + a*h return s[0] s = [0] # Variável que vai acumulando o somatório dos vários valores calculados irf = [soma(f[n]) for n in range(n_pontos)] #------------------------------------------------------------ #------------------------------------------------------------ # Integral de Riemann de f(t) # - Resolução alternativa mais simples... irf2 =[f[0]*h] # Inicialização do vector [irf2.append(irf2[n-1]+f[n]*h) for n in range(1,n_pontos)] #------------------------------------------------------------ #Desenho do Gráfico: plt.figure(1) plt.plot(x,df,'r.-') plt.plot(x[1:],dfr,'g--') plt.legend(['df-exata','dfr-regressiva']) plt.grid() #plt.show() plt.figure(2) #plt.plot(x,f,'r-') plt.plot(x,intf,'r.-') plt.plot(x,irf,'g-') plt.plot(x,irf2[:],'b--') plt.legend(['int-exato','int-riemann','int-riemann 2']) plt.grid() plt.show() Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now