Um parâmetro ajustado sem barra de erro está incompleto. Veremos como o curve_fit funciona, o que a matriz de covariância diz sobre a incerteza e a correlação dos parâmetros, e por que linearizar os dados para ajustar pode destruir o resultado, como em Lineweaver-Burk.
Maximizar só a conversão de um reator empurra temperatura e tempo para o limite, e essa é a resposta certa para a pergunta errada. Quatro problemas reais com scipy.optimize: o reator, o alcance de um projétil com arrasto, uma viga com três restrições e um mix de produção.
Derivar e igualar a zero resolve a otimização de livro-texto. Com várias variáveis, restrições ou função sem derivada tratável, a conta trava. Veremos minimize, SLSQP e bounds do scipy.optimize, os mínimos locais e a busca global com differential_evolution.
A fórmula clássica do período do pêndulo só vale para oscilações pequenas, e a equação exata não tem solução em forma fechada. Com o solve_ivp do SciPy, medimos o período de verdade e resolvemos sistemas rígidos, Lotka-Volterra, queda com arrasto e reações consecutivas.
A função gaussiana não tem primitiva elementar, e isso é um teorema de Liouville. Quando a primitiva não existe, ou só há uma tabela de medições, o caminho é numérico: quad, trapézio e Simpson, do scipy.integrate, com os cuidados que cada um pede.
A temperatura do reator está subindo rápido demais? A pergunta é uma derivada, mas só há números numa tabela. Veremos diferenças finitas, numpy.gradient e scipy.differentiate, e por que diminuir o passo nem sempre melhora a derivada, por causa do arredondamento e do ruído.
Dados experimentais raramente caem sobre uma curva. Veremos como o NumPy ajusta polinômios a dados com ruído, o que o SymPy não faz, por que extrapolar é perigoso e por que o fenômeno de Runge vem dos nós igualmente espaçados, e não do grau alto.
Guardados em float64, os coeficientes do polinômio de Wilkinson já não devolvem as raízes de 1 a 20: duas delas viram um par complexo. Antes de chegar a ele, vemos raízes, derivadas, integrais e divisão com numpy.polynomial e a armadilha da ordem dos coeficientes.
Do pH de um ácido fraco ao volume de um gás real e ao fator de atrito de uma tubulação: três equações que a química e a engenharia usam no dia a dia e que só têm solução numérica útil. Resolvemos as três com brentq e numpy.roots e reconstruímos o diagrama de Moody.
Onde está o Cometa Halley numa data qualquer? A resposta exige resolver a equação de Kepler, que não tem forma fechada. Com newton e brentq, do SciPy, localizamos o cometa, tornamos visível a lei das áreas e calculamos o alcance de um projétil com resistência do ar.
Na equação de Kepler, a incógnita aparece dentro e fora de um seno, e nenhuma álgebra a isola. Para casos assim, o SciPy aproxima a raiz. Veremos bisseção e brentq, o método de Newton e por que ele pode falhar, e os sistemas não lineares com fsolve e root.
A maioria das equações, integrais e equações diferenciais de problemas reais não tem solução em forma fechada, e o SymPy não as resolve. Esta série de 13 artigos mostra como NumPy e SciPy atacam esses problemas: raízes, polinômios, cálculo numérico, otimização e FFT.
Testar se um elemento está num set leva tempo constante em média, e numa lista o tempo cresce com o tamanho. Veremos como a teoria dos conjuntos vira código em Python: set e frozenset, compreensão, pertinência e inclusão, união, interseção e diferença, hash e aplicações práticas.
Toda operação de um processador se descreve com três operações lógicas: AND, OR e NOT. Vamos das portas e tabelas verdade aos teoremas, às leis de De Morgan e à simplificação de expressões, com o meio-somador como primeiro circuito e exemplos em Python.
Python não executa seu código linha a linha: antes, o CPython o compila para bytecode. Com os módulos tokenize, ast, compile e dis, acompanhamos uma expressão simples dos tokens à árvore sintática e ao bytecode, direto no interpretador.
Você escreve uma linha de código, e o processador só entende bits. Acompanhamos a tradução: montador em duas passagens, fases do compilador, ligação e carregamento. No caminho, o GCC reduz doze instruções a duas com -O2, e vemos onde ficam Python e Java entre compilar e interpretar.
Como os mesmos 32 bits guardam a distância entre galáxias e o diâmetro de um átomo? Dissecamos o IEEE 754: sinal, expoente com viés e mantissa com bit escondido, conversões à mão, infinito, NaN, subnormais e o épsilon de máquina.
Por que somar 0.1 e 0.2 não dá 0.3? Porque 0.1 é uma dízima periódica em binário. Convertemos frações entre bases por multiplicações sucessivas, vemos os bits de um float com struct e duas saídas práticas: inteiros para dinheiro e math.isclose para comparar.
Em Python, 5 and 6 devolve 6, e 5 & 6 devolve 4. Explicamos a diferença e os operadores bit a bit AND, OR, XOR, NOT e os deslocamentos, usados em máscaras que consultam, ligam, desligam e alternam bits. No fim, vemos de onde vem o 755 do chmod.
Para subtrair, o processador soma o primeiro número com o complemento do segundo, e um único somador faz as duas operações. Veremos o complemento de dois, por que 8 bits com sinal vão de -128 a +127 e como o overflow derrubou o Ariane 5 e travou o Pac-Man na fase 256.
As regras de soma e subtração da base 10 valem em qualquer base: muda só o valor que dispara o vai-um. Fazemos contas em binário, octal e hexadecimal, vemos por que com três parcelas o vai-um pode valer 2 e implementamos os dois algoritmos em Python.
Tanto o NumPy quanto o Pandas usam o conceito de eixo (axis), mas com diferenças sutis. No NumPy, ele refere-se à dimensão em que uma operação é realizada, enquanto no Pandas, indica a direção de uma operação. Este artigo apresenta exemplos do uso do axis em cada biblioteca.
Aprendemos em matemática que há regras para somar ou multiplicar matrizes. Mas, em problemas matemáticos computacionais, por vezes temos matrizes ou vetores que gostaríamos de somar ou multiplicar que não cumprem as exigências. Veremos neste artigo como o conceito de broadcasting do NumPy é útil nestes contextos e como ele se relaciona com quantização vetorial.
Caso esteja se aventurando em ciência de dados, muito provavelmente já viu um reshape em algum código. Talvez com um misterioso valor de -1 em uma das posições como reshape(-1, 1). Mas, afinal, o que significa isto? Por que por vezes precisamos transformar nossos dados para utilizar métodos de modelos no Scikit-Learn? É o que veremos neste artigo.
Métodos de Monte Carlo são algoritmos computacionais que se baseiam em amostras aleatórias para obter resultados numéricos. Neste artigo, veremos como podemos obter o valor de pi com esses métodos.
O número π é uma constante matemática que é a razão entre a circunferência de um círculo e seu diâmetro. Neste artigo, passaremos pela história do número π e aprenderemos um pouco de programação Python no caminho.
Um bom tempo do estudo de cálculo é destinado às chamadas séries infinitas. Mas, afinal, o que são séries infinitas? E qual sua relação com o paradoxo de Aquiles e a tartaruga, um dos chamados paradoxos de Zenão de Eleia, filósofo grego? Qual a relação com quântica e o princípio da incerteza? E onde entra Python nisto tudo? É o que descobriremos neste artigo.
As equações de balanço de massa são importantes para praticamente todos os cálculos na resolução de problemas de engenharia química. Nesse artigo, vamos resolver duas questões de balanço de massa utilizando a biblioteca SymPy e revisar alguns princípios importantes.
Já escrevemos aqui no site sobre os conceitos de limite e derivada e como podemos fazer contas relacionadas com Python. Seguindo na nossa jornada de cálculo, neste artigo veremos como trabalhar com integrais com o SymPy e o SciPy, pacotes da linguagem Python. No caminho, teremos algumas noções de métodos numéricos.
Sabia que a função max do Python possui muitas opções e formas de uso que pouca gente conhece? Neste post veremos diferentes formas de utilizar a função max em Python.
Engenheiros e cientistas sempre buscam extrair o máximo de desempenho de seus equipamentos e projetos com o mínimo de custo. Essa busca dá origem aos chamados problemas de otimização. Neste artigo, veremos como podemos utilizar a linguagem Python, com auxílio do pacote SymPy, na resolução de tais problemas.
Passamos parte considerável do tempo lidando com strings, então é importante sabermos como apresentá-las da forma desejada. É o que veremos neste artigo com diversos exemplos.
O início dos cursos de cálculo costuma ser abstrato pelo conceito de limite. Mas, logo passa a ser mais palpável com a introdução do conceito de derivada, que possui diversas aplicações práticas evidentes. Neste artigo, veremos como trabalhar com derivadas com o SymPy, pacote da linguagem Python.
O conceito de limite é o mais importante dentro do estudo de cálculo. Diversos outros conceitos e ideias se baseiam na definição de limite. Neste artigo, veremos como podemos achar o limite de funções usando o SymPy e como este pacote pode ser um auxílio didático no estudo de cálculo.
Números complexos são fascinantes e há muitas aplicações práticas. Neste artigo, veremos como a linguagem Python lida com números complexos nativamente e como o pacote SymPy amplia o poder da linguagem.
Nesse artigo, vamos explorar 3 bibliotecas químicas disponíveis para a linguagem Python, mostrando como elas são úteis na rotina de profissionais e estudantes de química.
O que ondas do mar, bolhas de sabão e DNA têm em comum? É o que mostro neste artigo, com a ajuda do Python. Veremos a relação de tais assuntos com funções trigonométricas.
Em programação, a palavra “lógica” pode se referir ou ao processo de elaboração de um algoritmo, ou a estruturas condicionais da linguagem, ou a operadores lógicos como E e OU. Nos dois últimos casos, estamos dentro da chamada lógica matemática.
Será que é possível estudar para o vestibular e ainda aprender Python? Sim, claro! Neste artigo, analisaremos uma questão da prova de 2020. É uma questão de química, mas que pode ser resolvida mais com raciocínio do que com química em si.
Neste artigo veremos como fazer gráficos com SymPy e Matplotlib. Usualmente quando se fala de SymPy focamos na parte relacionada à resolução de problemas de cálculos matemáticos. Mas muitos esquecem que a biblioteca possui alguns recursos básicos para construção de gráficos, que veremos neste artigo.
Grande parte do estudo de matemática em níveis mais fundamentais é dedicada a resoluções de equações e sistemas de equações. Neste artigo veremos como utilizar o SymPy para essas tarefas de forma rápida e intuitiva.
Você já viu o termo “yield from” em algum código Python e ficou imaginando o que era? Nesse artigo vamos nos aprofundar ainda mais em geradores e entender, com exemplos, o que significa o “yield from” e como podemos utilizá-lo para deixar nossos códigos ainda mais eficientes.
Você sabia que é possível criar uma sequência infinita sem ter problemas de memória e ainda consumir essa sequência da forma que você quiser? Hoje veremos um método específico do módulo itertools, o islice, que é excelente para nosso propósito. Aprenderemos a utilizá-lo com o exemplo da série de Fibonacci.
Neste artigo, vamos ver como funcionam as funções all e any, presentes numa instalação padrão da linguagem Python. E, mais, vamos ver a utilidade de cada uma dessas funções e cuidados ao utilizá-las com base em uma análise de complexidade.
Você sabe a diferença entre uma função “normal” e uma função geradora em Python? Qual a diferença entre o return de uma função usual e o yield de um gerador? Nesse artigo responderemos essas perguntas e ainda nos aprofundaremos em alguns aspectos da linguagem. Veremos como geradores em Python podem tornar seu código até 1000 vezes mais rápidos.
Os operadores and e or são operadores em curto-circuito, ou seja, o segundo operando só é avaliado se o resultado não puder ser determinado com base apenas no valor do primeiro operando. Confuso? Vamos ver alguns exemplos neste artigo.
As Olimpíadas estão acabando… e, além de saudades e histórias de superação, cada Olimpíada deixa uma enorme quantidade de dados! Nesse artigo, vamos ver como podemos usar o Pandas para analisar parte desses dados, verificando a evolução do tempo dos atletas em provas de atletismo.
Será que é possível estudar para o vestibular e ainda aprender Python? Sim, claro! E é esse um dos objetivos da série ENEM Tecnológico aqui do site. Nessa série, utilizaremos ferramentas computacionais para analisar e expandir questões do ENEM. No artigo de hoje, analisaremos uma questão da prova de 2019. E, de quebra, aprenderemos a fazer gráficos 3D e 4D(?!) com Matplotlib. Tudo devido a um tijolo assassino.
Incolor, de constituintes invisíveis e inodoro (espera-se!). Por vezes nos esquecemos que estamos rodeados de gases que constituem nossa atmosfera. Nesse artigo, vamos ver como podemos facilmente, com a linguagem Python, conseguir uma listagem dos principais constituintes do ar com web scraping. E, também, fazer algumas contas como, por exemplo, de densidade e de massa molar média e, claro, apresentar tudo em gráficos espetaculares.
Vamos ver como estruturar um pequeno projeto Python com auxílio de um exercício bem simples. Vou mostrar os passos para configurar qualquer editor ou IDE que você use, como trabalhar com controle de versão, no caso Git, e como desenvolver com testes (TDD – Test Driven Development).
Veremos as vantagens de utilizar um interpretador Python interativo em comparação com o interpretador padrão da linguagem. O IPython pode auxiliar nos estudos da linguagem e na produção de conteúdo associado a Python.
Conhecer expressões regulares, ou simplesmente regex, é muito útil, mas costuma ser um pouco assustador aos olhos de um iniciante. Neste artigo abordaremos o básico de regex utilizando Python
Você talvez já tenha passado pela seguinte situação: está escrevendo um trabalho ou fazendo uma pesquisa e encontra uma figura que apresenta dados interessantes, mas está com baixa qualidade ou você gostaria de adicionar ou retirar elementos da figura. No entanto, os dados que deram origem não estão disponíveis. Como sair desta situação? É o que veremos no artigo de hoje.
Usain Bolt é considerado por muitos o melhor velocista de todos os tempos. Nesse artigo, veremos como podemos utilizar a linguagem Python para saber a velocidade e aceleração atingidas pelo jamaicano em provas. Aproveitaremos para discutir um pouco sobre modelos matemáticos e cuidados na seleção e interpretação de seus resultados.
Neste artigo iremos detalhar como obter gráficos visualmente elegantes e que apresentam corretamente unidades em seus eixos. Combinaremos as bibliotecas pint, numpy e matplotlib.
Sempre que trabalhamos com medidas e com dados experimentais, precisamos expressar nossos valores com as respectivas unidades. Neste artigo, veremos uma biblioteca Python para trabalhar com unidades e o que isso tem a ver com cerveja.
Nesse artigo veremos como usar ambientes virtuais no gerenciamento de projetos Python. Veremos que é possível ter diferentes versões de Python, uma para cada projeto, e também como é feito o controle de pacotes e dependências.
Você já deve ter ouvido falar em data science ou machine learning. E, eventualmente, já ouviu falar ou teve contato com as linguagens R ou Python. O artigo de hoje é sobre o Anaconda, uma distribuição que visa facilitar a instalação e o gerenciamento de ferramentas dessas duas linguagens, visando especialmente aplicações na área científica.