Buscar

AULA 06

Prévia do material em texto

FERRAMENTAS MATEMÁTICAS 
APLICADAS 
AULA 6 
 
 
 
 
 
 
 
 
 
Prof. Ricardo Alexandre Deckmann Zanardini 
 
 
 
 
2 
CONVERSA INICIAL 
Nesta aula, veremos o que é regressão linear o como podemos utilizar o 
Python para obtermos uma reta de regressão e o coeficiente de correlação. Em 
seguida, veremos como é possível resolver problemas relacionados à 
interpolação. Veremos também o que são séries de Fourier e como podemos 
aproximar funções por meio dessas séries E, para encerrarmos, abordaremos 
a formulação de problemas de programação linear e a resolução desses 
problemas de otimização por meio do Python. 
TEMA 1 – REGRESSÃO LINEAR 
 Um importante tópico da disciplina se refere à regressão linear, que 
consiste em obtermos uma função linear que melhor se ajusta a um conjunto 
de pontos dados. Para que esse ajuste seja feito da melhor forma, o somatório 
dos erros quadráticos entre os pontos dados e a reta de regressão são 
minimizados. O uso da regressão linear é muito comum em problemas cujo 
objetivo é verificarmos se há crescimento ou decrescimento em um 
determinado fenômeno observado, determinarmos qual é a taxa de 
crescimento ou de decrescimento, fazermos estimativas ou previsões com 
base em um conjunto de informações e muito mais. No decorrer da aula, 
teremos diversos exemplos que ajudarão a compreendermos melhor o que é a 
regressão linear, como obtermos a reta de regressão e o coeficiente de 
correlação e onde podemos aplicar esses conhecimentos. 
 Inicialmente, vamos falar um pouco a respeito da reta de regressão. 
Iremos utilizar a equação da reta na forma y = ax + b. Utilizando o Python, 
veremos como podemos obter o coeficiente angular da reta, representado por 
“a” e o coeficiente linear representado por “b”. 
 Além da reta de regressão, um importante parâmetro que pode ser 
facilmente obtido é o coeficiente de correlação de Pearson. O coeficiente de 
correlação varia de -1 a 1 e indica qual é o nível de correlação entre os dados e 
também informa se essa correlação é positiva ou negativa, ou seja, se a reta 
de regressão é crescente ou decrescente. Quando o coeficiente está próximo 
de 1, temos uma correlação forte entre os dados, e a reta é crescente. Quando 
o coeficiente está próximo de -1, a correlação é forte e a reta é decrescente. 
Quanto mais próximo de 0 estiver o valor do coeficiente de correlação, mais 
 
 
3 
fraca é essa correlação. Caso o coeficiente de correlação seja igual a zero, não 
há correlação entre os dados. 
 Para trabalharmos com regressão linear, precisamos de pares 
ordenados da forma (x, y) em que, para cada valor de x, temos um valor de y 
correspondente. 
 A representação gráfica desses pares ordenados é chamada de 
diagrama de dispersão. A variável “x” é conhecida como variável independente 
e está associada ao eixo horizontal. A variável “y” está associada à variável “x” 
e por isso é chamada de variável dependente, ou seja, “y” é uma consequência 
de “x”. 
 Para trabalharmos com regressão linear no Python, vamos utilizar a 
biblioteca “SciPy”. A regressão linear é obtida pela função “linregress()”, que 
fornece os valores de “a” e de “b” da reta, o coeficiente de correlação e também 
o valor “p” do teste de hipótese e o erro estimado. 
 Quando tratamos de regressão linear, além da reta de regressão e do 
coeficiente de correlação, também podemos construir o diagrama de dispersão, 
que consiste na representação do conjunto de pontos da forma (x, y) 
associados às variáveis x e y. 
 Para compreendermos bem esses conceitos e como podemos utilizar o 
Python, vamos acompanhar a resolução de um exemplo. 
Exemplo 1: 
 Os valores das faturas de energia elétrica de uma residência, nos 4 
primeiros meses do ano, são apresentados na tabela abaixo: 
Tabela 1 – Valores das faturas de energia elétrica de uma residência 
Mês (x) Janeiro Fevereiro Março Abril 
Valor (y) R$ 189,93 R$ 172,10 R$ 182,30 R$ 179,56 
Fonte: Elaborado pelo autor. 
Obtenha a reta de regressão, o coeficiente de correlação, faça o 
diagrama de dispersão e verifique se nesse período ocorreu um aumento ou 
redução do consumo. 
Resolução: 
 
 
4 
 
Figura 1 – Diagrama de dispersão 
 
Fonte: Elaborado pelo professor. 
 A reta de regressão corresponde a 0,91x+176,2. Como o coeficiente de 
x é positivo, a função é crescente. Logo, o consumo está aumentando com o 
passar do tempo. 
Exemplo 2: 
Encontre a reta que melhor se ajusta ao seguinte conjunto de pontos 
dados e o respectivo coeficiente de correlação. 
 
 
 
 
5 
Tabela 2 – Relação entre quantidade produzida e custo de produção em R$ 
Quantidade 
produzida (x) 
80 90 100 110 120 130 
Custo de 
produção em 
R$ (y) 
1000 1050 1080 1110 1200 1250 
Fonte: Elaborado pelo autor. 
Em seguida, faça uma previsão para o custo referente à produção de 
140 unidades. 
Resolução: 
 
Figura 2 –Previsão para o custo referente à produção de 140 unidades 
 
Fonte: Elaborado pelo autor. 
 A reta de regressão é y=4,94x+596, o coeficiente de correlação é igual a 
0,98 e a previsão de custo para a produção de 140 unidades é R$ 1.288,00. 
Exemplo 3: 
Uma barraca de cachorro-quente tem as seguintes demandas de 
segunda a sexta-feira: 
 
 
 
6 
Tabela 3 – Demandas de uma barraca de cachorro-quente 
Dia 1 2 3 4 5 
Demanda 180 192 206 220 254 
Fonte: Elaborado pelo autor. 
a. Qual é a reta que melhor se ajusta aos pontos? 
b. Qual é a demanda prevista para o sábado? 
Resolução: 
 
Figura 3 – Demandas de uma barraca de cachorro-quente 
 
Fonte: Elaborado pelo autor. 
 Além da regressão linear, um importante tema relacionado a um 
conjunto de dados é a interpolação. 
TEMA 2 – INTERPOLAÇÃO 
 Sabemos que a regressão linear consiste em obter uma reta que melhor 
se aproxime de um conjunto de pontos dados. No caso da interpolação, o 
objetivo é a obtenção de uma função que passa por um conjunto de pontos 
dados. Há vários métodos destinados à interpolação. Em particular, 
utilizaremos as funções “interp1d()” e “lagrange()” da biblioteca “ScyPy”. É 
 
 
7 
importante ressaltar que há também outras formas de interpolação disponíveis 
nessa biblioteca. 
 Veremos diversos exemplos relacionados à interpolação. 
Exemplo 1: 
 Considere os pontos a seguir 
x 1 2 3 4 5 
y 1 4 9 16 25 
e a respectiva imagem associada 
Figura 4 – Imagem associada a uma correlação de pontos 
 
Fonte: Elaborado pelo autor. 
Por meio do Python, faça a respectiva interpolação. 
Resolução: 
 
 
 
 
 
 
 
8 
Figura 5 – Exemplo de interpolação realizada pelo Python (1) 
 
Fonte: Elaborado pelo autor. 
Exemplo 2: 
 Obtenha o polinômio que interpola os pontos 
x 1 2 3 4 5 
y 1 4 9 16 25 
Resolução: 
 
 
 
 
 
 
 
 
9 
Figura 6 – Exemplo de interpolação realizada pelo Python (2) 
 
Fonte: Elaborado pelo autor. 
 Note que a função original corresponde a y=x2 e a função interpoladora 
corresponde a y=x2-3,553X10-15. Como -3,553X10-15 é muito próximo de zero, 
podemos desprezar essa parcela e a função interpoladora corresponde então a 
y=x2. 
Exemplo 3: 
A tabela a seguir apresenta uma sequência de pontos associados a um 
experimento físico que está medindo a variação da temperatura em um 
ambiente de trabalho durante um dia de verão. O tempo está medido em horas 
e a temperatura em graus Celsius. 
Tabela 4 – Variação da temperatura em um ambiente de trabalho (1) 
Tempo 8 11 13 15 18 
Temperatura 20 25 32 30 27 
Fonte: Elaborado pelo autor. 
Qual é a função que interpola esses pontos? 
Resolução: 
 
 
 
 
 
10 
Figura 7 – Variação da temperatura em um ambiente de trabalho 
 
Fonte: Elaborado pelo autor. 
 A função que interpola os pontos é f(x)=0,03738x4-1,97x3+37,65x2-
307,3x+924,2. 
Exemplo 4: 
A tabela a seguir apresenta uma sequência de pontos associados a um 
experimento físico que está medindo a variação da temperatura em um 
ambiente de trabalho durante um dia de verão. O tempoestá medido em horas 
e a temperatura em graus Celsius. 
Tabela 5 – Variação da temperatura em um ambiente de trabalho (2) 
Tempo 8 11 13 15 18 
Temperatura 20 25 32 30 27 
 
Represente os dados originais e a função que interpola esses pontos em 
um mesmo sistema de eixos coordenados. 
Resolução: 
 
 
 
11 
Figura 8 – Variação da temperatura em um ambiente de trabalho (2) 
 
Fonte: Elaborado pelo autor. 
 O uso da interpolação é muito útil quando precisamos modelar 
problemas reais. No entanto, em diversas aplicações reais onde há uma 
repetição de padrões, ou seja, quando trabalhamos com funções periódicas, o 
uso das séries de Fourier é bastante adequado. Veremos a seguir um pouco do 
que se refere às séries de Fourier. 
TEMA 3 – SÉRIES DE FOURIER 
Quando falamos de séries de Fourier, temos uma série trigonométrica 
utilizada para a representação de funções periódicas. As séries de Fourier são 
muito úteis quando precisamos aproximar funções por meio de somatórios de 
seno e cosseno. A biblioteca “SymPy” tem rotinas que geram séries de Fourier 
com base em determinadas funções. O uso de séries de Fourier é muito útil no 
processamento digital de sinais e de imagens, pois as combinações de seno e 
cosseno se ajustam aos mais diversos tipos de funções periódicas. 
 
 
12 
Para exemplificarmos, iremos considerar a função y=x2, uma função 
bastante conhecida, no intervalo [-π, π] e iremos obter, por meio da função 
“fourier_series()”, séries de Fourier com diferentes números de termos. Quanto 
maior o número de termos, melhor a aproximação obtida. Faremos também os 
respectivos gráficos para facilitar a compreensão. 
Vamos considerar, inicialmente, uma aproximação com 2 termos da 
série. A quantidade de termos é definida pela função “truncate()”. 
 
O respectivo gráfico é obtido com base na seguinte sequência de 
comandos 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13 
Figura 9 – Exemplo de série de Fourier com dois termos 
 
Fonte: Elaborado pelo autor. 
 Para uma série com 3 termos, temos 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14 
Figura 10 – Exemplo de série de Fourier com três termos 
 
Fonte: Elaborado pelo autor. 
Com 4 termos, a aproximação obtida é a seguinte: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15 
Figura 11 – Exemplo de série de Fourier com quatro termos 
 
Fonte: Elaborado pelo autor. 
 É fácil percebermos que as aproximações melhoram com o aumento de 
termos da série. A seguir, temos as 3 aproximações e a função original em um 
mesmo gráfico. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16 
Figura 12 – Utilização das séries de Fourier com 3 aproximações e a função 
original em um mesmo gráfico 
 
Fonte: Elaborado pelo autor. 
Exemplo 1: 
 Obtenha os 4 primeiros termos da série de Fourier que aproxima a 
função y=2x2+1 no intervalo [0, 1]. 
Resolução: 
 
 
 
 
 
 
 
 
17 
Figura 13 – 4 primeiros termos da série de Fourier que aproxima a função 
y=2x2+1 no intervalo [0, 1] 
 
Fonte: Elaborado pelo autor. 
TEMA 4 – FORMULAÇÃO DE PROBLEMAS DE PROGRAMAÇÃO LINEAR 
 Uma importante área do conhecimento é a otimização, e a pesquisa 
operacional é uma ampla área da matemática com aplicações na engenharia 
que tem como principal objetivo utilizar métodos para a resolução de problemas 
de otimização. A origem da pesquisa operacional está diretamente relacionada 
à programação linear e ao método simplex proposto por George B. Dantzig na 
década de 40, na época da Segunda Guerra Mundial. Utilizamos a pesquisa 
operacional quando temos várias possibilidades e pretendemos escolher a 
melhor delas. 
 A programação linear (PL), um caso particular da pesquisa operacional, 
está baseada na otimização associada a sistemas de equações e inequações 
lineares. A essência de um problema de programação linear é otimizarmos 
problemas em que temos uma função objetivo linear e restrições formadas por 
equações ou inequações também lineares. 
 É uma aplicação matemática que preza pelo melhor aproveitamento 
possível de uma situação que pode ser formulada como um problema de PL, 
ou seja, uma situação em que temos variáveis relacionadas por uma função 
objetivo a ser minimizada ou maximizada sujeita a restrições. 
 Podemos maximizar receita, lucro, demanda, satisfação ou minimizar 
custo, desperdício, dentre outros critérios possíveis. 
 Para que possamos resolver problemas de PL, o primeiro passo é 
pensarmos na formulação do problema. Para que possamos formular 
 
 
18 
corretamente um problema de PL, precisamos basicamente identificar as 
variáveis do problema, a função objetivo e as restrições. 
 As variáveis são as quantias que desejamos identificar e que podem 
maximizar ou minimizar a função objetivo. A função objetivo é uma expressão 
matemática que representa a meta do problema e as restrições são as 
limitações ou condições do problema. 
 A forma geral da função objetivo é 
max z = c1x1 + c2x2 + ... + cnxn 
ou 
min z = c1x1 + c2x2 + ... + cnxn 
onde c1, c2, ..., cn são os coeficientes da função objetivo e x1, x2, ..., xn são as 
variáveis do problema. O termo “max” é utilizado quando o problema é de 
maximização, e o termo “min” quando o problema é de minimização. 
 Em relação às restrições, podemos ter sinais de igualdade (=) ou de 
desigualdade (≤ ou ≥). A forma geral das restrições é 
a11x1 + a12x2 + ... + a1nxn = b1 
a11x1 + a12x2 + ... + a1nxn ≤ b1 
a11x1 + a12x2 + ... + a1nxn ≥ b1 
 Com base nas variáveis, da função objetivo e das restrições, podemos 
construir a formulação de um problema de programação linear. 
max z = c1x1 + c2x2 + ... + cnxn 
a11x1 + a12x2 + ... + a1nxn = b1 
a11x1 + a12x2 + ... + a1nxn ≤ b1 
. 
. 
. 
a11x1 + a12x2 + ... + a1nxn ≥ b1 
em que aij, bi e cj são os coeficientes das equações ou inequações, da função 
objetivo e os termos independentes. 
 
 
19 
 Para que possamos entender de fato o que é um problema de 
programação linear, sua importância em situações reais e como é possível 
formular um desses problemas, vamos acompanhar a resolução detalhada de 
um exemplo. 
Exemplo 1: 
Uma indústria de equipamentos de mergulho produz dois tipos de 
nadadeiras de borracha. Uma mais curta para uso em piscinas e outra mais 
longa para uso em águas abertas. As nadadeiras curtas utilizam 400 gramas 
de borracha por par e as nadadeiras longas 700 gramas de borracha para cada 
par. A indústria tem uma disponibilidade de 1 tonelada de borracha por mês. O 
lucro associado a cada par de nadadeiras curtas é de R$ 50,00 e o lucro para 
cada par de nadadeiras longas é de R$ 65,00. Devido a contratos com lojas de 
artigos esportivos, a produção mensal mínima de nadadeiras curtas é de 200 
pares e a produção mínima de nadadeiras longas é de 100 pares. Sabendo 
que o objetivo da indústria é determinar a produção mensal de cada modelo de 
nadadeira de modo a maximizar o lucro mensal, formule o problema como um 
problema de programação linear. 
Resolução: 
 O primeiro passo é identificarmos as variáveis do problema. Após a 
leitura do enunciado, é possível perceber que a indústria deseja maximizar o 
lucro e, para isso, pretende decidir quantas nadadeiras de cada modelo deverá 
produzir. Como essas quantias ainda não estão definidas, mas a indústria 
precisa dessas informações para programar sua produção, as variáveis são: 
x1 = quantidade de pares de nadadeiras curtas a serem produzidas 
x2 = quantidade de pares de nadadeiras longas a serem produzidas 
 Já sabemos quais são as variáveis. Agora precisamos obter a função 
objetivo. Sabemos que o problema é de maximização. Sabemos também que o 
objetivo é maximizar o lucro. Como o lucro referente a cada par de nadadeira 
curta é igual a R$ 50,00, e o lucro referente a cada par de nadadeira longa é 
igual a R$ 65,00, para termos o lucro total, precisamos multiplicar o 50,00 pela 
quantidade de pares de nadadeiras curtas a serem produzidas, ou seja, 50 
vezesx1 e somarmos com a multiplicação de 65 pela quantidade de pares de 
nadadeiras longas a serem produzidas, ou seja, 65 vezes x2. Denominando o 
lucro de L, a função objetivo é 
max L = 50x1 + 65x2 
 
 
20 
 Precisamos também das restrições que são as condições ou limitações 
do problema. A primeira restrição é a quantidade de matéria-prima. Observe 
que cada par de nadadeiras curtas requer 400 g de borracha e que cada par de 
nadadeiras longas requer 700 g de borracha e que o total de borracha 
disponível corresponde a 1 tonelada. Transformando gramas em quilos e 
tonelada em quilos, temos a restrição 
0,4x1 + 0,7x2 ≤ 1000 
O termo “≤” é utilizado, pois a indústria tem no máximo 1000 kg de 
borracha à disposição. 
 As outras duas restrições do problema se referem às quantidades 
mínimas de cada tipo de nadadeira a serem produzidas. Como a indústria 
precisa produzir no mínimo 200 pares de nadadeiras curtas, a restrição 
correspondente é 
x1 ≥ 200 
e como a quantidade mínima de pares de nadadeiras longas a serem 
produzidos é de 100 unidades, a outra restrição é 
x2 ≥ 100 
 Logo, a formulação do problema é 
max L = 50x1 + 65x2 
0,4x1 + 0,7x2 ≤ 1000 
x1 ≥ 200 
x2 ≥ 100 
 Veremos a seguir como é possível utilizarmos o Python para 
resolvermos o problema e sabermos quantas blusas e quantas camisetas 
precisam ser produzidas para que o lucro seja o maior possível. 
TEMA 5 – RESOLUÇÃO DE PROBLEMAS DE PROGRAMAÇÃO LINEAR 
 Um problema de programação linear pode ser resolvido pelo método 
simples, que consiste em realizarmos operações de soma, subtração, 
multiplicação e divisão na função objetivo e nas restrições seguindo alguns 
critérios. A resolução manual pode ser feita, mas é trabalhosa e quanto maior o 
 
 
21 
número de variáveis e de restrições, maior é o tempo e o esforço para 
obtermos a solução. Por isso, existem alguns softwares destinados à resolução 
de problemas desse tipo. 
 Também temos a possibilidade de utilizarmos a biblioteca “PuLP” do 
Python destinada à resolução de problemas de otimização. Veremos como é 
possível resolver problemas de PL por meio do Python. Para começarmos, 
vamos considerar o exemplo visto anteriormente. 
Exemplo 1: 
Uma indústria de equipamentos de mergulho produz dois tipos de 
nadadeiras de borracha. Uma mais curta para uso em piscinas e outra mais 
longa para uso em águas abertas. As nadadeiras curtas utilizam 400 gramas 
de borracha por par e as nadadeiras longas 700 gramas de borracha para cada 
par. A indústria tem uma disponibilidade de 1 tonelada de borracha por mês. O 
lucro associado a cada par de nadadeiras curtas é de R$ 50,00 e o lucro para 
cada par de nadadeiras longas é de R$ 65,00. Devido a contratos com lojas de 
artigos esportivos, a produção mensal mínima de nadadeiras curtas é de 200 
pares e a produção mínima de nadadeiras longas é de 100 pares. Sabendo 
que o objetivo da indústria é determinar a produção mensal de cada modelo de 
nadadeira de modo a maximizar o lucro mensal, resolva o problema como um 
problema de programação linear. 
Resolução: 
Sabemos que a formulação do problema é: 
max L = 50x1 + 65x2 
0,4x1 + 0,7x2 ≤ 1000 
x1 ≥ 200 
x2 ≥ 100 
 Com base nessa formulação, podemos resolver esse problema 
utilizando a biblioteca “PuLP”. O primeiro passo é instalar o pacote “pulp” 
executando os seguintes comandos: 
 
 
 
 
22 
Figura 14 – Instalação do pacote “pulp” 
 
Fonte: Elaborado pelo autor. 
 Agora podemos resolver o problema. Para isso, os comando são 
 
#Variáveis: 
 
#Função Objetivo: 
 
#Restrições: 
 
 
#Apresentação da solução do problema 
 
 
 
 
 
 
 
23 
Figura 15 – Resolução de um problema utilizando-se da biblioteca “PuLP” 
 
Fonte: Elaborado pelo autor. 
 A empresa terá um lucro máximo de R$ 122.750,00 se produzir 2325 
pares de nadadeiras curtas e 100 pares de nadadeiras longas. 
 Seguindo esses comandos, é possível resolvermos problemas de 
programação linear facilmente. 
FINALIZANDO 
 Chegamos ao final desta aula, em que aprendemos a resolver 
problemas de regressão linear e de interpolação utilizando o Python. Também 
vimos o que são séries de Fourier e que é possível utilizarmos o Python para 
obtermos os termos de uma série. Aprendemos a formular um problema de 
programação linear e a resolver problemas de programação linear de um modo 
simples utilizando o Python. 
 
 
 
 
24 
REFERÊNCIAS 
CASTANHEIRA, N. P. Matemática aplicada. 3. ed. Curitiba: Ibpex, 2010. 
DEMANA, F. D. et al. Pré-cálculo. 2. ed. São Paulo: Pearson, 2013. 
FLEMING, D. M.; GONÇALVES, M. B. Cálculo A: função de uma variável. 2. 
ed. São Paulo: Pearson, 2007. 
PERKOVIC, L. Introdução à computação usando Python: um foco no 
desenvolvimento de aplicações. Rio de Janeiro: LTC. 
 
	Conversa inicial
	FINALIZANDO
	REFERÊNCIAS

Continue navegando