Integração Numérica: mudanças entre as edições

De Física Computacional
Ir para navegação Ir para pesquisar
(Criou página com ''''Integração numérica''' é um termo amplo que abrange até a integração de equações diferenciais como é discutido em Métodos Computacionais B. Aqui nos referimos exclu...')
 
Sem resumo de edição
Linha 1: Linha 1:
[[Image:integral.jpg|thumb|right|A integração numérica consiste em achar a aproximação numérica para o valor de <math>S</math>]]
'''Integração numérica''' é um termo amplo que abrange até a integração de equações diferenciais como é discutido
'''Integração numérica''' é um termo amplo que abrange até a integração de equações diferenciais como é discutido
em Métodos Computacionais B. Aqui nos referimos exclusivamente ao cálculo numérico da '''integral definida''':
em Métodos Computacionais B. Aqui nos referimos exclusivamente ao cálculo numérico da '''integral definida''':
Linha 9: Linha 11:


# existência de funções contínuas sem '''primitiva,''' o que inviabiliza a conta analítica.
# existência de funções contínuas sem '''primitiva,''' o que inviabiliza a conta analítica.
# funções discontinuas ou definidas por trechos mas para as quais a integral não existe (no fundo é a falta de uma primitiva)
# funções descontinuas ou definidas por trechos mas para as quais a integral não existe (no fundo é a falta de uma primitiva)
# funções (ou tabelas) provenientes de experimentos
# funções (ou tabelas) provenientes de experimentos
# funções continuas e com primitiva de representação simbólica, porem de difícil avaliação na prática (mais difícil que avaliar a própria função)
# funções continuas e com primitiva de representação simbólica, porem de difícil avaliação na prática (mais difícil que avaliar a própria função)
Linha 46: Linha 48:
:<math> \int_{x}^{x+\Delta x} f(x') dx' = F(x + \Delta x) - F(x) </math>
:<math> \int_{x}^{x+\Delta x} f(x') dx' = F(x + \Delta x) - F(x) </math>


Pela definição da integral entre limites definidos podemos escrever-la como:
Pela definição da integral entre limites definidos podemos escrevê-la como:


:<math> \int_{x}^{x+\Delta x} f(x') dx' = f(x'') \Delta x = F(x + \Delta x) - F(x) </math>
:<math> \int_{x}^{x+\Delta x} f(x') dx' = f(x'') \Delta x = F(x + \Delta x) - F(x) </math>
Linha 64: Linha 66:
== Cálculo Numérico ==
== Cálculo Numérico ==


O cálculo numérico de uma integral definida se baseia na própria definição acima:
[[Image:Trapezio.png|right|frame|Ilustração da regra do retângulo.]]
 
[[Image:integrationtrapezio.png|right|frame|Ilustração da regra do trapézio.]]
 
[[Image:Integrationsimpson.png|right|frame|Ilustração da regra de Simpson.]]


:<math>S = \int_a^b f(x)\, dx \approx \sum_{i=0}^{N} f(x_i) \Delta x </math>
O cálculo numérico de uma integral definida se baseia na própria definição acima.
Com a diferença que N é finito. Obviamente quanto maior, melhor.<br>
-Temos que pelos retângulos definidos pelo extremo esquerdo de cada subintervalo:
:<math>\int_a^b f(x)\, dx \approx S_e = \sum_{i=0}^{N-1} f(x_i) \Delta x </math>
-E pelos retângulos definidos pelo extremo direito de cada subintervalo:
:<math>\int_a^b f(x)\, dx \approx S_d = \sum_{i=1}^{N} f(x_i) \Delta x </math>  


-[[Regra do Trapézio]]:
:<math>\int_a^b f(x)dx \approx S_t = \sum_{i=0}^{N-1} \frac{f(x_i)+f(x_i+\Delta x)}{2}\Delta x</math>
onde:
onde:
:<math>\Delta x = \frac{b-a}{N}</math>  
:<math>x_i = a + i \Delta x,\;\;  \Delta x = \frac{b-a}{N}</math>  
 
Esta última pode ser reescrita como:
:<math>\left(\frac{f(a)+f(b)}{2} + \sum_{i=1}^{N-1} f(x_i)\right)\Delta x</math>
 
Também pode se verificar que a integral calculada com os trapézios é a média das integrais calculadas com retângulos:
:<math>S_t = (S_e + S_d)/2</math>
 
-[[Regra de Simpson]]:
 
Notemos que o método do trapézio é baseado na ideia de passar uma reta por 2 pontos e aproximar a área da função f(x) pela área sob a curva definida pelo trapézio.
 
A regra de Simpson é uma extensão disto: a ideia é  passar uma parábola por três pontos consecutivos e calcular a área definida por ela. Se tivermos apenas 3 pontos, a integral da parábola que passa entre <math> x_{1} , x_{3}</math> é dada por:
 
 
:<math>S= \int_{x_1}^{x_3} f(x) \, dx \approx \frac{x_3-x_1}{6}\left[f(x_1) + 4f\left(\frac{x_1+x_3}{2}\right)+f(x_3)\right]</math>
 
 
No entanto, para integrarmos sobre toda o intervalo <math>\left[ x_{1} ; x_{n}\right]</math> com boa precisão, é necessário dividi-lo em N intervalos, com N grande. Assim,  é preciso traçar  uma parábola a cada  três pontos consecutivo e a expressão final da fórmula de Simpson é então a soma da área sob todas as parábolas do intervalo <math>\left[ x_{1} ; x_{n}\right]</math> :
 
 
 
:<math>S=  \int_{x_1}^{x_n} f(x)dx \simeq \frac{h}{3}\left[f(x_1)+4f(x_2)+2f(x_3)+4f(x_4)+\ldots+4f(x_{n-1})+f(x_n)\right]</math>,
 
onde <math> h =  (x_{n} - x_{1} )/N </math> .
 


Com a diferença que N é finito. Obviamente quanto maior, melhor, mas será sempre finito.<br>
A dedução da regra de Simpson pode ser encontrada por exemplo  em [http://davinci.if.ufrgs.br/wiki/index.php/Regra_de_Simpson]
Dependendo de onde são avaliados os <math>x_i</math> termos diferentes versões da integral numérica.
Exemplo:
:<math>x_i = a + i\Delta x</math>, com i=0,...N-1 é a integral pela borda inferior do intervalo <math>\Delta x</math>


== Programação ==
== Programação ==
A seguir um trecho do programa para cálculo da integral da função f(x) (''external function f(x)'')<br/>
entre a e b com N pontos, usando o método dos retângulos pela esquerda:


<pre>
<pre>
Linha 90: Linha 127:
...
...
</pre>
</pre>
Os outros métodos se programam de maneira similar mudando limites (índice do laço)<br />
e/ou tratando de forma diferente os valores das pontas.
== Erro associado ao método numérico ==
O método de integração numérico não retorna o valor exato de uma função, visto que não podemos ter no computador <math>N\to\infty</math>. O erro aqui discutido estará vinculado ao número de divisões <math>N</math> realizada na função <math>f(x)</math> dentro do intervalo que se quer saber o valor da integral. Assim, o erro é definido como
:<math>erro=\frac{Int(N)-Int(N-1)}{Int(N)}</math>,
onde <math>Int(N)</math> é o valor retornado pelo método numérico utilizado utilizando <math>N</math> divisões e <math>Int(N-1)</math> utilizando <math>N-1</math> divisões. Note que um teste simples para verificar quando a resposta está convergindo é aumentar <math>N</math> e calcular o erro a cada incremento no seu valor.

Edição das 08h42min de 13 de outubro de 2011

A integração numérica consiste em achar a aproximação numérica para o valor de Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle S}

Integração numérica é um termo amplo que abrange até a integração de equações diferenciais como é discutido em Métodos Computacionais B. Aqui nos referimos exclusivamente ao cálculo numérico da integral definida:

Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle S = \int_{a}^{b} f(x) dx}

O termo definida, quer dizer que a integral se faz entre limites definidos, no caso a e b.

O interesse de fazer esse cálculo numericamente se deve a:

  1. existência de funções contínuas sem primitiva, o que inviabiliza a conta analítica.
  2. funções descontinuas ou definidas por trechos mas para as quais a integral não existe (no fundo é a falta de uma primitiva)
  3. funções (ou tabelas) provenientes de experimentos
  4. funções continuas e com primitiva de representação simbólica, porem de difícil avaliação na prática (mais difícil que avaliar a própria função)

Definição

Revisemos o conceito de integral do cálculo: A integral definida de uma função f(x) no intervalo [a, b] se define como:

Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle S = \int_a^b f(x)\, dx = \lim_{N\to\infty} \sum_{i=0}^{N} f(x_i) \Delta x }

A integral de f(x) pode ser entendida como a soma de pequenos retângulos de base dx e altura f(x), onde o produto f(x) dx é a área deste retângulo.
A soma de todas estas pequenas áreas, ou áreas infinitesimais, fornece a área total abaixo da curva.
Mais precisamente podemos dizer que a integral acima é o valor limite da soma:

Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \sum_{i=0}^{N} f(x_i) \Delta x. }

onde:

Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \Delta x = \frac{b-a}{N}}

é o comprimento dos pequenos intervalos nos quais dividimos o intervalo (b-a), Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle f(x_i)} é o valor da função em algum ponto deste intervalo.
Quando Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle N \to \infty} o valor da soma acima é igual a área abaixo da curva.

A integral também é conhecida como antiderivada:

Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \int f(x)dx = F(x) \Leftrightarrow \frac{dF(x)}{dx}= f(x)}

Relembremos porque:

Teorema Fundamental do Cálculo

Se resolvermos a integral acima entre os limites a e b, o resultado pode ser escrito como dependendo só dos extremos:

Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle S = \int_{a}^{b} f(x) dx = F(b) - F(a) }

Vamos ver agora como se isso for válido, então F(x) é a primitiva procurada.

Calculando a integral entre Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle x} e Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle x + \Delta x} :

Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \int_{x}^{x+\Delta x} f(x') dx' = F(x + \Delta x) - F(x) }

Pela definição da integral entre limites definidos podemos escrevê-la como:

Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \int_{x}^{x+\Delta x} f(x') dx' = f(x'') \Delta x = F(x + \Delta x) - F(x) }

onde Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle x''} é um valor de Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle x} entre os extremos do intervalo.

Passando o Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \Delta x} para a direita e tomando o limite quando ele vai para zero:

Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \lim_{\Delta x \to 0 } f(x'') = \lim_{\Delta x \to 0 } \frac{ F(x + \Delta x) - F(x) }{ \Delta x } \Rightarrow f(x) = \frac{d}{dx} F(x) }

Demonstramos que a derivada de F(x) resulta ser a função f(x) que queremos integrar. Em outras palavras, o Teorema fundamental do Cálculo diz que resolver uma integral se resume a achar a primitiva, ou seja uma função cuja derivada seja o integrando.

O problema prático é que não todas as funções tem primitiva.. Vejamos então.

Cálculo Numérico

Ilustração da regra do retângulo.
Ilustração da regra do trapézio.
Ilustração da regra de Simpson.

O cálculo numérico de uma integral definida se baseia na própria definição acima. Com a diferença que N é finito. Obviamente quanto maior, melhor.

-Temos que pelos retângulos definidos pelo extremo esquerdo de cada subintervalo:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \int_a^b f(x)\, dx \approx S_e = \sum_{i=0}^{N-1} f(x_i) \Delta x }
-E pelos retângulos definidos pelo extremo direito de cada subintervalo:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \int_a^b f(x)\, dx \approx S_d = \sum_{i=1}^{N} f(x_i) \Delta x }
-Regra do Trapézio:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \int_a^b f(x)dx \approx S_t = \sum_{i=0}^{N-1} \frac{f(x_i)+f(x_i+\Delta x)}{2}\Delta x}

onde:

Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle x_i = a + i \Delta x,\;\; \Delta x = \frac{b-a}{N}}

Esta última pode ser reescrita como:

Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \left(\frac{f(a)+f(b)}{2} + \sum_{i=1}^{N-1} f(x_i)\right)\Delta x}

Também pode se verificar que a integral calculada com os trapézios é a média das integrais calculadas com retângulos:

Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle S_t = (S_e + S_d)/2}
-Regra de Simpson:

Notemos que o método do trapézio é baseado na ideia de passar uma reta por 2 pontos e aproximar a área da função f(x) pela área sob a curva definida pelo trapézio.

A regra de Simpson é uma extensão disto: a ideia é passar uma parábola por três pontos consecutivos e calcular a área definida por ela. Se tivermos apenas 3 pontos, a integral da parábola que passa entre Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle x_{1} , x_{3}} é dada por:


Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle S= \int_{x_1}^{x_3} f(x) \, dx \approx \frac{x_3-x_1}{6}\left[f(x_1) + 4f\left(\frac{x_1+x_3}{2}\right)+f(x_3)\right]}


No entanto, para integrarmos sobre toda o intervalo Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \left[ x_{1} ; x_{n}\right]} com boa precisão, é necessário dividi-lo em N intervalos, com N grande. Assim, é preciso traçar uma parábola a cada três pontos consecutivo e a expressão final da fórmula de Simpson é então a soma da área sob todas as parábolas do intervalo Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \left[ x_{1} ; x_{n}\right]}  :


Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle S= \int_{x_1}^{x_n} f(x)dx \simeq \frac{h}{3}\left[f(x_1)+4f(x_2)+2f(x_3)+4f(x_4)+\ldots+4f(x_{n-1})+f(x_n)\right]} ,

onde Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle h = (x_{n} - x_{1} )/N } .


A dedução da regra de Simpson pode ser encontrada por exemplo em [1]

Programação

A seguir um trecho do programa para cálculo da integral da função f(x) (external function f(x))
entre a e b com N pontos, usando o método dos retângulos pela esquerda:

...
Read*, a, b, N
dx = (b-a)/N;  S=0

Do i = 0, N-1
   x = a + i*dx
   S = S + f(x)
EndDo
Print*, "Integral S=", S*dx
...

Os outros métodos se programam de maneira similar mudando limites (índice do laço)
e/ou tratando de forma diferente os valores das pontas.

Erro associado ao método numérico

O método de integração numérico não retorna o valor exato de uma função, visto que não podemos ter no computador Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle N\to\infty} . O erro aqui discutido estará vinculado ao número de divisões Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle N} realizada na função Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle f(x)} dentro do intervalo que se quer saber o valor da integral. Assim, o erro é definido como

Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle erro=\frac{Int(N)-Int(N-1)}{Int(N)}} ,

onde Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle Int(N)} é o valor retornado pelo método numérico utilizado utilizando Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle N} divisões e Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle Int(N-1)} utilizando Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle N-1} divisões. Note que um teste simples para verificar quando a resposta está convergindo é aumentar Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle N} e calcular o erro a cada incremento no seu valor.