예제 #1
0
def test_zeros():
    zeros = [
        labfloat(),
        labfloat(0),
        labfloat(0.0),
        labfloat(0, 0),
        labfloat(0.0, 0.0),
        labfloat(0.0, 0),
        labfloat(0, 0.0),
    ]

    for z1, z2 in combinations(zeros, 2):
        print(z1, z2)
        assert list(z1) == list(z2)
예제 #2
0
파일: parte3.py 프로젝트: hlouzada/labfis3
import matplotlib.pyplot as plt
import numpy as np
from labfis import labfloat
import lmfit

dados = np.loadtxt('parte3-dados')

N1 = np.array([labfloat(k[0], k[1]) for k in dados])
V1 = np.array([labfloat(k[2], k[3]) for k in dados])
N2 = np.array([labfloat(k[4], k[5]) for k in dados])
V2 = np.array([labfloat(k[6], k[7]) for k in dados])

N2N1 = N2 / N1
V2V1 = V2 / V1

with open("parte3-tabela.txt", "w") as out:
    out.write("\t ".join(["N1", "V1", "N2", "V2", "N2/N1", "V2/V1"]) + "\n")
    for j in range(len(N1)):
        out.write("\t ".join([
            str(N1[j]),
            str(V1[j]),
            str(N2[j]),
            str(V2[j]),
            str(N2N1[j]),
            str(V2V1[j])
        ]) + "\n")

x = [float(x) for x in N2N1]
y = [float(y) for y in V2V1]

relacao = lambda x, alpha, beta: alpha * x + beta
예제 #3
0
파일: parte1.py 프로젝트: hlouzada/labfis3
import matplotlib.pyplot as plt
import numpy as np
from labfis import labfloat
import lmfit

dados = np.loadtxt('hall')

v = np.array([labfloat(k[0],k[1]) for k in dados])
i =np.array([labfloat(k[2],k[3]) for k in dados])

print("V:", v)
print("I:", i)

mo = 4*np.pi*1e-7
n = 760/labfloat(0.148,0.001)

print("n:",n)

vh = v - labfloat(9.4e-3,0.1e-3)
b = mo*i*n

print("Vh:", vh)
print("B:", b)


with open("tabelahall.txt", "w") as out:
    out.write("\t ".join(["I","V","Vh","B"])+"\n")
    for j in range(len(i)):
        out.write("\t ".join([str(i[j]),str(v[j]),str(vh[j]),str(b[j])]) + "\n")

y = [float(y) for y in vh]
예제 #4
0
파일: parte2.py 프로젝트: hlouzada/labfis3
import matplotlib.pyplot as plt
import numpy as np
from labfis import labfloat
import lmfit

dados = np.loadtxt('hallterminais')
calibracao = np.loadtxt('calibracao.txt')

calibracao = labfloat(*calibracao)

r = np.array([labfloat(k[0], k[1]) for k in dados])
vh = np.array([labfloat(k[2], k[3]) for k in dados])

print("r:", r)
print("Vh:", vh)

mo = 4 * np.pi * 1e-7

b = vh / calibracao

print("B:", b)

with open("tabelafiocampo.txt", "w") as out:
    out.write("\t ".join(["r", "Vh", "B"]) + "\n")
    for j in range(len(r)):
        out.write("\t ".join([str(r[j]), str(vh[j]), str(b[j])]) + "\n")

y = [float(y) for y in b]
x = [float(x) for x in r]

campo = lambda r, alpha: alpha / r
예제 #5
0
파일: parte1.py 프로젝트: hlouzada/labfis3
import matplotlib.pyplot as plt
import numpy as np
from labfis import labfloat
import lmfit

dados = np.loadtxt('parte1-dados')

f = np.array([labfloat(k[0], k[1]) for k in dados])
epsilon = np.array([labfloat(k[2], k[3]) for k in dados])
Vr = np.array([labfloat(k[4], k[5]) for k in dados])

R = labfloat(10, 1)

N1 = 760
l1 = labfloat(15e-2, 1e-2)
r1 = labfloat(2.25e-2, 0.01e-2)
n1 = N1 / l1

N2 = 2100
l2 = labfloat(6e-2, 1e-2)
r2 = labfloat(0.75e-2, 0.01e-2)
n2 = N2 / l2

mu0 = 1.26e-6

I = Vr / R
omega = 2 * np.pi * f
omegaI = omega * I

for name in ["f", "epsilon", "Vr", "I", "omega", "omegaI"]:
    print(name + ":", eval(name))
예제 #6
0
plt.yscale('log')

capacitor = lambda t, Vo, Tal: np.log10(Vo) - t / Tal * np.log10(np.e)
cmodel = lmfit.Model(capacitor)
params = cmodel.make_params(Vo=vo, Tal=tal)
result = cmodel.fit(np.log10(vc), params, t=t)
res = result.fit_report()

print(res)

coefs = res[res.find("[[Variables]]") +
            13:res.find("[[Correlations]]")].split("\n")[1:3]
coefs = [coef.split() for coef in coefs]

Tal = labfloat(coefs[1][1], coefs[1][3])

R = labfloat(224e3, 1e3)

C = Tal / R

print("C = {0}".format(C))

xs = np.linspace(1.5, 34, 200)
ys = np.array([
    capacitor(xs[j], float(coefs[0][1]), float(coefs[1][1]))
    for j in range(len(xs))
])

plt.plot(xs,
         10**ys,
예제 #7
0
import matplotlib.pyplot as plt
import numpy as np
from labfis import labfloat
import lmfit

dados = np.loadtxt('helmholtz')
calibracao = np.loadtxt('calibracao.txt')

calibracao = labfloat(*calibracao)

z = np.array([labfloat(k[0], k[1]) for k in dados])
vh = np.array([labfloat(k[2], k[3]) for k in dados])

print("z:", z)
print("Vh:", vh)

mo = 4 * np.pi * 1e-7

b = vh / calibracao

print("B:", b)

i = labfloat(1, 1)
a = labfloat(0.14, 0.01)
N = 130

with open("tabelahelmholtz.txt", "w") as out:
    out.write("\t ".join(["z", "Vh", "B"]) + "\n")
    for j in range(len(z)):
        out.write("\t ".join([str(z[j]), str(vh[j]), str(b[j])]) + "\n")
예제 #8
0
파일: parte1.py 프로젝트: hlouzada/labfis3
capacitor = lambda t,Vo,Tal: Vo*(1-np.exp(-t/Tal))
cmodel = lmfit.Model(capacitor)
params = cmodel.make_params(Vo=vo,Tal=tal)
result = cmodel.fit(vc, params, t=t)
res = result.fit_report()

print(res)

coefs = res[res.find("[[Variables]]")+13:res.find("[[Correlations]]")].split("\n")[1:3]
coefs = [coef.split() for coef in coefs]

xs = np.linspace(1.5,34,200)
ys = np.array([capacitor(xs[j],float(coefs[0][1]),float(coefs[1][1])) for j in range(len(xs))])

Tal = labfloat(coefs[1][1],coefs[1][3])

R = labfloat(97e3,1e3)

C = Tal / R

print("C = {0}".format(C))

plt.figure()

plt.rcParams.update({'font.size': 10})

plt.plot(xs, ys,'-',label=r'$V_o(1-e^{\frac{-t}{\tau}})$',linewidth=1.8,color='#adadad',zorder=0)
plt.scatter(t, vc, label='Dados', color='#212121', s=25,zorder=5)

plt.xlabel(r'$t\,(s)$',fontsize=10)
예제 #9
0
def test_attrs():
    x = labfloat(10, 1)
    assert x.mean == 10 and x.uncertainty == 1
예제 #10
0
    def test_neg_mean():
        x = labfloat(243, 2)
        y = labfloat(-243, 2)
        y = -y

        assert list(x) == list(y)
예제 #11
0
    def test_neg_uncertainty():
        x = labfloat(243, 2)
        y = labfloat(243, -2)

        assert list(x) == list(y)
예제 #12
0
    def test_pos():
        x = labfloat(100, 4)
        y = +x

        assert list(x) == list(y)
예제 #13
0
def test_indexing():
    assert labfloat(10, 2)[:] == (10, 2)
예제 #14
0
import matplotlib.pyplot as plt
import numpy as np
from scipy.signal import find_peaks
from labfis import labfloat

vc,vce,vi,vie = np.loadtxt('fonte').T

vc = np.array([labfloat(vc[j],vce[j]) for j in range(len(vc))])

vi = np.array([labfloat(vi[j],vie[j]) for j in range(len(vi))])

print(vc)
print(vi)

cor = vi/4.7
rc = vc/cor
re = rc + 4.7
pext = re*cor**2

print(cor)
print(rc)
print(re)
print(pext)

with open("tabelafonte.txt", "w") as out:
    out.write("\t ".join(["Vc","Vi","I","Rc","Re","Pe"])+"\n")
    for i in range(len(vc)):
        out.write("\t ".join([str(vc[i]),str(vi[i]),str(cor[i]),str(rc[i]),str(re[i]),str(pext[i])]) + "\n")

maxs, _ = find_peaks(pext)
예제 #15
0
import matplotlib.pyplot as plt
import numpy as np
from labfis import labfloat
import lmfit

dados = np.loadtxt('parte2-dados')

V = np.array([labfloat(k[0], k[1]) for k in dados])
I = np.array([labfloat(k[2], k[3]) * 1e-3 for k in dados])

R = labfloat(48.5, 0.1)

RL = labfloat(14, 1)

print("R_L teorico:", RL)

N = 1000

L = 44

mu0 = 1.26e-6

x = [float(x) for x in I]
y = [float(y) for y in V]

relacao = lambda x, alpha, beta: alpha * x + beta
cmodel = lmfit.Model(relacao)
params = cmodel.make_params(alpha=float(R), beta=0)
result = cmodel.fit(y, params, x=x)
res = result.fit_report()
예제 #16
0
def test_infix():
    for _ in range(200):
        x, e = uniform(-2e50, 2e50), uniform(-2e50, 2e50)
        assert labfloat(x, e) == x | u | e == x << u >> e
예제 #17
0
pmodel = lmfit.Model(ponte)

params = pmodel.make_params(ar=0.7, R3=222, V=10)

result = pmodel.fit(vg, params, R4=r4)

res = result.fit_report()

print(res)

coefs = res[res.find("[[Variables]]") +
            13:res.find("[[Correlations]]")].split("\n")[1:5]

coefs = [coef.split() for coef in coefs]

Va = labfloat(float(coefs[2][1]), float(coefs[2][3]))
R3a = labfloat(float(coefs[1][1]), float(coefs[1][3]))
Ar = labfloat(float(coefs[0][1]), float(coefs[0][3]))
Vga = labfloat(0)

R4V0 = R3a * ((1 / (Ar - Vga / Va)) - 1)

print()

print("R_4 for Vg = 0: {0}".format(R4V0))

#u = "{:g}".format(u).split("e")

#R4V0 = "({:g}".format(R4V0.mean)+"\pm "+u[0]+")"
R4V0 = "(" + "\pm".join(R4V0.split()) + ")"
예제 #18
0
파일: parte2.py 프로젝트: hlouzada/labfis3
import numpy as np
from labfis import labfloat
import matplotlib.pyplot as plt
import lmfit

vo = labfloat(9, 1)

c1 = labfloat(913e-6, 1e-6)
c2 = labfloat(1958e-6, 1e-6)

vi = labfloat(9, 1)
vf = labfloat(2.88, 0.01)

qi = lambda c1, vi: c1 * vi
qf = lambda c1, c2, vf: (c1 + c2) * vf
ui = lambda c1, vi: 1 / 2 * c1 * vi**2
uf = lambda c1, c2, vf: 1 / 2 * (c1 + c2) * vf**2

res = [qi(c1, vi), qf(c1, c2, vf), ui(c1, vi), uf(c1, c2, vf)]

print("Carga e Energia Armazenada Antes do Contato:")
print("Qi = {0}\nUi = {2}".format(*res))
print()
print("Carga e Energia Armazenada Depois do Contato:")
print("Qf = {1}\nUf = {3}".format(*res))

dados = np.loadtxt('associacao')

c1 = np.array([labfloat(k[0], k[1]) for k in dados])
c2 = np.array([labfloat(k[2], k[3]) for k in dados])