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");