Campos vetoriais com Python

Leandro Cruvinel
5 min readJan 17, 2021

--

Vetores são usados para representar grandezas que possuem direção, sentido e módulo. Quando, para cada ponto de uma região associamos um vetor, temos um campo vetorial. Campos vetoriais são de extrema importância em estudos de correntes de ar e correntes oceânicas que estão associadas diretamente com eventos climáticos. O bom entendimento desses campos pode nos dar a chance de prever catástrofes climáticas e evitar tragédias.

Photo by NASA on Unsplash

Nesse tutorial utilizaremos o quiver da biblioteca Matplotlib para representar campos vetoriais em gráficos bidimensionais.

Sumário

  • Preparação do ambiente
  • Campos vetoriais bidimensionais
  • Campos vetoriais bidimensionais no Python
  • Utilizando funções para definir campos vetoriais
  • Campos vetoriais em Python utilizando funções
  • Conclusão

Preparação do ambiente

Para este tutorial, utilizaremos o Google Colab: https://colab.research.google.com/

Ao clicar no link acima, basta clicar em Novo Notebook e estaremos prontos para começar!

O Google Colab é uma IDE Python gratuita disponibilizada pelo Google. Ela é baseada no Jupyter Notebook e todo arquivo (notebook) é automaticamente salvo no Google Drive.

Podemos renomear o notebook:

Clique em Untitled1.ipynb e mude o nome do notebook para campos-vetoriais.ipynb. Dessa forma, encontraremos o notebook facilmente no nosso Google Drive:

Campos vetoriais bidimensionais

Quando para cada ponto (x,y) do plano cartesiano, associamos um vetor (a,b) que dependa de (x,y), isto é, (u, v) = (u(x,y), v(x,y)), temos um campo vetorial bidimensional. Para deixar mais simples as coisas, consideraremos 4 pontos do plano cartesiano:

O ponto amarelo tem coordenadas (2, 0), o rosa (2, 2), o roxo (0, 0) e o azul claro (0, 2). Agora consideraremos 4 vetores:

O amarelo tem coordenadas (-1,-1), o rosa (1,-1), o roxo (-1,0) e o azul claro (1,0). Vetores são conjuntos de segmentos orientados com mesma direção, sentido e módulo. Logo, os segmentos orientados da figura acima são os representantes dos vetores com ponto inicial na origem.

Associaremos a cada ponto anterior ao vetor de sua cor respectiva:

Temos, então, um campo vetorial! Cada um dos quatro pontos foi associado a um vetor.

Campos vetoriais bidimensionais no Python

Faremos agora o mesmo campo vetorial em Python:

Explicando o código:

  • Na linha 1, importamos a biblioteca necessária para fazer o gráfico.
  • As linhas 2, 3, 4 e 5 estão explicadas em seus respectivos comentários.
  • Na linha 6, utilizamos a função quiver para fazer os vetores.
  • Na linha 7, passamos como parâmetros da função quiver os valores X, Y, U e V.
  • Na linha 8, passamos os parâmetros necessários para que os vetores tenham as escalas desejadas no plano xy seguindo a documentação da biblioteca Matplotlib.
  • Na linha 9, passamos as cores respectivas através de códigos hexadecimais.
  • Na linha 11, fizemos também o gráfico com os pontos. Para uma melhor visualização, os pontos terão tamanho 100 (s=100).
  • Nas linhas 12 e 13, ajustamos os limites dos eixos x e y, ambos variando de -3 a 3.
  • Na linha 14, indicamos que queremos que as grades apareçam.
  • Por fim, na linha 15 apresentamos o gráfico.

Obtemos os seguinte resultado:

Não fica tão bonito quanto o anterior, pois no anterior usamos o Inkscape para fazer a arte vetorial. Mas o segundo tem uma grande vantagem, pois pode ser automatizado!

Utilizando funções para definir campos vetoriais

Quando falamos em associações de objetos, sempre pensamos em funções. No exemplo anterior, consideramos as seguintes associações:

Todas as relações ilustrada acima satisfazem a seguinte lei:

A lei define uma função vetorial F que para cada ponto do plano cartesiano associa um vetor bidimensional. Podemos denotar:

Funções são úteis quando queremos definir associações mais gerais. Por exemplo, através de F podemos determinar qual vetor está associado ao ponto (6,5), a saber, o vetor (4,-3), pois F(6,5)=(4,-3). Esta tarefa não se restringe ao ponto (6,5), pode ser feita para qualquer ponto do plano cartesiano, daí a generalidade do uso de funções.

Campos vetoriais em Python utilizando funções

Nosso próximo objetivo é visualizar o campo vetorial definido pela função F. Para isso, utilizaremos novamente o método quiver da biblioteca Matplotlib.

  • Nas linhas 1 e 2, importamos as bibliotecas necessárias.
  • Na linha 4, definimos os valores de x e y. Neste exemplo, x vai de -10 a 10 e nesse intervalo tomaremos 20 pontos uniformemente distribuídos. Analogamente y vai de -10 a 10 e nesse intervalo, também, tomaremos 20 pontos uniformemente distribuídos.
  • Na linha 5, definimos a primeira coordenada da função F.
  • Na linha 6, definimos a segunda coordenada da função F.
  • Na linha 8, passamos x, y, u, v como parâmetros do método quiver.
  • Na linha 9, ativamos a visualização das grades do gráfico.
  • Na linha 10, utilizamos show para visualizar o gráfico.

Na imagem acima aparecem 40 vetores. Não seria uma tarefa fácil mostrar esses vetores desenhando um por um manualmente no Inkscape. Logo, para tarefas mais complexas e de forma automatizada, faz-se necessário o uso de alguma linguagem de programação ou software destinado a resolver o problema.

Conclusão

Neste tutorial vimos:

  • Qual a importância de campos vetoriais e qual o conceito por trás desse termo.
  • Um exemplo simples, com apenas 4 vetores para fixar o conceito.
  • O mesmo exemplo graficamente, utilizando Matplotlib, biblioteca em Python.
  • Como definir campos vetoriais através de funções.
  • Um exemplo de campo vetorial definido por uma função.
  • Como visualizar graficamente um campo vetorial definido por função utilizando Python.

Agora é praticar! Como desafio você pode trabalhar com dados reais ou tentar fazer gráficos de campos vetoriais tridimensionais.

Até a próxima! Espero que tenham gostado!

--

--

Leandro Cruvinel
Leandro Cruvinel

Written by Leandro Cruvinel

Math Professor | Data Scientist | Web developer

No responses yet