Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
# -*- coding: utf-8 -*- """ Spyder Editor This is a temporary script file. Atenção - %clear limpa o console """ #Apresentação print("Método de Runge-Kutta de 4Ordem na linguagem python") #Importando bibliotecas matemáticas import matplotlib.pyplot as plt import numpy as np # Derivada - dx(t)/dt = f(t,x(t)) def f(t,x): return (np.sin(1/x)) # Método(Função) - Neste método criamos a rotina para implementação do algoritmode Runge-Kutta de 4Ordem def RungeKutta4(t0,x0,h,n): #h = dx - passo #n - quantidade de interação a ser realizadas #t0 - tempo inicial #x0 - posição inicial no instante t0, x(t0) = x0 #Inciando novas variáveisem t = t0 e x = x0 t = t0 x = x0 #loop for for i in range(0,n,1): # Algoritmo de Runge-Kutta de 4Ordem k1 = h*f(t,x) k2 = h*f((t + (h/2)), (x + (k1/2))) k3 = h*f((t + (h/2)), (x + (k2/2))) k4 = h*f((t + h), (x + k3)) # POsição e tempo x = x + ((k1 + 2*k2 + 2*k3 + k4)/6) t = t + h #Saídda print("t = ",t," || x = ",x) #Plota gráficos #Gráfico (t, x(t)) plt.plot(t,x,'o')#plotar um gráfico (t,x(t)) plt.xlabel('t - tempos em (s)') plt.ylabel('x(t) - metros(m)') plt.title('Gráfico dx(t)/dt = f(t,x(t))') plt.grid(0.05) ''' #Gráfico (x(t), dx(t)/dt) - espaço de fase, onde dx(t)/dt = f(t,x(t)) plt.plot(t,f(t,x),'*')#plotar um gráfico (t,x(t)) plt.xlabel('x(t) - posição em (m)') plt.ylabel('v(t) - metros(m /s)') plt.title('Gráfico espaço de fase') plt.grid(0.05) ''' ''' #Engergia #Energia cinética T = (1/2)*1*f(t,x)*f(t,x) U = (1/2)*1*(x*x) E = T + U #Gráfico (x(t), dx(t)/dt) - espaço de fase, onde dx(t)/dt = f(t,x(t)) plt.plot(t,f(t,x),'*')#plotar um gráfico (t,x(t)) plt.xlabel('t - tempos em (s)') plt.ylabel('Energia - Joule (J)') plt.title('Gráfico Energia total o sistema') plt.grid(0.05) ''' ''' Digite essew exemplo -> RungeKutta4(0,2,0.01,100) '''
Compartilhar