С.П.Иглин

Образовательный математический сайт Exponenta.ru - 2kb

Метод наименьших квадратов

Кафедра прикладной математики НТУ ХПИ - 6kb

Введение

Это пособие предназначено для студентов, изучающих курс теории вероятностей и математической статистики. С его помощью Вы освоите тему "Регрессионный анализ (метод наименьших квадратов)". Прямо из этого пособия Вы можете обработать реальный массив данных, например, своё ИДЗ, даже если у Вас нет на компьютере MATLAB. Если же у Вас есть MATLAB, перейдите на эту страницу: там у Вас есть возможность вмешаться в сценарий (программу) вычислений. Здесь же обработка массива данных проводится по стандартному сценарию, который обычно используется в вузах при изучении курса теории вероятностей и математической статистики.

Для правильной работы с этой страницей Ваш браузер должен поддерживать сценарии Java Script. Включите их.

Ввод экспериментальных точек

В методе наименьших квадратов (МНК) по заданным экспериментальным точкам строится теоретическая функциональная зависимость. Для функции одной переменной по n точкам (xi,yi) ищется "наилучшая" теоретическая кривая y=f(x).

Для данной программы нужно, чтобы все экспериментальные точки (xi,yi) были записаны в обычном текстовом формате по 2 числа в строке: первое − это xi, а второе − yi. Для разделения целой и дробной частей используем десятичную точку. Между числами оставляем хотя бы по одному пробелу. При необходимости можно перед числом поставить знак плюс или минус. Допускается также экспоненциальная форма записи чисел, т.е. числа вида −1.52345E−0002 или −1.52345e−0002, что нужно понимать как −1.52345×10−2. Образец правильного оформления файла ИД можно переписать здесь (zip-архив, 2kb, обычный текстовый файл). Для начала его можно использовать как тестовый пример, а потом взять свои ИД.

Занесите Ваши числа в область ввода, которую Вы видите ниже (например, через буфер обмена). В любой строке должно быть два числа, разделённых хотя бы одним пробелом. Не ставьте между числами никаких разделителей, кроме пробелов: ни запятых, ни точек с запятой и т.д. После записи всех чисел в область ввода нажмите кнопочку Ввести экспериментальные точки. Ваши числа будут введены на страницу. Найдём количество точек n и нарисуем их.



Проверьте, все ли числа введены. Процедура ввода не отслеживает ошибки, она просто игнорирует нечисловые данные и пропускает их. Поэтому сравните количество введённых чисел с тем, что должно быть. Если всё правильно, переходим к следующему пункту.

Выбор базисных функций

Мы рассмотрим лишь один простейший вариант МНК: представление теоретической зависимости в виде линейной комбинации известных, выбранных заранее функций, которые называют базисными:

Здесь b1, b2, ..., bm − определяемые по МНК коэффициенты, а φ1(x), φ2(x), ..., φm(x) − заранее выбранные из теоретических соображений функции (базисные), которые должны быть линейно-независимыми на множестве точек x1, x2, ..., xn. Выберите необходимые базисные функции и добавьте их к модели. При написании функции нужно руководствоваться следующими правилами, соответствующими синтаксису языка Javascript:

Примеры допустимых базисных функций: pow(x,2), sqrt(x), sin(pi*(x-xmin)/(xmax-xmin)), 1, 0.5 и т.п.

Добавьте в модель базисную функцию:

Построение теоретической кривой

Согласно МНК коэффициенты модели (1) находятся из условия:

Данная функция является квадратичной относительно b1, b2, ..., bm. Вычисляя частные производные и приравнивая их нулю, получим систему линейных алгебраических уравнений относительно b1, b2, ..., bm:

Если базисные функции линейно-независимые, то эта система имеет единственное решение: коэффициенты модели b1, b2, ..., bm. Найдём их и построим график, на котором покажем экспериментальные точки и найденную теоретическую кривую.