import pandas as pd import numpy as np #Leo el archivo txt file="pendulo.txt" Misdatos = np.loadtxt(file, delimiter="\t",skiprows=4) #Datos ordenados col1 : x, col 2: y1 x1 = Misdatos[:,0] y1= Misdatos[:,1] #y2=y1**2 #print (Misdatos) def ajustecm2(x, y): ''' Ajuste de cuadrados minimos de una cuadratica del tipo: y(x) = a x + b Modo de uso: In [ ]: a, b, sigmaa, sigmab, r2 = ajustecm2(x, y) ''' import numpy as np coefs, covmat =np.polyfit(x, y, 1, full=False, cov=True) a = coefs[0] b = coefs[1] sigmaa = covmat[0,0] sigmab = covmat[1,1] # r cuadrado p = np.poly1d(coefs) # valores auxiliares yfit e ymed yfit = p(x) ymed = np.sum(y)/len(y) ssreg = np.sum((yfit - ymed)**2) sstot = np.sum((y - ymed)**2) r2 = (ssreg/sstot) return a, b, sigmaa, sigmab, r2 Result=ajustecm2(x1, y1) print("T^2 = a L + b ") print ("a=",Result[0],", b=",Result[1],", sigmaa=",Result[2],", sigmab=",Result[3],", r^2=",Result[4])