Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download

Tutorial básico Julia Python

497 views
ubuntu2004
Kernel: SageMath 9.4

PROPAGAÇÃO DE INCERTEZAS

Dado uma função qualquer y=f(x1,x2,x3,...,xn) \displaystyle {y = f(x_1, x_2, x_3,..., x_n)} e nn variáveis (x1±Δx1)u, (x2±Δx2)u, ... (xn±Δxn)u (x_1 \pm \Delta x_1)u,~ (x_2 \pm \Delta x_2)u, ~...~ (x_n \pm \Delta x_n)u ~, a incerteza Δy\Delta y de uma função é dada por:

Δy=fx1Δx1+fx2Δx2+...+fxnΔxn\displaystyle \Delta y = \left | {{\partial f} \over \partial x_1} \right | \cdot \Delta x_1 + \left | {{\partial f} \over \partial x_2} \right | \cdot \Delta x_2 + ... + \left | {{\partial f} \over \partial x_n} \right | \cdot \Delta x_n

O pacote uncertainties é um programa gratuito multiplataforma que lida de forma transparente com cálculos contendo incertezas (como 3,14 ± 0,01). Também pode produzir os derivados de qualquer expressão. Sintaxe:

var = ufloat(valor_medido, incerteza)

Para instalar o pacote, execute a célula abaixo:

# importar o pacote from uncertainties import * from uncertainties.umath import * import numpy

Exemplo 1: Calcular a posição de um corpo em MRU no instante de tempo 3s3s sabendo que a sua velocidade é v=(1,5±0,1)m/sv = (1,5 \pm 0,1 )m/s e parte da posição medida  x0=(5,0±0,1)m~ x_0 = (5,0 \pm 0,1)m. Note que o tempo não foi medido, então é um número exato, incerteza igual a zero.

# definir as variáveis x0 = ufloat(5.0, 0.1) v = ufloat(1.5, 0.1) t = ufloat(3.0, 0)
# Definir a função e realizar o cálculo x = x0 + v*t # imprimir valor de da posição x
9.5+/-0.316227766016838

Dados para construção de gráficos no SciDAVis

O resultado deve ser copiado e colado no SciDAVis sendo uma coluna para o valor e outra coluna para a incerteza. Este exemplo serve para outras variáveis basta substituir os valores mantendo a mesma estrutura.

# valores do eixo t. Aqui deve ser colocado os valores do eixo X. # basta somente alterar os valores do tempo # os valores podem ser inteiros ou reais # cinco valores para a variável do eixo X já é suficiente. tempo = numpy.array([ufloat(0, 0), ufloat(1, 0), ufloat(2, 0), ufloat(3, 0), ufloat(4, 0)]) # valores de x(t) x_dados = [x0 + v*t for t in tempo] # imprimir valores x_dados
[5.0+/-0.1, 6.5+/-0.14142135623730953, 8.0+/-0.223606797749979, 9.5+/-0.316227766016838, 11.0+/-0.4123105625617661]

Devemos lembrar que incerteza deve ter apenas um algarismo significativo, então faça o arredondamento da incerteza de acordo com esta informação. Agora é só plotar o gráfico no SciDAVis