sábado, 20 de setembro de 2014

Equações diferenciais ordinárias: Método de Runge-Kutta de ordem 4

Código para solução de equações diferenciais ordinários com valor inicial usando o método de Runge-Kutta de quarta ordem.


import numpy as np
import math

def f(x,y):
    return x-2*y+1

x=0.0
y=1.0
h=0.1
n=10
p=np.zeros((n+1,3))

for i in range(1,n+1):
    k1=f(x,y)    
    k2=f(x+h/2,y+h*k1/2)
    k3=f(x+h/2,y+h*k2/2)
    k4=f(x+h,y+h*k3)    
    y=y+h*(k1+2*k2+2*k3+k4)/6
    x=h*i
    p[i,0]=i    
    p[i,1]=x
    p[i,2]=y
print(p)

terça-feira, 9 de setembro de 2014

Regra de Simpson usando Python

Código para integrar uma função usando a regra de Simpson na linguagem Python e sem usar laços for ou while, usando apenas vetores.

import numpy as arange
from pylab import *

def f(x):
    return sin(x)
    
a=0
b=3*pi

n=10000

h=(b-a)/n
x=arange(a,b+h,h)
y=[]
y=f(x)

s1=y[2:2]

int=(h/3)*(f(a)+4*(sum(y[1:n:2]))+2*(sum(y[2:n:2]))+f(b))

print(int)