Oi, Beatriz! Como você está?
A função allclose
é usada para verificar se dois arrays são aproximadamente iguais dentro de uma tolerância especificada. Em vez de exigir uma correspondência exata, allclose
avalia se os elementos dos arrays são próximos o suficiente, permitindo pequenas diferenças numéricas.
Os parâmetros rtol
e atol
são usados para definir essa tolerância:
rtol
é a tolerância relativa. Isso significa que ele verifica se a diferença relativa entre os dois valores é menor que rtol
. A diferença relativa é calculada como rtol * abs(b)
(multiplicação entre a tolerância relativa pelo valor absoluto do segundo array);
atol
é a tolerância absoluta, ou seja, a diferença absoluta (subtração) entre os dois arrays.
O allclose
retornará True
se a diferença absoluta entre os arrays for menor ou igual à soma de atol
e a diferença relativa. Essa ideia está expressa nesta equação, Bia: abs(a - b) <= (atol + rtol * abs(b))
.
Quanto ao "e" em rtol=1e-05
e atol=1e-08
, ele representa a notação científica. Geralmente, quando trabalhamos com números muito grandes ou muito pequenos, optamos por representá-los desta forma, melhorando a realização de cálculos e a legibilidade.
Nesse sentido, o "e" representa a potência de 10 pela qual o número à esquerda é multiplicado. Neste caso, 1e-05
é equivalente a 1 multiplicado por 10 elevado à potência de -5 (0,00001). A mesma ideia pode ser identificada em 1e-08
!
Esses são valores-padrão para reconhecermos arrays parecidos com o allclose
, contudo, podemos mudá-los conforme as nossas necessidades!
Espero que tenha ficado mais claro, Bia! Qualquer dúvida, fico à disposição.
Abraços!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!