Considere duas matrizes quadradas
e
, onde
e
. Crie duas matrizes (
e
) com números aleatórios uniformemente distribuídos
. Em seguida, escreva o código em Python para calcular o Erro Médio Absoluto. O Erro Médio Absoluto (EMA) é a soma da diferença absoluta de cada ponto das matrizes, dividido pelo produto das dimensões da matriz, conforme a Equação 1.
Passo 1
Beleza, o enunciado pede para a gente criar duas matrizes quadradas
e
de tamanho
preenchidas com números aleatórios uniformes em
, e depois calcular o Erro Médio Absoluto (EMA) entre elas. O conteúdo aqui envolve:
- Geração de números aleatórios em Python
- Manipulação de matrizes (listas de listas ou arrays)
- Cálculo de diferença absoluta e média
Pra resolver você vai precisar do módulorandom
do Python e usar loops duplos (i, j) pra percorrer as matrizes.
Passo 2
Gerar as matrizes
e
.
Teoria rápida:
Teoria rápida:
- “Uniformemente distribuído em
” significa que cada número tem a mesma chance de aparecer nesse intervalo. - Em Python,
random.random()
retorna um float aleatório em.
Exemplo de criação de
e
com listas de listas:
import random
n = 4 # ou qualquer outra dimensão
F = [[random.random() for j in range(n)] for i in range(n)]
G = [[random.random() for j in range(n)] for i in range(n)]
import random
n = 4 # ou qualquer outra dimensão
F = [[random.random() for j in range(n)] for i in range(n)]
G = [[random.random() for j in range(n)] for i in range(n)]
Passo 3
Calcular a soma das diferenças absolutas
.
Teoria da diferença absoluta:
Teoria da diferença absoluta:
- Para dois números
e , é a distância numérica entre eles, sempre um valor não-negativo. - Em Python, usamos
abs(a - b)
.
Fazendo com loops:
soma = 0.0
for i in range(n):
for j in range(n):
soma += abs(F[i][j] - G[i][j])
soma = 0.0
for i in range(n):
for j in range(n):
soma += abs(F[i][j] - G[i][j])
Passo 4
Dividir essa soma por
para obter o EMA:
Em código, se
ema = soma / (n * n)
soma
já for o total das diferenças:ema = soma / (n * n)
Passo 5
Código completo em Python, juntando tudo:
import random
import random
def calcula_ema(n):
Passo 6
F = [[random.random() for j in range(n)] for i in range(n)]
G = [[random.random() for j in range(n)] for i in range(n)]
G = [[random.random() for j in range(n)] for i in range(n)]
Passo 7
soma = 0.0
for i in range(n):
for j in range(n):
soma += abs(F[i][j] - G[i][j])
for i in range(n):
for j in range(n):
soma += abs(F[i][j] - G[i][j])
Passo 8
ema = soma / (n * n)
return ema
return ema
# Exemplo de uso
n = 4
resultado = calcula_ema(n)
print(f"Erro Médio Absoluto para n={n}: {resultado}")
Resposta
O código acima gera duas matrizes
com valores aleatórios em
e calcula o EMA de acordo com
Basta chamar
calcula_ema(n)
pra obter o valor.