Пример.
Экспериментальные данные о значениях переменных х
и у
приведены в таблице.
В результате их выравнивания получена функция
Используя метод наименьших квадратов , аппроксимировать эти данные линейной зависимостью y=ax+b (найти параметры а и b ). Выяснить, какая из двух линий лучше (в смысле метода наименьших квадратов) выравнивает экспериментальные данные. Сделать чертеж.
Суть метода наименьших квадратов (МНК).
Задача заключается в нахождении коэффициентов линейной зависимости, при которых функция двух переменных а и b принимает наименьшее значение. То есть, при данных а и b сумма квадратов отклонений экспериментальных данных от найденной прямой будет наименьшей. В этом вся суть метода наименьших квадратов.
Таким образом, решение примера сводится к нахождению экстремума функции двух переменных.
Вывод формул для нахождения коэффициентов.
Составляется и решается система из двух уравнений с двумя неизвестными. Находим частные производные функции по переменным а
и b
, приравниваем эти производные к нулю.
Решаем полученную систему уравнений любым методом (например методом подстановки
или ) и получаем формулы для нахождения коэффициентов по методу наименьших квадратов (МНК).
При данных а и b функция принимает наименьшее значение. Доказательство этого факта приведено .
Вот и весь метод наименьших квадратов. Формула для нахождения параметра a содержит суммы , , , и параметр n - количество экспериментальных данных. Значения этих сумм рекомендуем вычислять отдельно. Коэффициент b находится после вычисления a .
Пришло время вспомнить про исходый пример.
Решение.
В нашем примере n=5
. Заполняем таблицу для удобства вычисления сумм, которые входят в формулы искомых коэффициентов.
Значения в четвертой строке таблицы получены умножением значений 2-ой строки на значения 3-ей строки для каждого номера i .
Значения в пятой строке таблицы получены возведением в квадрат значений 2-ой строки для каждого номера i .
Значения последнего столбца таблицы – это суммы значений по строкам.
Используем формулы метода наименьших квадратов для нахождения коэффициентов а
и b
. Подставляем в них соответствующие значения из последнего столбца таблицы:
Следовательно, y = 0.165x+2.184 - искомая аппроксимирующая прямая.
Осталось выяснить какая из линий y = 0.165x+2.184 или лучше аппроксимирует исходные данные, то есть произвести оценку методом наименьших квадратов.
Оценка погрешности метода наименьших квадратов.
Для этого требуется вычислить суммы квадратов отклонений исходных данных от этих линий и , меньшее значение соответствует линии, которая лучше в смысле метода наименьших квадратов аппроксимирует исходные данные.
Так как , то прямая y = 0.165x+2.184 лучше приближает исходные данные.
Графическая иллюстрация метода наименьших квадратов (мнк).
На графиках все прекрасно видно. Красная линия – это найденная прямая y = 0.165x+2.184 , синяя линия – это , розовые точки – это исходные данные.
Для чего это нужно, к чему все эти аппроксимации?
Я лично использую для решения задач сглаживания данных, задач интерполяции и экстраполяции (в исходном примере могли бы попросить найти занчение наблюдаемой величины y при x=3 или при x=6 по методу МНК). Но подробнее поговорим об этом позже в другом разделе сайта.
Доказательство.
Чтобы при найденных а и b функция принимала наименьшее значение, необходимо чтобы в этой точке матрица квадратичной формы дифференциала второго порядка для функции была положительно определенной. Покажем это.
(см. рисунок). Требуется найти уравнение прямой
Чем меньше числа по абсолютной величине, тем лучше подобрана прямая (2). В качестве характеристики точности подбора прямой (2) можно принять сумму квадратов
Условия минимума S будут
(6) | |
(7) |
Уравнения (6) и (7) можно записать в таком виде:
(8) | |
(9) |
Из уравнений (8) и (9) легко найти a и b по опытным значениям x i и y i . Прямая (2), определяемая уравнениями (8) и (9), называется прямой, полученной по методу наименьших квадратов (этим названием подчеркивается то, что сумма квадратов S имеет минимум). Уравнения (8) и (9), из которых определяется прямая (2), называются нормальными уравнениями.
Можно указать простой и общий способ составления нормальных уравнений. Используя опытные точки (1) и уравнение (2), можно записать систему уравнений для a и b
y 1 =ax 1 +b, | |||
y 2 =ax 2 +b, ... |
(10) | ||
y n =ax n +b, |
Умножим левую и правую части каждого из этих уравнений на коэффициент при первой неизвестной a (т.е. на x 1 , x 2 , ..., x n) и сложим полученные уравнения, в результате получится первое нормальное уравнение (8).
Умножим левую и правую части каждого из этих уравнений на коэффициент при второй неизвестной b, т.е. на 1, и сложим полученные уравнения, в результате получится второе нормальное уравнение (9).
Этот способ получения нормальных уравнений является общим: он пригоден, например, и для функции
есть величина постоянная и ее нужно определить по опытным данным (1).
Систему уравнений для k можно записать:
Найти прямую (2) по методу наименьших квадратов.
Решение. Находим:
x i =21, y i =46,3, x i 2 =91, x i y i =179,1.
Записываем уравнения (8) и (9)
Отсюда находим
Оценка точности метода наименьших квадратов
Дадим оценку точности метода для линейного случая, когда имеет место уравнение (2).
Пусть опытные значения x i являются точными, а опытные значения y i имеют случайные ошибки с одинаковой дисперсией для всех i.
Введем обозначение
(16) |
Тогда решения уравнений (8) и (9) можно представить в виде
(17) | |
(18) | |
где | |
(19) | |
Из уравнения (17) находим | |
(20) | |
Аналогично из уравнения (18) получаем | |
(21) | |
так как | |
(22) | |
Из уравнений (21) и (22) находим | |
(23) |
Уравнения (20) и (23) дают оценку точности коэффициентов, определенных по уравнениям (8) и (9).
Заметим, что коэффициенты a и b коррелированы. Путем простых преобразований находим их корреляционный момент.
Отсюда находим
0,072 при x=1 и 6,
0,041 при x=3,5.
Литература
Шор. Я. Б. Статистические методы анализа и контроля качества и надежности. М.:Госэнергоиздат, 1962, с. 552, С. 92-98.
Настоящая книга предназначается для широкого круга инженеров (научно-исследовательских институтов, конструкторских бюро, полигонов и заводов), занимающихся определением качества и надежности радиоэлектронной аппаратуры и других массовых изделий промышленности (машиностроения, приборостроения, артиллерийской и т.п.).
В книге дается приложение методов математической статистики к вопросам обработки и оценки результатов испытаний, при которых определяются качество и надежность испытываемых изделий. Для удобства читателей приводятся необходимые сведения из математической статистики, а также большое число вспомогательных математических таблиц, облегчающих проведение необходимых расчетов.
Изложение иллюстрируется большим числом примеров, взятых из области радиоэлектроники и артиллерийской техники.
Сущность метода наименьших квадратов заключается в отыскании параметров модели тренда, которая лучше всего описывает тенденцию развития какого-либо случайного явления во времени или в пространстве (тренд – это линия, которая и характеризует тенденцию этого развития). Задача метода наименьших квадратов (МНК) сводится к нахождению не просто какой-то модели тренда, а к нахождению лучшей или оптимальной модели. Эта модель будет оптимальной, если сумма квадратических отклонений между наблюдаемыми фактическими величинами и соответствующими им расчетными величинами тренда будет минимальной (наименьшей):
где - квадратичное отклонение между наблюдаемой фактической величиной
и соответствующей ей расчетной величиной тренда,
Фактическое (наблюдаемое) значение изучаемого явления,
Расчетное значение модели тренда,
Число наблюдений за изучаемым явлением.
МНК самостоятельно применяется довольно редко. Как правило, чаще всего его используют лишь в качестве необходимого технического приема при корреляционных исследованиях. Следует помнить, что информационной основой МНК может быть только достоверный статистический ряд, причем число наблюдений не должно быть меньше 4-х, иначе, сглаживающие процедуры МНК могут потерять здравый смысл.
Инструментарий МНК сводится к следующим процедурам:
Первая процедура. Выясняется, существует ли вообще какая-либо тенденция изменения результативного признака при изменении выбранного фактора-аргумента, или другими словами, есть ли связь между «у » и «х ».
Вторая процедура. Определяется, какая линия (траектория) способна лучше всего описать или охарактеризовать эту тенденцию.
Третья процедура.
Пример . Допустим, мы имеем информацию о средней урожайности подсолнечника по исследуемому хозяйству (табл. 9.1).
Таблица 9.1
Номер наблюдения |
||||||||||
Урожайность, ц/га |
Поскольку уровень технологии при производстве подсолнечника в нашей стране за последние 10 лет практически не изменился, значит, по всей видимости, колебания урожайности в анализируемый период очень сильно зависели от колебания погодно-климатических условий. Действительно ли это так?
Первая процедура МНК. Проверяется гипотеза о существовании тенденции изменения урожайности подсолнечника в зависимости от изменения погодно-климатических условий за анализируемые 10 лет.
В данном примере за «y » целесообразно принять урожайность подсолнечника, а за «x » – номер наблюдаемого года в анализируемом периоде. Проверку гипотезы о существовании какой-либо взаимосвязи между «x » и «y » можно выполнить двумя способами: вручную и при помощи компьютерных программ. Конечно, при наличии компьютерной техники данная проблема решается сама собой. Но, чтобы лучше понять инструментарий МНК целесообразно выполнить проверку гипотезы о существовании связи между «x » и «y » вручную, когда под рукой находятся только ручка и обыкновенный калькулятор. В таких случаях гипотезу о существовании тенденции лучше всего проверить визуальным способом по расположению графического изображения анализируемого ряда динамики - корреляционного поля:
Корреляционное поле в нашем примере расположено вокруг медленно возрастающей линии. Это уже само по себе говорит о существовании определенной тенденции в изменении урожайности подсолнечника. Нельзя говорить о наличии какой-либо тенденции лишь тогда, когда корреляционное поле похоже на круг, окружность, строго вертикальное или строго горизонтальное облако, или же состоит из хаотично разбросанных точек. Во всех остальных случаях следует подтвердить гипотезу о существовании взаимосвязи между «x » и «y », и продолжить исследования.
Вторая процедура МНК. Определяется, какая линия (траектория) способна лучше всего описать или охарактеризовать тенденцию изменения урожайности подсолнечника за анализируемый период.
При наличии компьютерной техники подбор оптимального тренда происходит автоматически. При «ручной» обработке выбор оптимальной функции осуществляется, как правило, визуальным способом – по расположению корреляционного поля. То есть, по виду графика подбирается уравнение линии, которая лучше всего подходит к эмпирическому тренду (к фактической траектории).
Как известно, в природе существует огромное разнообразие функциональных зависимостей, поэтому визуальным способом проанализировать даже незначительную их часть - крайне затруднительно. К счастью, в реальной экономической практике большинство взаимосвязей достаточно точно могут быть описаны или параболой, или гиперболой, или же прямой линией. В связи с этим, при «ручном» варианте подбора лучшей функции, можно ограничиться только этими тремя моделями.
Гипербола: |
||
Парабола второго порядка: :
Нетрудно заметить, что в нашем примере лучше всего тенденцию изменения урожайности подсолнечника за анализируемые 10 лет характеризует прямая линия, поэтому уравнением регрессии будет уравнение прямой.
Третья процедура. Рассчитываются параметры регрессионного уравнения, характеризующего данную линию, или другими словами, определяется аналитическая формула, описывающая лучшую модель тренда.
Нахождение значений параметров уравнения регрессии, в нашем случае параметров и , является сердцевиной МНК. Данный процесс сводится к решению системы нормальных уравнений.
(9.2)
Эта система уравнений довольно легко решается методом Гаусса. Напомним, что в результате решения, в нашем примере, находятся значения параметров и . Таким образом, найденное уравнение регрессии будет иметь следующий вид:
Я математик-программист. Самый большой скачок в своей карьере я совершил, когда научился говорить:«Я ничего не понимаю!» Сейчас мне не стыдно сказать светилу науки, что мне читает лекцию, что я не понимаю, о чём оно, светило, мне говорит. И это очень сложно. Да, признаться в своём неведении сложно и стыдно. Кому понравится признаваться в том, что он не знает азов чего-то-там. В силу своей профессии я должен присутствовать на большом количестве презентаций и лекций, где, признаюсь, в подавляющем большинстве случаев мне хочется спать, потому что я ничего не понимаю. А не понимаю я потому, что огромная проблема текущей ситуации в науке кроется в математике. Она предполагает, что все слушатели знакомы с абсолютно всеми областями математики (что абсурдно). Признаться в том, что вы не знаете, что такое производная (о том, что это - чуть позже) - стыдно.
Но я научился говорить, что я не знаю, что такое умножение. Да, я не знаю, что такое подалгебра над алгеброй Ли. Да, я не знаю, зачем нужны в жизни квадратные уравнения. К слову, если вы уверены, что вы знаете, то нам есть над чем поговорить! Математика - это серия фокусов. Математики стараются запутать и запугать публику; там, где нет замешательства, нет репутации, нет авторитета. Да, это престижно говорить как можно более абстрактным языком, что есть по себе полная чушь.
Знаете ли вы, что такое производная? Вероятнее всего вы мне скажете про предел разностного отношения. На первом курсе матмеха СПбГУ Виктор Петрович Хавин мне определил
производную как коэффициент первого члена ряда Тейлора функции в точке (это была отдельная гимнастика, чтобы определить ряд Тейлора без производных). Я долго смеялся над таким определением, покуда в итоге не понял, о чём оно. Производная не что иное, как просто мера того, насколько функция, которую мы дифференцируем, похожа на функцию y=x, y=x^2, y=x^3.
Я сейчас имею честь читать лекции студентам, которые боятся математики. Если вы боитесь математики - нам с вами по пути. Как только вы пытаетесь прочитать какой-то текст, и вам кажется, что он чрезмерно сложен, то знайте, что он хреново написан. Я утверждаю, что нет ни одной области математики, о которой нельзя говорить «на пальцах», не теряя при этом точности.
Задача на ближайшее время: я поручил своим студентам понять, что такое линейно-квадратичный регулятор . Не постесняйтесь, потратьте три минуты своей жизни, сходите по ссылке. Если вы ничего не поняли, то нам с вами по пути. Я (профессиональный математик-программист) тоже ничего не понял. И я уверяю, в этом можно разобраться «на пальцах». На данный момент я не знаю, что это такое, но я уверяю, что мы сумеем разобраться.
Итак, первая лекция, которую я собираюсь прочитать своим студентам после того, как они в ужасе прибегут ко мне со словами, что линейно-квадратичный регулятор - это страшная бяка, которую никогда в жизни не осилить, это методы наименьших квадратов . Умеете ли вы решать линейные уравнения? Если вы читаете этот текст, то скорее всего нет.
Итак, даны две точки (x0, y0), (x1, y1), например, (1,1) и (3,2), задача найти уравнение прямой, проходящей через эти две точки:
иллюстрация
Эта прямая должна иметь уравнение типа следующего:
Здесь альфа и бета нам неизвестны, но известны две точки этой прямой:
Можно записать это уравнение в матричном виде:
Тут следует сделать лирическое отступление: что такое матрица? Матрица это не что иное, как двумерный массив. Это способ хранения данных, более никаких значений ему придавать не стоит. Это зависит от нас, как именно интерпретировать некую матрицу. Периодически я буду её интерпретировать как линейное отображение, периодически как квадратичную форму, а ещё иногда просто как набор векторов. Это всё будет уточнено в контексте.
Давайте заменим конкретные матрицы на их символьное представление:
Тогда (alpha, beta) может быть легко найдено:
Более конкретно для наших предыдущих данных:
Что ведёт к следующему уравнению прямой, проходящей через точки (1,1) и (3,2):
Окей, тут всё понятно. А давайте найдём уравнение прямой, проходящей через три точки: (x0,y0), (x1,y1) и (x2,y2):
Ой-ой-ой, а ведь у нас три уравнения на две неизвестных! Стандартный математик скажет, что решения не существует. А что скажет программист? А он для начала перепишет предыдующую систему уравнений в следующем виде:
В нашем случае векторы i,j,b трёхмерны, следовательно, (в общем случае) решения этой системы не существует. Любой вектор (alpha\*i + beta\*j) лежит в плоскости, натянутой на векторы (i, j). Если b не принадлежит этой плоскости, то решения не существует (равенства в уравнении не достичь). Что делать? Давайте искать компромисс. Давайте обозначим через e(alpha, beta) насколько именно мы не достигли равенства:
И будем стараться минимизировать эту ошибку:
Почему квадрат?
Мы ищем не просто минимум нормы, а минимум квадрата нормы. Почему? Сама точка минимума совпадает, а квадрат даёт гладкую функцию (квадратичную функцию от агрументов (alpha,beta)), в то время как просто длина даёт функцию в виде конуса, недифференцируемую в точке минимума. Брр. Квадрат удобнее.
Очевидно, что ошибка минимизируется, когда вектор e ортогонален плоскости, натянутой на векторы i и j .
Иллюстрация
Иными словами: мы ищем такую прямую, что сумма квадратов длин расстояний от всех точек до этой прямой минимальна:
UPDATE: тут у меня косяк, расстояние до прямой должно измеряться по вертикали, а не ортогональной проекцией. Вот этот комментатор прав.
Иллюстрация
Совсеми иными словами (осторожно, плохо формализовано, но на пальцах должно быть ясно): мы берём все возможные прямые между всеми парами точек и ищем среднюю прямую между всеми:
Иллюстрация
Иное объяснение на пальцах: мы прикрепляем пружинку между всеми точками данных (тут у нас три) и прямой, что мы ищем, и прямая равновесного состояния есть именно то, что мы ищем.
Минимум квадратичной формы
Итак, имея данный вектор b и плоскость, натянутую на столбцы-векторы матрицы A (в данном случае (x0,x1,x2) и (1,1,1)), мы ищем вектор e с минимум квадрата длины. Очевидно, что минимум достижим только для вектора e , ортогонального плоскости, натянутой на столбцы-векторы матрицы A :Иначе говоря, мы ищем такой вектор x=(alpha, beta), что:
Напоминаю, что этот вектор x=(alpha, beta) является минимумом квадратичной функции ||e(alpha, beta)||^2:
Тут нелишним будет вспомнить, что матрицу можно интерпретирвать в том числе как и квадратичную форму, например, единичная матрица ((1,0),(0,1)) может быть интерпретирована как функция x^2 + y^2:
квадратичная форма
Вся эта гимнастика известна под именем линейной регрессии .
Уравнение Лапласа с граничным условием Дирихле
Теперь простейшая реальная задача: имеется некая триангулированная поверхность, необходимо её сгладить. Например, давайте загрузим модель моего лица:Изначальный коммит доступен . Для минимизации внешних зависимостей я взял код своего софтверного рендерера, уже на хабре. Для решения линейной системы я пользуюсь OpenNL , это отличный солвер, который, правда, очень сложно установить: нужно скопировать два файла (.h+.c) в папку с вашим проектом. Всё сглаживание делается следующим кодом:
For (int d=0; d<3; d++) {
nlNewContext();
nlSolverParameteri(NL_NB_VARIABLES, verts.size());
nlSolverParameteri(NL_LEAST_SQUARES, NL_TRUE);
nlBegin(NL_SYSTEM);
nlBegin(NL_MATRIX);
for (int i=0; i<(int)verts.size(); i++) {
nlBegin(NL_ROW);
nlCoefficient(i, 1);
nlRightHandSide(verts[i][d]);
nlEnd(NL_ROW);
}
for (unsigned int i=0; i
X, Y и Z координаты отделимы, я их сглаживаю по отдельности. То есть, я решаю три системы линейных уравнений, каждое имеет количество переменных равным количеству вершин в моей модели. Первые n строк матрицы A имеют только одну единицу на строку, а первые n строк вектора b имеют оригинальные координаты модели. То есть, я привязываю по пружинке между новым положением вершины и старым положением вершины - новые не должны слишком далеко уходить от старых.
Все последующие строки матрицы A (faces.size()*3 = количеству рёбер всех треугольников в сетке) имеют одно вхождение 1 и одно вхождение -1, причём вектор b имеет нулевые компоненты напротив. Это значит, я вешаю пружинку на каждое ребро нашей треугольной сетки: все рёбра стараются получить одну и ту же вершину в качестве отправной и финальной точки.
Ещё раз: переменными являются все вершины, причём они не могут далеко отходить от изначального положения, но при этом стараются стать похожими друг на друга.
Вот результат:
Всё бы было хорошо, модель действительно сглажена, но она отошла от своего изначального края. Давайте чуть-чуть изменим код:
For (int i=0; i<(int)verts.size(); i++) { float scale = border[i] ? 1000: 1; nlBegin(NL_ROW); nlCoefficient(i, scale); nlRightHandSide(scale*verts[i][d]); nlEnd(NL_ROW); }
В нашей матрице A я для вершин, что находятся на краю, добавляю не строку из разряда v_i = verts[i][d], а 1000*v_i = 1000*verts[i][d]. Что это меняет? А меняет это нашу квадратичную форму ошибки. Теперь единичное отклонение от вершины на краю будет стоить не одну единицу, как раньше, а 1000*1000 единиц. То есть, мы повесили более сильную пружинку на крайние вершины, решение предпочтёт сильнее растянуть другие. Вот результат:
Давайте вдвое усилим пружинки между вершинами:
nlCoefficient(face[ j ], 2);
nlCoefficient(face[(j+1)%3], -2);
Логично, что поверхность стала более гладкой:
А теперь ещё в сто раз сильнее:
Что это? Представьте, что мы обмакнули проволочное кольцо в мыльную воду. В итоге образовавшаяся мыльная плёнка будет стараться иметь наименьшую кривизну, насколько это возможно, касаясь-таки границы - нашего проволочного кольца. Именно это мы и получили, зафиксировав границу и попросив получить гладкую поверхность внутри. Поздравляю вас, мы только что решили уравнение Лапласа с граничными условиями Дирихле. Круто звучит? А на деле всего-навсего одну систему линейных уравнений решить.
Уравнение Пуассона
Давайте ещё крутое имя вспомним.Предположим, что у меня есть такая картинка:
Всем хороша, только стул мне не нравится.
Разрежу картинку пополам:
И выделю руками стул:
Затем всё, что белое в маске, притяну к левой части картинки, а заодно по всей картинке скажу, что разница между двумя соседними пикселями должна равняться разнице между двумя соседними пикселями правой картинки:
For (int i=0; i Вот результат: У меня есть некоторое количество фотографий образцов ткани типа вот такой: Моя задача сделать бесшовные текстуры из фотографий вот такого качества. Для начала я (автоматически) ищу повторяющийся паттерн: Если я вырежу прямо вот этот четырёхугольник, то из-за искажений у меня края не сойдутся, вот пример четыре раза повторённого паттерна: Скрытый текст
Вот фрагмент, где чётко видно шов: Поэтому я вырезать буду не по ровной линии, вот линия разреза: Скрытый текст
А вот повторённый четыре раза паттерн: Скрытый текст
И его фрагмент, чтобы было виднее: Уже лучше, рез шёл не по прямой линии, обойдя всякие завитушки, но всё же шов виден из-за неравномерности освещения на оригинальной фотографии. Вот тут-то и приходит на помощь метод наименьших квадратов для уравнения Пуассона. Вот конечный результат после выравнивания освещения: Текстура получилась отлично бесшовной, и всё это автоматически из фотографии весьма посредственного качества. Не бойтесь математики, ищите простые объяснения, и будет вам инженерное счастье. Если некоторая физическая величина зависит от другой величины, то эту зависимость можно исследовать, измеряя y при различных значениях x . В результате измерений получается ряд значений: x 1 , x 2 , ..., x i , ... , x n ; y 1 , y 2 , ..., y i , ... , y n . По данным такого эксперимента можно построить график зависимости y = ƒ(x). Полученная кривая дает возможность судить о виде функции ƒ(x). Однако постоянные коэффициенты, которые входят в эту функцию, остаются неизвестными. Определить их позволяет метод наименьших квадратов. Экспериментальные точки, как правило, не ложатся точно на кривую. Метод наименьших квадратов требует, чтобы сумма квадратов отклонений
экспериментальных точек от кривой, т.е. 2 была наименьшей. На практике этот метод наиболее часто (и наиболее просто) используется в случае линейной зависимости, т.е. когда y = kx
или
y = a + bx.
Линейная зависимость очень широко распространена в физике. И даже когда зависимость нелинейная, обычно стараются строить график так, чтобы получить прямую линию. Например, если предполагают, что показатель преломления стекла n связан с длиной λ световой волны соотношением n = a + b/λ 2 , то на графике
строят зависимость n от λ -2 . Рассмотрим зависимость y = kx
(прямая, проходящая через начало координат). Составим величину φ сумму квадратов отклонений наших точек от прямой Величина φ всегда положительна и оказывается тем меньше, чем ближе к прямой лежат наши точки. Метод наименьших квадратов утверждает, что для k следует выбирать такое значение, при котором φ имеет минимум Вычисление показывает, что среднеквадратичная ошибка определения величины k равна при этом , (20) Рассмотрим теперь несколько более трудный случай, когда точки должны удовлетворить формуле y = a + bx
(прямая, не проходящая через начало координат). Задача состоит в том, чтобы по имеющемуся набору значений x i , y i найти наилучшие значения a и b. Снова составим квадратичную форму φ , равную сумме квадратов отклонений точек x i , y i от прямой и найдем значения a и b , при которых φ имеет минимум ; . Совместное решение этих уравнений дает (21) Среднеквадратичные ошибки определения a и b равны (23) .  (24) При обработке результатов измерения этим методом удобно все данные сводить в таблицу, в которой предварительно
подсчитываются все суммы, входящие в формулы (19)(24). Формы этих таблиц приведены в рассматриваемых ниже примерах. Пример 1.
Исследовалось основное уравнение динамики вращательного движения ε = M/J (прямая, проходящая через начало координат). При различных значениях момента M измерялось угловое ускорение ε некоторого тела. Требуется определить момент
инерции этого тела. Результаты измерений момента силы и углового
ускорения занесены во второй и третий столбцы таблицы 5
. По формуле (19) определяем: . Для определения среднеквадратичной ошибки воспользуемся формулой (20) 0.005775 кг
-1 · м
-2 . По формуле (18) имеем S J = (2.996 · 0.005775)/0.3337 = 0.05185 кг · м 2
. Задавшись надежностью P = 0.95 , по таблице коэффициентов Стьюдента для n = 5, находим t = 2.78 и определяем абсолютную ошибку ΔJ = 2.78 · 0.05185 = 0.1441 ≈ 0.2 кг · м 2
. Результаты запишем в виде: J = (3.0 ± 0.2) кг · м 2
; Пример 2.
Вычислим температурный коэффициент сопротивления металла по методу наименьших квадратов. Сопротивление зависит от температуры по линейному закону R t = R 0 (1 + α t°) = R 0 + R 0 α t°. Свободный член определяет сопротивление R 0 при температуре 0° C , а угловой коэффициент произведение температурного коэффициента α на сопротивление R 0 . Результаты измерений и расчетов приведены в таблице (см. таблицу 6
). По формулам (21), (22) определяем R 0 = ¯
R- α R 0 ¯
t = 1.4005 - 0.002645 · 85.83333 = 1.1735 Ом
. Найдем ошибку в определении α. Так как , то по формуле (18) имеем: . Пользуясь формулами (23), (24) имеем ; 0.014126 Ом
. Задавшись надежностью P = 0.95, по таблице коэффициентов Стьюдента для n = 6, находим t = 2.57 и
определяем абсолютную ошибку Δα = 2.57 · 0.000132 = 0.000338 град -1
. α = (23 ± 4) · 10 -4 град
-1 при P = 0.95. Пример 3.
Требуется определить радиус кривизны линзы по кольцам Ньютона. Измерялись радиусы колец Ньютона r m и определялись номера этих колец m. Радиусы колец Ньютона связаны с радиусом
кривизны линзы R и номером кольца уравнением r 2 m = mλR - 2d 0 R, где d 0 толщина зазора между линзой и плоскопараллельной пластинкой (или деформация линзы), λ длина волны падающего света. λ = (600 ± 6) нм; тогда уравнение примет вид y = a + bx
. Результаты измерений и вычислений занесены в таблицу 7
.Пример из жизни
Я специально не стал делать вылизанные результаты, т.к. мне хотелось всего-навсего показать, как именно можно применять методы наименьших квадратов, это обучающий код. Давайте я теперь дам пример из жизни:
или
(19)
где n число измерений.
Таблица 5
n
M, Н · м
ε, c -1
M 2
M · ε
ε - kM
(ε - kM) 2
1
1.44
0.52
2.0736
0.7488
0.039432
0.001555
2
3.12
1.06
9.7344
3.3072
0.018768
0.000352
3
4.59
1.45
21.0681
6.6555
-0.08181
0.006693
4
5.90
1.92
34.81
11.328
-0.049
0.002401
5
7.45
2.56
55.5025
19.072
0.073725
0.005435
∑
123.1886
41.1115
0.016436
Таблица 6
n
t°, c
r, Ом
t-¯
t
(t-¯
t) 2
(t-¯
t)r
r - bt - a
(r - bt - a) 2 ,10 -6
1
23
1.242
-62.8333
3948.028
-78.039
0.007673
58.8722
2
59
1.326
-26.8333
720.0278
-35.581
-0.00353
12.4959
3
84
1.386
-1.83333
3.361111
-2.541
-0.00965
93.1506
4
96
1.417
10.16667
103.3611
14.40617
-0.01039
107.898
5
120
1.512
34.16667
1167.361
51.66
0.021141
446.932
6
133
1.520
47.16667
2224.694
71.69333
-0.00524
27.4556
∑
515
8.403
8166.833
21.5985
746.804
∑/n
85.83333
1.4005
r 2 m = y;
m = x;
λR = b;
-2d 0 R = a,Таблица 7
n
x = m
y = r 2 , 10 -2 мм 2
m -¯
m
(m -¯
m) 2
(m -¯
m)y
y - bx - a, 10 -4
(y - bx - a) 2 , 10 -6
1
1
6.101
-2.5
6.25
-0.152525
12.01
1.44229
2
2
11.834
-1.5
2.25
-0.17751
-9.6
0.930766
3
3
17.808
-0.5
0.25
-0.08904
-7.2
0.519086
4
4
23.814
0.5
0.25
0.11907
-1.6
0.0243955
5
5
29.812
1.5
2.25
0.44718
3.28
0.107646
6
6
35.760
2.5
6.25
0.894
3.12
0.0975819
∑
21
125.129
17.5
1.041175
3.12176
∑/n
3.5
20.8548333