Você está na página 1de 23

FERRAMENTAS MATEMÁTICAS

APLICADAS
AULA 2

Prof. Ricardo Alexandre Deckmann Zanardini


CONVERSA INICIAL

Estudamos anteriormente as operações fundamentais. Podemos, então,


avançar nos estudos e abordar a utilização de bibliotecas que aumentam as
possibilidades de resolução de problemas por meio do Python. Essas bibliotecas
são ótimas, pois ampliam as capacidades do Python e facilitam muito o trabalho
dos usuários. Nesta aula vamos aprender a importar bibliotecas e trabalhar com
algumas das principais funções das bibliotecas “NumPy”, “SymPy” e “Matplotlib”.

TEMA 1 – BIBLIOTECAS DO PYTHON

O Python apresenta diversas funções desenvolvidas originalmente, mas,


graças ao trabalho de programadores do mundo todo, muitas bibliotecas são
desenvolvidas de modo a ampliar a capacidade de resolução de problemas por
meio do Python e auxiliar o trabalho de usuários e programadores.
Uma biblioteca do Python é um pacote contendo funções desenvolvidas
para a resolução de um determinado conjunto de problemas. Há muitas
bibliotecas contendo funções prontas para que possamos construir gráficos,
trabalhar com matrizes e vetores, com problemas estatísticos, análise de dados,
matemática simbólica, mineração de dados, com construção de árvores de
decisão, redes neurais e muito mais.
A vantagem do uso das bibliotecas é que não é necessário desenvolver
um programa para executar determinada tarefa quando já existe uma função
pronta. Isso não significa que todo o trabalho esteja feito. É claro que sempre há
muito a desenvolver, mas o uso das bibliotecas economiza muito tempo e amplia
as capacidades de uso dessa linguagem.
No nosso caso, o objetivo não é a programação, e sim o uso das funções
já existentes para que possamos resolver problemas relacionados à engenharia
e ao nosso cotidiano.
É importante ressaltar que, no caso do Python, o termo “função” se refere
a um comando no qual existe uma sequência de passos para a resolução de um
determinado problema; na matemática, o termo “função” se refere a uma relação
entre quantidades. Abordaremos as funções matemáticas com mais detalhes
nesta aula. Para evitarmos confusões de terminologia, podemos identificar
quando estamos abordando uma função do Python e quando se trata de uma
função matemática de acordo com o contexto.

2
Podemos importar uma biblioteca do Python ou apenas algumas funções
da biblioteca. Veremos a seguir as maneiras de como podemos fazer essas
importações.
A primeira possibilidade é importar uma biblioteca utilizando o comando
“import”.
Para importarmos a biblioteca simbólica SymPy, por exemplo, podemos
escrever
“import sympy”:

Fazendo isso, todas as funções da biblioteca SymPy foram importadas e


podem ser utilizadas.
Outra possibilidade é importar uma função específica da biblioteca
utilizando o comando “from” seguido de “import”. Por exemplo,
“from sympy import diff”

que importa a função “diff” destinada à obtenção da derivada de uma função


matemática.
Outra forma muito utilizada de importação de uma biblioteca é o uso de
um asterisco “*” que importa todas as funções da biblioteca. Esse comando é
equivalente ao “import”:
“from sympy import *”

3
Para simplificar a digitação, também é possível importar uma biblioteca e
atribuir a ela um nome mais curto. Isso facilita no momento de digitarmos os
comandos necessários para executarmos as funções dessa biblioteca.
Por exemplo, podemos fazer
“import matplotlib.pyplot as plt”

Com isso, ao executarmos uma função da biblioteca, podemos digitar “plt”


em vez de “matplotlib”. Por exemplo, para visualizarmos um gráfico, o comando
passa a ser “plt.show()” e não mais “matplotlib.show()”.

TEMA 2 – INTRODUÇÃO À MATEMÁTICA SIMBÓLICA

Em muitos problemas reais precisamos trabalhar com variáveis do tipo


“x”, “y”, “z”..., mas no Python não temos funções originais que fazem isso. Por
esse motivo, existe a biblioteca “SymPy” que acrescenta essas funcionalidades
à linguagem e que está sendo aprimorada constantemente.
Para trabalharmos com essa biblioteca, o primeiro passo é importá-la. Em
seguida, é preciso definir quais variáveis serão interpretadas como símbolos.
Faremos isso utilizando a função “symbols”. Especificaremos quais serão essas
variáveis separando cada uma delas por vírgulas. Dentro da função “symbols”,
colocaremos essas variáveis entre aspas e separadas por espaços. Para
trabalharmos com as variáveis simbólicas “x” e “y”, precisamos dos seguintes
passos:
from sympy import *
x,y = symbols("x y")

Essa importação precisa ser feita uma única vez. Nos nossos exemplos,
estaremos importando a biblioteca e definindo as variáveis em cada resolução,

4
mas isso não é obrigatório. Faremos isso, pois se alguém for resolver apenas
determinados exemplos, precisará lembrar de importar a biblioteca e definir as
variáveis.
Agora que definimos as variáveis, vamos imaginar que temos uma função
matemática que relaciona o preço total a ser pago com a quantidade de fatias de
bolo a serem compradas. Se cada fatia de bolo custa R$ 2,00, a função que
relaciona essas quantidades é dada por
y=2x
em que “y” é o total a ser pago e “x” é a quantidade de fatias de bolo adquiridas.
Em Python, após importarmos a biblioteca “SymPy” e definirmos “x” e “y”
como símbolos, podemos escrever a função matemática assim:
“y=2*x”
Se quisermos mostrar a função “y”, basta digitarmos
“print(y)”

Agora que já temos a expressão que relaciona o preço total com a


quantidade de fatias de bolo, podemos querer, por exemplo, saber qual é o preço
total referente à compra de 7 fatias de bolo. Para que possamos saber esse
valor, precisamos que o Python substitua o valor de “x” por “7” e faça o respectivo
cálculo. Mas como fazer isso? Essa substituição é feita pelo comando “subs”.
Escrevemos:
“y.subs(x,7)”
em que “y” indica a variável que receberá a substituição de “x” por “7” indicados
entre parênteses. O resultado será 14, pois o Python substituirá “x” por “7” e fará
a multiplicação necessária:

5
Vamos acompanhar mais alguns exemplos cujo objetivo é calcular valores
funcionais em problemas práticos.

Exemplo 1

Para colocar porcelanato em uma residência, a empresa cobra uma taxa


fixa de R$ 100,00 mais R$ 20,00 por metro quadrado. Utilizando o Python,
escreva a função que relaciona o preço total com a metragem e determine qual
será o total a ser pago para que sejam colocados 76 metros quadrados de
porcelanato.
Resolução:
from sympy import *
x,y=symbols("x y")
y=20*x+100
total=y.subs(x,76)
print(y)
print(total)

O custo será de R$ 1.620,00.

6
Exemplo 2

O custo de produção referente a x unidades produzidas de um


determinado bem, por hora, é dado pela função
C(x) = 0,04x³ - 4x² + 101x + 5000.
Determine o custo referente à produção de 15 unidades por hora.
Resolução:
from sympy import *
x,C=symbols("x C")
C=0.04*x**3-4*x**2+101*x+5000
C.subs(x,15)

Nessa situação, o custo para a produção de 15 unidades corresponde a


R$ 5.750,00.
Além de valores, também é possível substituirmos expressões no lugar de
variáveis. Com isso, podemos trabalhar com funções matemáticas compostas,
ou seja, podemos substituir uma variável por uma determinada função.

Exemplo 3

Em uma indústria, o custo c referente à produção diária de x unidades é


de c (x) = x2 + 2x + 300. Sabe-se que o nível de produção dessa indústria é de
x(t) = 20t unidades durante t horas de trabalho. Expresse o custo de produção
em função do tempo.
Resolução:
from sympy import *
c,x,t = symbols("c x t")
c=x**2+2*x+300
c.subs(x,20*t)

7
Observe que, nesse exemplo, as variáveis são “c”, “x” e “t”. Para
substituirmos “20t” na função “c”, utilizamos o comando
“c.subs(x,20*t)”
o que resultou na expressão “400*t**2+40*t+300” que corresponde a
“c=400t2+40t+300”.
A função é apresentada na forma de uma string. Podemos ter uma
representação melhor de expressões e de símbolos matemáticos,
acrescentando a linha “init_printing()” no código. Essa função vai utilizar a melhor
opção disponível para a apresentação dos resultados.
Nesse exemplo, o resultado obtido é

TEMA 3 – FATORAÇÃO E EXPANSÃO DE EXPRESSÕES

A fatoração de uma expressão consiste em escrever essa expressão


como o produto de duas ou mais expressões. Esse procedimento é muito útil na
simplificação de expressões matemáticas. A expressão “2x4+8x3+10x2”, por
exemplo, pode ser fatorada colocando-se “2x2” em evidência, pois é um fator
comum aos dois termos, ou seja, 2x4+8x3+10x2=2x2(x2+4x+5). Essa fatoração
pode ser feita também no Python. Basta utilizarmos o comando “factor”:
“factor(2*x**4+8*x**3+10*x**2)”

8
Podemos também utilizar o Python para fatorações mais complexas. Por
exemplo, a expressão “xy3+2x2y4” na forma fatorada, corresponde a “xy3(2xy+1)”:

x 2 − 2x + 1
e a expressão “ ” na forma fatorada é igual a “x-1”:
x −1

Além da fatoração, muitas vezes é preciso efetuar a expansão de


expressões. Mas como assim? Podemos efetuar a multiplicação ou desenvolver
produtos notáveis com o auxílio do Python. Para expandirmos expressões, o
comando a ser utilizado é “expand”.
A expressão “(x2+1)(x2+3x+6)”, por exemplo, corresponde a
“x4+3x3+7x2+3x+6”. Em Python, o procedimento para efetuarmos essa
multiplicação é:

9
Sabemos que um produto notável consiste em uma multiplicação especial
de expressões matemáticas. Alguns produtos notáveis bastante conhecidos são:
(a + b )2 = a 2 + 2ab + b 2
(a − b )2 = a 2 − 2ab + b 2
(a + b )(a − b ) = a 2 − b 2
(a + b )3 = a 3 + 3a 2 b + 3ab 2 + b 3
(a − b )3 = a 3 − 3a 2 b + 3ab 2 − b 3
A expansão de um produto notável pode ser feita em Python de maneira
muito simples. Vamos acompanhar alguns exemplos.

Exemplo 1

Sabemos que o produto notável (a+b)2 pode ser interpretado


geometricamente como a área de um quadrado de lados iguais a “a+b”.

Utilizando o Python, escreva a forma expandida de (a+b)2.


Resolução:
from sympy import *
a,b = symbols("a b")
expand((a+b)**2)
10
A forma expandida de (a+b)2 é igual a a2+2ab+b2.

Exemplo 2

Utilizando o Python, expanda a expressão (a+b)5.


Resolução:
from sympy import *
a,b=symbols("a b")
init_printing()
expand((a+b)**5)

A forma expandida de (a+b)5 corresponde a


a5+5a4b+10a3b2+10a2b3+5ab4+b5.

TEMA 4 – RAÍZES E EQUAÇÕES

Uma equação, é uma expressão matemática em que aparecem


constantes, variáveis e uma igualdade. Em situações reais, as equações estão
presentes em diversos problemas importantes. Um desses problemas é a
obtenção do ponto de equilíbrio. O ponto de equilíbrio consiste na igualdade de
duas ou mais funções matemáticas. Se estivermos pensando em custos e
receita, o ponto de equilíbrio está associado à igualdade entre o que se ganha e
o que se gasta.
Abaixo do ponto de equilíbrio, há prejuízo e acima, temos lucro. Vamos
resolver um exemplo para entender melhor o que é um ponto de equilíbrio e
11
como podemos resolver problemas assim utilizando o Python. Ainda nesta aula
veremos como fazer gráficos e isso vai ajudar ainda mais na compreensão do
conceito de ponto de equilíbrio.
Em Python, o comando “solve()” é utilizado para resolver uma equação e
o comando “Eq()” indica quais são as equações a serem consideradas.
Se temos duas equações, a equação “e1” e a equação “e2”, por exemplo,
ambas em relação à variável “x”, precisamos escrever
“solve(Eq(e1,e2),x)”
para obtermos a solução do problema.
No exemplo a seguir entenderemos como é possível resolver uma
equação no Python.

Exemplo 1

Uma indústria de canoas tem uma receita de R$ 3.500,00 por unidade


comercializada. Os custos fixos mensais correspondem a R$ 27.200,00 e custos
unitários totalizam R$ 1.800,00. Com base nessas informações, a partir da
função receita e da função custo, determine o ponto de equilíbrio.
Resolução:
Para resolver esse problema, o primeiro passo é definir a função custo e
também a função receita. O custo está relacionado a tudo o que a empresa
gasta. De acordo com os dados do problema, há um custo de R$ 1.800,00 por
unidade e custos fixos que totalizam R$ 27.200,00. Como a quantidade de
canoas vendidas é variável, vamos representar essa quantidade por x. O custo
variável corresponde a 1800x, ou seja, o custo unitário multiplicado pela
quantidade vendida. O custo total é a soma do custo unitário com o custo fixo.
Logo, c=1800x+27200. A receita é o quanto a empresa recebe pelas vendas.
Como a receita unitária é igual a R$ 3.500,00, a função receita é dada por
r=3500x. Isso ocorre pois é preciso multiplicar a receita unitária pela quantidade
comercializada para que tenhamos a receita total.
from sympy import *
x,r,c=symbols("x r c")
init_printing()
r=3500*x
c=1800*x+27200
solve(Eq(r,c),x)

12
Resolvemos a equação “r=c”, ou seja, “3500x=1800x+27200” e o valor de
x corresponde a 16. Observe que o resultado está entre colchetes “[ ]”. Isso
significa que a resposta está na forma de um vetor.
Se quisermos obter o valor do custo ou da receita quando “x” for igual a
16, precisamos substituir o valor de “x” em uma das duas expressões, ou em
“r=3500x” ou em “c=1800x+27200”. Como o resultado está armazenado em um
vetor que foi chamado de “p”, o valor de “x” está armazenado na primeira posição
desse vetor. O Python atribui o índice “0” à primeira posição, “1” à segunda
posição e assim por diante. Logo, o valor de “x” corresponde a “p[0]”, ou seja, ao
valor que está na primeira posição de “p”.
A sequência de todos os passos para calcularmos o valor de “x” e
substituirmos esse valor na função matemática “r” corresponde a:
from sympy import *
x,r,c=symbols("x r c")
init_printing()
r=3500*x
c=1800*x+27200
p=solve(Eq(r,c),x)
print(p)
r.subs(x,p[0])

13
Fazendo isso, além de sabermos a quantidade a ser vendida para termos
o ponto de equilíbrio, sabemos também qual é a respectiva receita,
R$ 56.000,00. Se substituirmos “x=16” na função custo, o valor da função será o
mesmo que o obtido substituindo “x” na função receita:
from sympy import *
x,r,c = symbols('x r c')
r=186*x
c=109*x+11200.0
p=solve(Eq(r,c),x)
print(p)
c.subs(x,p[0])

Dessa maneira, o ponto de equilíbrio é o par ordenado (16, 56000).

14
Exemplo 2

A receita de uma empresa é dada por r(x)=419x e os custos por


c(x)=271x+15000 em que x é a quantidade comercializada de um determinado
produto. Determine o respectivo ponto de equilíbrio.
Resolução:
from sympy import *
x,r,c = symbols('x r c')
r=419*x
c=271*x+15000.0
p=solve(Eq(r,c),x)
print(p)
r.subs(x,p[0])

O ponto de equilíbrio é o par ordenado (101,35; 42466,22).

Exemplo 3

Uma determinada agência locadora de automóveis (Locadora A) cobra R$


59,90 por dia mais R$ 2,99 por quilômetro rodado. A locadora concorrente
(Locadora B) cobra R$ 98,00 por dia mais R$ 2,16 por quilômetro rodado. Um
cliente deseja locar um carro com o menor custo possível. Determine qual das
duas locadoras deve ser escolhida em decorrência da quilometragem a ser
percorrida por esse cliente.
Resolução:
A expressão relacionada à Locadora A corresponde a “f=2,99x+59,90” e
a expressão relacionada à Locadora B corresponde a “g=2,16x+98,00”. Para
obtermos o ponto de equilíbrio, basta fazermos:
from sympy import *

15
f, g, x = symbols('f g x')
f=2.99*x+59.90
g=2.16*x+98.00
p=solve(Eq(f,g),x)
print(p)
f.subs(x,p[0])

O ponto de equilíbrio é corresponde a (45,90; 197,15). Como a locadora


A tem o menor custo fixo, de 0 a 45,9 km a melhor opção é a Locadora A e para
distâncias acima de 45,9 km, a Locadora B é melhor.
Quando o objetivo é determinar as raízes de uma função, há várias
maneiras de resolver o problema por meio do Python. Se tivermos uma função
polinomial, uma alternativa bastante interessante é utilizar o comando “roots” da
biblioteca “NumPy”. É preciso escrever em um array os coeficientes da função e
depois utilizar “roots”.

Exemplo 4

Encontre as raízes da função y=-3x3+4x2-11x+1.


Resolução:
import numpy as np
coeficientes=[-3, 4, -11, 1]
np.roots(coeficientes)

16
As raízes são “0,62 + 1,78j”, “0,62 - 1,78j” e “0,094”.

Exemplo 5

Quais são as raízes da função y=-x3-5x2+9x+11?


Resolução:
import numpy as np
coeff = [-1, -5, 9, 11]
np.roots(coeff)

As raízes são “-6,17”, “2,04” e “-0,87”.

Exemplo 6

Uma indústria de carne congelada realizou um estudo e chegou à


conclusão de que o lucro mensal p(x) é dado em função do preço x do quilo da
carne congelada e essa relação é descrita pelo polinômio p(x)=-120x2+4800x.
Determine para quais valores de x o lucro mensal é nulo.
Resolução:
import numpy as np
coeff = [-120, 4800, 0]
np.roots(coeff)

17
Como as raízes são “40” e “0”, o lucro mensal é nulo quando o preço for
R$ 0,00 ou R$ 40,00.

TEMA 5 – GRÁFICOS

Quando trabalhamos com funções, a representação gráfica é muito útil.


Em Python há diversas bibliotecas e muitas opções de gráficos, tanto
bidimensionais quanto tridimensionais. Nesse momento abordaremos uma
forma simples e efetiva de construirmos gráficos usando o Python e futuramente
nos aprofundaremos nesse assunto.
Vamos utilizar a biblioteca “matplotlib” e para compreendermos melhor
como construir um gráfico, vamos considerar a função “y=x2”.
O primeiro passo é importarmos a biblioteca:
“import matplotlib.pyplot as plt”
Em seguida, precisamos de alguns valores para a variável independente
“x” e os respectivos valores para a variável independente “y”. Quando x=-5, y=25,
quando x=-4, y=16 e dessa maneira temos um vetor armazenando os valores de
“x” e um vetor armazenando os respectivos valores de “y”:
“x=[-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5]”
“y=[25, 16, 9, 4, 1, 0, 1, 4, 9, 16, 25]”
Para que seja construído o gráfico, a função é
“plt.plot(x, y)”
e para mostrar o gráfico é preciso fazer “plt.show()”.
Logo, a sequência completa de comandos é:
import matplotlib.pyplot as plt
x=[-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5]
y=[25, 16, 9, 4, 1, 0, 1, 4, 9, 16, 25]
plt.plot(x, y)
plt.show()

18
Ao executar o código pela primeira vez, o gráfico ainda não aparece.
Precisamos, então, executar novamente o código e o resultado é:

Temos o gráfico da função “y=x2”, mas como utilizamos poucos pontos, o


resultado ficou segmentado. Precisamos utilizar mais pontos para que a
representação fique mais fiel à representação desejada. Podemos digitar um a
um ou então utilizarmos a função “linspace” da biblioteca “numpy”. Por meio do
linspace, podemos gerar automaticamente uma quantidade desejada de valores
em um dado intervalo. Para termos um vetor “x” com 100 valores distribuídos no
intervalo que vai de -5 a 5 basta fazermos
“x=np.linspace(-5,5,100)”
Os respectivos valores de y são gerados fazendo “y=x**2”.
Os comandos são:
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-5,5,100)

19
y=x**2
plt.plot(x, y)
plt.show()

O resultado é um gráfico muito melhor do que o obtido anteriormente. Para


fixar melhor os passos para gerarmos gráficos, vamos acompanhar alguns
exemplos.

Exemplo 1

Uma indústria de canoas tem uma receita de R$ 3.500,00 por unidade


comercializada. Os custos fixos mensais correspondem a R$ 27.200,00 e custos
unitários totalizam R$ 1.800,00. Faça o gráfico da função receita e da função
custo em um mesmo sistema de eixos coordenados.
Resolução:
import matplotlib.pyplot as plt #Importa a biblioteca gráfica
import numpy as np #Importa a biblioteca necessária para o comando linspace
x=np.linspace(0,30,100) #Gera o vetor x com 100 valores de 0 a 30
r=3500*x #Gera o vetor com os valores de r da função receita
c=1800*x+27200 #Gera o vetor com os valores de c da função custo
plt.plot(x, r) #Plota a função receita
plt.plot(x, c) #Plota a função custo
plt.show() #Mostra o gráfico

20
Exemplo 2

A receita de uma empresa é dada por R(x)=419x e os custos por


C(x)=271x+15000 em que x é a quantidade comercializada de um determinado
produto. Faça, em um mesmo sistema de eixos, o gráfico de cada uma das
funções.
Resolução:
import matplotlib.pyplot as plt
import numpy as np
x1=np.linspace(0,200,100)
y1=419*x1
y2=271*x1+15000
plt.plot(x1, y1)
plt.plot(x1, y2)
plt.show()

21
FINALIZANDO

Estamos chegando ao final da nossa aula. Aprendemos a importar


bibliotecas e a desenvolver os primeiros passos necessários para a resolução
de problemas relacionados à matemática simbólica. Vimos como substituir
valores em funções matemáticas, fatorar ou expandir expressões. Aprendemos
também a resolver equações e fazer gráficos de funções. Posteriormente,
continuaremos com a matemática simbólica tratando de derivadas, integrais,
máximos e mínimos de funções e mais.

22
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, 2016.

23

Você também pode gostar