Обработка результатов эксперимента в Octave

Обработка результатов эксперимента в Octave


Описание и пример программы обработки результатов эксперимента в среде Octave.


Один довольно авторитетный профессор (правда, естественных наук, а не математических) как-то задал мне простой, но очень насущный вопрос:

Есть результаты измерений величины x: x1, x2, ... , xn. Как определить, какое-же всё-таки значение (или интервал значений) из них истинны?

Независимо от физического смысла измеренной величины, на этот вопрос отвечает математика, а если точнее – мат. статистика. Ответ на этот вопрос называется «обработка результатов эксперимента» (разумеется, при этом важно помнить, что, согласно Нилу Гершенфельду, истина – это модель).

Ниже приведены все стадии ответа на этот вопрос, необходимые вычисления и код, реализующий их в среде Octave.

Ряд значений величины x называется выборкой. Имея такую выборку, окончательный результат измерений для этой величины можно записать как x = x̄ ± Δx, где x̄ – оценочное значение результата измерений, а Δx – ошибка измерений. Так как эти данные не являются точными, запись результата измерений сопровождают указанием его надежности (или, иначе, доверительной вероятностью) P. Эту вероятность обычно выбирают равной 0,95.

В большинстве случаев случайные ошибки подчиняются нормальному закону распределения. А поскольку кривая нормального закона распределена симметрично относительно оси ординат, можно утверждать, что равные по величине, но противоположные по знаку ошибки равновероятны.

А это дает возможность в качестве оценочного значения взять среднее арифметическое.

Как это получить в Octave:

498
484
498
501
496
488
498
501
L = dlmread("<em>файл_с_выборкой</em>.txt");
disp("L = ");
disp(L);

sample_count = rows(L);

mean_x = sum(L)/sample_count;
disp("Mean X: ");
disp(mean_x);

Для вычисления ошибки измерений воспользуемся формулой Δx = S · t, где S - среднеквадратичная ошибка, а t – коэффициент Стьюдента.

Коэффициент Стьюдента зависит от доверительной вероятности и объёма выборки. При вероятности = 0,95 будем иметь таблицу из 2-х столбцов, где первый столбец – объём выборки, а второй – коэффициент; значения перечислены через запятую Сохраним её в файл student.txt:

2,     12.706       
3,     4.303   
4,     3.182   
5,     2.776   
6,     2.571   
7,     2.447   
8,     2.365   
9,     2.306   
10,    2.262   
11,    2.228   
12,    2.201   
13,    2.179   
14,    2.160   
15,    2.145   
16,    2.131   
17,    2.120   
18,    2.110   
19,    2.101   
20,    2.093   
21,    2.086   
22,    2.080   
23,    2.074   
24,    2.069   
25,    2.064   
26,    2.060   
27,    2.056   
28,    2.052   
29,    2.048   
30,    2.045   
31,    2.042   
40,    2.021   
60,    2.000   
120,   1.980   
999999, 1.960

Окончательно, добавим в наш .m – файл следующие строки, и получим оценочное значение и его ошибку с доверительной вероятностью 0,95:

sqrd_x = 0;
for i = 1:sample_count
  sqrd_x += (L(i) – mean_x)^2;
endfor

sqrd_x = sqrt(sqrd_x / (sample_count * (sample_count – 1)));
S = dlmread("student.txt");

for i = 1:rows(S)
  if (sample_count <= S(i, 1))
    delta_x = S(i, 2) * sqrd_x;
    disp("Delta X: ");
    disp(delta_x);
    break;
  endif
endfor

Собственно, всё. По выполнении на экране увидим нужные нам значения. Для приведённой выборки это будут:


Как дела? Всё путём, или просто привыкли к «костылям» и «велосипедам»?

👉 Опишите проблему – если хотите устранить любой бардак навсегда


Что-то совершенно другое:


Хочется странного? Воспользуйтесь гаданием на блоге:


Тэги: octave ✦ эксперимент ✦ обработка ✦ результат ✦ пример ✦ описание

Эта публикация, включая составляющие её текстовые, графические, аудио- и видеоматериалы, предоставляется исключительно в информационных и иллюстративных целях и не является профессиональной консультацией. Любые сценарии, описанные здесь, являются гипотетическими и не гарантируют конкретного результата, который может быть достигнут на основе сделанных выводов. Результаты тех или иных действий (или бездействия) варьируются в зависимости как от индивидуальных особенностей, так и от внешних факторов. Автор не несёт ответственности за решения, принятые на основе содержания этого материала. Всегда консультируйтесь с квалифицированными специалистами, прежде чем принимать важные деловые или личные решения.