Обычно при интерполяции по заданной таблице из m>3 точек применяют квадратичную n=3 или линейную n=2 интерполяцию. В этом случае для приближенного вычисления значения функции f в точке x находят в таблице ближайший к этой точке i-узел из общей таблицы, строят интерполяционный многочлен Ньютона первой или второй степени по формулам

 

 

 

N (x

) = y

+ (x

x

1

)

yi yi1

,

x

x x ;

 

(3.7)

 

 

 

 

 

 

 

 

 

1 T

 

i1

 

T

i

 

x x

i1

 

T

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

i1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

yi1 yi

yi yi+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N

 

(x

) = N (x ) + (x

x

 

)(x

 

 

x

x

x

x

x x

2

 

x ) i1

 

i

 

i

i+1

; x

 

T

1 T

T

i1

T

i

 

 

 

xi1 xi+1

 

i1

T

i+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

и за значение f(x) принимают N1(x)

(линейная интерполяция) или N2 (x)

(квад-

ратичная интерполяция). Схема расчета для линейной и квадратичной интерполяции приведена на рис. 3.3.

Интерполяционный многочлен Лагранжа (PL)

n

n

xT

xi

 

Ln1(xT ) = yk ek (xT );

ek (xT ) =

(3.8)

(x

x

.

k =1

i=1

k

i)

 

ik

Многочлены ekn1(x j ) выбраны так, что во всех узлах, кроме k-го, они обращаются в ноль, в k-м узле они равны единице:

ekn1

1,

при

j = k;

(x j ) =

при

j k.

 

0,

Поэтому из выражения (3.8) видно, что Ln1(xi ) = yi .

Схема расчета интерполяционного многочлена Лагранжа представлена на рис. 3.4.

Интерполяция общего вида, использующая прямое решение системы (3.2) методом Гаусса (POG)

Следует отметить, что ввиду громоздкости многочлены Ньютона и Лагранжа уступают по эффективности расчета многочлену общего вида (3.3), если предварительно найдены коэффициенты с .

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

прямым решением системы (3.2) c матрицей (3.4), затем вычисляют его значения по экономно программируемой формуле (алгоритм Горнера)

Pn1 (x)= c1 + xT (c2 +... xT (cn2 + xT (cn1 + xT cn ) ...) .

(3.9)

Схема расчета интерполяционного многочлена общего вида по формуле (3.9) с прямым решением системы (3.2) приведена на рис. 3.5.

31

Рис. 3.4

Интерполяция общего вида, использующая расчет коэффициентов многочлена (3.r3) через многочлен Лагранжа (POL)

Находить коэффициенты с многочлена (3.3) можно, не решая прямо систему (3.2), а используя разложение коэффициентов Лагранжа (3.8):

 

 

 

n

 

ekn1(x) = akn,11

+ akn,21

x+ ... +akn,n1

xn1, ci = yk akn,i1 .

(3.10)

k =1

Рекуррентные формулы для нахождения коэффициентов akn,j1:

32

am

= am1

xm

 

;

am

= am1

 

1

;

(3.11)

 

 

 

x

k,1

k ,1 x

x

 

k ,m+1

k ,m x

 

 

 

 

k

 

m

 

 

 

k

m

 

 

 

am1

am1

x

 

am =

k, j1

k, j

m

; 1

< j < m; m = 2, ..., n 1

 

 

 

kj

xk xm

 

 

 

 

 

 

 

получаются из вида многочленов ekn1(x) , если использовать очевидное представление

em (x) = em1

 

x xnm

;

e0

= a0

=1; m =1, 2, ..., n; m k.

 

k

k

 

xk xn+m

 

k

k ,1

 

 

 

 

 

 

 

 

Схема алгоритма вычисления коэффициентов многочлена общего вида по формулам (3.10), (3.11) представлена на рис. 3.6.

а

б

Рис. 3.5

3.4. Что такое среднеквадратичная аппроксимация?

Суть среднеквадратичной аппроксимации заключается в том, что параметры сr функции ϕ(x,cr) подбираются такими, чтобы обеспечить минимум квадрата

33

Рис. 3.6

расстояния между функциями f(x) и ϕ(x,c ) в пространстве L2 [a b]

(см. под-

разд. 1.3), т.е. из условия

 

 

 

f (x) −ϕ(x,cv)

 

 

 

 

 

min

 

 

 

 

 

 

L .

(3.12)

 

 

 

 

c1 ,..., cn

2

 

В случае линейной аппроксимации (3.1) задача (3.12) сводится к решению СЛАУ для нахождения необходимых коэффициентов с :

 

 

 

n

 

ck = ( f ,ϕi )L ; i =1... n.

 

 

 

 

(ϕi ϕk )L

(3.13)

 

 

 

k =1

2

2

 

Здесь (ϕiϕk )L

 

( f ,ϕi )L

 

 

 

,

– скалярные произведения в L2.

 

2

2

 

 

 

34

 

 

 

 

 

 

Матрица системы (3.13) симметричная, и ее следует решать методом квадратного корня.

Особенно просто эта задача решается, если выбрана ортогональная система функций {ϕk (x)} , т.е. такая, что

 

0,

 

 

 

 

i k

(ϕi

ϕk )=

 

 

 

ϕk

 

 

 

2

, i = k.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Тогда матрица СЛАУ (3.13) диагональная и параметры c находятся по формуле

c

= ( f , ϕk ).

k

 

 

ϕk

 

2

 

 

 

 

 

 

 

В этом случае представление (3.1) называется обобщенным рядом Фурье, а ck называются коэффициентами Фурье.

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

МНК

является

частным случаем

 

 

 

 

 

 

среднеквадратичной

аппроксимации.

 

 

 

 

 

 

При использовании МНК в области

 

 

 

 

 

 

значений

x,

представляющей

 

 

 

 

 

 

некоторый интервал [a, b], где

 

 

 

 

 

 

функции f и ϕ должны быть близки,

 

 

 

 

 

 

выбирают систему

различных

точек

 

 

 

 

 

 

(узлов) x1, ..., xm, число которых

 

 

 

 

 

 

обычно больше, чем количество

 

 

 

 

 

 

искомых параметров c1, ...,cn ,

m n.

 

 

 

 

 

Рис. 3.7

Далее, потребовав, чтобы сумма

 

 

 

 

 

 

 

 

 

 

 

квадратов невязок во всех узлах была минимальна (рис. 3.7):

 

 

 

 

m

 

r

2

 

m

 

2

r

 

 

min

 

= min

δ

 

 

[ y −ϕ(x c)]

i

= min δ(c), )

 

 

r

 

i

i

 

r

 

r

 

 

c

 

i=1

 

 

 

c

i=1

 

 

c

находим из этого условия параметры c1, ...,cn . В общем случае эта задача слож-

ная и требует применения численных методов оптимизации. Однако в случае линейной аппроксимации (3.1), составляя условия минимума суммы квадратов невязок во всех точках δ(cr) (в точке минимума все частные производные

должны быть равны нулю):

∂δ(c1,c2 ,...,cn ) = 0, i =1, n,

(3.14)

ci

 

получаем систему n линейных уравнений относительно n неизвестных c1, ...,cn следующего вида:

35

 

n

r

r

r r

i =1, n или

r

= b .

(3.15)

 

(ϕi

ϕk )ck = ( y, ϕi ),

r

k =1

(x2 ),

... , ϕi (xm )), y = (y1, ... , ym ) – векторы-таблицы функ-

 

Здесь ϕi = (ϕi (x1), ϕi

ций. Элементы матрицы G и вектора b в (3.15) определяются выражениями

Рис. 3.8

36

3
Рис. 3.9

r

r

m

 

 

gi,k = (ϕi

ϕk ) =

ϕi (x j )ϕk (x j );

 

 

 

j=1

 

скалярные произведения векторов.

 

m

 

 

r r

 

 

 

 

 

 

bi = ( y, ϕi ) = y jϕi (x j ).

 

 

 

j=1

 

 

 

Система (3.15) имеет симметричную матрицу G и решается методом квадратного корня.

При аппроксимации по МНК обычно применяют такие функции {ϕi (x)}, ко-

торые используют особенности решаемой задачи и удобны для последующей обработки.

Схема расчета коэффициентов многочлена вида (3.3) по методу наименьших квадратов представлена на рис. 3.8.

Приведем пример аппроксимации по МНК. Предположим, что известна таб-

лица значений f(x): {x1=1, y1=0.5, x2=2, y2=1.2, x3=3, y3=0.8}, т.е. m=3. Требуется найти параметры аппроксимирующей функции ϕ(x, c1, c2 ) вида

ϕ = c1 + c2 x , (n=2).

Составляем сумму квадратов невязок

δ(сr)= 3 (yi с1 с2 xi )2 = (0,5 с1 с2 1)2 + (1.2 с1 с2 2)2 + (0.8 с1 с2 3)2 .

i=1

Условия минимума (3.14):

 

∂δ

= −2 (0.5 с 1 с

)2 (1.2 с 2 с

)2 (0.8 с 3 с

 

)= 0;

 

 

2

с1

 

 

1

2

1

2

1

 

 

 

 

 

 

 

 

 

 

 

 

∂δ

 

 

 

 

 

 

 

 

 

 

= −2

(0.5

с1

1 с2 )4 (1.2 с1 2 с2 )6 (0.8 с1 3 с2 )= 0.

 

с2

 

 

 

 

 

 

 

 

 

 

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

3с + 6с

 

= 2.5;

 

1

2

 

6с1 +14с2 = 5.3.

Решая

ее,

 

находим с1 0.53,

с2 = 0.15.

На рис. 3.9 приведена таблица функции f(x) и полученная по МНК функция ϕ(x).

Порядок расчета по МНК следующий. Вначале по исходной таблице формируется матрица G и рассчитываются коэффициенты (см. рис. 3.8) (в качестве ϕk(x) здесь берется функция xk-1). Затем, используя полученные коэффициенты, рассчитывается значение функции в искомой точке (см. рис. 3.5, б).

37

3.5. Варианты заданий

Во всех вариантах (табл. 3.1.) требуется аппроксимировать заданную исходную функцию f(x) многочленом на интервале [a, b]. Задано количество неизвестных параметров n, вид аппроксимации и m – количество точек, в которых

задана функция. Таблица исходной функции

yi=f(xi) вычисляется

в точках

xi = a + (i 1)(b a) /(m 1), i =1, m. Используя

полученную

таблицу

(xi , yi ),

требуется вычислить

значения

функций f (x j ), ϕ(x j ,c)

и

погрешность

d (x j ) = f (x j ) −ϕ(x j ,cr)

в точках

x j = a + ( j 1)(b a) / 20; j =1,

21, построить

графики и проанализировать качество полученной аппроксимации.

 

 

 

 

 

 

Таблица 3.1

 

 

 

 

 

 

 

N вар.

Функция f(x)

a

b

m

n

Вид аппроксимации

1

4x 7sin(x)

–2

3

11

3

МНК

2

x2 10sin2 (x)

0

3

4

4

Ньютона PN

3

ln(x) 5cos(x)

1

8

4

4

Лагранжа PL

4

ex / x3 sin3 (x)

4

7

4

4

Общего вида POG

5

x cos2 (x)

5

8

4

4

Общего вида POL

6

ln(x) 5sin2 (x)

3

6

11

2

Линейная PNL

7

x 5sin2 (x)

1

4

11

4

МНК

8

sin2 (x) x / 5

0

4

11

3

Квадратичная PNS

9

x3 +10x2

–8

2

5

5

Ньютона PN

10

x3 5x2

–2

5

5

5

Лагранжа PL

11

x3 + 6x2 0.02ex

–5

3

5

5

Общего вида POG

12

x2 + 5cos(x)

–1

4

5

5

Общего вида POL

13

sin2 (x) 3cos(x)

1

7

11

5

МНК

14

x3 50cos(x)

–2

5

11

3

Квадратичная PNS

15

0.1x3 + x2 10sin(x)

–4

2

11

2

Линейная PNL

 

 

 

 

 

 

 

3.6. Контрольные вопросы

1. Как ставится задача линейной аппроксимации функций?

2. Что такое интерполяция, ее геометрическая интерпретация?

3. Напишите интерполяционный многочлен Ньютона 2-го порядка. 4. Напишите интерполяционный многочлен Лагранжа 2-го порядка.

5. Как осуществляется аппроксимация по методу наименьших квадратов и его геометрическая интерпретация?

6. Выведите СЛАУ относительно коэффициентов функции ϕ = c1 + c2 x по МНК для таблицы {(x1 y1 ), (x2 y2 ), (x3 y3 )} .

38

ТЕМА 4. ВЫЧИСЛЕНИЕ ПРОИЗВОДНЫХ И ИНТЕГРАЛОВ

4.1. Как аппроксимируют операторы?

Задачи численного дифференцирования и интегрирования являются частным случаем общей задачи аппроксимации операторов, состоящей в том, что заданный на некотором множестве функций оператор U = Φ[ f (x)] требуется заме-

нить более простым, удобным для последующего использования, оператором U% = Λ[ f (x)], близким в некотором смысле к исходному.

Аппроксимацию операторов обычно осуществляютr следующим образом: функцию f (x) аппроксимируют такой функцией ϕ(x, c) , от которой оператор

Φ легко вычисляется, после чего полагают U% = Λ[ f (x)] =Φ [ ϕ(x, сr) ].

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

4.2. Формулы численного дифференцирования

Формулы для расчета производной d m f / dxm в точке x получаются следующим образом. Берется несколько близких к x узлов x1, x2 , ..., xn (n m+1), на-

зываемых шаблоном (точка x может быть одним из узлов). Вычисляются значения yi = f (xi ) в узлах шаблона, строится интерполяционный многочлен

Ньютона (3.6) и после взятия производной от этого многочлена d m Pn1 / dxm получается выражение приближенного значения производной (формула числен-

ного

дифференцирования)

через значения функции в узлах шабло-

на:

d m f / dxm ≈ Λn

[ f ] = d m P

/ dxm .

 

m

 

n1

 

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

Анализ оценки погрешности вычисления производной

 

 

d

m

f − Λn

 

 

max

 

f (m) (x)

 

 

 

 

 

 

Chnm ,

 

 

 

 

 

 

 

 

 

 

 

ε =

max

 

[ f ]

 

 

x

 

 

 

 

max

 

x x

 

(4.1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1<x<xn

dxm

m

 

 

 

 

(n m)

 

i

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

h = max

 

xi xi1

 

; C = const,

 

n m +1

 

 

 

 

 

 

 

 

 

 

 

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

39

симметрично относительно x. Заметим, что порядок погрешности при h0 равен n-m 1, и для повышения точности можно либо увеличивать n, либо уменьшать h (последнее более предпочтительно).

Приведем несколько важных формул для равномерного шаблона, получае-

мых с использованием (3.7):

 

 

 

 

 

 

df

 

dP

= Λ2[ f (x)] =

y

2

y

 

 

 

 

1

 

1

; x

x x .

(4.2)

 

 

 

 

dx

 

dx

1

 

 

h

1

2

 

 

 

 

 

 

 

 

Простейшая формула (4.2) имеет второй порядок погрешности в центре ин-

тервала и первый по краям:

 

 

 

 

y1 2 y2 + y3

 

 

df

dP2 = Λ3[ f (x)] =

y2 y1

+ (2x x

x )

.

(4.3)

 

 

 

dx

dx

1

 

h

1

2

2h2

 

 

 

 

 

 

Эта формула имеет второй

порядок

погрешности во всем

интервале

x1 x x3 и часто используется для вычисления производной в крайних точках

таблицы, где нет возможности выбрать симметричное расположение узлов. Заметим, что из (4.3) получается три важные формулы второго порядка точности:

df (x2 ) = Λ3[ f (x )] =

y3 y1

;

 

 

(4.4)

 

 

dx

1

2

 

2h

 

 

 

 

 

 

 

df (x1) = Λ3[ f (x )] = −3y1 4 y2 + y3

;

(4.5)

dx

1

1

 

2h

 

 

 

 

 

 

 

df (x3 ) = Λ3[ f (x )] =

y1 4 y2 +3y3

.

 

(4.6)

 

 

dx

1

3

 

2h

 

 

 

 

 

 

 

Для вычисления второй производной часто используют следующую про-

стейшую формулу:

 

 

 

 

 

 

 

 

 

 

 

 

d 2 f

 

d 2P

 

 

 

y 2 y

2

+ y

 

 

 

2

= Λ

2

[ f (x)] =

1

 

3

; x

x x ,

(4.7)

 

 

 

 

 

dx2

 

dx2

 

 

 

h2

1

3

 

 

 

 

 

 

 

 

 

 

которая имеет второй порядок погрешности в центральной точке x2.

4.3. Формулы численного интегрирования

b

Формулы для вычисления интеграла U = f (x)dx получают следующим об-

 

 

 

 

a

 

 

разом. Область

интегрирования

[a,

b] разбивают на

малые

отрезки

{a = x1 < x2 <... < xm+1 = b, hi = xi+1 xi }, в общем случае разной длины. Значение

интеграла

по

всей области

равно

сумме интегралов

на

отрезках

b

m xi +1

 

 

 

 

 

f (x)dx =

f (x)dx . Выбирают на каждом отрезке [xi, xi+1] 1–5 узлов и стро-

a

i=1 x

 

 

 

 

 

 

i

 

 

 

 

 

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

40