Determine o sistema não linear que determina os pesos ci e os nós xi da quadratura de Gauss-Legendre para o caso de três pontos ( n= 2) usando o fato que aproximação da integral deve ser exata para as funções f(x)=1, f(x)=x, f(x)=x^2, f(x)=x^3, f(x)=x^4 e f(x)= x^5. Resolva este sistema em Python usando o algoritmo implementado para sistemas não lineares.

Passo 1

Olá! Vamos resolver juntos um exercício sobre Quadratura de Gauss-Legendre com três pontos. O objetivo é encontrar os pesos $ c_i $ e os nós $ x_i $ que fazem a aproximação da integral exata para as funções $ f(x) = 1, x, x^2, x^3, x^4 $ e $ x^5 $. Para isso, precisaremos montar um sistema não linear e resolvê-lo usando Python.

Passo 2

Primeiro, vamos entender o que é a Quadratura de Gauss-Legendre. Ela é uma técnica de integração numérica que aproxima integrais definidas, especialmente úteis quando não podemos calcular a integral de forma exata. A ideia é escolher pontos (nós) $ x_i $ e pesos $ c_i $ de forma que a aproximação seja exata para polinômios de grau até $ 2n+1 $, onde $ n $ é o número de pontos.
No nosso caso, com três pontos ($ n = 2 xi ôé 2*2+1 = 5 $), que é exatamente o que o exercício pede.

Passo 3

A fórmula da quadratura de Gauss-Legendre para três pontos é dada por:
integral-1^1 f(x) dx approx c1 f(x1) + c2 f(x2) + c3 f(x3)
Queremos que essa aproximação seja exata para $ f(x) = 1, x, x^2, x^3, x^4, x^5 $. Isso significa que, ao substituir essas funções na expressão acima, as igualdades devem ser verdadeiras.

Passo 4

Vamos montar as equações. Para cada função $ f(x) $, teremos uma equação igualando a integral exata com a aproximação quadrature.
Primeiro, calculamos as integrais exatas:
f(x) éíé
Agora, para cada $ f(x) = x^k $, temos:
integral-1^1 x^k dx = 0 & se k é ímpar, 2k+1 & se k é par
Como temos seis funções, teremos seis equações.

Passo 5

No entanto, sabemos que a quadratura de Gauss-Legendre é simétrica, ou seja, os nós $ x_i $ são simétricos em relação à origem, e os pesos $ c_i $ são iguais para nós opostos. Portanto, podemos simplificar assumindo $ x_1 = -x_3 $ e $ c_1 = c_3 $. Além disso, $ x_2 = 0 $ por simetria.
Assim, nossos nós são $ x_1 = -a $, $ x_2 = 0 $, $ x_3 = a $, e os pesos $ c_1 = c_3 = b $, $ c_2 = c $.

Passo 6

Substituindo essas simetrias nas equações, reduzimos o sistema. Agora, temos três incógnitas: $ a $, $ b $ e $ c $. As equações ficam:
  1. Para $ k = 0 $:
a
  1. Para $ k = 2 $:
b
  1. Para $ k = 4 $:
c

Passo 7

Agora, temos um sistema de três equações:
2b + c = 2 b a^2 = 13 b a^4 = 15
Podemos resolver esse sistema para encontrar $ a $, $ b $ e $ c $.

Passo 8

Vamos resolver o sistema passo a passo:
  1. Da segunda equação: $ b a^2 = \frac{1}{3} $, podemos isolar $ b $:
b a^2 = 13
  1. Da terceira equação: $ b a^4 = \frac{1}{5} $, substituindo $ b $:
b
  1. Agora que temos $ a $, substituímos de volta para encontrar $ b $:
b = 13 a^2
  1. Finalmente, usando a primeira equação para encontrar $ c $:
b a^4 = 15

Passo 9

Agora temos:
a = raiz35, b = 59, c = 89
Portanto, os nós e pesos são:
x1 = -raiz35, x2 = 0, x3 = raiz35
c1 = c3 = 59, c2 = 89

Passo 10

Agora, vamos implementar isso em Python para resolver o sistema usando um algoritmo de sistemas não lineares. Utilizaremos a biblioteca scipy.optimize que possui funções para resolver esse tipo de problema.

Passo 11

Aqui está o código em Python para resolver o sistema:
import numpy as np
from scipy.optimize import fsolve

# Função que representa o sistema de equações
def sistema(variaveis):
    a, b, c = variaveis
    eq1 = 2*b + c - 2
    eq2 = b*a**2 - 1/3
    eq3 = b*a**4 - 1/5
    return [eq1, eq2, eq3]

# Chute inicial para a, b, c
chute_inicial = [0.5, 0.5, 0.5]

# Resolver o sistema
solucao = fsolve(sistema, chute_inicial)

a_sol, b_sol, c_sol = solucao

# Exibir os resultados
print(f"a = {a_sol}")
print(f"b = {b_sol}")
print(f"c = {c_sol}")

# Calculando os nós
x1 = -a_sol
x2 = 0
x3 = a_sol

print(f"x1 = {x1}")
print(f"x2 = {x2}")
print(f"x3 = {x3}")

Resposta

Após resolver o sistema, encontramos que os nós e pesos para a quadratura de Gauss-Legendre com três pontos são:
x1 = -raiz35 approx -0.7746, x2 = 0, x3 = raiz35 approx 0.7746
c1 = c3 = 59 approx 0.5556, c2 = 89 approx 0.8889
Esses valores garantem que a aproximação da integral seja exata para polinômios de grau até cinco, conforme solicitado.

Exercícios relacionados