Muitos problemas requerem o cálculo de integrais definidas em um intervalo definido (a,b). Algumas vezes esse cálculo é bem simples, em outros uma solução analítica não é possível. Se a função for contínua poderemos usar os comandos inttrap e intsplin do Scilab. O inttrap usa a regra dos trapézios repetida e é computacionalmente mais simples e menos preciso que o intsplin.
Vejamos um exemplo simples. A integral da função y(t) = sin( \pi t) no intervalo (0, 1) resulta no valor \frac{2}{\pi}. Temos que definir o passo do tempo t. Podemos, por exemplo, fazer o passo igual a 1/10: t = 0:0.1:1, código Scilab é:
clc;
t = 0:0.1:1;
y = sin(%pi * t);
Inty1 = inttrap(t,y);
Inty2 = intsplin(t,y);
Intt = 2/%pi;
erro1 = 100*abs(Inty1 - Intt)/Intt;
erro2 = 100*abs(Inty2 - Intt)/Intt;
disp([Inty1, erro1, Inty2, erro2]);
Resultando em:
0.6313752 0.8238231 0.6366199 0.0000138
Claramente, o resultado que obtemos com o comando intsplin é muito superior. Naturalmente, se o passo que adotamos para o "tempo" for reduzido (ex: 0,05), os erros serão ainda menores. Um desafio - calcular a integral abaixo:
\int_0^{\infty} \frac{sin(\pi t)}{\pi t} dt
Obs: existem dois problemas no cálculo numérico acima: a divisão por zero e o "infinito" na integral. Como contornar esses problemas?
Nenhum comentário:
Postar um comentário