sexta-feira, 22 de julho de 2011

Integração Numérica - 1ª regra de Simpson

O programa calcula a integral definida (de a até b) de uma função contínua neste intervalo (Integral[a,b]f(x)dx). O usuário deve digitar no código fonte a equação y = f(x) que deseja integrar, além dos limites da integração em x, e depois compilar em qualquer compilador pascal para ver o resultado.

Exemplo: para integrar a função y = x^3 - e^x, no intervalo de x = -3 até 5 o usuário irá digitar antes de compilar:
...
y := x*x*x - exp(x);
...
lim_inferior := -3;
lim_superior := 5;
...
Observação: Quanto maior o valor de n (número de divisões do intervalo de integração) maior será a exatidão do resultado da integração numérica, mas, em contrapartida, mais cálculos serão feitos, tornando o processo mais lento.

O local onde o usúario deve entrar com os dados esta destacado em AZUL:


program integracao_1_Simpson;
uses crt;

function y (x:real):real;
begin
y := x*x*x - exp(x); //digitar a funcao aqui//
end;

var
lim_inferior, lim_superior, h, n, dx, xj, xjm, cont, I : real;

begin

lim_inferior := -3; //digitar o limite inferior da integracao//
lim_superior := 5; //digitar o limite superior da integracao//

//ajusta algumas variaveis//
n := 1000; //numero de divisoes do intervalo de integracao - n deve ser um inteiro positivo//
dx := (lim_superior - lim_inferior)/n;
h := dx/2;
I := y(lim_inferior) + 4*y(lim_superior-h) + y(lim_superior);
cont := 1;

if n > 1 then
begin

xj := lim_inferior + h;
xjm := lim_inferior + dx;

//integracao numerica//

repeat

I := I + 4*y(xj) + 2*y(xjm);
cont := cont + 1;

xj := xj + dx;
xjm := xjm + dx;

until cont = n;

end;

I := (h/3)*I;

//resultados//
writeln ('resultado da integracao = ', I:0:10);
writeln;
writeln ('Digite uma tecla para sair');
readkey;
end.

Nenhum comentário:

Postar um comentário