Skip to content

Funções Customizadas

Como demonstrada na secção Monte Carlo, a incerteza associada a qualquer função pode ser calculada com esse método, portanto, o LabIFSC2 oferece um decorador conveniente chamado aceitamedida

Possibilita que qualquer função aceite e retorne Medidas como argumentos

Parameters:

Name Type Description Default
func callable

(callable) Função que não aceita medidas

required

Returns:

Name Type Description
func_labificada callable

(callable) função que aceita e retorna Medidas

Source code in LabIFSC2/matematica.py
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
def aceitamedida(func :callable) -> callable:
    '''Possibilita que qualquer função aceite e
    retorne Medidas como argumentos

    Args:
        func: (callable) Função que não aceita medidas

    Returns:
        func_labificada: (callable) função que aceita e retorna Medidas

    '''
    def FuncaoLabificada(*args):
            resultado=np.vectorize(montecarlo)(func,*args)
            if resultado.size==1:
                return resultado.item()
            else:
                return resultado
    return FuncaoLabificada

Exemplos

Imagine que você precise utilizar a função fatorial , podemos criar uma ponte entre a função definida na biblioteca scipy e o LabIFSC2

Exemplo
    import LabIFSC2 as lab
    from scipy.special import gamma
    gamma=lab.aceitamedida(gamma)
    gamma(lab.Medida(5,0.1)) #(24 ± 3)
Caso seja uma função definida por você mesmo, é possível usar a sintaxe mais comum para um decorador
Exemplo
    @lab.aceitamedida
    def funcao_customizada(x):
        return x*np.exp(-x**2)
    funcao_customizada(lab.Medida(1,0.1))#(3.6±0.4)