Para realizar um ajuste linear com um algoritmo numérico em Python é necessário importar as bibliotecas numpy para fazer as manipulações dos arrays dos dados e a biblioteca matplotlib.pyplot para visualização do ajuste. O algoritmo do ajuste linear mostrado na Figura 1 foi retirado do material do curso online : "Inteligência artificial conceitos, temáticas, desenvolvimento e aplicações". Foi inserida a biblioteca "Time" e um comando no início e no fim do trecho de código com fator de multiplicação 1000 para que seja exibido tempo de execução em ms. Isso é interessante, pois o existem diferentes maneiras de se realizar um ajuste linear usando as bibliotecas do Python. Dessa forma você pode monitorar o desempenho da cada uma e escolher pela mais eficiente. Esse ajuste foi rodado no Googlecolab. Na Figura 2 estão os dados de temperatura e densidade do propilenoglicol com os comandos, a curva obtida e os parâmetros do modelo. O tempo de execução foi de 122 ms, no GoogleColab.
Outra forma de obter um ajuste linear em Python é através do uso da função lambda, para declarar a função que você quer utilizar como modelo para a série de dados
e a biblioteca scipy.optimize (função curve_fit). Também deverão ser declaradas as bibliotecas numpy e matplotlib.pyplot. Ver Figura 3 . Para o mesmo
conjunto de dados o tempo de execução foi de 94 ms e os parâmetros da curva foram praticamente os mesmos.
Na Figura 4 foi utilizado um polinômio de grau 3 como função lambda para ajustar a densidade da água, com um bom resultado para o máximo da curva e com bom ajuste para para valores de temperatura à esquerda do máximo, o que não acontece com o uso de uma parábola como modelo. O tempo de execução foi de 206 ms no GoogleColab e a solução é bastante simples, pois não é necessário de um algoritmo para o ajuste, tampouco definir uma função para o polinômio - são usados as funções da biblioteca do Python.
Na págia 260 da apostila gratuita disponível no site da ABEQ "Métodos Numéricos para Engenheiros Químicos- Algoritmos e aplicações" é proposto um exercício para encontar os parâmetros de um modelo de perfil de velocidade de um fluido em escoamento do tipo u(y)= p*y + q*y2, onde y é a distância da parede em centímetros e u é a velocidade em cm/s medida através de fotografias estroboscópicas de pequenas bolhas de ar. Na Figura 5 é apresentada a solução em Python utilizando função lambda e curve_fit. Tempo de execução no GoogleColab de 97 ms.
Desenvolvimento : Química Programada