function s=quadratura_gaussiana(a,b,x,w,func)
// quadratura_gaussiana(a,b,x,w,f)
// Calcula a integral definida de f(x)dx com limites de
// integração "a" e "b" usando a quadratura de Gauss,
// com nodos "x" e pesos "w" calculados pela rotina
// gauss_legendre.
// 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);
n = max(size(x));
xm = (b+a)/2;
xr = (b-a)/2;
s = 0;
for i=1:n
s = s+w(i)*f(xr*x(i)+xm);
end
s = xr*s;
endfunction
Nenhum comentário:
Postar um comentário