ARQUIVOS FÍSICA EXPERIMENTAL IFC LUZERNA PROF JOÃO MARCELLO
License: MIT
ubuntu2004
"""1Arquivo para cálculo diversos com incertezas2Version: 1.0 @ 20223Author: João Marcello Pereira. (joao.pereira at ifc.edu.br)4License: MIT License (https://opensource.org/licenses/MIT)5"""67from scipy.misc import derivative8from uncertainties import *9from uncertainties.umath import *10from uncertainties import unumpy11from numpy import *12#from math import *1314def derivada(f, x0, ord = 1):15return derivative(f, x0, n = ord)")1617## Função raiz de uma equação18def XraizN(f, x0 = 1.0, max_passos = 100, tolerancia = 1e-6):1920xn = x021passo = 12223while(passo <= max_passos and abs(f(xn)) > tolerancia and abs(derivative(f, xn)) > tolerancia):24xn -= f(xn)/derivative(f, xn)25passo += 12627if(abs(derivative(f, xn)) <= tolerancia):28print("Erro! O valor da derivada da função está próximo de zero!", xn)2930elif (passo >= max_passos):31print("Erro! Limite de passos estourados sem encontrar o resultado")3233else:34return xn35#Wrap36raiz = wrap(XraizN)373839# Função integral40def Xmod_simpson(f, a, b, passos=1000):41h = (b - a)/float(passos)42a1 = a + h/2.04344s1 = sum(f(a1 + i*h) for i in range(0, passos))45s2 = sum(f(a + i*h) for i in range(1, passos))4647return (h/6.0)*(f(a) + f(b) + 4.0*s1 + 2.0*s2)4849# Wrap50integral = wrap(Xmod_simpson)515253# Função interpolação54def XinterpL(x, x_dados, y_dados):55pontos = tuple(zip(x_dados, y_dados))56n = len(pontos) - 15758def L(i, x):59Li = 160for j in range(n + 1) :61if(i != j):62Li = Li*(x - pontos[j][0])/(pontos[i][0] - pontos[j][0])63return Li6465def Lagrange(x):66p = 067for i in range(n + 1):68p = p + pontos[i][1]*L(i, x)69return p7071return Lagrange(x)72#Wrap73interpolacao = wrap(XinterpL)7475