All pastes #939724 Raw Edit

Someone

public text v1 · immutable
·published 2008-03-12 15:07 UTC
rendered paste body
%
% Лабораторная работа 1.7
% Изучение естесственного вращения плоскости поляризации.
%

L = 20; % длина трубки

% вычисление среднеквадратичного разброса
function dispersal = get_dispersal(m)
    delta = m - sum(m) / length(m);
    dispersal = sqrt(sum(delta .^ 2) / length(m));
endfunction;

% вычисление угла поворота
function angle = get_rotate_angle(angle_0, angles_x)
    angle(1) = sum(angles_x) / length(angles_x) - angle_0;
endfunction;

% вычисление удельного вращения
function spec_rot = get_specific_rotatation(conc, angle, lenght, dispersal)
    spec_rot(1) = angle(1) / (conc * lenght); % значение
    spec_rot(2) = dispersal / (conc * lenght); % погрешность
endfunction;

%===================================

printf("Лабораторная работа 1.7\n");
printf("Изучение естесственного вращения плоскости поляризации.\n");
printf("============================================\n\n");

%===================================

l = [62.9 83.1 108.6 111.7 85.7 90.2 101.6]; % световой метод
d = [0.1 -0.3 0.05 0.1 0.3 0.1 -0.2]; % полутеневой метод

printf("Среднеквадратичный разброс:\n");
printf("световой метод:\t\tσ = %2.3f\n", get_dispersal(l)); 
printf("полутеневой метод:\tσ = %2.3f\n", dispersal = get_dispersal(d)); 
printf("\n");

%===================================

c1 = 0.10;
c2 = 0.15;
c3 = 0.20;

angles_0 = [0.2 0.1 -0.5 0.05 0.1];
angles_1 = [3.8 3.8 3.7 3.9 3.6];
angles_2 = [5.7 5.8 5.8 5.5 5.2];
angles_3 = [7.4 7.8 7.5 7.9 7.8];
angles_X = [4.3 4.8 4.5 4.4 4.5];

angle_0 = sum(angles_0) / length(angles_0);

phi1 = get_rotate_angle(angle_0, angles_1);
phi2 = get_rotate_angle(angle_0, angles_2);
phi3 = get_rotate_angle(angle_0, angles_3);
phiX = get_rotate_angle(angle_0, angles_X);

cX = 0.12; % найдено из построенного графика

alpha1 = get_specific_rotatation(c1, phi1, L, dispersal);
alpha2 = get_specific_rotatation(c2, phi2, L, dispersal);
alpha3 = get_specific_rotatation(c3, phi3, L, dispersal);
alphaX = get_specific_rotatation(cX, phiX, L, dispersal);


m_alpha(1) = (alpha1(1) + alpha2(1) + alpha3(1) + alphaX(1)) / 4;
m_alpha(2) = (alpha1(2) + alpha2(2) + alpha3(2) + alphaX(2)) / 4;

printf("Угол поворота плоскости поляризации и удельное вращение:\n");
printf("для c = %3.3f : \t φ  = %3.3f ± %3.3f\n\t\t\t[α] = %3.3f ± %3.3f\n", 
    c1, phi1, dispersal, alpha1(1), alpha1(2)); 
printf("для c = %3.3f : \t φ  = %3.3f ± %3.3f\n\t\t\t[α] = %3.3f ± %3.3f\n", 
    c2, phi2, dispersal, alpha2(1), alpha2(2)); 
printf("для c = %3.3f : \t φ  = %3.3f ± %3.3f\n\t\t\t[α] = %3.3f ± %3.3f\n", 
    c3, phi3, dispersal, alpha3(1), alpha3(2)); 
printf("для c = %3.3f : \t φ  = %3.3f ± %3.3f\n\t\t\t[α] = %3.3f ± %3.3f\n", 
    cX, phiX, dispersal, alphaX(1), alphaX(2)); 

printf("\n<[α]> = %3.3f ± %3.3f", m_alpha(1), m_alpha(2));

%===================================

printf("\n");