MATLAB code document

From OpenWetWare
Jump to navigationJump to search
%% Constant V
Vconst=360;
I=[1.22 1.27 1.32 1.37 1.42 1.47 1.52 1.57 1.62 1.72];

% radii in meters
VR1=[3.4 5.2 3.8 5.2]*10^-2;
VR2=[3.5 5.2 3.5 5.3]*10^-2;
VR3=[3.4 5.1 3.6 5.0]*10^-2;
VR4=[3.4 5.0 3.4 4.8]*10^-2;
VR5=[3.0 4.7 3.3 4.7]*10^-2;
VR6=[3.2 4.8 3.5 4.5]*10^-2;
VR7=[2.9 4.5 3.5 4.4]*10^-2;
VR8=[3.0 4.3 3.3 4.4]*10^-2;
VR9=[2.9 3.9 3.0 4.0]*10^-2;
VR10=[2.4 3.5 3.0 3.7]*10^-2;
% average radii
VRavg=zeros(1,10)
for k=1:10
    stringy=sprintf('mean(VR%d)',k)
    VRavg(k)=eval(stringy)
end

% radii errors
VRerrors=zeros(1,10);
for k=1:10
    stringy=sprintf('sqrt((sum((VR%d-mean(VR%d)).^2))/3)',k,k)
VRerrors(k)=eval(stringy)
end
VRerror=mean(VRerrors)

%least squares fit:
VRawfit=polyfit(I,VRavg,1);
VRawval=polyval(VRawfit,I);

%plots
figure(1)
hold on
plot(I,VRawval,'k')
errorbar(I,VRavg,VRerrors,'*');
xlabel(' I, (Amps)');ylabel('Radius (m)');
title('R vs. I at V=360V')
hold off
saveas(figure(1),'ConstantV_rawdata.jpg')

%e/m ratio from slope
Vleft=((7.8E-4)*(VRavg)).^2/(2*Vconst);
Vright=I.^-2;
Verrs=((7.8E-4)*(VRerrors)).^2/(Vconst);
Verr=((7.8E-4)*(VRerror))^2/(Vconst);
Vfit=polyfit(Vright,Vleft,1);
Vval=polyval(Vfit,Vright);
figure(2)
hold on
plot(Vright,Vval)
errorbar(Vright,Vleft,Verrs,'r*');
xlabel(' I^-2, (Amps^-2)');ylabel('(7.8E-4*R)^2/2V (T*m^2/A*V)');
title('m/e slope at V=360V')
hold off
saveas(figure(2),'ConstantV.jpg')

Veoverm=Vfit(1)^-1
Veovermerr=Veoverm/1.756E11-1



%% Constant I
Iconst=1.35;
V=[441.2 430.5 420.5 409 399.9 390.1 380.0 369.8 360.0 350.0];

% radii in meters
IR1=[4.0 6.0 4.0 5.5]*10^-2;
IR2=[4.0 5.5 4.0 4.5]*10^-2;
IR3=[3.9 5.4 3.9 5.3]*10^-2;
IR4=[3.9 5.3 3.8 5.3]*10^-2;
IR5=[3.8 5.2 3.8 5.1]*10^-2;
IR6=[3.7 5.1 3.7 5.0]*10^-2;
IR7=[3.5 5.0 3.6 4.8]*10^-2;
IR8=[3.4 4.9 3.5 4.8]*10^-2;
IR9=[3.3 4.8 3.5 4.8]*10^-2;
IR10=[3.3 4.8 3.4 4.5]*10^-2;
% average radii
IRavg=zeros(1,10)
for k=1:10
    stringy=sprintf('mean(IR%d)',k)
    IRavg(k)=eval(stringy)
end

% radii errors
IRerrors=zeros(1,10);
for k=1:10
    stringy=sprintf('sqrt((sum((IR%d-mean(IR%d)).^2))/3)',k,k)
IRerrors(k)=eval(stringy)
end
IRerror=mean(IRerrors)

%least squares fit:
IRawfit=polyfit(V,IRavg,1);
IRawval=polyval(IRawfit,V);

%plots
figure(3)
hold on
plot(V,IRawval,'k')
errorbar(V,IRavg,IRerrors,'*');
xlabel(' V, (V)');ylabel('Radius (m)');
title('R vs. V at I=1.35A')
hold off
saveas(figure(3),'ConstantI_rawdata.jpg')

%e/m ratio from slope
Ileft=((1.053E-3)*(IRavg)).^2/2;
Iright=V;
Ierrs=((1.053E-3)*(IRerrors)).^2;
Ierr=((1.053E-3)*(IRerror))^2;
Ifit=polyfit(Iright,Ileft,1);
Ival=polyval(Ifit,Iright);
figure(4)
hold on
plot(Iright,Ival)
errorbar(Iright,Ileft,Ierrs,'r*');
xlabel(' V, (V)');ylabel('(1.053E-3*R)^2 (T*m^2)');
title('m/e slope at I=1.35A')
hold off
saveas(figure(4),'ConstantI.jpg')

Ieoverm=Ifit(1)^-1
Ieovermerr=Ieoverm/1.756E11-1


%FINAL RESULT
eoverm=(Veoverm+Ieoverm)/2
VIeovermerr=eoverm/1.756E11-1