Обработка математики: 100%

Аппроксимация функции одной переменной методом наименьших квадратов с дополнительными условиями

Калькулятор использует метод наименьших квадратов для аппроксимации функции одной переменной. В случае ввода дополнительных условий используется метод множителей Лагранжа.

Эта страница существует благодаря следующим персонам

Timur

Timur

Создан: 5 лет назад, Последнее изменение: 4 года назад
Creative Commons Attribution/Share-Alike License 3.0 (Unported)

Этот материал распространяется на условиях лицензии Creative Commons Attribution/Share-Alike License 3.0 (Unported). Это означает, что вы можете размещать этот контент на своем сайте или создавать на его основе собственный (в том числе и в коммерческих целях), при условии сохранения оригинального лицензионного соглашения. Кроме того, Вы должны отметить автора этой работы, путем размещения HTML ссылки на оригинал работы https://planetcalc.ru/8735/. Пожалуйста оставьте без изменения все ссылки на других авторов данной работы или работы, на основе которой создана данная работа (если таковые имеются в спроводительном тексте).

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

Используемый метод (метод множителей Лагранжа) накладывает ограничения на набор аппроксимирующих функций, так что этот калькулятор не поддерживает экспоненциальную аппроксимацию, аппроксимацию степенной функцией и показательную аппроксимацию. Одним словом поддерживается только линейная регрессия. Зато в него были добавлены аппроксимация полиномами 4-ой и 5-ой степени. Формулы и немного теории можно найти под калькулятором.

Если не ввести значения x, калькулятор будет считать, что значение x меняется начиная с 0 с шагом 1.

PLANETCALC, Аппроксимация функции одной переменной методом наименьших квадратов с дополнительными условиями

Аппроксимация функции одной переменной методом наименьших квадратов с дополнительными условиями

Ограничения на значения аппроксимирующей функции в точках

xy
Записей:

Знаков после запятой: 4
Линейная регрессия
y=0.6233x+129.5721
Коэффициент линейной парной корреляции
0.7883
Коэффициент детерминации
0.6214
Средняя ошибка аппроксимации, %
2.4459 %
Результат
Файл очень большой, при загрузке и создании может наблюдаться торможение браузера.
y
Линейная регрессия
5560657075808590155160165170175180185190

Результат

ixyЛинейная регрессия
53.6162.9809
157163165.1002
258164165.7235
359158166.3468
462175168.2167
564171169.4633
664172169.4633
765175170.0866
868165171.9565
969178172.5797

Метод наименьших квадратов для линейной регрессии

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

Подход, описанный по ссылке, можно обобщить для случая линейной комбинации параметров (для построения линейной регрессии).

Пусть у нас есть набор точек $(x_1,y_1), ..., (x_m,y_m)$.

Если аппроксимирующая функция является линейной комбинацией параметров, которые нужно определить, например
$y(x;a_1,a_2,a_3,a_4,a_5,a_6)=a_1+a_2x+a_3 \cdot ln(x) + ... + a_6x^{10}$, то набор значений аппроксимирующей функции в заданных точках можно описать следующим образом

\begin{bmatrix} \hat{y}_1 \\ ... \\ \hat{y}_m \end{bmatrix} = \begin{bmatrix} 1 & x_1 & ln(x_1) & ... & x_{1}^{10} \\ ... & ... & ... & ... & ... \\ 1 & x_m & ln(x_m) & ... & x_{m}^{10} \end{bmatrix} \begin{bmatrix} a_1 \\ ... \\ a_6 \end{bmatrix}

Или, в матричном виде:

\mathbf{\hat{y}=Xa}

При использовании метода наименьших квадратов нам надо найти набор параметров, минимизирующих функцию

f(\mathbf{a})=\sum_{i=1}^m[\hat{y}(x_i;\mathbf{a})-y_i]^2, или, в матричном виде

f(\mathbf{a})=|\mathbf{Xa-y}|^2

Значение этой функции есть расстояние от вектора y до вектора Xa. Для минимизации этого значения Xa должно быть проекцией на пространство столбцов матрицы X и вектор Xa-y должен быть ортогонален этому пространству (подробнее можно посмотреть здесь).

Это возможно при выполнении следующего равенства
(X\mathbf{v})^T(X{\mathbf{a}}-\mathbf{y})=\mathbf{v}^T(X^TX{\mathbf{a}}-X^T\mathbf{y})=0,

где v - произвольный вектор в пространстве столбцов. Так как этот вектор может быть любым, очевидно что равенство выполняется только в случае

X^TX{\mathbf{a}}-X^T\mathbf{y}=0, или

X^TX{\mathbf{a}}=X^T\mathbf{y}, откуда

\mathbf{a}=(X^TX)^{-1}X^T\mathbf{y}

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

Метод множителей Лагранжа

Теперь разберемся с построением линейной регрессии при наличии ограничений. Такими ограничениями могут быть ограничения на значение функции в заданных точках. Например, нам известно, что функция, которую мы аппроксимируем ДОЛЖНА проходить через ноль (точку с координатами 0;0). Также могут существовать ограничения на значения производной функции в некоторых точках (наклона кривой функции). Наличие дополнительных ограничений говорит о том, что нам надо искать условный экстремум, то есть экстремум (в нашем случае минимум) функции, достигнутый при условии что переменные функции удовлетворяют уравнению связи.

То есть, нам надо минимизировать функцию

f(\mathbf{a})=|\mathbf{Xa-y}|^2

при условии что

\begin{bmatrix} y_{c_1} \\ ... \\ y_{c_k} \end{bmatrix} = \begin{bmatrix} 1 & x_{c_1} & ln(x_{c_1}) & ... & x_{c_1}^{10} \\ ... & ... & ... & ... & ... \\ 1 & x_{c_k} & ln(x_{c_k}) & ... & x_{c_k}^{10} \end{bmatrix} \begin{bmatrix} a_1 \\ ... \\ a_6 \end{bmatrix}

Или, в матричном виде

\mathbf{b = Ca}

Для решения такой задачи используется метод множителей Лагранжа. В методе множителей Лагранжа осуществляют переход от функции f(a) к функции Лагранжа F(a,\lambda) через добавление множителей Лагранжа

F(a, \lambda)=f(a)+\lambda\varphi(a)

В нашем случае

F(a, \lambda)=|\mathbf{Xa-y}|^2+\lambda  (\mathbf{Ca - b})

Далее ищется экстремум данной функции. После всех вычислений, которые я здесь не привожу (их мало где приводят, да и я тоже мог бы написать что-нибудь вроде "очевидно, что" :) ), получается следующая формула для нахождения параметров, при которых функция достигает условного экстремума

\begin{bmatrix} a \\ \lambda \end{bmatrix} = \begin{bmatrix} 2X^TX & C^T \\ C & 0 \end{bmatrix}^{-1} \begin{bmatrix} 2X^Ty \\ b \end{bmatrix}

Именно эту формулу использует калькулятор выше для построения линейной регрессии в случае накладывания дополнительных условий на аппроксимирующую функцию.

Ссылка скопирована в буфер обмена
PLANETCALC, Аппроксимация функции одной переменной методом наименьших квадратов с дополнительными условиями

Комментарии