Corolário em Código
Sobre a Matemática
Se o produto de dois números é igual ao de outros dois, com os quatro números podemos formar uma proporção, sendo termos extremos, os fatores de um dos produtos, e meios, os fatores do outro.
Se ad=bc, tem-se: a/b=c/d, a/c=b/d.
Consequências – Do que se precede, resulta que se pode mudar a ordem dos termos de uma proporção, contanto que o produto dos extremos fique igual ao dos meios. A essas mudanças dá-se o nome de transformações.
Assim, a proporção: a/b = c/d (1) dá origem a sete outras.
Alternando-se os meios: a/c = b/d (2). Alternando-se os extremos: d/b = c/a (3). Invertendo-se as razões: b/a = d/c (4). Permutando-se as razões de (1): c/a = d/b (5). Permutando-se as razões de (2): (b – a) / (d – c) (6). Permutando-se as razões de (3): c/b = d/a (7). Permutando-se as razões de (4): (d – b) / (c – a) (8). Em cada uma dessas oito razões, temos sempre: ad = bc.
Sobre o Código
Na linguagem de programação Python,
from – é a palavra-chave usada para importar módulos ou partes específicas de uma biblioteca.
sympy – é a biblioteca para álgebra simbólica, usada em cálculos matemáticos exatos.
import – é a palavra-chave que permite trazer funções, classes ou módulos externos para o código.
symbols() – é a função da Sympy que cria variáveis simbólicas (ex.: a, b, c, d) para manipulação algébrica.
Eq() – é a função da Sympy que representa uma equação (igualdade) entre duas expressões.
simplify() – é a função da Sympy que simplifica expressões matemáticas, reduzindo-as à forma mais simples.
{} – define um dicionário, estrutura que armazena pares chave-valor.
def – é a palavra-chave usada para definir funções.
print() – é a função nativa que exibe informações na saída padrão (console).
for..in..: – é a estrutura de repetição que percorre elementos de uma sequência (lista, dicionário, etc.).
eq.lhs – é o atributo da Sympy que retorna o lado esquerdo (Left Hand Side) da equação.
eq.rhs – é o atributo da Sympy que retorna o lado direito (Right Hand Side) da equação.
f"..{}" (f-string) – é a forma de interpolar variáveis dentro de strings. O conteúdo entre {} é avaliado e inserido no texto.
# – é usado para criar comentários ao código, que são notas para se entender melhor o que o código faz.
Vamos ao código…
from sympy import symbols, Eq, simplify
# Definindo os símbolos
a, b, c, d = symbols('a b c d')
# Condição fundamental da proporção
condicao = Eq(a*d, b*c)
# Lista de transformações possíveis
transformacoes = {
"Proporção original": Eq(a/b, c/d),
"Alternando meios": Eq(a/c, b/d),
"Alternando extremos": Eq(d/b, c/a),
"Invertendo razões": Eq(b/a, d/c),
"Permutando razões (1)": Eq(c/a, d/b),
"Permutando razões (2)": Eq((b - a)/(d - c), (a - b)/(c - d)),
"Permutando razões (3)": Eq(c/b, d/a),
"Permutando razões (4)": Eq((d - b)/(c - a), (b - d)/(a - c))
}| Código Python (.py) | O que faz |
| from sympy import symbols, Eq, simplify | Importa funções da biblioteca Sympy: symbols para criar variáveis simbólicas, Eq para definir equações, e simplify para simplificar expressões matemáticas. |
| a, b, c, d = symbols(‘a b c d’) | Cria quatro variáveis simbólicas (a, b, c, d) que representam os números da proporção. |
| condicao = Eq(a*d, b*c) | Define a condição fundamental da proporção: 𝑎𝑑=𝑏𝑐. |
| transformacoes = { … } | Cria um dicionário com todas as transformações possíveis da proporção, cada uma representada como uma equação simbólica (Eq). |
| “Proporção original”: Eq(a/b, c/d), | Primeira transformação: a proporção inicial 𝑎/𝑏=𝑐/𝑑. |
| “Alternando meios”: Eq(a/c, b/d), | Segunda transformação: alterna os meios da proporção 𝑎/𝑐=𝑏/𝑑. |
| “Alternando extremos”: Eq(d/b, c/a), | Terceira transformação: alterna os extremos 𝑑/𝑏=𝑐/𝑎. |
| “Invertendo razões”: Eq(b/a, d/c), | Quarta transformação: inverte as razões 𝑏/𝑎=𝑑/𝑐. |
| “Permutando razões (1)”: Eq(c/a, d/b), | Quinta transformação: permuta as razões da proporção original 𝑐/𝑎=𝑑/𝑏. |
| “Permutando razões (2)”: Eq((b – a)/(d – c), (a – b)/(c – d)), | Sexta transformação: outra permutação envolvendo diferenças entre termos. |
| “Permutando razões (3)”: Eq(c/b, d/a), | Sétima transformação: permuta razões da forma 𝑐/𝑏=𝑑/𝑎. |
| “Permutando razões (4)”: Eq((d – b)/(c – a), (b – d)/(a – c)) | Oitava transformação: outra permutação envolvendo diferenças. |
# Função para verificar se cada transformação mantém a condição ad = bc
def verificar_transformacoes():
print("Condição fundamental:", condicao)
print("\nTransformações possíveis:\n")
for nome, eq in transformacoes.items():
# Simplifica a diferença entre os dois lados da igualdade
resultado = simplify(eq.lhs - eq.rhs)
print(f"{nome}: {eq} | Verificação: {resultado == 0}")
if __name__ == "__main__":
verificar_transformacoes()| Código Python (.py) | O que faz |
| def verificar_transformacoes(): | Define uma função chamada verificar_transformacoes que vai verificar se cada transformação é válida. |
| print(“Condição fundamental:”, condicao) | Exibe a condição fundamental 𝑎𝑑=𝑏𝑐. |
| print(“\nTransformações possíveis:\n”) | Exibe um cabeçalho para listar as transformações. |
| for nome, eq in transformacoes.items(): | Percorre cada transformação do dicionário, pegando o nome e a equação. |
| resultado = simplify(eq.lhs – eq.rhs) | Calcula a diferença entre os dois lados da equação e simplifica. Se for igual a 0, significa que a proporção é válida. |
| print(f”{nome}: {eq} Verificação: {resultado == 0}”) | Exibe a transformação e se ela é válida (True ou False). |
| if __name__ == “__main__”: | Garante que o código só execute automaticamente se o arquivo for rodado diretamente (não importado). |
| verificar_transformacoes() | Chama a função para verificar e imprimir todas as transformações. |
Saída do código (valor de retorno)…
Condição fundamental: Eq(ad, bc)
Transformações possíveis:
Proporção original: Eq(a/b, c/d) | Verificação: False
Alternando meios: Eq(a/c, b/d) | Verificação: False
Alternando extremos: Eq(d/b, c/a) | Verificação: False
Invertendo razões: Eq(b/a, d/c) | Verificação: False
Permutando razões (1): Eq(c/a, d/b) | Verificação: False
Permutando razões (2): Eq((-a + b)/(-c + d), (a - b)/(c - d)) | Verificação: True
Permutando razões (3): Eq(c/b, d/a) | Verificação: False
Permutando razões (4): Eq((-b + d)/(-a + c), (b - d)/(a - c)) | Verificação: True
Fonte:
– Editora Didática Paulista. Ensino Didático 2000: Ensino Fundamental e Ensino Médio. Sorocaba: Editora Didática Paulista, [s.d.].
– Códigos e comentários gerados por Microsoft Copilot com revisão nossa.
– https://docs.python.org/pt-br/3/ [Documentação Oficial do Python]