Метод Наименьших Квадратов: Аппроксимация Функции По Экспериментальным Данным

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

Аппроксимация Экспериментальных Данных: Постановка Задачи

Пусть в результате научного или инженерного эксперимента получена система точек

\[
(x_0,y_0),\quad(x_1,y_1),\quad\dots,\quad(x_n,y_n).
\]

Каждому значению \( x_i \) соответствует экспериментальное значение \( y_i \), где

\[
i=0,1,\dots,n.
\]

Необходимо найти приближённую функцию

\[
y=f(x),
\]

значения которой в заданных точках как можно меньше отличаются от экспериментальных значений \( y_i \).

На первый взгляд такая задача напоминает интерполяцию. Однако между интерполяцией и аппроксимацией есть важное различие. Интерполяционный полином должен точно проходить через все заданные точки:

\[
P(x_i)=y_i.
\]

Для аппроксимирующей функции такое условие не является обязательным. В общем случае её значения в точках \( x_i \) могут отличаться от заданных значений:

\[
P(x_i)\ne y_i.
\]

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

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

Аппроксимирующий Полином: Выбор Приближённой Зависимости

В качестве аппроксимирующей функции можно использовать различные математические зависимости. В этом материале рассмотрим полиномиальную аппроксимацию, то есть будем искать приближённую функцию в виде полинома степени \( m \), где \( m<n \):

\[
P_m(x)=a_0+a_1\cdot x+a_2\cdot x^2+\dots+a_m\cdot x^m.
\]

Здесь \( a_0,a_1,\dots,a_m \) — неизвестные коэффициенты, которые необходимо определить по заданным экспериментальным данным.

В точке \( x_i \) значение аппроксимирующего полинома равно

\[
P_m(x_i)=a_0+a_1\cdot x_i+a_2\cdot x_i^2+\dots+a_m\cdot x_i^m.
\]

Сравним его с соответствующим экспериментальным значением \( y_i \). Разность

\[
P_m(x_i)-y_i
\]

можно рассматривать как отклонение аппроксимирующей функции от заданных данных в точке \( x_i \).

Если таких точек много, возникает естественный вопрос: как оценить качество аппроксимации сразу для всего набора данных? Для этого необходим критерий, который одновременно учитывает все эти отклонения.

Метод Наименьших Квадратов: Критерий Качества Аппроксимации

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

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

\[
S=\sum_{i=0}^{n}\left(P_m(x_i)-y_i\right)^2.
\]

Подставив выражение для аппроксимирующего полинома, получим

\[
S=\sum_{i=0}^{n}\left(a_0+a_1\cdot x_i+a_2\cdot x_i^2+\dots+a_m\cdot x_i^m-y_i\right)^2.
\]

Величина \( S \) характеризует общее отклонение аппроксимирующего полинома от экспериментальных данных. Чем меньше её значение, тем лучше полином согласуется с заданными точками.

Таким образом, необходимо определить коэффициенты \( a_0,a_1,\dots,a_m \), при которых сумма квадратов отклонений принимает наименьшее значение. Для этого перейдём к условиям минимума функции \( S \).

Минимизация Суммы Отклонений: Построение Нормальной Системы Уравнений

Функция \( S \) зависит от неизвестных коэффициентов \( a_0,a_1,\dots,a_m \). Чтобы найти её минимум, вычислим частные производные по каждому из этих коэффициентов и приравняем их к нулю:

\[
\left\{
\begin{array}{l}
\dfrac{\partial S}{\partial a_0}=0,\\[6pt]
\dfrac{\partial S}{\partial a_1}=0,\\[6pt]
\vdots\\[6pt]
\dfrac{\partial S}{\partial a_m}=0.
\end{array}
\right.
\]

Распишем эти условия подробнее:

\[
\left\{
\begin{array}{l}
\dfrac{\partial S}{\partial a_0}
=2\cdot\displaystyle\sum_{i=0}^{n}
\left(a_0+a_1\cdot x_i+a_2\cdot x_i^2+\cdots+a_m\cdot x_i^m-y_i\right)=0,\\[8pt]
\dfrac{\partial S}{\partial a_1}
=2\cdot\displaystyle\sum_{i=0}^{n}
\left(a_0+a_1\cdot x_i+a_2\cdot x_i^2+\cdots+a_m\cdot x_i^m-y_i\right)\cdot x_i=0,\\[8pt]
\vdots\\[8pt]
\dfrac{\partial S}{\partial a_m}
=2\cdot\displaystyle\sum_{i=0}^{n}
\left(a_0+a_1\cdot x_i+a_2\cdot x_i^2+\cdots+a_m\cdot x_i^m-y_i\right)\cdot x_i^m=0.
\end{array}
\right.
\]

При соответствующих условиях для заданных точек решение полученной системы определяет коэффициенты, при которых функция \( S \) принимает минимальное значение.

Общий множитель \( 2 \) можно сократить, поскольку он не влияет на решение системы. После этого раскроем суммы и сгруппируем слагаемые по неизвестным коэффициентам \( a_0,a_1,\dots,a_m \).

В результате получим систему нормальных уравнений метода наименьших квадратов:

\[
\left\{
\begin{array}{l}
(n+1)\cdot a_0+a_1\cdot\displaystyle\sum_{i=0}^{n}x_i+a_2\cdot\displaystyle\sum_{i=0}^{n}x_i^2+\cdots+a_m\cdot\displaystyle\sum_{i=0}^{n}x_i^m=\displaystyle\sum_{i=0}^{n}y_i,\\[8pt]
a_0\cdot\displaystyle\sum_{i=0}^{n}x_i+a_1\cdot\displaystyle\sum_{i=0}^{n}x_i^2+a_2\cdot\displaystyle\sum_{i=0}^{n}x_i^3+\cdots+a_m\cdot\displaystyle\sum_{i=0}^{n}x_i^{m+1}=\displaystyle\sum_{i=0}^{n}y_i\cdot x_i,\\[8pt]
\vdots\\[8pt]
a_0\cdot\displaystyle\sum_{i=0}^{n}x_i^m+a_1\cdot\displaystyle\sum_{i=0}^{n}x_i^{m+1}+a_2\cdot\displaystyle\sum_{i=0}^{n}x_i^{m+2}+\cdots+a_m\cdot\displaystyle\sum_{i=0}^{n}x_i^{2\cdot m}=\displaystyle\sum_{i=0}^{n}y_i\cdot x_i^m.
\end{array}
\right.
\]

Все суммы, содержащие \( x_i \) и \( y_i \), вычисляются по заданным экспериментальным данным. После их вычисления получаем систему линейных алгебраических уравнений относительно неизвестных коэффициентов \( a_0,a_1,\dots,a_m \).

Решив эту систему, определим коэффициенты аппроксимирующего полинома

\[
P_m(x)=a_0+a_1\cdot x+a_2\cdot x^2+\dots+a_m\cdot x^m.
\]

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

Метод Наименьших Квадратов: Практические Примеры Аппроксимации Функции

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

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

\( i \) \( x_i \) \( y_i \)
\( 0 \) \( 1 \) \( 3 \)
\( 1 \) \( 2 \) \( 3 \)
\( 2 \) \( 3 \) \( 6 \)

Будем искать аппроксимирующую функцию в виде

\[
P_1(x)=a_0+a_1\cdot x.
\]

Для полинома первой степени система нормальных уравнений имеет вид

\[
\left\{
\begin{array}{l}
3\cdot a_0+a_1\cdot\sum x_i=\sum y_i,\\[6pt]
a_0\cdot\sum x_i+a_1\cdot\sum x_i^2=\sum x_i\cdot y_i.
\end{array}
\right.
\]

Вычислим необходимые суммы:

\[
\begin{gathered}
\sum x_i=1+2+3=6,\\[4pt]
\sum x_i^2=1^2+2^2+3^2=14,\\[4pt]
\sum y_i=3+3+6=12,\\[4pt]
\sum x_i\cdot y_i=1\cdot3+2\cdot3+3\cdot6=27.
\end{gathered}
\]

Подставим полученные значения в систему нормальных уравнений:

\[
\left\{
\begin{array}{l}
3\cdot a_0+6\cdot a_1=12,\\[6pt]
6\cdot a_0+14\cdot a_1=27.
\end{array}
\right.
\]

Умножим первое уравнение на \( 2 \):

\[
6\cdot a_0+12\cdot a_1=24.
\]

Вычтем его из второго уравнения:

\[
2\cdot a_1=3.
\]

Отсюда

\[
a_1=1.5.
\]

Подставим найденное значение в первое уравнение:

\[
\begin{gathered}
3\cdot a_0+6\cdot1.5=12,\\[4pt]
3\cdot a_0=3,\\[4pt]
a_0=1.
\end{gathered}
\]

Таким образом, искомый аппроксимирующий полином имеет вид

\[
P_1(x)=1+1.5\cdot x.
\]

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

\( i \) \( x_i \) \( y_i \)
\( 0 \) \( -2 \) \( 5 \)
\( 1 \) \( -1 \) \( 2 \)
\( 2 \) \( 0 \) \( 1 \)
\( 3 \) \( 1 \) \( 2 \)
\( 4 \) \( 2 \) \( 4 \)

Будем искать аппроксимирующую функцию в виде

\[
P_2(x)=a_0+a_1\cdot x+a_2\cdot x^2.
\]

Для полинома второй степени система нормальных уравнений имеет вид

\[
\left\{
\begin{array}{l}
5\cdot a_0+a_1\cdot\sum x_i+a_2\cdot\sum x_i^2=\sum y_i,\\[6pt]
a_0\cdot\sum x_i+a_1\cdot\sum x_i^2+a_2\cdot\sum x_i^3=\sum x_i\cdot y_i,\\[6pt]
a_0\cdot\sum x_i^2+a_1\cdot\sum x_i^3+a_2\cdot\sum x_i^4=\sum x_i^2\cdot y_i.
\end{array}
\right.
\]

Сначала вычислим суммы степеней \( x_i \):

\[
\begin{gathered}
\sum x_i=-2-1+0+1+2=0,\\[4pt]
\sum x_i^2=(-2)^2+(-1)^2+0^2+1^2+2^2=10,\\[4pt]
\sum x_i^3=(-2)^3+(-1)^3+0^3+1^3+2^3=0,\\[4pt]
\sum x_i^4=(-2)^4+(-1)^4+0^4+1^4+2^4=34.
\end{gathered}
\]

Теперь вычислим суммы, содержащие значения \( y_i \):

\[
\begin{gathered}
\sum y_i=5+2+1+2+4=14,\\[4pt]
\sum x_i\cdot y_i=(-2)\cdot5+(-1)\cdot2+0\cdot1+1\cdot2+2\cdot4=-2,\\[4pt]
\sum x_i^2\cdot y_i=4\cdot5+1\cdot2+0\cdot1+1\cdot2+4\cdot4=40.
\end{gathered}
\]

Подставим полученные значения в систему нормальных уравнений:

\[
\left\{
\begin{array}{l}
5\cdot a_0+10\cdot a_2=14,\\[6pt]
10\cdot a_1=-2,\\[6pt]
10\cdot a_0+34\cdot a_2=40.
\end{array}
\right.
\]

Из второго уравнения находим

\[
a_1=-0.2.
\]

Для нахождения \( a_0 \) и \( a_2 \) воспользуемся первым и третьим уравнениями. Умножим первое уравнение на \( 2 \):

\[
10\cdot a_0+20\cdot a_2=28.
\]

Вычтем полученное уравнение из третьего:

\[
14\cdot a_2=12.
\]

Отсюда

\[
a_2\approx0.857.
\]

Подставим найденное значение в первое уравнение:

\[
5\cdot a_0+10\cdot0.857\approx14,
\]

откуда

\[
a_0\approx1.086.
\]

Таким образом, аппроксимирующий полином второй степени имеет вид

\[
P_2(x)=1.086-0.2\cdot x+0.857\cdot x^2.
\]

Пример 3. Для заданных табличных данных методом наименьших квадратов построить полином первой степени и с его помощью приближённо найти значение функции при \( x=3 \)

\( i \) \( x_i \) \( y_i \)
\( 0 \) \( 0 \) \( 1.5 \)
\( 1 \) \( 1 \) \( 1 \)
\( 2 \) \( 2 \) \( 3.5 \)
\( 3 \) \( 4 \) \( 5 \)

Будем искать аппроксимирующую функцию в виде

\[
P_1(x)=a_0+a_1\cdot x.
\]

Поскольку построение нормальной системы для полинома первой степени уже было рассмотрено в предыдущем примере, сразу вычислим необходимые суммы:

\[
\begin{gathered}
\sum x_i=0+1+2+4=7,\\[4pt]
\sum x_i^2=0^2+1^2+2^2+4^2=21,\\[4pt]
\sum y_i=1.5+1+3.5+5=11,\\[4pt]
\sum x_i\cdot y_i=0\cdot1.5+1\cdot1+2\cdot3.5+4\cdot5=28.
\end{gathered}
\]

Подставим полученные значения в систему нормальных уравнений:

\[
\left\{
\begin{array}{l}
4\cdot a_0+7\cdot a_1=11,\\[6pt]
7\cdot a_0+21\cdot a_1=28.
\end{array}
\right.
\]

Чтобы исключить \( a_0 \), умножим первое уравнение на \( 7 \), а второе — на \( 4 \):

\[
\left\{
\begin{array}{l}
28\cdot a_0+49\cdot a_1=77,\\[6pt]
28\cdot a_0+84\cdot a_1=112.
\end{array}
\right.
\]

Вычтем первое уравнение из второго:

\[
35\cdot a_1=35.
\]

Отсюда

\[
a_1=1.
\]

Подставим найденное значение в первое уравнение:

\[
\begin{gathered}
4\cdot a_0+7=11,\\[4pt]
4\cdot a_0=4,\\[4pt]
a_0=1.
\end{gathered}
\]

Таким образом, аппроксимирующий полином имеет вид

\[
P_1(x)=1+x.
\]

Теперь используем найденную зависимость для вычисления приближённого значения функции при \( x=3 \):

\[
P_1(3)=1+3=4.
\]

Таким образом,

\[
f(3)\approx4.
\]

Другие Методы Приближения Функций: Темы Для Продолжения

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

  1. Линейная интерполяция: Приближение функции между соседними узлами — Узнайте, как по двум соседним табличным значениям построить линейную зависимость и приближённо вычислить значение функции между ними.
  2. Квадратичная интерполяция: Вычисление промежуточных значений функции — Рассмотрите, как по нескольким узлам построить квадратичный полином и использовать его для приближённого определения промежуточных значений.
  3. Кубическая сплайн-интерполяция: Приближение функции без резких изломов — Узнайте, как кубические сплайны соединяют отдельные участки и образуют гладкую кривую, проходящую через заданные табличные точки.

Метод Наименьших Квадратов: От Блок-Схемы До Программного Кода

Увлекаетесь программированием? Тогда попробуйте реализовать представленный на блок-схеме алгоритм на своём любимом языке. Программа должна считывать табличные данные, строить аппроксимирующий полином методом наименьших квадратов, находить его коэффициенты и вычислять значение в заданной точке. Pascal, Python, JavaScript или C++ — выбор за вами. Так вы не только проверите понимание алгоритма, но и увидите, как математические вычисления превращаются в готовую программную реализацию.

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