Во время экспериментов значения функции часто известны только в отдельных точках, а полученные данные могут содержать погрешности измерений. В такой ситуации не всегда целесообразно строить функцию, которая точно проходит через каждую заданную точку. Метод наименьших квадратов позволяет найти зависимость, которая в целом наилучшим образом описывает имеющиеся данные, а практические примеры помогут увидеть, как этот подход применяется для построения аппроксимирующих полиномов и нахождения приближённых значений функции.
Аппроксимация Экспериментальных Данных: Постановка Задачи
Пусть в результате научного или инженерного эксперимента получена система точек
\[
(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++ — выбор за вами. Так вы не только проверите понимание алгоритма, но и увидите, как математические вычисления превращаются в готовую программную реализацию.
