Você está na página 1de 5

RELATÓRIO - LAB 07

August 13, 2021

1 MÉTODOS NUMÉRICOS APLICADOS A ENGENHARIA


ELÉTRICA
1.1 Nome: Francisco Hanlly da Silva - Matrícula: 493675

2 Questão 1
2.1 Observações sobre a questão:
• Essa questão não pede um método específico e, dessa forma, o método usado para calcular a
integral foi o do trapézio.

2.2 Bibliotecas e Pacotes importados:


• Pacote de monitoria (desenvolvido pelo monitor Vinicius).
• matplotlib (módulo pyplot).
• módulo numpy.

2.3 IMPLEMENTANDO A SOLUÇÃO: MÉTODO DOS TRAPÉZIOS


• Este método consiste em aproximar a função f(x) em uma função do primeiro no intervalo de
integração [a, b]. Dessa forma, o gráfico de f(x) (aproximado para uma função do primeiro
grau) no intervalo [a, b] irá se transformar em uma figura conhecida, o trapézio. No entanto,
para esta questão, foi escolhido uma versão deste método que diminui o erro da integração,
que é o método dos trapézios repetidos, ou seja, o intervalo [a, b] é subdividido em n intervalos
de tamanho h = (b - a)/n, de forma que em cada subintervalo forme um trapézio e o método
consiste em calcular a área de cada trapézio e somar as áreas obtidas, obtendo, assim, uma
aproximação para a integral da função f(x) no intervalo [a, b].
• Sendo x0, x1, x2, …, xn as extremidades dos subintervalos, então a integral I vai ser calculada
por I = (h/2) * [f(x0) + 2 * (f(x1) + f(x2) + f(x3) + … + f(x_(n-1)) ) + f(xn) ]

2.4 RESOLVENDO A QUESTÃO


• Para resolver essa questão, foi criado a função metodo_trapezio(), que recebe os parâmet-
ros do intervalo [a, b], o tamanho do intervalo h e a função f, que retorna os valores de y da
função f(x) para um determinado x.
• A função cria uma lista I com os valores x0, x1, x2, …, xn do método utilizando a função
np.arange(). Posteriormente, é inicializado a variável area = 0 (que irá acumular as áreas
para cada intervalo, de forma que no final o seu valor será uma aproximação para a integral).

1
Para calcular a integral, é utilizado um laço de repetição for para iterar sobre cada valor de
x da lista I. Dentro desse laço de repetição é calculado [f(x0) + 2 * (f(x1) + f(x2) + f(x3) +
… + f(x_(n-1)) ) + f(xn) ]. No final, depois das iterações, o resultado da área é multiplicado
por (h/2), calculando, dessa forma, uma aproximação para a integral.
• Para utilizar essa função, precisa-se determinar a função f(x), fazendo a interpolação dos
pontos dado pela a tabela. x_vetor e y_vetor representam os valores de x e y da tabela,
respectivamente.
• Para a interpolação, foi subdivido os pontos em 2 conjuntos, o primeiro vai de x = 0 até x
= 6 e o outro intervalo vai de x = 6 até x = 10. Dessa forma, haverá duas interpolações
e, consequentemente, haverá duas funções. Para cada função, será calculado a integral no
intervalo em que a mesma foi definida. Ambas funções serão aproximadas por um polinômio do
segundo grau. Foi instanciada a classe interpol() da biblioteca monitoria, passando como
parâmetro para seu construtor os pontos e intervalos onde a interpolação está acontecendo.
• Para cada instância da classe interpol() foi utilizado o método MMQ(), passando como
parâmetro grau=2 (função do segundo grau). Com isso, foi determinado vários pontos para
cada função e, utilizando a função np.polyfit() foi passado esses pontos, fazendo com que
a função retornasse um iterável com os coeficientes da função. Com esses coeficientes, foi
utilizado a função np.poly1d(), passando como parâmetro esses coeficientes, fazendo com
que a função retornasse uma função de aproximação para cada conjunto de pontos, definindo,
assim, fx_1() e fx_2(), sendo a primeira função definida no intervalo [a, b] = [0, 6] e a
segunda função definida no intervalo [b, c] = [6, 10].
• Para cada função foi utilizado a função metodo_trapezio() para calcular a integral da
função fx_1() e fx_2() no seu devido intervalo. No fim, esses dois resultados foram acu-
mulados em uma única variável.
• Para explicitar como ficou a aproximação através do gráfico, foi plotado como ficou o gráfico
no intervalo [a, c] = [0, 10]. O gráfico será mostrado a seguir.

2.5 SAÍDA NO TERMINAL

2
2.6 GRÁFICOS

3 Questão 2
3.1 Bibliotecas e Pacotes importados:
• Módulo math.

3.2 IMPLEMENTANDO A SOLUÇÃO: SIMPSON 3/8


• Na regra 3/8 de simpson para o intervalo [a, b], cada subintervalo é subdividido em 3 intervalos
de mesmo tamanho h = (b - a)/3, formando, assim, quatro pontos em x0, x1, x2 e x3, podendo,
dessa forma, aproximar a função f(x) que está sendo integrada por um polinômio do terceiro
grau.
• Diante do exposto, a integral I pode ser aproximada por I = (3h/8) * [ f(x0) + 3f(x1) +
3f(x2) + f(x3) ].

3.3 RESOLVENDO A QUESTÃO


• Para implementar o método simpson 3/8, foi criado uma função simpson_3_8(), que re-
ceberá, como parâmetro, a função f(x) e o intervalo de integração [a, b]. Logo em seguida, é
calculado o tamanho de cada subintervalo do intervalo [a, b]. Para definir os valores de x0,

3
x1, x2 e x3 do método, foi criado uma lista I a partir dee uma list comprehension. Para
calcular a aproximação da integral, foi inicializado uma variável area = 0, que vai acumular
os valores calculados da fórmula da aproximação da integral. Diante disso, foi usado uma
laço de repetição para calcular [ f(x0) + 3f(x1) + 3f(x2) + f(x3) ]. Logo em seguida, para
finalizar a fórmula da aproximação, a variável de acumulação area foi multiplicada por 3h/8.
• Usando a função simpson_3_8() para calcular a integral, foi passado como argumento a
função funcao() que retorna os valores da função que está sendo integrada f(x) = ln(x + 1)
e foi passado os limites de integração a = 0 e b = 1.

3.4 GRÁFICOS
• Nenhum gráfico foi plotado para esta questão.

3.5 SAÍDA NO TERMINAL

4 Questão 3
4.1 Bibliotecas e Pacotes importados:
• Módulo math.

4.2 IMPLEMENTANDO A SOLUÇÃO: SIMPSON 3/8


• Para que está sendo integrada f(x), na quadratura gaussiana para o intervalo de integração
[a, b] na variável x, pode-se fazer a substituição de variável para t, tal que x = (1/2) * (a + b
+ t(b - a) ) e dx = ( (b - a)/2 )dt. Como consequência, o novo intervalo de integração para
a variável t será sempre o intervalo [-1, 1].
• O resultado I da integral pode ser aproximado por

4.3 RESOLVENDO A QUESTÃO


• Para implementar o método da quadratura gaussiana, foi implementado a função
quadratura_gaussiana(), que receberá, como parâmetro, a função f que está sendo in-
tegrada e os intervalo de integração a e b.
• Inicialmente, dentro da função quadratura_gaussiana(), foi armazenado os valores x1 =
-sqrt(3)/3 e x2 = sqrt(3)/3.
• Diante disso, é feita a substituição de variável t1 = (1/2)* ((b-a) * x1 + a + b ) e t2 = (1/2)*
((b-a) * x2 + a + b ). Com isso, é feito o cálculo da integral.

4.4 GRÁFICOS
• Nenhum gráfico foi plotado para esta questão

4
4.5 SAÍDA NO TERMINAL

Você também pode gostar