analisis de datos ionizacion

7

Click here to load reader

Upload: oscar-hurtado

Post on 08-Jul-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Analisis de Datos Ionizacion

8/19/2019 Analisis de Datos Ionizacion

http://slidepdf.com/reader/full/analisis-de-datos-ionizacion 1/7

Anexo 2. Analisis de datos ionizacion

March 5, 2016

1 Analisis de datos, potencial de ionizacion.

In [130]:   using   PyPlot

using   LsqFit

In [251]:   import   Base:   ^

^(a::Array{Number,1},b::Integer)=[a[i]=a[i]^b   for   i   in   1:length(a)]

^(a::Array{Number,1},b::Number)=[a[i]=a[i]^b   for   i   in   1:length(a)]

^(a::Array{Int64,1},b::Int64)=[a[i]=a[i]^b   for   i   in   1:length(a)]^(a::Array{Int64,1},b::Int64)=[a[i]=a[i]^b   for   i   in   1:length(a)]

^(a::Array{Float64,1},b::Int64)=[a[i]=a[i]^b   for   i   in   1:length(a)]

^(a::Array{Float64,1},b::Int64)=[a[i]=a[i]^b   for   i   in   1:length(a)]

^(a::Array{Float64,1},b::Float64)=[a[i]=a[i]^b   for   i   in   1:length(a)]

^(a::Array{Float64,1},b::Float64)=[a[i]=a[i]^b   for   i   in   1:length(a)]

^(a::Array{Int64,1},b::Float64)=[a[i]=a[i]^b   for   i   in   1:length(a)]

^(a::Array{Int64,1},b::Float64)=[a[i]=a[i]^b   for   i   in   1:length(a)]

Out[251]:   ^ (generic function with 59 methods)

In [172]:   mat1=readdlm("1dacorrida.dat")

 mat2=readdlm("2dacorrida.dat")

 mat3=readdlm("3dacorrida.dat") mat4=readdlm("4dacorrida.dat")

 mat5=readdlm("5dacorrida.dat")

 mat6=readdlm("6dacorrida.dat")

 mat7=readdlm("7dacorrida.dat")

 mat8=readdlm("8dacorrida.dat")

 mat9=readdlm("9dacorrida.dat")

 mat10=readdlm("10dacorrida.dat");

In [385]:   function   ajustelineal{T<:Number}(mat::Array{T,2},N1::Int64,N2::Int64)

#N1=cantidad de puntos para ajustar la primer recta 

#N2=cantidad de puntos para ajusta la segunda recta 

parejas=size(mat)[1]

V=zeros(parejas)I=zeros(parejas)

for   i   in   1:parejas

V[i]= mat[i,2]

I[i]= mat[i,3]

end

plot(V,I,"b.")

xlabel(L"V \ [volts]")

ylabel(L"I \ [mA]")

grid("on")

1

Page 2: Analisis de Datos Ionizacion

8/19/2019 Analisis de Datos Ionizacion

http://slidepdf.com/reader/full/analisis-de-datos-ionizacion 2/7

Page 3: Analisis de Datos Ionizacion

8/19/2019 Analisis de Datos Ionizacion

http://slidepdf.com/reader/full/analisis-de-datos-ionizacion 3/7

In [388]:   p1,p2,E1,E2,Vion,Iion,dVp=ajustelineal(mat10,15,10);

[0.8259999999773859,-0.25066666654345376]

[64.79412628375566,-716.3105139368283]

[-0.017419637439040278,-0.09487974037010044]

[-5.486325711914847,-64.91902240980426]

EL POTENCIAL DE IONIZACI´ON ES 11.19401003077172.415378816553428

La incertidumbre de potencial es 1.3970326996014575

In [370]:   function   rectificada{T<:Number}(mat::Array{T,2},N1::Int64,N2::Int64)

parejas=size(mat)[1]

V=zeros(parejas)

I=zeros(parejas)for   i   in   1:parejas

V[i]=log(mat[i,2]+1.25)

I[i]=log(mat[i,3])

#V[i]=mat[i,1]

#I[i]=mat[i,3]

end

plot(V,I,"b.")

#xlabel(L"ln(V) ")

3

Page 4: Analisis de Datos Ionizacion

8/19/2019 Analisis de Datos Ionizacion

http://slidepdf.com/reader/full/analisis-de-datos-ionizacion 4/7

#ylabel(L"ln(I)")

savefig("ajuste1.jpg")

 model(x,p)=p[1]x+p[2]

#ajuste de la recta en la primera zona 

x1=zeros(N1)

y1=zeros(N1)

for   i   in   1:N1x1[i]=V[i]

y1[i]=I[i]

end

fit1=curve_fit(model,x1,y1,[0.5,0.5])

p1=fit1.param

#ajuste de la segunda recta 

x2=zeros(N2)

y2=zeros(N2)

for   i   in   1:N2

x2[i]=V[parejas-N2+i]

y2[i]=I[parejas-N2+i]

end

fit2=curve_fit(model,x2,y2,[0.5,0.5])p2=fit2.param

errors1   =  estimate_errors(fit1)

errors2=estimate_errors(fit2)

#arreglos para lagrafica de las rectas

n=100

x1=zeros(n)

x2=zeros(n)

y1=zeros(n)

y2=zeros(n)

x1=linspace(1,2.5,n)

x2=linspace(2.4,2.6,n)

[y1[i]= model(x1[i],p1)   for   i   in   1:n][y2[i]= model(x2[i],p2)   for   i   in   1:n]

plot(x1,y1,"r")#,label=L"ln(I)=(1.011 \pm 0.020 )lnV +(-0.291 \pm 0.028)")

plot(x2,y2,"g")#,label=L"ln(I)=(16.333 \pm 0.443)lnV+(-36.328 \pm 1.091 )")

#plot(x1,y1,"r",label=L"log(I)=(1.6581 \pm 0.2438)V +(4.6156 \pm 1.1108)")

#plot(x2,y2,"g",label=L"log(I)=(0.0274 \pm 0.0047)V-(0.3638 \pm 0.0254)")

#title(L"Ajuste \ para \ encontrar \ V_i ")

#legend(loc="best",fancybox="true",fontsize="medium")

xlabel(L"ln(V)",size=20)

ylabel(L"ln(I)",size=20)

println(p1),println(p2),println(errors1),println(errors2)

savefig("ajuste10corrida.jpg")

#calculo de la interseccion de las rectas:

Vion=(p2[2]-p1[2])/(p1[1]-p2[1])

Iion= model(Vion,p1)

println(Vion)

println("El potencial de ionizacion es ",exp(Vion))

#incertidumbre en el potencial

a=-(p2[2]-p1[2])/((p1[1]-p2[1])^2)

b=-1/(p1[1]-p2[1])

c=(p2[2]-p1[2])/((p1[1]-p2[1])^2)

d=-b

4

Page 5: Analisis de Datos Ionizacion

8/19/2019 Analisis de Datos Ionizacion

http://slidepdf.com/reader/full/analisis-de-datos-ionizacion 5/7

suma=a^2*(errors1[1]^2)+b^2*(errors1[2]^2)+c^2*(errors2[1]^2)+b^2*(errors2[2]^2)

dVp=sqrt(suma)

println("La incertidumbre de potencial es ",exp(dVp))

return   p1,p2, errors1, errors2, Vion,Iion,dVp

end

Out[370]:   rectificada (generic function with 1 method)

In [372]:   p1,p2,E1,E2,Vion,Iion,dVp=rectificada(mat10,17,12)

[1.4359412617403033,-1.293743189731878]

[16.558684527153197,-38.706620831898476]

[0.04568587660418561,0.08580136260700405]

[0.9377438504259308,2.4038858759083945]

2.4739478139348763

El potencial de ionizacion es 11.869211921231278

La incertidumbre de potencial es 1.2474599765242935

Out[372]: ([1.43594,-1.29374],[16.5587,-38.7066],[0.0456859,0.0858014],[0.937744,2.40389],2.4739

In [383]:   function   child{T<:Number}(mat::Array{T,2},N1::Int64)

parejas=size(mat)[1]

V=zeros(parejas)

I=zeros(parejas)

5

Page 6: Analisis de Datos Ionizacion

8/19/2019 Analisis de Datos Ionizacion

http://slidepdf.com/reader/full/analisis-de-datos-ionizacion 6/7

for   i   in   1:parejas

V[i]= mat[i,1]+1.25

I[i]= mat[i,3]

#V[i]=mat[i,2]

#I[i]=mat[i,3]

endplot(V,I,"b.")

xlabel(L"V ")

ylabel(L"I")

 model(x,p)=p[1]*x^(3/2)+p[2]#^(3/2)

#ajuste de la recta en la primera zona 

x1=zeros(N1)

y1=zeros(N1)

for   i   in   1:N1

x1[i]=V[i]

y1[i]=I[i]

end

fit1=curve_fit(model,x1,y1,[1.3,0.0])p1=fit1.param

errors1=estimate_errors(fit1,0.12)

n=100

x1=zeros(n)

x1=linspace(0,12,n)

y1=zeros(n)

[y1[i]=0.27*x1[i]^(3/2)   for   i   in   1:n]

plot(x1,y1,"r")

grid("on")

savefig("matlab.jpg")

# x5=linspace(0,12.3,1000)

#y6=zeros(1000)

#y7=zeros(1000)#for i in 1:1000 

# y6[i]=exp(-36)*x5[i]^(16.27)+6 

# y7[i]=exp(x[i]^1.03)

#end 

#plot(x5,y6,"k")

return   p1, errors1

end

Out[383]:   child (generic function with 1 method)

In [384]:   child(mat10,10)

6

Page 7: Analisis de Datos Ionizacion

8/19/2019 Analisis de Datos Ionizacion

http://slidepdf.com/reader/full/analisis-de-datos-ionizacion 7/7

Out[384]:   ([1.3,0.0],[-3.21331e-80,-0.0])

7