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