📘 Modelagem Matemática: Aulas 01 e 02

📌 Sumário da Aula

  1. Aritmética Computacional, Fundamentos Computacional e Teoria de Erros
  2. 🔮 Conexão com o Próximo Bloco: Zeros de Funções Não Lineares

Aritmética Computacional, Fundamentos Computacional e Teoria de Erros

Navegação Rápida no Cofre

📍 Disciplina: Modelagem Matemática | 📚 MOC: 01 Matemática e Estatística | 🏠 Início: Hub Principal 📄 Apostila Base: Aritmética Computacional Computacional 💻 Códigos Associados: conversor_bin (Material Complementar) | conversor_bin_numeros_reais (Material Complementar) | estrutura_condicional (Material Complementar) | laços (Material Complementar) | função (Material Complementar) | graficos (Material Complementar) | tuplas (Material Complementar) 🖼️ Diagrama Técnico: modelagem_aritmetica_ieee754_erros.svg


🎯 Objetivos de Aprendizagem

Ao final destas duas aulas, você será capaz de:

  1. Dominar a sintaxe fundamental do Python aplicada à modelagem matemática: tipos numéricos, operadores, estruturas de dados (listas e tuplas), fluxo de controle, funções e bibliotecas científicas (numpy e matplotlib).
  2. Compreender a representação de sistemas de numeração: conversão posicional entre bases (decimal, binária, octal e hexadecimal) para inteiros e reais fracionários.
  3. Analisar a aritmética de ponto flutuante (IEEE 754): normalização científica, mantissa, expoente, fenômenos de overflow e underflow.
  4. Quantificar erros numéricos: cálculo analítico e computacional de erro absoluto () e erro relativo ().
  5. Identificar fontes de imprecisão computacional: arredondamento por truncamento versus aproximação (regra do par mais próximo), propagação de erros operacionais e o perigo do cancelamento catastrófico.

📊 Diagrama Técnico Estrutural


🧩 PARTE I: AULA 01 — Fundamentos de Programação Computacional para Modelagem

A modelagem matemática em engenharia requer a tradução de equações físicas em algoritmos executáveis. O Python é a linguagem padrão devido à sua clareza, dinamismo e rico ecossistema científico.


1.1 Variáveis e Tipos de Dados

Uma variável atua como uma referência nomeada a um endereço de memória onde determinado objeto está armazenado.

Distinção Crucial: = (Atribuição) vs (Igualdade Matemática)

  • Na matemática, é uma contradição impossível.
  • Na programação, x = x + 1 é uma instrução de atualização iterativa: “avalie o valor atual armazenado em , some a ele e grave o novo valor de volta na variável ”.

Boas Práticas e Tipagem

Em Python, a tipagem é dinâmica e fortemente tipada. Recomenda-se utilizar nomes descritivos em conformidade com o padrão PEP 8 (snake_case):

Parâmetros de Projeto e Considerações Analíticas:

  • Atribuições com nomes descritivos

1.2 Operadores Aritméticos e Relação de Precedência

O Python disponibiliza operadores primitivos essenciais para formulações analíticas:

OperadorOperaçãoExemplo ComputacionalResultadoObservações para Modelagem
+Adição5 + 38Comuta parcelas
-Subtração10 - 46Atenção a números muito próximos
*Multiplicação7 * 642Produto escalar ou escalar por vetor
/Divisão real10 / 42.5Sempre retorna float, mesmo com divisão exata
//Divisão inteira10 // 33Descarta completamente a fração
%Módulo (Resto)10 % 31Usado para teste de paridade e periodicidade
**Exponenciação2 ** 38Equivalente a

Ordem de Precedência Matemática

Assim como no cálculo analítico, operadores possuem hierarquia estrita:

  1. Parênteses: (...) (forçam prioridade)
  2. Potenciação: **
  3. Multiplicação e divisões: *, /, //, % (avaliados da esquerda para a direita)
  4. Adição e subtração: +, -

Parâmetros de Projeto e Considerações Analíticas:

  • Demonstração de Precedência

Exemplo Prático: Fórmula dos Juros Compostos / Decaimento Exponencial

Parâmetros de Projeto e Considerações Analíticas:

  • f-string com formatação de 2 casas decimais (: .2f)
  • Saída: O valor acumulado será de: R$ 1104.62

1.3 Strings: Indexação, Fatiamento e Formatação

Textos são sequências ordenadas e imutáveis de caracteres (tipo str).

Indexação e Slicing

  • Indexação Positiva: inicia em 0 e vai até n-1.
  • Indexação Negativa: o último elemento é -1, o penúltimo -2, etc.
  • Fatiamento (Slice): string[inicio : fim : passo] (o limite fim é exclusivo).

Parâmetros de Projeto e Considerações Analíticas:

  • Indexação
  • Fatiamento

1.4 Lógica Booleana e Operadores Relacionais

A tomada de decisão em algoritmos numéricos baseia-se em condições booleanas (True ou False).

Operadores Relacionais

  • < : Menor que
  • > : Maior que
  • <= : Menor ou igual a
  • >= : Maior ou igual a
  • == : Igualdade de valor (dois sinais de igual)
  • != : Diferente de

Operadores Lógicos

  • and : Verdadeiro apenas se todas as condições forem verdadeiras.
  • or : Verdadeiro se pelo menos uma condição for verdadeira.
  • not : Inversão lógica.

1.5 Estruturas de Dados Sequenciais: Tuplas vs. Listas

Para modelar vetores, matrizes, coordenadas e tabelas de iteração, o Python oferece tuplas e listas nativas.

PropriedadeTupla (tuple)Lista (list)
SintaxeParênteses: (1, 2, 3)Colchetes: [1, 2, 3]
MutabilidadeImutável (tamanho e valores fixos)Mutável (permite inserção, edição e remoção)
DesempenhoMais leve e rápida para leituraMaior flexibilidade e sobrecarga dinâmica
Uso em ModelagemCoordenadas fixas , dimensões de malhaSéries temporais, históricos de aproximações

Código Exemplo de Manipulação

Parâmetros de Projeto e Considerações Analíticas:

    1. Tuplas
  • dados[1] = 110 -> ERRO! TypeError: ‘tuple’ object does not support item assignment
    1. Listas
    1. Operadores em sequências

1.6 Modularidade: Funções, Condicionais e Laços de Repetição

A estrutura básica de qualquer método numérico (como Newton-Raphson ou Bisseção) requer modularização em funções e repetições controladas.

Definição de Funções (def)

Estrutura Condicional (if, elif, else)

Laço for com range(início, parada, passo)

O laço for itera sobre sequências pré-definidas. O comando range(1, 5) gera os números [1, 2, 3, 4] (o limite superior não é incluso).

Parâmetros de Projeto e Considerações Analíticas:

  • Acumulador de somatório: sum_{i=1}^4 i

1.7 Bibliotecas Científicas: NumPy e Matplotlib

Para resolver problemas reais de engenharia, usamos duas bibliotecas fundamentais:

  • numpy: vetores e matrizes de alta performance em C, funções matemáticas vetorizadas.
  • matplotlib.pyplot: renderização gráfica de curvas, superfícies e convergências numéricas.

Exemplo de Plotagem de Função

Parâmetros de Projeto e Considerações Analíticas:

    1. Gerar malha de 100 pontos no domínio [-2, 2]
    1. Avaliar a função quadrática y = x²
    1. Construir e configurar o gráfico

🔢 PARTE II: AULA 02 — Representação Numérica, Sistemas de Bases e Aritmética de Ponto Flutuante

Os computadores não operam com o contínuo matemático dos números reais (), mas com circuitos biestáveis finitos (bits). Entender como os números são traduzidos e armazenados é imperativo para evitar catástrofes numéricas.


2.1 Sistemas de Numeração Posicionais

Qualquer número inteiro positivo pode ser representado de forma única em uma base inteira () através da expansão polinomial posicional:

Onde cada dígito satisfaz: .

As Quatro Bases Fundamentais na Engenharia

  1. Base Decimal (): Dígitos .
  2. Base Binária (): Dígitos . Base nativa do hardware.
  3. Base Octal (): Dígitos . Agrupa 3 bits ().
  4. Base Hexadecimal (): Dígitos . Agrupa 4 bits ().

Exemplo de Decomposição Posicional Decimal:


2.2 Algoritmos de Conversão de Bases para Inteiros

1. De Base para Base Decimal ()

Basta expandir o somatório das potências de :

  • Binário para Decimal:
  • Hexadecimal para Decimal:

2. De Base Decimal para Base () — Algoritmo das Divisões Sucessivas

Divide-se sucessivamente o número pela base de destino . Os restos formam os dígitos da direita para a esquerda (do menos significativo ao mais significativo):

undefined