Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.
Física Experimental IFC
License: MIT
Image: ubuntu2204
This notebook was created by João Marcello Pereira, and is licensed under Creative Commons BY-SA
Objetivo do tutorial
Este guia serve apenas para você aprender conceitos básicos da linguagem Python para serem utilizados nos cálculos estatísticos e cálculos com incertezas de medição e propagação de incertezas. Para aprender mais sobre a linguagem baixe os arquivos em: https://bit.ly/tutorial-basico-python-julia-fisica. As versões mais atuais deste tutorial podem ser encontradas para download em https://bit.ly/fisica-experimental.
Linguagem Python
A linguagem de progração Python vem crescendo há anos e atualmente é uma das mais utilizadas no mundo conforme gráfico da TIOBE (https://www.tiobe.com/tiobe-index/). Observe que a linha azul está crescente enquanto as outras estão estabilizadas (C, C++ e SQL por exemplo) ou em queda (Java e PHP por exemplo).
Além disso, de acordo com o ranking das melhores linguagens mais populares de março de 20200, mostra Python como primeira colocada seguida de C e Java.
Em relação aos cursos de engenharia, os artigos abaixo esclarecem melhor a razão da necessidade do engenheiro aprender Python:
https://www.voitto.com.br/blog/artigo/python-para-engenheiros
Parte I
A ideia deste tutorial não é fazer o aluno apredender a programar na linguagem Python, mas sim ensiná-lo a operar comandos de cálculos estatísticas e de incerteza de medidas como uma calculadora avançada. Caso queira aprender Python há um excelente material neste link: https://bit.ly/tutorial-basico-python-julia-fisica. As versões mais atuais deste tutorial podem ser encontradas para download em https://bit.ly/fisica-experimental.
Conhecimentos inicias da linguagem
Python é case-sensitive, ou seja, variáveis com nomes maiúsculos e minúsculos são diferentes;
NÃO USE NOMES COM ACENTOS OU OUTROS RECURSOS SINTÁTICOS DA LINGUA PORTUGUESA PARA VARIÁVEIS. Apesar de funcionar no Jupyter, nem todos os interpretadores garantem a funcionalidade;
Python é uma linguagem de tipagem dinâmica, logo o tipo de dado é definido quando o valor é atriuído a uma variável;
Não é necessário ponto e vírgula ao final de um comando. Se fizer isso, o resultado do cálculo será omitido;
A identação é essencial na linguagem mas segui-la garante uma boa organização do código;
Observe que há um recúo antes da palavra
return
Estamos usando uma inte
Conhecimentos inicias da interface Web Jupyter Notebook
O Jupyter é uma aplicação web derivado do IPython que significa JUlia, PYThon, and R . Resumidamente, é um ambiente computacional interativo que permite aos usuários criar "notebooks" que incluem: código, widgets interativos, gráficos, texto, equações, imagens, vídeo e outros. O Jupyter combina três componentes:
O Jupyter Notebook: um aplicativo web interativo para escrever e executar códigos de várias linguagens de programação.
Kernels: "Os kernels são processos específicos de linguagem de programação que funcionam independentemente e interagem com os aplicativos Jupyter e suas interfaces de usuário" (JUPYTER, 2017). Jupyter possui suporte para mais de 50 linguagens de programação (github.com/jupyter/jupyter/wiki/Jupyter-kernels), incluindo as mais populares em computação científica como Python, R, Julia e Scala. O
IJulia.jl
é kernel da linguagem Julia.Notebooks: são arquivos com extensão
ipynb
que contêm a estrutura do código no formato JSON. Cada notebook possui seu próprio kernel.
Caracteristicas:
Instalação fácil, já está presente no Anaconda (www.anaconda.com/download) e disponível para as plataformas Windows, Linux e MacOS.
Possui uma interface web avançada que permite combinar código-fonte, textos, fórmulas, figuras e multimídia em um único documento.
Pode ser executado em um computador local ou servidor remoto.
Suporta mais de 50 linguagens de programação, entre os quais R, Julia e Scala.
Permite compartilhar documentos.
Podemos executar e visualizar imagens, vídeos, textos LaTeX e Markdown, além de manipular os resultados em tempo real.
Documentos feitos em Jupyter Notebook podem ser exportados para diferentes formatos (PDF, HTML, reStructeredText, LaTeX, Slides, Markdown e outros)
Para aprender sobre interface Jupyter Notebook, acesse este vídeo: https://www.youtube.com/watch?v=dPb4acFiaYs
Comandos básicos
Matemática elementar
Trigonometria
Na linguagem Python, o cálculo das funções trigonométricas são feitos em radianos. Para converter para um ângulo de grau para radinao, devemos importar a função radians(valor_grau)
do pacote math
As funções arco, ou funções trigonométricas inversas, retornan o valor correspondente, em graus ou radianos, do número calculado. São denotadas por asin()
, acos()
, atan()
, etc.
Instalação de pacotes
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: pandas in /ext/anaconda2021.11/lib/python3.9/site-packages (1.3.4)
Requirement already satisfied: python-dateutil>=2.7.3 in /ext/anaconda2021.11/lib/python3.9/site-packages (from pandas) (2.8.2)
Requirement already satisfied: pytz>=2017.3 in /ext/anaconda2021.11/lib/python3.9/site-packages (from pandas) (2021.3)
Requirement already satisfied: numpy>=1.17.3 in /ext/anaconda2021.11/lib/python3.9/site-packages (from pandas) (1.20.3)
Requirement already satisfied: six>=1.5 in /ext/anaconda2021.11/lib/python3.9/site-packages (from python-dateutil>=2.7.3->pandas) (1.16.0)
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: uncertainties in /ext/anaconda2021.11/lib/python3.9/site-packages (3.1.6)
Requirement already satisfied: future in /ext/anaconda2021.11/lib/python3.9/site-packages (from uncertainties) (0.18.2)
Defaulting to user installation because normal site-packages is not writeable
ERROR: You must give at least one requirement to install (see "pip help install")
Baixe o arquivo FexIFC.py. Coloque este arquivo na mesma pasta do arquivo ipynb.
Função
Basicamente, uma função em qualquer linguagem de programação, segue um conceito semelhante a uma função definida na matemática, no qual devemos substituir valores de uma variável em uma expressão algébrica e ela calcula o valor de saída. Dessa forma, podemos entender que uma função em uma linguagem de programação é como se fosse uma pequena "máquina" que recebe valores de entrada (chamados de argumentos), processa esses valores e devolve (return) um valor de saída.
Na linguagem Python, uma função segue o seguinte esquema:
Exemplo 1
Criar uma função que calcule , sendo .
Exemplo 2
Criar uma função que calcule o volume de um bloco retangular de cimento. Medidas: largura = 5,0cm, comprimento = 12,0 cm e altura = 7,0 cm.
Cálculo com incertezas com dados não repetidos
Incerteza de medida com equipamentos analógicos e digitais
Quando se faz uma medida com algum equipamento de medida, sempre há uma incerteza associada à medida realizada conforme o tipo de equipamentos utilizado. Uma medida é definida como:
medida = () sendo:
-> medida realizada por um instrumento de medida
-> incerteza da escala ou de medição do instrumento de medida
A incerteza da escala ou de medição depende do equipamento e cada um pode apresentar uma maior ou menor incerteza. e quanto menor a incerteza melhor a medição. A incerteza depende da natureza tecnológica do instrumento.
De acordo com o equipamento, podemos observar que quanto menor a incerteza, melhor a precisão da medida. O GUM (Guia para a Expressão de Incerteza de Medição) informa que:
É geralmente suficiente fornecer a incerteza com até no máximo dois algarismos significativos, embora, em alguns casos, seja necessário reter algarismos adicionais para evitar erros de arredondamento nos cálculos subsequentes.
Equipamentos de medida analógicos
De acordo com PIACENTINI et al (2012) a incerteza de escala em equipamentos analógicos é dado por:
Para uma régua ou trena comum, a menor divisão de escala é de 1mm (0,01 cm), logo, a incerteza da escala de medição é: . A medida do comprimento do parafuso da figura medido com esta régua, apresenta medida definida como:
ParseError: KaTeX parse error: Expected 'EOF', got '_' at position 18: …ext{comprimento_̲parafuso} = (2,…
Equipamentos de medida não analógico:
De acordo com PIACENTINI et al (2012) a incerteza de escala em equipamentos não-analógicos é dado por:
Para um paquímetro, a incerteza da escala é
Propagação de incertezas
Quando obtemos medidas, é natural utilizá-las em alguma equação ou função. Sabendo que cada medida há uma incerteza de medida, a propagação de incerteza de uma função que relaciona várias grandezas , cada uma definida como , , ..., . A incerteza do cálculo realizado com esta função será dada pela raiz quadrada dos quadrados das derivadas parciais das grandezas mutiplicado pelo quadrado das incertezas:
Exemplo 3
Como calcular a área da base e o volume do cubo abaixo
Exemplo 4
Como exemplo, vamos calcular a área frontal e o volume do cubo acima.
Cálculo com equações e sistemas lineares e não lineares
Exemplo 5
Calcular a raiz da função , sendo , e
Sitema de equações
Exemplo 6
Calcular o sistema linear formado por :
Cálculo diferencial e integral
Podemos definir a derivada em um ponto de uma função como sendo a taxa de variação instantânea de em relação a neste ponto. Geometricamente, a derivada de uma função em um ponto a fornece o coeficiente angular da reta tangente ao gráfico desta função no ponto .
A definição de integral de uma função no intervalo fechado é igual ao limite do somatório de cada um dos valores da função entre de 0 e n, multiplicados por
Integral indefinida:
Integral definida:
Tabela de derivadas e integrais
Exemplo 7
Dada a função sendo , calcular a derivada no ponto e a integral entre . Gráfico:
Importar arquivos de dados
Instalar pacote Pandas. Se ja instalou não precisa instalar novamente. Para processar o cálculo execute shit+enter no teclado ou toque em Run
Exemplo 8
Importar dos dados da aceleração g de Luzerna a partir de um arquivo CSV.
Cálculo da incerteza de dados repetidos
slides de referência
Histograma
O histograma é uma representação gráfica de uma distribuição de frequência de dados por meio de retângulos. Para dados experimentais repetidos de uma grandeza física, o histograma tende, conforme o número de medições, a uma curva normal. Para abaixo de 100 pontos de dados, é necessário ajustar a curva através da distribuição .
Média
A Média Aritmética de um conjunto de dados experimentais, é uma medida de tendência central, obtida somando todos os valores e dividindo o valor pelo número de dados desse conjunto. Indica o valor provável da medida.
Desvio Padrão
O desvio padrão é uma medida de dispersão de um conjunto de dados em torno de uma média. Quanto mais próximo de zero, melhor o dado do desvio padrão, ou seja, indica que os dados coletados do experimento estão mais uniforme possível.
Desvio da Média
Os dados de um experimento repetido tendem a formar uma curva no formato de "sino", conhecida como curva normal. Para ajustar os dados à uma curva normal, é necessário multiplicar a incerteza padrão por um número que corresponde ao coeficiente de student, que depende do número de dados e precisão da incerteza.
Parte II
Interpolação
Chapra e Canale (2008) definem a interpolação como a estimativa de valores entre pontos discretos bem conhecidos. A interpolação serve para determinar a correspondência -> y_{interp} entre dois pontos A(x1, y1) e B(x2, y2) conhecidos. Os resultados de medições experimentais fornecem, em geral, um conjunto de valores em pontos discreto. O processo de calcular os valores intermediários aos valores conhecidos é chamado interpolação. Os polinômios interpoladores de Lagrange formam uma classe específica de polinômios que podem ser usados para fazer o ajuste de um determinado conjunto de dados simplesmente a partir dos valores dos pontos (GILAT, 2008).
Exemplo 9
De acordo com o gráfico abaixo temos a variação das posições de um carro em função do tempo. Calcular a posição quando t = 3.5s
Referências Bibliográficas
CHAPRA, Steven C.; Canale. Raymond P. Métodos Numéricos para Engenharia, 5ª ed, McGraw Hill, 2008, ISBN: 978-85-86804-87-8.
GILAT, A.; Subramaniam, V. Métodos Numéricos para Engenheiros e Cientistas: Uma Introdução com Aplicações Usando o MATLAB. 1. ed. Bookman, 2008.
PIACENTINI, J.J. Introdução ao Laboratório de Física. Editora da UFSC, 2012.