Во время экспериментов значения функции часто известны только в отдельных точках, а полученные данные могут содержать погрешности измерений. В такой ситуации не всегда целесообразно строить функцию, которая точно проходит через каждую заданную точку. Метод наименьших квадратов позволяет найти зависимость, которая в целом наилучшим образом описывает имеющиеся данные, а практические примеры помогут увидеть, как этот подход применяется для построения аппроксимирующих полиномов и нахождения приближённых значений функции.
Аппроксимация Экспериментальных Данных: Постановка Задачи
Пусть в результате научного или инженерного эксперимента получена система точек
\[ (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. \]
Другие Методы Приближения Функций: Темы Для Продолжения
После знакомства с методом наименьших квадратов стоит рассмотреть и другие способы приближения функций, заданных таблично. Следующие темы помогут сравнить различные подходы к вычислению значений функции между известными узлами.
- Линейная интерполяция: Приближение функции между соседними узлами — Узнайте, как по двум соседним табличным значениям построить линейную зависимость и приближённо вычислить значение функции между ними.
- Квадратичная интерполяция: Вычисление промежуточных значений функции — Рассмотрите, как по нескольким узлам построить квадратичный полином и использовать его для приближённого определения промежуточных значений.
- Кубическая сплайн-интерполяция: Приближение функции без резких изломов — Узнайте, как кубические сплайны соединяют отдельные участки и образуют гладкую кривую, проходящую через заданные табличные точки.
Метод Наименьших Квадратов: От Блок-Схемы До Программного Кода
Увлекаетесь программированием? Тогда попробуйте реализовать представленный на блок-схеме алгоритм на своём любимом языке. Программа должна считывать табличные данные, строить аппроксимирующий полином методом наименьших квадратов, находить его коэффициенты и вычислять значение в заданной точке. Pascal, Python, JavaScript или C++ — выбор за вами. Так вы не только проверите понимание алгоритма, но и увидите, как математические вычисления превращаются в готовую программную реализацию.
