def findCol(self, poly): """ Function to do the polynomial division to be added into generator Matrix """ aux = [0] * deepcopy(self.n - self.k) aux.append(1) poly = Polynomial(poly) poly *= aux quo, rem = divmod(poly, Polynomial(self.p)) poly += rem poly = list(poly) for i in range(len(poly)): poly[i] = int(poly[i]) % 2 while len(poly) < self.n: poly.append(0) return poly
def trapy(): global h global imp with open('data.txt', 'w') as fp: fp.write("") # inp = input("Informe o A e o B da integração\n").split() # janelinha_trape("Informe o A e o B da integração", # "Numero de Pontos tabelados", " Informe o função f(x) para ser integrada") ab = [float(x) for x in imp] # n = int(input("Numero de Pontos tabelados \n")) h = round((ab[1] - ab[0])/(n-1), 1) print("h=(b-a)/n-1") print("{} = ({}-{})/{}-1".format("h", ab[1], ab[0], n)) global pontos for i in range(n): if i == 0: pontos.append(ab[0]) elif i == (n-1): pontos.append(ab[1]) else: pontos.append(pontos[i-1]+h) pontos = [round(ponto, 1) for ponto in pontos] print("Espaçamento: {} \nPontos: {}".format(h, pontos)) # print(" Informe o função f(x) para ser integrada \n") # expr_trap = input() global f_pontos for x in range(len(pontos)): t = x x = pontos[x] print(i, end=" ") f_pontos.append(eval(expr_trap)) print(f_pontos[t]) x = t f_pontos = [round(ponto, 7) for ponto in f_pontos] P = [] I = [] print(n) for i in range(n): if(i % 2 == 0 and i != 0 and f_pontos[i] != f_pontos[-1]): print P.append(f_pontos[i]) elif (f_pontos[i] != f_pontos[-1] and i % 2 != 0): I.append(f_pontos[i]) E = (f_pontos[0] + f_pontos[-1]) p, i = np.sum(P), np.sum(I) print("trapezio= h[E/2 + P + I]") print("{}[{}/2 + {} + {}]".format(h, E, p, i)) global trapezio trapezio = h*(E/2 + p + i) # trap = np.trapz(f_pontos, x=pontos, dx=h) lis = [] lis_f = [] for ponto in pontos: lis.append(ponto) lis_f.append(f_pontos[pontos.index(ponto)]) data = {"Xi": lis, "F(Xi)": lis_f} data["valor"] = trapezio with open('data.txt', 'a') as fp: json.dump(data, fp) df = DataFrame(data=data) # plt.scatter(data["Xi"], data['F(xi)']) plt.show() ax = df.plot.bar(x="Xi", y="F(Xi)", rot=ab[0]) print("trapezio manual: {} ".format(trapezio)) return trapezio