Компания ALT Linux
Опубликован: 12.03.2015 | Доступ: свободный | Студентов: 576 / 64 | Длительность: 20:55:00
Лекция 11:

Обработка результатов эксперимента. Метод наименьших квадратов

Аннотация: Данная лекция посвящена решению часто встречающихся на практике задач по обработке реальных количественных экспериментальных данных, полученных в результате всевозможных научных опытов, технических испытаний методом наименьших квадратов. В первых четырёх параграфах читатель познакомится с математическими основами метода наименьших квадратов. Последний пятый параграф посвящён решению задач обработки экспериментальных данных методом наименьших квадратов с использованием пакета Octave.

11.1 Постановка задачи

Метод наименьших квадратов (МНК) позволяет по экспериментальным данным подобрать такую аналитическую функцию, которая проходит настолько близко к экспериментальным точкам, насколько это возможно.

В общем случае задачу можно сформулировать следующим образом. Пусть в результате эксперимента были получены некая экспериментальная зависимость y(x), представленная в таблице 11.1. Необходимо построить аналитическую зависимость f(x,a_{1},a_{2},\dots, a_{k}), наиболее точно описывающую результаты эксперимента. Для построения параметров функции f(x,a_{1},a_{2},\dots, a_{k}) будем использовать метод наименьших квадратов. Идея метода наименьших квадратов заключается в том, что функцию f(x,a_{1},a_{2},\dots, a_{k}) необходимо подобрать таким образом, чтобы сумма квадратов отклонений измеренных значений Y_i=f(x,a_{1},a_{2},\dots, a_{k}) была бы наименьшей (см. рис. 11.1):

Таблица 11.1. Данные эксперимента
x x_1 x_2 x_3 ... x_n-1 x_n
y y_1 y_2 y_3 ... y_n-1 y_n
&S(a_{1},a_{2},\dots,a_{k})=\sum _{i=1}^{n}\left(y_{i}-Y_{i}\right)^{2}=\\
&=\sum_{i=1}^{n}\left(y_{i}-f(x_{i},a_{1},a_{2},\dots,a_{k})\right)^{2}\to \min ( 11.1)

Задача состоит из двух этапов:

  1. По результатам эксперимента определить внешний вид подбираемой зависимости.
  2. Подобрать коэффициенты зависимости Y=f(x,a_{1},a_{2},\dots, a_{k}).

Математически задача подбора коэффициентов зависимости сводится к определению коэффициентов a_i из условия (11.1). В Octave её можно решать несколькими способами:

  1. Решать как задачу поиска минимума функции многих переменных без ограничений с использованием функции sqp.
  2. Использовать специализированную функцию polyfit (x, y, n).
  3. Используя аппарат высшей математики, составить и решить систему алгебраических уравнений для определения коэффициентов a_i.

11.2 Подбор параметров экспериментальной зависимости методом наименьших квадратов

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

Достаточным условием минимума функции S(a_{1},a_{2},\dots, a_{k}) является равенство нулю всех её частных производных. Поэтому задача поиска минимума функции (11.1) эквивалентна решению системы

Геометрическая интерпретация МНК

увеличить изображение
Рис. 11.1. Геометрическая интерпретация МНК

алгебраических уравнений:

\left\{
						\begin{matrix}
						\frac{\partial S}{\partial a_1}=0\\
						\frac{\partial S}{\partial a_2}=0\\
						\dots\\
						\frac{\partial S}{\partial a_k}=0
						\end{matrix}
						\right. ( 11.2)

Если параметры a_i входят в зависимость Y=f(x,a_{1},a_{2},\dots, a_{k}) линейно, то получим систему (11.3) из k линейных уравнений с k неизвестными.

\left\{
						\begin{matrix}
						\displaystyle \sum_{i=1}^n2\left(y_i-f(x_i,a_1,a_2,\dots,a_k)\right)\frac{\partial f}{\partial a_1}=0\\
						\displaystyle \sum_{i=1}^n2\left(y_i-f(x_i,a_1,a_2,\dots,a_k)\right)\frac{\partial f}{\partial a_2}=0\\
						\hdotsfor{1}\\
						\displaystyle \sum_{i=1}^n2\left(y_i-f(x_i,a_1,a_2,\dots,a_k)\right)\frac{\partial f}{\partial a_k}=0
						\end{matrix}
						\right. ( 11.3)

Составим систему (11.3) для наиболее часто используемых функций.

Алексей Игнатьев
Алексей Игнатьев

Возможна ли разработка приложения на Octave с GUI?

Евгений Ветчанин
Евгений Ветчанин

Добрый день. Я самостоятельно изучил курс "Введение в Octave" и хочу получить сертификат. Что нужно сднлать для этого? Нужно ли записаться на персональное обучение с тьютором или достаточно перевести деньги?