{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"provenance":[],"authorship_tag":"ABX9TyNw6Izi4MiNoUa/RQnpMEMU"},"kernelspec":{"name":"python3","display_name":"Python 3"},"language_info":{"name":"python"},"accelerator":"GPU","gpuClass":"standard"},"cells":[{"cell_type":"code","source":["#Clone the GitHub repository\n","!git clone https://github.com/gdacanal/zea5887fzea.git"],"metadata":{"id":"2e6HtBJdixoP"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["import os\n","\n","os.chdir('/content/zea5887fzea')"],"metadata":{"id":"b0ody7Poi6fN"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["#List files in the current directory\n","%%shell\n","ls"],"metadata":{"id":"keTlLdBmjBRM"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["#Optional (mount Google Drive)\n","from google.colab import drive\n","drive.mount('/content/drive/')"],"metadata":{"id":"Bexu3d_2nj50"},"execution_count":null,"outputs":[]},{"cell_type":"code","execution_count":null,"metadata":{"id":"W8m3x7ZdlS0e"},"outputs":[],"source":["# Importar os pacotes e bibliotecas\n","import numpy as np\n","import matplotlib.pyplot as plt\n","import pandas as pd\n","from scipy.optimize import curve_fit\n","pi = np.pi\n","\n","# To read the excel file N_init.xls into a array\n","data = pd.read_excel('Eaula06ex2PlanilhaCineticaFit.xlsx', usecols = \"A,B\")\n","data = data.values\n","print(data[:,1])\n"]},{"cell_type":"code","source":["# Comprimento do vetor ou numero de linhas\n","n = len(data)\n","\n","# Criar um vetor nulo\n","XR = np.zeros(n)\n","\n","# Calcular o valor de XR\n","for i in range(n):\n"," XR[i] = (data[i,1]-0.21)/(5.34896-0.21)\n","\n","print(XR)\n","\n","X = data[:,0]\n","Y = XR\n","\n","plt.plot(X,Y,'ro')\n","plt.grid(True)\n","plt.xlabel('Tempo (s)'); plt.ylabel('XR (-)')\n","plt.show()\n","\n","\n","# Ajuste pela biblioteca \"curve fit\"\n","from scipy.optimize import curve_fit\n","xData = data[:,0]\n","yData = XR\n","\n","def func(x, a, k):\n"," return a*np.exp(-k*x)\n","\n","initialParameters = [1, 0.0002]\n","\n","# curve fit sobre os dados\n","fittedParameters, pcov = curve_fit(func, xData, yData, initialParameters)\n","\n","modelPredictions = func(xData, *fittedParameters) \n","\n","absError = modelPredictions - yData\n","\n","SE = np.square(absError) # squared errors\n","MSE = np.mean(SE) # mean squared errors\n","RMSE = np.sqrt(MSE) # Root Mean Squared Error, RMSE\n","Rsquared = 1.0 - (np.var(absError) / np.var(yData))\n","\n","print('Parameters:', fittedParameters)\n","print('RMSE:', RMSE)\n","print('R-squared:', Rsquared)\n","\n","print()\n","\n","# Criar o grafico com o modelo ajustado\n","plt.plot(X,Y,'ro')\n","plt.plot(X,modelPredictions,'-')\n","plt.grid(True)\n","plt.xlabel('Tempo (s)'); plt.ylabel('XR (-)')\n","plt.show()"],"metadata":{"id":"5UXo7jHFmdVP"},"execution_count":null,"outputs":[]}]}