function
s=simpson_comp_uniforme(a,b,n,func)
// s=simpson_comp_uniforme(a,b,n,f)
// Calcula a integral definida de f(x)dx com limites de
// integração "a" e "b" usando a regra composta
uniforme de Simpson,
// com o intervalo [a,b] dividido em n sub-intervalos.
// A função "f" deve ser passada como uma "string"
contendo a função,
// escrita de acordo com as regras do Scilab; por exemplo, para a
// função f(x)=e^x-2, escreva 'exp(x)-2'.
// (C) Rudnei Dias da Cunha 2008
deff('[v]=f(x)','v='+func);
s = f(a);
s1 = 0;
for i=2:n/2
s1 = s1+f(a+(2.0*i-2.0)*(b-a)/n);
end
s2 = 0;
for i=1:n/2
s2 = s2+f(a+(2.0*i-1.0)*(b-a)/n);
end
s = ((b-a)/n)/3.0*(f(a)+2.0*s1+4.0*s2+f(b));
endfunction
Nenhum comentário:
Postar um comentário