Regras do Trapézio e de Simpson
Objetivos de Aprendizagem
- Deduzir as regras do trapézio e de Simpson integrando um polinômio interpolador, e escrever suas formas compostas.
- Enunciar cada termo de erro com sua hipótese: para o trapézio, para Simpson.
- Explicar por que a regra de Simpson, construída sobre uma parábola, é exata para cúbicas.
- Medir uma ordem de convergência a partir de uma tabela de erros e mostrá-la caindo num integrando sem as derivadas exigidas.
- Escolher a partir de uma cota de erro e distinguir a cota do erro verdadeiro.
- Dizer onde o arredondamento interrompe a convergência e quando uma regra de grau mais alto piora o resultado.
Contexto e Motivação
A lição the-definite-integral-and-riemann-sums construiu a regra do trapézio como média das somas à esquerda e à direita e observou sua taxa numa tabela. Uma taxa observada não diz qual propriedade de é responsável por ela, nem o que fazer quando a função não tem primitiva e só há amostras disponíveis.
Esta lição chega à mesma regra por outro caminho: troque por um polinômio que a interpola e integre esse polinômio de forma exata. O erro de interpolação de polynomial-interpolation-lagrange-and-newton vira então um termo de erro exato, com uma derivada específica dentro dele. Essa derivada é a hipótese, e tirá-la é o que faz a ordem cair.
Teoria Central
Integre o interpolante
Seja o polinômio que interpola nos nós em . Escrever na base de Lagrange dá
Os pesos dependem só dos nós, então são calculados uma vez. Com e :
- Grau 1, nós : para cada nó, logo .
- Grau 2, nós : integrar as três parábolas da base dá , , , logo .
O erro do trapézio
Se , para cada existe com . O fator não troca de sinal em , então vale o teorema do valor médio para integrais com peso de sinal constante. Como ,
Divida em painéis de largura e some os painéis. Como é contínua, a média dos valores é ela mesma um valor de , o que dá o resultado composto:
Para convexa isso diz que superestima. Quando , o valor médio tende à média de , logo .
Simpson ganha um grau de brinde
O mesmo argumento emperra em Simpson. O fator troca de sinal em , e sua integral em é por simetria. Esse zero é uma boa notícia: significa que a regra integra toda cúbica de forma exata, um grau acima da parábola que a gerou. Seu grau de precisão é 3.
Para obter o erro, use uma cúbica que também coincida com . Para ,
e agora o fator mantém um sinal só. Sua integral é , e porque é exata para cúbicas e coincide com nos três nós. Daí . Cada painel tem , então a regra composta exige par, e
As duas regras compostas usam avaliações de :
plaintextdef trapezoid(f, a, b, n): x = np.linspace(a, b, n + 1); y = f(x); h = (b - a) / n return h * (y[0] / 2 + y[1:-1].sum() + y[-1] / 2) def simpson(f, a, b, n): # n par x = np.linspace(a, b, n + 1); y = f(x); h = (b - a) / n return h / 3 * (y[0] + y[-1] + 4 * y[1:-1:2].sum() + 2 * y[2:-1:2].sum())
Por que não um único polinômio de grau alto
Mais nós num só polinômio podem ajudar quando é muito suave: em sobre , Newton-Cotes de grau 8 tem erro , contra de Simpson nos mesmos nove nós. Em nós igualmente espaçados isso também pode falhar feio. Tome em , onde . A regra fechada de Newton-Cotes de grau integra o interpolante em nós equiespaçados. Seus pesos, em unidades do espaçamento, vêm de scipy.integrate.newton_cotes:
textd erro de Newton-Cotes peso mais negativo Simpson composta, mesmos nós 4 7.46e-02 (nenhum) 1.93e-02 8 2.49e-01 -1.28 2.59e-02 12 6.12e-01 -16.7 9.00e-03 16 1.80e+00 -168 2.70e-03 20 5.92e+00 -1800 7.79e-04
É o fenômeno de Runge, agora integrado. Pesos negativos também amplificam o arredondamento de . Grau baixo em muitos painéis é o remédio usual.
Onde a ordem cai
As ordens 2 e 4 são promessas sob e . Aqui elas foram medidas dobrando de 1024 para 2048, exceto nas duas últimas linhas, em que se ajustou uma reta por porque os erros são erráticos:
textintegrando em [0,1] ordem T ordem S o que falha x^(1/2) 1.50 1.50 f' ilimitada em 0 x^(3/2) 2.00 2.50 f'' ilimitada em 0 x^(5/2) 2.00 3.49 f''' ilimitada em 0 x^(7/2) 2.00 3.99 f'''' ilimitada em 0 |x - 1/sqrt(2)| 2.02 1.83 quina degrau em 1/sqrt(2) 0.98 1.05 salto
Em a vantagem de Simpson some: as duas regras têm ordem . A linha mostra que as hipóteses são suficientes, não necessárias: é ilimitada, o teorema não diz nada e o trapézio mantém ordem 2. Numa quina, o remédio é dividir a integral ali. Com e múltiplo de 4 a quina é um nó e é exata, porque é linear em todo painel.
A ordem também pode ser melhor que a prometida. Para no período inteiro , um integrando suave e periódico:
textn erro do trapézio erro de Simpson 8 1.25e-06 1.15e-02 16 1.78e-15 4.17e-07 32 1.78e-15 2.66e-15
As duas regras ficam muito à frente de e , e o trapézio vence Simpson. A próxima lição, error-orders-and-adaptive-quadrature, explica por quê.
O arredondamento interrompe a convergência
Os termos de erro acima são só de truncamento. Rode a regra do trapézio em sobre em float32, com uma soma acumulada simples:
textn erro em float32 truncamento h^2(e-1)/12 16 5.591e-04 5.593e-04 256 2.182e-06 2.185e-06 1024 2.018e-07 1.366e-07 4096 5.594e-07 8.535e-09 65536 6.786e-07 3.334e-11 262144 7.474e-06 2.084e-12 1048576 3.066e-04 1.302e-13
Até o truncamento domina. Depois de o erro para de cair, e depois de ele cresce, porque o arredondamento acumulado da soma (veja sources-of-error-truncation-rounding-propagation) ultrapassa o truncamento, que continua encolhendo. Em float64 o mesmo efeito fica bem mais abaixo. Simpson nesta integral tem erro em , que ainda é truncamento (previsto: ), e o arredondamento aparece em : contra previstos.
Exemplos Resolvidos
Exemplo 1: exata para cúbicas, não para quárticas
Tome em com um painel de Simpson: , , , logo , e a integral exata é . Para em com , : contra , então . A fórmula do erro dá , exatamente, porque é constante.
Exemplo 2: medindo as duas ordens em
Para , um script imprime os erros, a razão ao dobrar , a ordem e os termos principais previstos e .
textn |I-T_n| razão ordem previsto |I-S_n| razão ordem previsto 4 8.940e-03 8.949e-03 3.701e-05 3.729e-05 8 2.237e-03 3.997 2.00 2.237e-03 2.326e-06 15.91 3.99 2.331e-06 16 5.593e-04 3.999 2.00 5.593e-04 1.456e-07 15.98 4.00 1.457e-07 32 1.398e-04 4.000 2.00 1.398e-04 9.103e-09 15.99 4.00 9.104e-09 64 3.496e-05 4.000 2.00 3.496e-05 5.690e-10 16.00 4.00 5.690e-10 128 8.740e-06 4.000 2.00 8.740e-06 3.556e-11 16.00 4.00 3.556e-11
Tanto quanto são positivos aqui, como os sinais dos termos de erro preveem para e .
Exemplo 3: escolhendo por uma cota
O integrando de não tem primitiva elementar; o valor é . Busque erro . Aqui e , cujos valores absolutos em têm máximo em , valendo e . Assim:
- Trapézio: exige .
- Simpson: exige , então o primeiro valor par é .
São 410 avaliações contra 19. As duas cotas são seguras e pessimistas: em o erro do trapézio é , e em o de Simpson é . Varrendo com o valor exato, a meta é atingida primeiro em no trapézio () e em em Simpson ().
Exemplo 4: onde o trapézio é exato e Simpson erra
A curva ROC de evaluation-metrics-precision-recall-and-roc, construída a partir de uma amostra finita com escores distintos, é uma poligonal. Ordene dez exemplos por escore, com rótulos (cinco positivos, cinco negativos). A regra do trapézio pelos pontos da ROC dá AUC , que é igual à fração de pares positivo-negativo ordenados corretamente, calculada em separado. Ela é exata porque a regra integra cada segmento de reta sem erro. Passar os mesmos pontos a scipy.integrate.simpson devolveu sem nenhum aviso (SciPy 1.15.3): a curva tem segmentos verticais, então se repete, e uma parábola por esses pontos não significa nada. A regra de ordem mais alta é a ferramenta errada para dados que não são suaves.
Exemplo 5: conferindo com as bibliotecas
Em com e , as duas funções acima concordam com scipy.integrate.trapezoid e scipy.integrate.simpson dentro de .
Livro vs hoje: os livros dizem que deve ser par, o que significa um número ímpar de amostras. scipy.integrate.simpson também aceita um número par de amostras e trata o intervalo que sobra com uma correção. Com 12 amostras a ordem fica perto de 4 (medida: ), mas a exatidão para cúbicas some: em o erro é com 12 amostras e com 11. Código antigo chama scipy.integrate.trapz e simps, que não existem mais no SciPy, e numpy.trapz, que foi depreciada no NumPy 2.0 e removida no 2.4 em favor de numpy.trapezoid.
Equívocos Comuns e Armadilhas
- "Simpson é sempre mais precisa que o trapézio." Ela tem ordem maior em integrandos . Em as ordens empatam, num integrando suave e periódico o trapézio vence, e num degrau em com o erro de Simpson () é o dobro do erro do trapézio ().
- "Uma parábola só pode ser exata para parábolas." Simpson é exata para cúbicas, por simetria.
- "Dobrar divide o erro por 16." Só sob e na faixa assintótica. Em o fator é , e em float32 pode ficar abaixo de 1.
- "Grau maior significa mais precisão." Na função de Runge, grau 20 em nós equiespaçados tem erro .
- "A cota é o erro." É uma garantia, aqui cerca de vezes maior para o trapézio em .
- "Simpson precisa de um número par de pontos." Precisa de um número par de painéis, logo um número ímpar de pontos.
Resumo
Integrar um interpolante de grau 1 ou 2 dá as regras do trapézio e de Simpson. Para o erro do trapézio composto é , e para o de Simpson composta é , com par. Simpson ganha um grau porque o termo cúbico integra zero. Essas ordens foram medidas em como e , e caem em integrandos sem as derivadas ( para ambas em , cerca de 1 num salto). Elas também podem ser superadas, como faz o trapézio em integrandos suaves e periódicos. Subir o grau de uma única regra equiespaçada diverge na função de Runge, então grau baixo em muitos painéis é a escolha usual. O arredondamento impõe um piso que o float32 mostra com clareza. Um fixo ainda exige uma cota de derivada que raramente se tem, e esse é o problema que a próxima lição resolve.