Как оценить параметр при численном интегрировании

Я хотел бы оценить правильный параметр k для моих экспериментальных данных, но я не знаю, как это кодировать. Я использую ноутбук Colab.

Исходный файл - экспериментальные данные - petroleo.csv

time    conc_pretoleo
0   1375
7   802
14  695
21  588
28  417
35  356
42  275

Вот код

# importando os pacotes do python
import numpy as np;
from scipy.optimize import curve_fit
import io
from google.colab import files
import pandas as pd
import matplotlib.pyplot as plt
from scipy.integrate import odeint

#carregar o arquivo em csv
uploaded = files.upload()

for fn in uploaded.keys():
    print('O arquivo "{name}" com tamanho de {length} bytes'.format(
    name=fn, length=len(uploaded[fn])))

calibracao_df = pd.read_csv(io.StringIO(uploaded['petroleo.csv'].decode('utf-8')))

calibracao_df

calibracao_np = calibracao_df.values

calibracao_np

x = calibracao_np[:,0]
y = calibracao_np[:,1]

#plotting the data
plt.plot(x, y, "o", label = "pontos experimentais")
plt.xlabel("x")
plt.ylabel("y")
plt.rcParams['figure.figsize'] = (11,7)
plt.legend()
plt.show()

#Numeric integration
def firstorder(Ca,t):
    k = 1 # how to adjust this parameter?
    dydt = -k*Ca
    return dydt

t = x
Ca0 = y[0]

yfit = odeint(firstorder, Ca0, t)
print(yfit)

# plotting the data and model
plt.plot(x, y, "o", label = "pontos experimentais")
plt.plot(x, yfit, "-r", label = "modelo")
plt.xlabel("x")
plt.ylabel("y")
plt.rcParams['figure.figsize'] = (11,7)
plt.legend()
plt.show()

В последней части я не знаю, как создать цикл для интеграции и настройки параметра k. Спасибо.

0 ответов

Другие вопросы по тегам