Квадратичное приближение

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

(4.4)

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

По оси ординат откладывается линейная шкала в соответствии с выражением

Нанесем на эту систему координат опытные точки. Если точки этого графика располагаются приблизительно по прямой, то это подтверждает наше предположение, что зависимость y от x хорошо выражается функцией вида (4.4). Для отыскания коэффициентов a и b можно теперь применить один из рассмотренных выше способов: способ натянутой нити, способ выбранных точек или способ средней.

Способ натянутой нити применяется также, как и для линейной функции.

Способ выбранных точек можем применить так. На прямолинейном графике возьмем две точки (далекие друг от друга). Координаты этих точек обозначим и (x, y ). Тогда можем записать

Из приведенной системы двух уравнений найдем a и b и подставим их в формулу (4.4) и получим окончательный вид эмпирической формулы.

Можно и не строить прямолинейного графика, а взять числа , (x,y ) прямо из таблицы. Однако полученная при таком выборе точек формула будет менее точна.

Процесс преобразования криволинейного графика в прямолинейный называется выравниванием.

Способ средней . Он применяется аналогично как в случае с линейной зависимостью. Разбиваем опытные точки на две группы с одинаковым (или почти одинаковым) числом точек в каждой группе. Равенство (4.4) перепишем так

(4.5)

Находим сумму невязок для точек первой группы и приравниваем нулю. То же делаем для точек второй группы. Получим два уравнения с неизвестными a и b . Решая систему уравнений, найдем a и b .

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

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

z -20 -15,4 -9,0 -5,4 -0,6 +4,8 +9,4
2,6 2,01 1,34 1,08 0,94 1,06 1,25

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

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

можно искать в виде (4.4).

Определим коэффициенты a и b по методу средней. Для этого разобьем опытные точки на две группы: в первой группе – первые три точки, во второй – остальные четыре точки. Используя равенство (4.5) находим сумму невязок по каждой группе и приравниваем каждую сумму нулю.

Часто значения интерполируемой функции у, у 2 , ..., у„ определяются из эксперимента с некоторыми ошибками, поэтому пользоваться точным приближением в узлах интерполяции неразумно. В этом случае более естественно приближать функцию не по точкам, а в среднем, т. е. в одной из норм L p .

Пространство 1 р - множество функций д(х), определенных на отрезке [а,Ь] и интегрируемых по модулю с р-й степенью, если определена норма

Сходимость в такой норме называется сходимостью в среднем. Пространство 1,2 называется гильбертовым, а сходимость в нем - среднеквадратичной.

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

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

Вторая задача - это поиск наилучшего приближения, т. е. поиск такой функции ф*(х), которая удовлетворяет соотношению:

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

где набор функций ф[(х), ..., ф„(х) будем считать линейно независимым.

Можно показать , что в любом нормированном пространстве при линейной аппроксимации (2.16) наилучшее приближение существует, хотя нс во всяком линейном пространстве оно единственно.

Рассмотрим гильбертово пространство ЬгСр) действительных функций, интегрируемых с квадратом с весом р(х) > 0 на [ , где скалярное произведение (g,h ) определено по

формуле:

Подставляя в условие наилучшего приближения линейную комбинацию (2.16), находим

Приравнивая к нулю производные по коэффициентам (Д, k = 1, ..., П, получим систему линейных уравнений

Определитель системы уравнений (2.17) называется определителем Гра- ма. Определитель Грама отличен от нуля, поскольку считается, что система функций ф[(х), ..., ф„(х) линейно независима.

Таким образом, наилучшее приближение существует и единственно. Для его получения необходимо решить систему уравнений (2.17). Если система функций ф1(х), ..., ф„(х) ортогонализирована, т. е. (ф/,ф,) = 5у, где 5, = 1, 8у = О, Щ, ij = 1, ..., п, то система уравнений может быть решена в виде:

Найденные согласно (2.18) коэффициенты Q, ..., й п называются коэффициентами обобщенного ряда Фурье.

Если набор функций ф t (X), ..., ф„(х),... образует полную систему, то в силу равенства Парсеваля при П -» со норма погрешности неограниченно убывает. Это означает, что наилучшсс приближение среднеквадратично сходится к Дх) с любой заданной точностью.

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

Пусть в качестве системы функций ф„ i =1, ..., П, выбираются степени, т. е. ф* = X 1 ", 1 = 1, ..., п, тогда, полагая в качестве отрезка аппроксимации отрезок , находим матрицу Грама

Матрицу Грама вида (2.19) называют еще матрицей Гильберта. Это классический пример так называемой плохо обусловленной матрицы.

С помощью MATLAB рассчитаем определитель матрицы Гильберта в форме (2.19) для некоторых первых значений п. В листинге 2.5 приведен код соответствующей программы.

Листинг 23

%Вычисление определителя матриц Гильберта %очищаем рабочую область clear all;

%выберем максимальное значение порядка %матрицы Гильберта птах =6;

%строим цикл для формирования матриц %Гильберта и вычисления их определителей

for n = 1: птах d(n)=det(hi I b(п)); end

%выводим значения определителей %матриц Гильберта

f о г та t short end

После отработки кода листинга 2.5, в командном окне MATLAB должны появиться значения детерминантов матриц Гильберта для первых шести матриц. В таблице ниже приведены соответствующие численные значения порядков матриц (п) и их определителей (d). Из таблицы отчетливо видно, сколь быстро определитель матрицы Гильберта стремится к нулю при росте порядка и, уже начиная с порядков 5, 6, становится неприемлемо малым.

Таблица значений определителя матриц Гильберта

Численная ортогонализация системы функций ф, i = 1, ..., П также приводит к заметной потере точности, поэтому чтобы учитывать большое число членов в разложении (2.16), необходимо либо проводить ортогонализацию аналитически, т. е. точно, либо пользоваться уже готовой системой ортогональных функций.

Если при интерполяции обычно используют в качестве системы базисных функций степени, то при аппроксимации в среднем в качестве базисных функций выбирают многочлены, ортогональные с заданным весом. Наиболее употребительными из них являются многочлены Якоби, частным случаем которых являются многочлены Лежандра и Чебышева. Используют также полиномы Лагсрра и Эрмита. Более подробно об этих полиномах можно узнать, например, в приложении Ортогональные полиномы книги .

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

Чтобы скачать архив с документом, в поле, расположенное ниже, впишите пятизначное число и нажмите кнопку "Скачать архив"

### ##### ## #### ####
## ## ### ## ## ## ##
## ##### #### ## ## ## ##
##### ## ## ## ## ## #####
## ## ## ####### ## ## ##
## ## ## ## ## ## ## ##
#### #### #### #### ###

Введите число, изображенное выше:

Подобные документы

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

    курсовая работа , добавлен 14.04.2009

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

    курс лекций , добавлен 06.03.2009

    Понятие определенного интеграла, его геометрический смысл. Численные методы вычисления определенных интегралов. Формулы прямоугольников и трапеций. Применение пакета Mathcad для вычисления интегралов, проверка результатов вычислений с помощью Mathcad.

    курсовая работа , добавлен 11.03.2013

    Численные методы решения систем линейных уравнений: Гаусса, простой итерации, Зейделя. Методы аппроксимации и интерполяции функций: неопределенных коэффициентов, наименьших квадратов. Решения нелинейных уравнений и вычисление определенных интегралов.

    курсовая работа , добавлен 27.04.2011

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

    лабораторная работа , добавлен 14.08.2010

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

    курсовая работа , добавлен 16.12.2015

    Численные методы поиска безусловного экстремума. Задачи безусловной минимизации. Расчет минимума функции методом покоординатного спуска. Решение задач линейного программирования графическим и симплексным методом. Работа с программой MathCAD.

    курсовая работа , добавлен 30.04.2011

ЛАБОРАТОРНАЯ РАБОТА

СРЕДНЕКВАДРАТИЧНОЕ ПРИБЛИЖЕНИЕ ТАБЛИЧНО ЗАДАННЫХ ФУНКЦИЙ МЕТОДОМ НАИМЕНЬШИХ КВАДРАТОВ

Цель : Ознакомление студентов с основными методами интерполяции и аппроксимации таблично заданных функций. Закрепление на практике полученных знаний в области аппроксимации таких функций.

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

ТЕОРЕТИЧЕСКИЕ ПОЛОЖЕНИЯ

Интерполяция и аппроксимация

В практике часто встречается ситуация, когда некоторая функция f (x ) задана таблицей ее значений в отдельных точках х = x 0 , x 1 , … , x n [a , b ], например, дискретные показания прибора во времени, а следует вычислить функцию f (x ) в некоторых промежуточных точках. Эту задачу можно решить приближенно, заменяя функцию f (x ) более простой непрерывной функцией F (x ). Существуют два основных способа такой замены: интерполяция и аппроксимация .

Суть интерполирования – в построении такой легко вычисляемой функции F (x ), которая совпадает с функцией f (x ) в точках х = x 0 , x 1 , … , x n . Иными словами, график функции F (x ) в плоскости Оху должен проходить через точки х = x 0 , x 1 , … , x n , в которых задана функция f (x ). При этом, точки х = x 0 , x 1 , … , x n называют узлами интерполирования, а функцию F (x ) – интерполяционной. В качестве интерполяционной функции в большинстве случаев выбирают полиномы. Так, линейная интерполяция состоит в простом последовательном соединении точек (x 0 , f (x 0)), (x 1 , f (x 1)), … ,

(x n , f (x n )) отрезками прямых, т.е. в построении n полиномов первой степени. Значение функции f (x ) в точке х *, где х * (x i ,x i +1), i = 0, 1, … , n – 1, вычисляется в этом случае достаточно просто:

f (x *) = f (x i ) + · (х *–x i ).

Квадратичная интерполяция состоит в соединении последовательных троек узлов интерполяции параболами. Кубическая интерполяция – четверок – кубическими параболами и т.д. Интерполяционные полиномы степени (n – 1)есть гладкие функции, проходящие через все узлы интерполяции. При наложении дополнительных условий на соединение функции F (x )в точках (x 1 , f (x 1)), (x 2 , f (x 2)), … , (x n -1 , f (x n -1)) получим т.н. сплайн-интерполяцию. Для построения интерполяционных многочленов разработано множество методов: Ньютона, Стирлинга, Лагранжа и др.

Во многих случаях, имея значения функции в n + 1 узлах, удобно вместо интерполяционного многочлена находить полином степени m <n , который бы хорошо приближал (аппроксимировал) рассматриваемую функцию. При этом требование совпадения функций f (x ) иF (x ) в точках (x 0 , f (x 0)), (x 1 , f (x 1)), … , (x n , f (x n )) заменяется на требование минимизации суммарного отклонения между значениями функций f (x ) и F (x ) в точках х = x 0 , x 1 , … , x n .

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

Среднеквадратическое приближение таблично заданных функций

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

Пусть в узлах x 0 , x 1 , … , x n имеем значения у 0 , у 1 , … , у n функции f (x ). Среди полиномов m -й степени (m <n )

P m (x ) = a 0 + a 1 x + a 2 x 2 + … + a m x m (1)

найти такой, который доставляет минимум выражению

S = .(2)

Неизвестными являются коэффициенты полинома (1). Сумма (2) представляет собой квадратичную форму от этих коэффициентов. Кроме того, формула (2) показывает, что функция S = S (a 0 , a 1 , … , a m ) не может принимать отрицательных значений. Следовательно, минимум функции S существует.

Применяя необходимые условия экстремума функции S = S (a 0 , a 1 , … , a m ), получаем систему линейных алгебраических уравнений для определения коэффициентов a 0 , a 1 , … , a m :

, (k = 0, 1, 2, … , m )(3)

Полагая с p = , d p = , запишем систему (3) в матричном виде

С a = d , (4)

С = – матрица системы, а = {a 0 , a 1 , … , a m } T – вектор неизвестных, d = {d 0 , d 1 , … , d m } T – вектор правых частей системы.

Если среди узлов x 0 , x 1 , … , x n нет совпадающих и m n , то система (4) имеет единственное решение a 0 = ,a 1 = , … , a m = . Тогда полином

= + x + x 2 + … + x m

является единственным полиномом степени m , обладающим минимальным квадратичным отклонением S * = S min.

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

Самый простой и наиболее часто используемый вид аппроксимации (среднеквадратического приближения) функции – линейная. Приближение данных (x i , y i ) осуществляется линейной функцией y (х )= ax + b . На координатной плоскости (x , y ) линейная функция, как известно, представляется прямой линией.

Пример . Сгладить систему точек прямойy = ax + b .

х –1 0 1 2 3 4
у 0 2 3 3,5 3 4,5

Строим рабочую таблицу .

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

Теория

Пусть значения приближаемой функции f(x) заданы в N+1 узлах f(x 0), ..., f(x N) . Аппроксимирующую функцию будем выбирать из некоторого параметрического семейства F(x, c) , где c = (c 0 , ..., c n) T - вектор параметров, N > n .

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

В этом случае задача аппроксимации ставится как задача поиска такого вектора параметров c = (c 0 , ..., c n) T , при котором значения аппроксимирующей функции как можно меньше отклонялись бы от значений аппроксимируемой функции F(x, c) в совокупности всех узлов.

Графически задачу можно представить так

Запишем критерий среднеквадратичного приближения для метода наименьших квадратов:
J(c) = √ (Σ i=0 N 2) →min

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

Метод наименьших квадратов может быть применен для различных параметрических функций, но часто в инженерной практике в качестве аппроксимирующей функции используются многочлены по какому-либо линейно независимому базису {φ k (x), k=0,...,n }:
F(x, c) = Σ k=0 n [c k φ k (x) ] .

В этом случае система линейных алгебраических уравнений для определения коэффициентов будет иметь вполне определенный вид:


Чтобы эта система имела единственное решение необходимо и достаточно, чтобы определитель матрицы А (определитель Грама) был отличен от нуля. Для того, чтобы система имела единственное решение необходимо и достаточно чтобы система базисных функций φ k (x), k=0,...,n была линейно независимой на множестве узлов аппроксимации.

В этой статье рассматривается среднеквадратичное приближение многочленами по степенному базису {φ k (x) = x k , k=0,...,n }.

Пример

А теперь перейдем к примеру. Требуется вывести эмпирическую формулу для приведенной табличной зависимости f(х), используя метод наименьших квадратов.
x 0,75 1,50 2,25 3,00 3,75
y 2,50 1,20 1,12 2,25 4,28

Примем в качестве аппроксимирующей функцию
y = F(x) = c 0 + c 1 x + c 2 x 2 , то есть, n=2, N=4

Система уравнений для определения коэффициентов:
a 00 c 0 + a 01 c 1 +… + a 0n c n = b 0
a 10 c 0 + a 11 c 1 +… + a 1n c n = b 1

a n0 c 0 + a n1 c 1 +… + a nn c n = b n

a kj = Σ i=0 N [φ k (x i)φ j (x i) ], b j = Σ i=0 N

Коэффициенты вычисляются по формулам:
a 00 = N + 1 = 5, a 01 = Σ i=0 N x i = 11,25, a 02 = Σ i=0 N x i 2 = 30,94
a 10 = Σ i=0 N x i = 11,25, a 11 = Σ i=0 N x i 2 = 30,94, a 12 = Σ i=0 N x i 3 = 94,92
a 20 = Σ i=0 N x i 2 = 30,94, a 21 = Σ i=0 N x i 3 = 94,92, a 22 = Σ i=0 N x i 4 = 303,76
b 0 = Σ i=0 N y i = 11,25, b 1 = Σ i=0 N x i y i = 29, b 2 = Σ i=0 N x i 2 y i = 90,21

Решаем систему уравнений и получаем такие значения коэффициентов:
c 0 = 4,822, c 1 = -3,882, c 2 = 0,999

Таким образом
y = 4,8 - 3,9x + x 2

График получившейся функции

Релизация на C#

А теперь перейдем к тому, как написать код, который бы строил такую матрицу. А тут, оказывается, все совсем просто:
private double[,] MakeSystem(double[,] xyTable, int basis) { double[,] matrix = new double; for (int i = 0; i < basis; i++) { for (int j = 0; j < basis; j++) { matrix = 0; } } for (int i = 0; i < basis; i++) { for (int j = 0; j < basis; j++) { double sumA = 0, sumB = 0; for (int k = 0; k < xyTable.Length / 2; k++) { sumA += Math.Pow(xyTable, i) * Math.Pow(xyTable, j); sumB += xyTable * Math.Pow(xyTable, i); } matrix = sumA; matrix = sumB; } } return matrix; }
На входе функция получает таблицу значений функций - матрицу, в первом столбце которой содержатся значения x, во втором, соответственно, y, а также значение степенного базиса.

Сначала выделяется память под матрицу, в которую будут записаны коэффициенты для решения системы линейных уравнений. Затем, собственно, составляем матрицу - в sumA записываются значения коэффициентов aij, в sumB - bi, все по формуле, указанной выше в теоретической части.

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