1
resposta

[Dúvida] Allclose

Li no fórum novamente a explicação do professor, mas ainda está mto confuso como funciona a função allclose.Qual a diferença entre atol e rtol?

numpy.allclose(a, b, rtol=1e-05, atol=1e-08, equal_nan=False)

o que é esse e no rtol=1e-05 e no atol?

1 resposta

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!