Você está na página 1de 17

>

Modelagem Matemática

Aula 1: Introdução à linguagem Python

Apresentação
Listaremos as ferramentas ou métodos usados para se obter a solução de problemas matemáticos
clássicos em
Engenharia,
como a determinação de raízes de uma função real, a resolução de sistemas de equações
lineares, a
aproximação de
funções, o cálculo de integrais e a resolução de equações diferenciais ordinárias.

Os métodos se aplicam principalmente a problemas que não apresentam uma solução exata,
portanto precisam ser
resolvidos
numericamente. Para tal, o mais comum é que profissional utilize softwares de cálculo
científico – ou seja,
ferramentas
ou pacotes computacionais voltados à resolução de problemas de cunho numérico.

Apresentaremos os conceitos básicos da linguagem de programação Python, que se presta muito


bem como cálculo
científico
e que tem a vantagem de ser um software livre. Você aprenderá a forma de declaração de dados
e variáveis,
tipos de dados
estruturados (vetores e matrizes), bem como as estruturas de ramificação e repetição. Por
fim, você
aprenderá como
definir e declarar funções, bem como construir gráficos em Python.

Objetivos
Identificar os conceitos fundamentais da linguagem de programação Python;

Reconhecer a forma de declaração de dados e variáveis, tipos de dados


estruturados (vetores e matrizes), bem como
as
estruturas de seleção e repetição em Python;

Implementar funções e gráficos em Python.

Conceitos fundamentais da linguagem de programação Python


Creio que sua primeira pergunta seja:

O que é Python?

 Fonte: Shutterstock

Trata-se de uma linguagem de programação de alto nível, interpretada e


multiparadigma. Isso
quer dizer que os comandos
utilizados são mais
intuitivos, permitindo a criação de um código fonte que
é executado por um
programa de computador
denominado interpretador e que pode ser utilizado
de acordo com diferentes
paradigmas de programação, como a
programação
orientada a objetos e a programação estruturada.

Característica peculiar
Uma de suas características mais marcantes (e responsável por sua grande popularidade
atualmente) é o fato de ser
mantida
de forma colaborativa e aberta. Além disso, destaca-se a sua simplicidade para
instalação e operação.

Dica

Para executar um código Python, basta instalar um interpretador para a


linguagem. No site oficial do Python
(www.python.org)
estão disponíveis para download os interpretadores Python 2.7 e Python 3.7
para vários sistemas
operacionais, como Linux,
Mac OS e Windows.

Formas básicas de utilização


Agora que você já sabe as principais vantagens do Python e onde encontrá-lo, é hora de
conversarmos sobre o seu uso.
Veremos três formas básicas de utilização desta linguagem.

Para tanto, vamos utilizar um caso bem tradicional: um programa que imprima na tela a
expressão "Olá, mundo!".
Aplicaremos
em cada uma das três formas, nos moldes do Python:
Clique nos
botões para ver as informações.

1.Modo interativo 

No primeiro caso, temos a execução no console da seguinte maneira:

>>> s = "Olá, mundo!"


>>> print(s)

Olá, mundo!

Viu como é fácil? Para sair do console, basta digitar:

>>> quit()

2. Execução de um código no console Python 

Já no segundo caso, é necessário que você abra o editor de texto de sua


preferência e digite o código:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
s = “Olá, mundo!”
print(s)

Simples, não é? Depois de editar, salve o arquivo como ola.py,


por exemplo. Depois, basta digitar no console Python:

>>> execfile("ola.py")
3. Execução de um código diretamente em
terminal 

Para executar em um terminal, também é necessário que você abra o editor de


texto de sua preferência e digite o código:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
s = “Olá, mundo!”
print(s)

De igual modo, depois de editar, salve o arquivo como ola.py,


por exemplo. Por fim, em um terminal, digite:

$ python ola.py

É importante garantir que o caminho do executável do Python faça parte das variáveis de
ambiente do Windows. A forma mais
fácil de se fazer esta tarefa é no ato da instalação,
quando você pode optar por esta possibilidade que facilita em muito o uso
do interpretador
Python.

Agora que você já sabe como executar alguns comandos simples em Python, é hora de avançar:
veremos como declarar
variáveis e dados, simples e estruturados, além das estruturas de
seleção e repetição. Vamos lá?

Utilização do Python – operações básicas


Dentre os diversos modos de emprego do Python, o mais simples é digitar os
comandos, como se fosse uma calculadora. Veja
o que está indicado na Figura 1
apresentada a seguir. Por exemplo, para executar a operação de adição entre 5 e 5,
executa-se
o comando 5+5. O resultado é apresentado logo a seguir, como se vê na segunda
linha (10):
Figura 1 – Tela de comandos do Python

As operações aritméticas básicas são representadas conforme exposto na Tabela 1. A ordem de


execução de operações segue
a regra aritmética usual. Assim, você tem que as operações entre
parênteses são calculadas em primeiro lugar, de acordo com
a ordem: potenciação,
multiplicação e divisão, e adição e subtração.

Tabela 1 – Lista de operadores e operações aritméticas, com exemplos de aplicação.

Operador Operação Exemplo Resultado

** Potenciação 2**3 8

/ Divisão 2/3 0.666

* Multiplicação 2*3 6

- Subtração 2-3 -1

+ Adição 2+3 5
Já as variáveis são criadas quando um valor é atribuído a elas. Por exemplo:

>>> x=1
>>> y = x * 2.0

Vemos que a variável x recebe o valor inteiro (int) 1 e, que a variável y recebe
o valor real (double) 2,0. É interessante você
perceber o uso do símbolo “=”. Ele simboliza
a atribuição de valores a variáveis, não a comparação entre dois valores quanto à
igualdade
(este último é expresso em Python por ==). Em Python, você também pode exibir a tela de
conteúdo de variáveis.
Veja só:

>>> print(x,y)
(1, 2.0)

Além disso, você pode também exibir na tela o tipo de variáveis anteriormente
criadas:

>>> type(x), type(y)


(<type ’int’>, <type ’float’>)

Como em outras linguagens de alto nível, Python também permite que você edite
comentários e utilize elementos de
continuação de linha de comando. Veja como isto acontece
no exemplo a seguir:

>>> #isto é um comentário


...
>>> x = 1 \
... + 2
>>> print(x)
3

Já para utilizar funções e constantes matemáticas elementares, o Python


disponibiliza o módulo math. Veja a seguir como
utilizar:

>>> import math as math


>>> math.cos(math.pi)
-1.0
Assim, é importante você saber que este pacote Python disponibiliza, ao ser
instalado, uma série de funções e constantes
matemáticas básicas para os usuários, conforme
exposto a seguir nas Tabelas 2 e 3, respectivamente. Para consultar a lista
completa de
funções disponíveis no pacote math, basta digitar o comando help (math) no console Python.

Tabela 2 – Exemplos de funções matemáticas disponíveis no pacote módulo Python math, com
exemplos de
aplicação.

Função Significado Exemplo Resultado

sin(x) Seno do ângulo x, em radianos math.sin(1.57) 1

cos(x) Cosseno do ângulo x, em math.cos(3.14) -1


radianos

tan(x) Tangente do ângulo x, em math.tan(0) 0


radianos

log(x) Logaritmo de x, base neperiana math.log(2.71828) 1

log10(x) Logaritmo de x, base decimal math.log10(100) 2

exp(x) Exponencial de x math.exp(1) 2.7183

sqrt(x) Raiz quadrada de x math.sqrt(4) 2

Tabela 3 – Exemplos de constantes disponíveis no pacote módulo Python math.

Constante Significado Valor

math.pi Constante pi 3.1415

math.e Constante de Neper 2.7183

Atenção! Aqui existe uma


videoaula, acesso pelo conteúdo online

Pode-se também utilizar operações lógicos em Python. Aqui, o valor lógico verdadeiro recebe o
valor True, enquanto o valor
lógico falso recebe o valor False. Veja na
Tabela 4 os operadores lógicos disponíveis em Python:

Tabela 4 – Lista de operadores lógicos disponíveis em Python.


Operador Significado

and E lógico

or Ou lógico

not Negação

== Igualdade

!= Diferente

< Menor que

> Maior que

<= Menor que ou igual a

>= Maior que ou igual a


A seguir, um pequeno exemplo de uso desses operadores lógicos:

>>> x=2
>>> (x >= 1) and (x < 3)
True

Agora que você já sabe como criar variáveis, realizar operações matemáticas e
utilizar funções pré-definidas, creio que seja a
hora adequada de você saber como definir e
realizar operações com matrizes. Em Python, existe o pacote numpy que dá o
suporte para computação científica. Veja a seguir como definir matrizes:

>>> import numpy as np


>>> A = np.array([[ a11 , a12 , ... , a1n], [...]. [am1
, am2 , ... , amn]])

Viu como é simples? Vamos aplicar em um exemplo? Veja a seguir como definir uma
matriz A tal que:

1 2 3
A = [ ]
4 5 6

>>> import numpy as np


>>> A = np.array([[1,2,3],
... [4,5,6]])
>>> print(A)
[[1 2 3]
[4 5 6]]

Esse pacote tem uma série de funções especiais para geração de matrizes muito
utilizadas em computação científica. Veja
algumas destas funções na Tabela 5:

Tabela 5 – Funções do pacote numpy para geração de matrizes particulares em Python.

Função Significado

numpy.eye Matriz identidade

numpy.linspace Vetor de elementos linearmente espaçados

numpy.ones Matriz com todos os elementos iguais a 1

numpy.shape Retorna o tamanho de uma matriz, em linhas e colunas

numpy.zeros Matriz nula


Como acessar os elementos de uma matriz dada A em Python? Veja os métodos a seguir:

Matriz inteira: A
Elemento da i-ésima linha e j-ésima coluna: A[i,j]
Bloco formado pelas linhas i1 até i2 (exclusive), e pelas colunas j1 até j2 (exclusive):
A[i1:i2, j1:j2]

Além destes comandos, há muitas outras possibilidades interessantes em Python. Veja só:

A[:,:] toda a matriz;

A[i:j,k] os elementos das linhas i até j (exclusive) da k-ésima coluna;

A[i,j:k] os elementos da i-ésima linha das colunas j até k (exclusive);

A[i,:] a i-ésima linha da matriz;

A[:,j] a j-ésima coluna da matriz.

Dica

Uma dica muito importante é lembrar que, em Python, os índices iniciam-se em 0.


Para ilustrar todas estas informações, acompanhe o exemplo apresentado a seguir:

>>> from numpy import random


>>> A = np.random.random((3,4))
>>> A
array([[ 0.39235668, 0.30287204, 0.24379253, 0.98866709],
[ 0.72049734, 0.99300252, 0.14232844,
0.25604346],
[ 0.61553036, 0.80615392, 0.22418474, 0.13685148]])
>>> A[2,3]
0.13685147547025989
>>> A[1:3,1:4]
array([[ 0.99300252, 0.14232844, 0.25604346],
[ 0.80615392, 0.22418474, 0.13685148]])

Por sinal, repare que o último comando apresenta os elementos da


matriz que estão na segunda e terceira linhas, e da segunda
à quarta coluna.

Quanto às operações com matrizes, a sintaxe utilizada é a mesma que você já viu
até aqui. No entanto, é importante ressaltar
uma pequena diferença na
multiplicação de matrizes. Em Python, o operador * faz a multiplicação elemento
a elemento, e não
conforme a regra usual de multiplicação de matrizes. Veja no
exemplo a seguir:

>>> A = np.array([[1,2],[2,1]]); print(A)


[[1 2]
[2 1]]
>>> B = np.array([[2,1],[2,1]]); print(B)
[[2 1]
[2 1]]
>>> print(A*B)
[[2 2]
[4 1]]

Então, como fazer a multiplicação de matrizes? Veja a seguir:

>>> C = A.dot(B)
>>> print(C)
[[6 3]
[6 3]]
Estruturas de seleção e de repetição

Atenção! Aqui existe uma


videoaula, acesso pelo conteúdo online

Em primeiro lugar, vamos ver a estrutura if, utilizada para que somente um
certo trecho do código seja executado caso uma
determinada condição seja satisfeita:

i = 2
if (i == 1):
print("Olá!")
elif (i == 2):
print("Oi!")
elif (i == 3):
print("Op a!")
else:
print("Tchau!")

Aqui, vemos que a mensagem exibida é “Oi!”, em função do valor colocado na


condição de seleção de mensagens.

Já a instrução for permite que determinado trecho de código seja


executado repetidamente. Por exemplo, o código:

import numpy as np
for i in np.arange(1,8,2):
print(i)

faz com que seja exibida na tela a sequência 1 – 3 – 5 – 7, pois o valor inicial
da condição é 1, o valor final é 8 e o passo
(incremento) em cada iteração é 2. Logo, o
primeiro valor é 1, o segundo é 1 + 2 = 3, e assim por diante.

Por fim, a instrução while faz com que um código seja executado
repetidamente enquanto determinada condição seja
satisfeita. Assim, vemos que o valor final
de s no trecho a seguir é 55, pois o laço de repetição é executado 10 vezes
(a variável i
assumindo os valores de 1 a 10):

s = 0
i = 1
while (i <= 10):
s
= s + i
i = i + 1

Funções e gráficos em Python


Agora que você já identificou algumas definições relevantes em Python, já está na hora de
começar a definir suas próprias
funções. Para isso, existe a instrução def.
Por exemplo, a função f(x) = x + sen(x) pode ser definida da forma apresentada a
seguir:


def f(x):
return x + np.sin(x)

Aplicando para o cálculo de 2π, basta digitar

f(2*np.pi)

e você terá aproximadamente 6,28 (que é igual a 2 π) como resposta.

Por fim, para criar gráficos de uma função, utilizamos a biblioteca Python
matplotlib. Em particular, a função
matplotlib.pyplot.plot representa
graficamente um conjunto de pontos (x,y) fornecidos. Por exemplo, o trecho de código a
seguir
permite a geração do gráfico da função f(x) = x3 + 1, no intervalo [-2, 2].

import numpy as np
import matplotlib.pyplot as plt
def f(x): return x**3 + 1
...
x = np.linspace(-2,2)
plt.plot(x, f(x))
plt.grid()
plt.show()

Veja na Figura 2 o gráfico gerado:

Atenção! Aqui existe uma


videoaula, acesso pelo conteúdo online
Figura 2 – Gráfico gerado em Python.

Atividade
1. Assinale a única alternativa que apresenta corretamente o resultado da operação 2**3 em Python:

a) 2/3
b) 2
c) 6
d) 8
e) mensagem de erro
2. Assinale a única alternativa que apresenta corretamente o resultado da execução do código:

import numpy as np
for i in np.arange(2,8,2):
print(i)

a) 1 - 3 - 5 - 7
b) 2
c) 2 - 4 - 6
d) 2 - 4 - 6 - 8
e) nenhuma das alternativas anteriores

3. Considere o código apresentado a seguir:

def f(x):
return x + np.sin(x)

Assinale a única alternativa que apresenta corretamente o valor exibido na tela após a execução do comando:

f(np.pi)

a) 3.1415
b) 0
c) 1
d) -1
e) 6.283
4. Considere o código apresentado a seguir:

def f(x):
return x + (a)

a) e**x
b) exp(x)
c) e(x)
d) math.exp(x)
e) nenhuma das alternativas anteriores

5. Considere o código a seguir:

>>> A = np.array([[1,3],[3,1]]); print(A)


>>> B = np.array([[2,1],[3,1]]); print(B)
>>> print(A*B)

Assinale a única alternativa que apresenta corretamente o valor de A*B:

a) array([[2, 3],
[9, 1]])
b) array([[11, 4],
[9, 4]])
c) array([[1, 3],
[3, 1]])
d) array([[2, 1],
[3, 1]])
e) nenhuma das alternativas anteriores

Notas
Referências

JUSTO, D.A.R.; SAUTER, E.; AZEVEDO, F.S. et al. Cálculo Numérico. Um Livro Colaborativo. Versão Python. Porto Alegre: UFRGS,
2019. Disponível em: https://www.ufrgs.br/reamat/CalculoNumerico/livro-py/livro-py.pdf. Acesso em: 18 nov. 2019.

Próxima aula

Principais sistemas de numeração e de mudança de base;

Principais padrões de representação numérica;


Conceitos fundamentais de teoria dos erros.

Explore mais

Consulte os sites a seguir e aprenda mais um pouco:

Página oficial da linguagem Python

https://www.python.org/

Comunidade Python Brasil

//wiki.python.org.br/

Curso EAD gratuito – Codecademy


https://www.codecademy.com/learn/python

Matplotlib

https://matplotlib.org/api/pyplot_api.html?highlight=pyplot.plot#matplotlib.pyplot.plot

Você também pode gostar