Baixe o app para aproveitar ainda mais
Prévia do material em texto
FERRAMENTAS MATEMÁTICAS APLICADAS AULA 1 Prof. Ricardo Alexandre Deckmann Zanardini 2 CONVERSA INICIAL O Python é uma importante linguagem de programação de altíssimo nível utilizada na Internet, em jogos eletrônicos, na análise de dados, machine learning1, Data Science2, Big Data3, internet das coisas e muito mais. É uma linguagem simples e muito poderosa, que roda em uma quantidade grande de sistemas. A linguagem foi criada em 1991, no Centrum Wiskunde & Informatica, (CWI), um centro de matemática e computação localizado em Amsterdam, na Holanda. O pioneiro no desenvolvimento da linguagem foi o matemático Guido Van Rossum, e o objetivo principal era a criação de uma linguagem interpretada, mas com comandos simples de entender. Atualmente a linguagem é utilizada por muitas das mais importantes e famosas empresas do mundo tais como Google, Microsoft, Netflix, Spotify, YouTube e muitas outras. Nesta disciplina, nosso objetivo não é trabalhar com a programação, mas sim com as bibliotecas matemáticas disponíveis para essa linguagem e desenvolvidas para serem utilizadas na resolução de problemas de engenharia que incluem cálculo numérico, cálculo diferencial e integral, sistemas lineares entre outros temas relevantes. Para que você possa se familiarizar com a linguagem e com os ambientes de desenvolvimento, iremos concentrar nossos esforços na abordagem e na resolução de problemas relacionados às operações elementares, construção de gráficos, funções, derivadas, integrais, interpolação, regressão linear e problemas envolvendo matrizes. No entanto, há uma grande quantidade de bibliotecas desenvolvidas para a resolução de problemas relacionados à estatística, análise de sinais, banco de dados, aprendizado de máquina, mineração de dados e muito mais, tais como NumPy, SciPy, Panda, StatsModel, Matplotlib, Eli5 e Keras. É um grande universo a ser explorado. Iniciaremos com conceitos elementares e, a cada aula, avançaremos para temas e aplicações mais sofisticados, sempre respeitando o processo de evolução dos temas e do seu conhecimento. 1 Em tradução livre: aprendizado de máquina. 2 Em tradução livre: Ciência de Dados. 3 O termo Big Data não tem tradução direta em português, mas refere-se a sistemas que usam quantidades enormes de dados. 3 O nosso principal objetivo é ensinar a utilizar o Python na resolução de problemas reais relacionados à engenharia e ao cotidiano. Para isso, vamos utilizar um ambiente interativo chamado Jupyter Notebook, que está disponível gratuitamente no Google Colab e no Microsoft Azure Notebooks. TEMA 1 – TEXTOS Para que possamos desenvolver nossas atividades no Microsoft Azure Notebooks, o primeiro passo é acessar o endereço presente nas referências e clicar em “Sign In”. Em seguida, digitar nome de usuário e senha da sua conta Microsoft (Hotmail ou Outlook). Caso não tenha uma conta, será preciso criar uma. Após efetuar o login, podemos iniciar nossos estudos. O primeiro passo é criar um projeto. Em “My Projects”, precisamos clicar em “New Project”. 4 Nomeie o projeto, decida se será público ou não, e clique em “Create”. Após criarmos o projeto, precisamos clicar em “New” e depois em “Notebook”. Escolhemos um nome, a versão desejada do Python e, em seguida, clicamos em “New”. 5 Finalmente clicamos no arquivo recém criado e agora podemos começar a aprender a trabalhar com Python. Nesse ambiente podemos inserir textos, códigos, gráficos e desenvolver diversos projetos, desde os mais simples até os mais sofisticados. Como nosso propósito é utilizar o Python e algumas de suas bibliotecas para a resolução de problemas de engenharia, inicialmente vamos aprender a 6 escrever comentários e textos. Os comentários são precedidos de “#” e não aparecem quando o código é executado. É possível adicionar comentários nos códigos “Code”. Logo vamos falar um pouco a respeito de comentários feitos no código, mas antes vamos ver que também é possível adicionar textos e comentários por meio da opção “Markdown”, que converte o texto em HTML. Com isso é possível criar títulos em diferentes níveis, adicionar links, além de outras opções. Essa opção está localizada no mesmo menu anterior, conforme a imagem que veremos a seguir. Selecionando a opção “Markdown” e colocando um sinal “#” e um espaço antes do texto, temos um título de nível 1 com o seguinte resultado sendo apresentado após clicarmos em “Run” (comando que também pode ser executado pelo atalho Ctrl + Enter. Com dois sinais de cerquilha “#” no começo da linha, teremos um texto de nível 2 com o seguinte resultado mostrado na célula, após a execução do comando “Run”. 7 Dependendo do número de cerquilhas utilizadas, temos os seguintes níveis de títulos: # Título nível 1 ## Título nível 2 ### Título nível 3 #### Título nível 4 ##### Título nível 5 Se escrevermos uma linha de texto em uma célula do tipo “Markdown” sem o uso de cerquilhas, temos um texto com o formato padrão. Para colocarmos uma quebra de linha em um lugar específico, basta utilizar “<br />”, sem as aspas, no ponto em que a quebra será inserida. Fazendo isso, temos o seguinte resultado: Em relação ao campo “Code”, também é possível inserir comentários. Os comentários são interessantes para fazermos anotações nos códigos ou explicar o significado de variáveis e de expressões. 8 O procedimento segue a mesma ideia: na célula do tipo “Code” basta colocarmos uma cerquilha antes do texto. Observe que o uso dos comandos de “Markdown” não são aceitos em uma célula do tipo “Code”. Vimos como é possível adicionar texto e comentários. Agora vamos falar um pouco sobre código, começando com variáveis. As variáveis são nomes que damos a valores. Esses nomes são muito importantes para desenvolvermos atividades utilizando o Python. TEMA 2 – VARIÁVEIS As variáveis, nomes que damos a valores em linguagem de programação, são utilizadas para que possamos armazenar um valor numérico, um caractere ou algum outro tipo de informação. Por meio das variáveis é possível armazenar e acessar essas informações facilmente. No Python podemos armazenar strings (palavras ou sequências de caracteres denominados por “str”), números inteiros (chamados de “int”) ou números reais (chamados de “float”). A criação de uma variável é feita por meio de uma atribuição. Por exemplo, se queremos armazenar o número “2” na variável “a”, basta escrevermos na linha de código “a=2”. Para que o Python apresente na tela o valor atribuído à variável “a”, podemos utilizar o comando print, escrevendo “print(a)”. 9 As variáveis podem ser nomeadas por meio de letras, números e símbolos, de acordo com o que for mais conveniente. No entanto, não é possível utilizar palavras reservadas da linguagem. Essas palavras são: false class finally is return none continue for lambda try true def from nonlocal while and del global not with as elif if or yield assert else import pass break except in raise Ao atribuir valores às variáveis, podemos fazer uma a uma. Também é possível fazer atribuições múltiplas, ou seja, em uma mesma linha podemos separar as variáveis por vírgulas e após o sinal de atribuição “=”, colocamos os respectivos valores dessas variáveis. Observe que nesse caso a vírgula entre 2 e 5 separa esses dois valores, ou seja, a=2 e b=5. O mesmo pode ser feito em relação ao comando print. Podemos escrever um print para cada variável ou então um único comando print com as variáveis separadas por vírgulas. 10 Agora que já sabemos trabalhar com variáveis, vamos começar nossos estudos referentes às operações elementares que podem serfeitas no Python. TEMA 3 – ADIÇÃO E SUBTRAÇÃO Vamos iniciar a parte de operadores matemáticos falando a respeito da soma e da subtração. Em Python, a soma é realizada por meio do sinal de adição “+” e a subtração pelo sinal “-”. Podemos utilizar o Python como uma calculadora para resolver problemas. Para compreendermos melhor o uso do operador de adição, vamos resolver um exemplo relacionado ao custo total para a aquisição de matéria- prima. Imagine que uma indústria de copos descartáveis teve, no mês de janeiro, um custo de R$ 27.936,10 referente à aquisição de matéria-prima e R$ 1.243,90 referente ao frete. Qual foi o custo total? Para resolvermos esse problema com o Python, basta digitarmos: 27936.10+1243.90 em uma das células do ambiente. Observe que utilizamos obrigatoriamente o ponto “.” para separar as casas decimais: O custo total corresponde a R$ 29.180,00. Uma outra possibilidade é atribuirmos os valores às variáveis e em seguida somar essas variáveis. Essa abordagem é interessante principalmente quando precisamos utilizar o mesmo valor repetidas vezes. 11 Considerando “MateriaPrima” como sendo a variável que recebe o custo referente à matéria-prima e “Frete” como a variável associada ao frete, podemos escrever: MateriaPrima=27936.10 Frete=1243.90 MateriaPrima+Frete Isso significa que a variável “MateriaPrima” recebeu o valor “27936.10” e a variável “Frete” o valor “1243.90”. Em seguida, a expressão “MateriaPrima+Frete” soma os valores e apresenta o resultado 29180.00, que corresponde a R$ 29.180,00, o custo total. Podemos ainda denominar o custo total de “CustoTotal”, por exemplo, e armazenarmos o resultado da soma “MateriaPrima+Frete”. Nesse caso o resultado é armazenado, mas não é apresentado na tela. Para podermos visualizar o valor armazenado na variável “CustoTotal”, precisamos utilizar o comando “print()”. A sintaxe é “print(CustoTotal)”. 12 Vimos algumas maneiras diferentes de resolver o mesmo problema. Qual delas é a mais indicada? Depende da necessidade. Se quisermos obter apenas a soma, “27936.10+1243.90” é suficiente, mas se precisarmos trabalhar com situações que exijam mais detalhes ou mais cálculos, é interessante utilizarmos variáveis. Vamos abordar um exemplo simples relacionado ao desenho técnico, utilizando variáveis para armazenar e apresentar os resultados. Determine a dimensão mínima e a dimensão máxima do diâmetro do eixo representado na figura a seguir. Para resolvermos esse exercício precisamos fazer 84.728+0.077 para obtermos o diâmetro máximo e fazermos 84.728-0.054 para o diâmetro mínimo. Em seguida iremos utilizar o comando “print()” para escrevermos os diâmetros mínimo e máximo. Os comandos são: Diametro=84.728 a=-0.054 b=0.077 DiametroMinimo=Diametro+a DiametroMaximo=Diametro+b print('Diâmetro mínimo: ', DiametroMinimo) print('Diâmetro máximo: ', DiametroMaximo) 13 No comando “print”, o que está entre aspas é texto. Os termos “DiametroMinimo” e “DiametroMaximo” precisam estar fora das aspas e são utilizados para que sejam apresentados os respectivos valores. Podemos escrever o mesmo código e adicionarmos os comentários explicando o significado de cada passo: Diametro=84.728 #Diâmetro da peça a=-0.054 #Variação da peça b=0.077 #Variação da peça DiametroMinimo=Diametro+a #Cálculo do diâmetro mínimo DiametroMaximo=Diametro+b #Cálculo do diâmetro máximo print('Diâmetro mínimo: ', DiametroMinimo) #Apresentação do diâmetro mínimo print('Diâmetro máximo: ', DiametroMaximo) #Apresentação do diâmetro máximo Os resultados foram apresentados com 14 casas decimais cada, mas é possível controlar o número de casas decimais a serem apresentadas. Basta utilizarmos dentro das aspas “%.2f” para duas casas decimais, “%.3f” para 3 14 casas decimais e assim por diante e “%” fora das aspas. Os demais comandos são os mesmos: Diametro=84.728 a=-0.054 b=0.077 DiametroMinimo=Diametro+a DiametroMaximo=Diametro+b print('Diâmetro mínimo: %.2f ' % DiametroMinimo) print('Diâmetro máximo: %.2f ' % DiametroMaximo) Como a variável “a” recebeu a tolerância com o sinal negativo, calculamos o diâmetro mínimo somando “Diametro” e “a”, pois 84.728+(-0.054) é equivalente a 84.728-0.054. A seguir vamos abordar mais duas importantes operações, a multiplicação e a divisão. TEMA 4 – MULTIPLICAÇÃO E DIVISÃO Em Python, para multiplicarmos dois números, utilizamos o asterisco “*” e para dividirmos utilizamos a barra “/”. O procedimento para realizarmos as operações segue o mesmo princípio da adição e da subtração. Veremos alguns exemplos que nos mostram como podemos realizar multiplicação e divisão. Imagine que um trabalhador recebe R$ 2.324,00 por mês e utiliza 1/3 do salário para alimentação e transporte. Qual é o valor, em reais, utilizado para esses fins? Para calcularmos 1/3 de 2324,00, basta dividirmos 2324,00 por 3, ou seja: 15 O resultado apresentado possui 14 casas decimais. Vimos que podemos determinar o número de casas decimais a serem apresentadas utilizando “%.2f”, “%.3f” e assim por diante. Outra possibilidade é utilizarmos o comando “round()” com dois parâmetros: o primeiro é a variável a ser apresentada e o segundo parâmetro indica o número de casas decimais. AlimentacaoETransporte=2324/3 round(AlimentacaoETransporte,2) Nesse caso temos o resultado da divisão armazenado na variável denominada de “AlimentacaoETransporte”, com duas casas decimais. Vamos resolver um novo exemplo, com operações de multiplicação e divisão em um mesmo problema. Imagine que um dentista cobra 240,00 por consulta. Desse valor, 27,5% se refere ao imposto de renda. Qual é o imposto de renda pago para um total de 80 consultas mensais? O primeiro passo é escrevermos 27,5% de forma equivalente como sendo 27.5/100. Para calcularmos a porcentagem de imposto sobre cada consulta, é preciso multiplicar 240 por 27.5/100. Como queremos o imposto pago para um total de 80 consultas, precisamos ainda multiplicar por 80 consultas. Logo, a expressão que representa o total de imposto a ser pago é 240*27.5/100*80. 16 O resultado obtido corresponde a R$ 5.280,00. Agora imagine que um lojista vende suas mercadorias com 37% de acréscimo sobre o preço de custo. Por quanto deverá vender uma mercadoria cujo preço de custo foi de R$ 320,00? Nesse exemplo temos um aumento de 37% sobre o preço de custo. Como o preço de custo corresponde a 100% e o aumento é de 37%, podemos fazer 100%+37% para obtermos o preço já com o aumento. Em porcentagem, esse preço é dado por 100%+37%=137%. Como 137% corresponde a 137/100 e como precisamos multiplicar esse valor por 320,00 para obtermos o preço com aumento, a expressão a ser utilizada é: 320*137/100. O preço de venda da mercadoria deve ser de R$ 438,40. Um boleto no valor de R$ 566,00 foi pago com 6 meses de atraso, resultando em um montante de R$ 614,30. Supondo que o juro cobrado é calculado sobre o valor inicial da dívida e, consequentemente, constante a cada mês, qual foi a taxa mensal utilizada? Obs.: Na modalidade de juros simples, o cálculo da taxa de juros é feito pela fórmula i=(m-c)/(c.n), em que “i” é a taxa de juros simples, “c” é o capital, “m” é montante e “n” é o tempo. Nesse problema, podemos utilizar a fórmula i=(m-c)/(c.n). Os dados são: c=566.00 #Capital (valor presente) m=614.30 #Montante (valor futuro) n=6 #tempo, em meses taxa=(m-c)/n/c #Aplicação da fórmula para o cálculo da taxa 17 print(taxa*100) #Apresentação da taxa Como a taxa obtida por meio da fórmula está na forma decimal, temos que multiplicá-la por 100 para escrevermos a taxa na forma de porcentagem. Se quisermos a resposta com duas casas decimais, podemos utilizar o comando “round()”. c=566.00 m=614.30 n=6 taxa=(m-c)/n/c round(taxa*100,2) Também podemos escrever a resposta utilizando a função “print()”: c=566.00 m=614.30 n=6 taxa=((m-c)/n/c)*100 print('A taxa é %.2f%%' % taxa) 18 Utilizamos dois sinais de porcentagem “%%” após “%.2f” para que na apresentação da resposta possamos ter um sinal de porcentagem após o “1.42”. TEMA 5 – POTENCIAÇÃO E RADICIAÇÃO Outras duas operações importantes são a potenciação e a radiciação. Sempre que precisamos de uma sequência de multiplicações de um mesmo número utilizamos a potenciação. Em Python, a potenciação é feita utilizando dois asteriscos “**”. Se quisermos calcular “24”, por exemplo, fazemos “2**4”. Na prática, temos diversas situações em que a potenciação é útil. Imagine que uma distribuidora de bebidas tem um aumento anual constante de 4% nas vendas. Supondo que esse padrão de aumento se mantenha, qual será o volume de vendas daqui a 3 anos, sabendo que atualmente são comercializados R$ 925.000,00 em bebidas por ano? Para esse problema, é possível utilizarmos a fórmula vf=vp*(1+i)n, em que “vf” é o valor futuro, “vp” é o valor presente, “i” é a taxa de crescimento e “n” é o tempo. Os comandos a serem utilizados são: vp=925000.00 i=4/100 n=3 vf=vp*(1+i)**n round(v,2) 19 Sendo assim, o volume de vendas esperado para daqui a 3 anos é de R$ 1.040.499,20. Em relação à radiciação, podemos utilizar a relação n m n m aa e resolvermos o problema de radiciação como uma potenciação. Por exemplo, a raiz quadrada de 25 pode ser resolvida como uma potenciação, 25(1/2). Em Python, basta escrevermos “25**(1/2)”: Se quisermos, por exemplo, a raiz cúbica de um número, basta elevarmos esse número a 1/3, para a raiz quarta é preciso elevar o número a 1/4 e assim por diante. Para calcularmos, por exemplo, a raiz quinta de 122, temos que fazer “122**(1/5)”: Uma das aplicações da radiciação é o cálculo da taxa de juros na modalidade de juros compostos. A taxa é obtida utilizando-se a fórmula: 1 n c m i 20 Na fórmula, “i” é a taxa, “n” o tempo, “c” é o capital, também conhecido como valor presente e “m”, o montante, conhecido como valor futuro. Em Python, essa fórmula corresponde a (m/c)**(1/n)-1. Como a taxa é dada na forma decimal, para obtermos o resultado na forma de porcentagem, basta multiplicarmos essa expressão por 100, ou seja, ((m/c)**(1/n)-1)*100. Imagine que um boleto no valor de R$ 566,00 foi pago com 6 meses de atraso, resultando em um montante de R$ 614,30. Supondo que o juro cobrado é calculado sobre o valor atualizado da dívida, ou seja, juros compostos, qual foi a taxa mensal utilizada? c=566.00 m=614.30 n=6 taxa=((m/c)**(1/n)-1)*100 round(taxa,2) Também é possível apresentar a resposta por meio da função “print()”: c=566.00 m=614.30 n=6 taxa=((m/c)**(1/n)-1)*100 print('A taxa é %.2f%%' % taxa) 21 Temos muitas outras funções importantes que serão abordadas nas próximas aulas. A seguir uma tabela contendo algumas dessas funções: Função Sintaxe Parte inteira da divisão // Resto da divisão % Módulo abs() Notação científica 3.4*10**9 ou 3.4e9 Logaritmo natural log() Logaritmo decimal log10() Exponencial exp() Seno sin() Cosseno cos() Tangente tan() Arco seno arcsin() Arco cosseno arccos() Arco tangente arctan() Seno hiperbólico sinh() Cosseno hiperbólico cosh() Tangente hiperbólica tanh() Arco seno hiperbólico arcsinh() Arco cosseno hiperbólico arccosh() Arco tangente hiperbólica arctanh() Conversão de graus para radianos deg2rad() ou radians() Conversão de radianos para graus rad2deg() ou degrees() FINALIZANDO Chegamos ao final da nossa primeira aula de Ferramentas Matemáticas Aplicadas. Vimos os principais conceitos elementares do Python, o que nos permitirá resolver diversos problemas de forma rápida e eficiente. Aprendemos a trabalhar com textos, variáveis, com as operações elementares de adição, subtração, multiplicação, divisão, potenciação e radiciação. Nas próximas aulas veremos de maneira detalhada problemas teóricos e práticos por meio de poderosas funções desenvolvidas para o Python. 22 REFERÊNCIAS CASTANHEIRA, N. P. Matemática Aplicada. 3 ed. Curitiba: Ibpex, 2010. DEMANA, F.D.; WAITS, B.K.; FOLEY, G.D.; KENNEDY, D. 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. GOOGLE COLAB. Disponível em: <colab.research.google.com>. Acesso em: 13 jul. 2019. MICROSOFT AZURE NOTEBOOKS. Disponível em: <notebooks.azure.com>. Acesso em: 13 jul. 2019. PERKOVIC, L. Introdução à computação usando Python: Um foco no desenvolvimento de aplicações. Rio de Janeiro: LTC, 2016.
Compartilhar