Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lab4

.pdf
Скачиваний:
6
Добавлен:
15.04.2015
Размер:
215.68 Кб
Скачать

35

Лабораторная работа № 4

ИНТЕРПОЛИРОВАНИЕ ФУНКЦИЙ

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

1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

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

На отрезке [a, b] заданы n + 1 точки x0, x1, ..., xn, которые называются узлами интерполяции, и значения некоторой функции f(x) в этих точках f(x0) = y0, f(x1) = y1, ..., f(xn) = yn. Требуется построить интерполирующую функцию F(x), принимающую в узлах интерполяции те же значения, что и f(x), т.е. такую, что

F(x0) = y0, F(x1) = y1, ..., F(xn) = yn.

Геометрически это означает, что нужно найти кривую y = F(x) некоторого определенного типа, проходящую через заданную систему точек Mi(xi, yi) для

i = 0, n . Полученная таким образом интерполяционная формула y = F(x) обычно

используется для вычисления значений исходной функции f(x) для значений аргумента x, отличных от узлов интерполяции. Такая операция называется интерполированием функции f(x). При этом различают интерполирование в узком смысле, когда x принадлежит интервалу [x0, xn], и экстраполирование, когда x не принадлежит этому интервалу.

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

Впростейшем случае предполагается, что зависимость y = f(x) на каждом

интервале (xi, xi+1) является линейной. Тогда для каждого участка (xi, xi+1) в качестве интерполяционной формулы y = F(x) используется уравнение прямой, проходящей через точки Mi(xi, yi) и Mi+1(xi+1, yi+1), которое имеет вид

y = yi +

yi+1 yi

(x xi ).

(1)

 

 

xi+1 xi

 

При программировании процедур линейной интерполяции следует учитывать, что процесс решения задачи интерполирования с использованием формулы (1) включают два этапа: выбор интервала (xi, xi+1), которому принадлежит значение аргумента х; собственно вычисление значения y = F(x) по формуле (1).

36

На практике в качестве интерполирующей функции F(x) обычно исполь-

зуется алгебраический многочлен

Pn(x) = a0 + a1x + a2x2 + ... + anxn

степени не выше n, такой, что Pn(x0) = y0, Pn(x1) = y1, ..., Pn(xn) = yn. Наиболее известными методами построения интерполяционного многочлена Pn(x) явля-

ются метод Лагранжа, итерационные и разностные методы.

1.1. Формула Лагранжа

Интерполяционная формула Лагранжа обеспечивает построение алгебраического многочлена Pn(x) для произвольно заданных узлов интерполирования. Для n + 1 различных значений аргумента x0, x1, ..., xn и соответствующих значений функции f(x0) = y0, f(x1) = y1, ..., f(xn) = yn интерполяционная формула

Лагранжа имеет вид

 

 

(x x0 )(x x1 )...( x xi 1 )(x xi +1 )...( x x n ) ,

P (x ) = ∑y

 

 

n

 

 

 

n

 

i

 

 

i =0

(xi x0 )(xi x1 )...( xi xi 1 )(xi xi +1 )...( xi x n )

где х - значение аргумента функции, расположенного в интервале [x0, xn]. Необходимо отметить, что формула Лагранжа, в отличие от других ин-

терполяционных формул, содержит явно yi (i = 0,n ), что бывает иногда важно. Пример 1. Построить интерполяционный многочлен Лагранжа для функ-

ции, заданной следующей таблицей.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x0 = 0,

x1 = 1,

 

 

x2 = 2,

 

 

 

x 3 = 5,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y0 = 2,

y1 = 3,

 

 

y2 = 12,

 

y 3 = 147.

 

 

 

 

 

 

 

 

 

Для случая четырех узлов интерполяции (n = 3) многочлен Лагранжа

представляется следующим образом:

 

 

 

 

 

 

 

 

(x x0 )(x x2 )(x x3 )

 

 

 

P

(x) = y

 

 

 

(x x1 )(x x2 )(x x3 )

 

 

 

+ y

 

 

 

+

 

 

 

 

 

 

 

 

)

 

 

 

 

)

 

3

 

 

0 (x

0

x

)(x

0

x

2

)(x

0

x

3

 

 

1

 

(x

 

x

0

)(x

 

x

2

)(x

 

x

3

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

1

 

1

 

 

1

 

 

 

 

 

+ y

 

 

 

 

(x x0 )(x

x1 )(x x3 )

 

 

 

+ y

 

 

(x x0 )(x

x1 )(x

x2 )

.

 

 

 

 

 

 

 

 

 

 

 

)

 

 

 

 

 

 

 

 

2 (x

2

x

0

)(x

2

x

)(x

2

x

3

 

 

3

 

(x

3

x

0

)(x

3

x

)(x

3

x

2

)

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

Заменив переменные xi, yi (i =

 

 

) их числовыми значениями, получим

0,3

интерполяционный многочлен

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P

(x) = 2

(x 1)(x 2)(x 5)

+3

(x 0)(x 2)(x 5)

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

(0 1)(0 2)(0

5)

 

 

 

(1

0)(1 2)(15)

 

 

 

 

 

 

 

 

 

 

 

 

 

+12

(x

0)(x 1)(x

5)

+147

(x

0)(x

1)(x 2)

= x3 + x2 x +2.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(2 0)(2 1)(2 5)

 

 

 

 

 

 

(5 0)(5 1)(5 2)

 

 

 

 

 

 

 

 

 

Интерполирование по формуле Лагранжа связано с большим объемом вычислений, значительная часть которых повторяется при получении нескольких значений Pn(x) для одной функции f(x). В том случае, когда формула Лагранжа используется для многократного получения значений одной функции при различных значениях аргумента, можно значительно уменьшить объем вычислений. Для этого формула Лагранжа представляется в виде

37

 

n

P (x) = ∑ y L(n) (x),

n

i i

 

i=0

где L(in ) (x ) - лагранжевы коэффициенты, определяемые как

( n )

 

(x x0 )(x x1 )...(x xi1 )(x xi+1 )...(x xn )

 

Li

(x) =

 

.

(xi x0 )(xi x1 )...(xi xi1 )(xi xi+1 )...(xi xn )

 

 

 

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

 

x x0

 

x0

x1

x0

x2

...

x0

x n

x1

x0

 

x x1

 

x1

x2

...

x1

x n

x2

x0

x2

x1

 

x x2

...

x2

x n

 

 

...

 

 

 

...

 

 

 

...

 

...

 

 

...

 

x n x0

x n x1

x n x2

...

 

x x n

 

Произведение элементов i-й строки обозначается через Ki. Отсюда лагранжевы коэффициенты вычисляются по формуле

L( n ) (x ) =П + (x ) / K ,

i n 1 i

где Пn+1(x) = (x - x0)(x - x1)…(x - xn) - произведение элементов главной диагонали таблицы (эти элементы подчеркнуты). Тогда формула Лагранжа принимает вид:

 

n

 

П

n+1

(x)

 

 

n

y

i

 

 

P

(x) = ∑ y

 

 

 

= П

n+1

(x)

 

.

(2)

 

 

 

 

 

n

i

 

 

Ki

 

i=0 Ki

 

i=0

 

 

 

 

 

Использование формулы (2) позволяет сократить значительную часть вы-

числений по определению лагранжевых коэффициентов Li(n)(x) при различных значениях аргумента. Для этого произведение элементов i-й строки таблицы разностей представляется как Ki = (x xi)Di, где Di - произведение всех элемен-

тов строки, кроме расположенного на главной диагонали. Величина Di (i= 0, n )

не зависит от значения аргумента x и может быть вычислена для заданной функции только один раз.

1.2. Интерполирование по схеме Эйткена

Итерационные методы интерполирования основаны на повторном применении некоторой простой интерполяционной схемы. Наиболее известным из итерационных методов является метод Эйткена, в основе которого лежит многократное применение линейной интерполяции.

В соответствии со схемой Эйткена линейная интерполяция по точкам Mi(xi, yi) и Mi+1(xi+1, yi+1) сводится к вычислению определителя второго порядка

P

(x) =

1

 

yi

xi x

 

.

 

 

 

 

 

 

 

i,i+1

 

xi+1 xi

yi+1

xi+1 x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

При интерполировании по трем и более точкам последовательно вычисляются многочлены

38

P

(x) =

1

 

Pi,i+1 (x)

xi x

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i,i+1,i+2

 

xi+2 xi

 

Pi+1,i+2 (x) xi+2 x

 

 

 

 

 

 

 

 

 

 

 

P

(x) =

1

 

Pi,i+1,i+2 (x)

xi x

 

.

 

 

 

 

 

 

 

 

 

i,i+1,i+2,i+3

 

xi+3 xi

 

Pi+1,i+2,i+3 (x)

xi+3 x

 

 

 

 

 

 

 

В общем случае

интерполяционный многочлен n-й степени, прини-

мающий в точках xi значения yi (i = 0, n ), записываются следующим образом:

P0,1,2,..., n (x ) =

1

 

 

P0,1,2,..., n 1(x )

x0

x

 

.

(3)

 

 

 

x n x0

 

P1,2,3,..., n (x )

x n x

 

 

 

 

 

 

 

 

 

 

 

Основным достоинством схемы Эйткена является возможность постепенного увеличения числа используемых значений xi до тех пор, пока последова-

тельные значения P0,1,2,…,n(x) и P1,2,…,n-1(x) не совпадут в пределах заданной точности. Иначе говоря, вычисления прекращаются при выполнении условия

|P0,1,2,…,n(x) - P1,2,…,n-1(x)| < ε (k n).

При использовании ЭВМ вычисления по формуле (3) реализуются в виде рекурсивной подпрограммы - функции РХ(I, J) с формальными параметрами I, J, определяющими индексы крайних узлов интерполирования, которые используются для получения значения соответствующего многочлена Pi,i+1,…, j (x).

Для хранения вычисленных значений P(x) используется двумерный массив M размером N N элементов, где N - максимальное число узлов интерполирования. Каждому возможному значению P(x) соответствует один из элементов M(I, J), расположенный выше главной диагонали (I < J) и определяемый сочетанием индексов крайних узлов интерполирования.

Например, значению многочлена P1,2(x) соответствует элемент M(1,2),

значению P2,3,4(x) - элемент M(2, 4) и т.д. Симметричные элементы M(J, I), расположенные ниже главной диагонали (J > I), показывают, вычислены ли соот-

ветствующие значения P(x) на данный момент, и определяются как

M(J, I) = 1, если M(J, I) = Pi,i+1,..., j (x);

0 в противном случае.

Схема рекурсивной процедуры PX приведена на рис. 1, где Х - массив значений узлов интерполирования, Y - массив значений функции в узлах интерполирования, Z - значение аргумента. Параметры X, Y, Z, M должны быть описаны как общие для главной программы и подпрограммы PX.

1.3. Интерполяционные формулы Ньютона для равноотстоящих узлов

Узлы интерполирования x0, x1, ..., xn называются равноотстоящими, если xi +1 xi = h = const (i = 0, n 1) , где h - шаг интерполирования. При этом для некоторой функции f(x) таблично задаются значения yi = f(xi), где xi = x0 + ih.

 

 

 

 

39

 

 

 

 

 

Входные параметры I, J

 

 

 

 

 

 

 

 

 

1

ВХОД

 

 

 

 

 

 

 

 

 

 

Нет

2

 

 

 

Да

 

 

M(J, I)=1

 

 

 

 

 

Нет

3

 

 

 

 

 

 

Да

 

 

J-I=1

 

 

P = M(I, J)

 

 

 

 

 

 

 

 

 

 

 

 

 

4

P = (Y(I)*(X(J)-Z)- Y(J)*(X(I)-Z))/(X(J)-X(I))

5

P = (PX(I,J-1)*(X(J)-Z)- PX(I+1,J)*(X(I)-Z))/(X(J)-X(I))

6

M(I, J) = P; M(J, I) =1

7

ВЫХОД Выходной параметр P

Рис. 1. Схема рекурсивной процедуры PX

Существуют две формулы Ньютона для случая равноотстоящих узлов интерполирования, которые называются соответственно первой и второй ин-

терполяционными формулами Ньютона и имеют вид:

 

 

 

 

 

 

P

(x) = y

0

+t

y

0

+ t(t 1)

2 y

0

+... + t(t 1)...(t n +1) n y

0

;

 

 

 

1,n

 

 

 

 

 

2!

 

 

n!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P

(x) = y

n

+ q

y

n1

+ q(q +1)

2 y

n2

+... + q(q +1)...(q + n 1)

 

n y

n

,

2,n

 

 

 

 

 

 

2!

 

 

 

n!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В этих формулах

iyj - конечные разности, где i - порядок разности, j - ее

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

 

 

 

 

 

 

 

t = (x - x0) / h;

 

 

 

q = (x - xn) / h.

 

 

 

 

 

Конечные разности первого порядка вычисляются как yj = yj+1 yj, где j = 0, n 1, для более высоких порядков используется известная формула

40

i y j = i1 y j+1 i1 y j (i = 2, 3, ...; j = 0, n i ).

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

Таблица 1

x

y

y

2y

3y

4y

x0

Y0

y0

2y0

3y0

4y0

x1

Y1

y1

2y1

3y1

4y1

x2

Y2

y2

2y2

3y2

-

x3

Y3

y3

2y3

-

-

x4

Y4

y4

-

-

-

x5

Y5

-

-

-

-

Пepвая формула Ньютона применяется для интерполирования вперед и экстраполирования назад, т.е. в начале таблицы разностей, где строки заполнены и имеется достаточное число конечных разностей. При использовании этой формулы для интерполирования значение аргумента x должно лежать в интервале [x0, x1]. При этом за x0 может приниматься любой узел интерполяции xk с

индексом k =0, n m , где m - максимальный порядок конечных разностей. Вторая формула Ньютона применяется для интерполирования назад и

экстраполирования вперед, т.е. в конце таблицы конечных разностей. При этом значение аргумента x должно находиться в интервале [xn-1, xn], причем за xn мо-

жет приниматься любой узел интерполирования xl (l = m, n) .

Одно из важнейших свойств конечных разностей заключается в следующем. Если конечные разности i–го порядка (i < n) постоянны, то функция представляет собой полином i–й степени. Следовательно, формула Ньютона должна быть не выше i-й степени. При использовании ЭВМ вычисление конечных разностей завершается при выполнении условий

i

y j

 

<

2i 1

;

 

ni

i

y j

 

<

2i 1

,

 

 

 

 

 

 

 

 

10L

 

 

 

10L

 

 

 

 

 

 

j =0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

41

1.4. Формула Ньютона с разделенными разностями

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

нии друг от друга xi xi +1 = hi , где значения hi (i = 1, n ) являются различными.

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

Разделенная разность первого порядка определяется:

f (x

, x

) =

yi +1 yi

=

f (xi +1) f (xi )

.

 

 

i

i +1

 

xi +1 xi

 

xi +1 xi

 

 

 

 

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

f (x ,

x

,..., x

) =

f (xi +1, xi +2 ,..., xi +k ) f (xi , xi +1,..., xi +k 1)

 

i

i +1

i +k

 

xi +k xi

 

 

 

 

Разделенные разности удобно представлять диагональной таблицей, вид которой для n = 4 соответствует табл. 2.

x0 f (x0 )

x1 f (x1)

x2 f (x2 )

x3 f (x3 )

x4 f (x4 )

f (x0 , x1)

f (x1, x2 )

f (x2 , x3 )

f (x3 , x4 )

f (x0 , x1, x2 )

f (x1, x2 , x3 )

f (x2 , x3, x4 )

Таблица 2

f (x0 , x1, x2 , x3 )

f (x0 , x1, x2 , x3, x4 )

f (x1, x2 , x3, x4 )

Интерполяционный многочлен Ньютона, использующий разделенные разности, имеет вид:

n

Pn (x) = ∑ f (x0 , x1,..., xk )Пk (x),

k =0

где Пk (x) =(x x0 )(x x1 )...(x xk 1 ) , Пk(x) = 1.

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

Pn+1 (x) = Pn (x) + f (x0 , x1,..., xn , xn+1 )Пn+1 (x).

Оценка погрешности интерполирования выполняется по формуле

Pn+1(x) Pn (x) <ε.

42

1.6. Интерполяция сплайнами

Пусть задана таблица значений функции f(xi) = yi (i =0, n ), в которой они

расположены по возрастанию значений аргумента: x0 < x1 < … < xn. Чтобы построить кубический сплайн, требуется определить коэффициенты ai0, ai1, ai2, ai3, которые задают интерполяционный кубический многочлен

Qi (x) = Pi,3 (x) = ai0 +ai1x +ai2 x2 +ai3 x3

на каждом интервале интерполирования [xi-1, xi], i =1, n .

Таким образом, необходимо определить 4n коэффициентов aij (i =1, n , j = 0,3 ), для чего требуется 4n уравнений. Необходимые уравнения определяются следующими условиями.

1.

Условия непрерывности функции:

 

Qi (xi1 ) = yi1; Qi (xi ) = yi (i =

 

).

 

 

 

1,n

2.

Условия непрерывности 1-х и 2-х производных функции:

 

Q'i (xi ) =Q'i+1 (xi ); Q"i (xi ) =Q"i+1 (xi ) (i =

 

 

 

1, n 1).

3.

Граничные условия:

Q'1 (x0 ) = y'0 ; Q'n (xn ) = y'n (xi ) или Q"1 (x0 ) = y"0 ; Q"n (xn ) = y"n (xi ).

Часто используются граничные условия вида Q"1 (x0 ) =0 и Q"n (xn ) =0 .

Получаемый при этом сплайн называется естественным кубическим сплайном. Задача определения кубического сплайна существенно упрощается при использовании многочлена Эрмита. Кубический многочлен Эрмита на интервале [xi-1, xi] определяется с помощью значений функции yi-1, yi и ее производных yi-1, yi. Так как значения производных в общем случае могут быть неизвестны, обозначим их как yi-1 = Si-1; yi = Si. При построении сплайна переменные Si на-

зываются наклонами сплайна в соответствующих точках xi.

 

 

 

 

 

 

 

Запишем многочлен Эрмита для интервала [xi-1, xi], где hi =

xi - xi-1:

 

 

 

(x x

)2 (2(x x

i1

) + h )

 

 

 

 

(x x

)2 (x x

i1

)

 

 

 

Q (x) = y

 

 

 

i

 

 

 

 

 

 

i

+ S

 

 

 

i

 

 

 

 

+

 

 

i1

 

 

 

h3

 

 

 

i1

 

 

h2

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

(x x

i1

)

2

(2(x

i

 

x) + h )

 

 

 

(x x

i1

)2 (x x

)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+ y

 

 

 

 

 

 

 

 

 

i

+ S

 

 

 

 

 

i

 

 

(i =1, n).

i

 

 

 

 

 

h3

 

 

 

 

 

i

 

 

h2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

При таком выборе кубического многочлена автоматически выполняются условия непрерывности функции и ее первых производных:

Qi (xi1 ) =yi1; Qi (xi ) =yi ; Q'i (xi1 ) =Si1; Q'i (xi ) =Si (i =1,n).

Чтобы определить сплайн, нужно задать условия непрерывности второй производной:

Q"i (xi ) =Q"i+1 (xi ), i =1,n.

Для записи этих условий в развернутом виде определим кубический многочлен Эрмита на интервале [xi, xi+1], где hi+1 = xi+1 - xi:

43

 

 

 

 

(x x

i+1

)2 (2(x x

) + h

 

 

)

 

 

 

(x x

i+1

)2 (x x

)

 

 

 

 

Q

(x) = y

 

 

 

 

 

i

i+1

 

+ S

 

 

 

 

 

i

 

 

 

+

 

 

i

 

 

h3

 

 

 

 

i

 

 

 

 

 

 

 

 

 

i+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

h2

 

 

 

 

 

 

 

 

 

 

 

 

)2 (2(x

i+1

 

 

 

 

 

 

 

 

 

 

 

i+1

 

 

 

 

 

 

 

 

 

 

(x x

i+1

x)

+ h

)

 

 

 

 

 

 

(x x

)2

(x x

i+1

)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+ y

i+1

 

i

 

 

 

 

i+1

 

 

+ S

i+1

 

 

i

 

 

 

 

 

(i =1, n).

 

 

 

 

 

h

3

 

 

 

 

 

 

 

h

2

 

 

 

 

 

 

 

 

 

 

i+1

 

 

 

 

 

 

 

 

 

 

 

 

i+1

 

 

 

 

 

 

 

Определим вторые производные многочленов Qi(x) и Qi+1(x) в точке x = xi:

 

 

 

 

 

 

 

Q"

 

(x

) =

2Si1

+

4Si

6( yi yi1 )

;

 

 

 

 

(4)

 

 

 

 

 

 

 

 

 

h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

i

 

 

 

 

 

 

h

 

 

h2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

i

 

 

i

 

 

 

 

 

 

 

 

 

 

 

Q"

 

 

 

(x

) = −

 

4Si

2Si+1

 

+

6( yi+1 yi )

.

 

 

 

(5)

 

 

 

 

 

 

 

 

 

 

 

 

 

h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i+1

 

i

 

 

 

 

h

 

 

 

 

 

 

 

h2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i+1

 

 

 

i+1

 

 

 

i+1

 

 

 

 

Отсюда условие непрерывности вторых производных имеет вид:

 

1

S

 

+ 2(

1

+

1

)S

 

+

 

1

 

S

 

 

= 3(

yi yi1

+

yi+1 yi

), i =

 

 

(6)

i1

i

 

 

i+1

1, n 1.

 

h

 

 

 

h

 

 

h2

 

 

 

h h

 

 

 

 

 

 

 

 

 

 

 

h2

 

 

 

 

 

 

 

 

i

 

 

 

i

i+1

 

 

 

 

 

i+1

 

 

 

 

 

 

 

 

 

i

 

 

 

i+1

 

 

 

 

Это условие порождает систему линейных уравнений относительно наклонов сплайна Si, которая содержит n - 1 уравнение и n + 1 переменную. Чтобы определить два недостающих уравнения используются граничные условия. Например, для естественного кубического сплайна: Q"1 (x0 ) =0; Q"n (xn ) =0.

Указанные граничные условия могут быть получены из уравнения (5) для i = 0 и из уравнения (4) для i = n соответственно. В развернутом виде:

 

4S0

 

2S1

 

 

 

h

 

2S

h

 

 

 

n

1

 

 

4S1

 

 

 

 

1

 

+

 

n

 

h

 

 

h

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

n

+

 

6( y1 y0 )

= 0;

h2

 

 

 

(7)

 

 

1

 

 

6( yn yn1 )

= 0.

 

 

 

 

h2

 

 

 

 

n

 

 

Решение системы линейных уравнений, образованной условиями (6) и (7), позволяет вычислить наклоны сплайна Si (i = 0, n ) и определить кубический

сплайн путем записи многочлена Эрмита для каждого интервала [xi-1, xi], i= 1, n .

2.ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

1.Изучить сущность методов линейной интерполяции, интерполяции по формулам Лагранжа, Ньютона и по схеме Эйткена, интерполяцию сплайнами.

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

3.Разработать схему алгоритма вычисления конечных разностей.

4.Разработать схемы алгоритмов интерполяции по формулам Лагранжа, Ньютона и Эйткена, интерполяции сплайнами.

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

6.Подготовить ЭВМ к работе.

7.Ввести в ЭВМ и отладить разработанные программы решения задачи интерполяции. Решить задачу интерполяции указанными методами, а также с

44

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

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

3.СОДЕРЖАНИЕ ОТЧЕТА ПО ЛАБОРАТОРНОЙ РАБОТЕ

1.Цель работы

2.Исходная таблица значений функции.

3.Схема алгоритма линейной интерполяции.

4.Схема алгоритма вычисления конечных разностей.

5.Схемы алгоритмов интерполяции по формулам Лагранжа, Эйткена и Ньютона, интерполяции сплайнами.

6.Тексты программ интерполяции с результатами машинных решений.

7.Выводы по работе, содержащие анализ полученных результатов.

4.КОНТРОЛЬНЫЕ ВОПРОСЫ

1.Чем обусловлена необходимость решения задачи интерполяции?

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

3.Как интерпретировать задачу интерполяции геометрически?

4.В чем смысл линейной интерполяции? Как она реализуется?

5.Геометрическая интерпретация, достоинства и недостатки интерполяционной формулы Лагранжа.

6.Получение, геометрическая интерпретация, достоинства и недостатки интерполяционной формулы Эйткена.

7.Конечные разности, их получение и использование.

8.Разделенные разности, их получение и использование.

9.Достоинства и недостатки интерполяционных формул Ньютона для равноотстоящих и произвольно расположенных узлов.

10.Оценка погрешности интерполирования по формулам Ньютона.

11.Необходимые условия интерполяции сплайнами.

12.Вычисление коэффициентов кубического многочлена Эрмита.

5.ИСХОДНЫЕ ДАННЫЕ

 

 

 

 

 

 

 

 

 

Таблица 3

 

 

 

 

 

 

Таблица значений функции

 

Аргументы

1

 

 

 

 

2

 

 

 

3

1

x

0.5

1

7

11

12

15

20

0; 2; 11.5; 16; 35

y

23.4

2.6

16

186.5 58.9 132

300

 

 

2

x

0.5

1

7

11

12

15

20

-2; 0.7; 0.89; 8; 20.5

y

2.3 0.5

11.5

17.5

17.9

23

27.7

 

 

3

x

0.55

3

5

11.5

12

18

25

0; 10; 13; 20; 45

y

3.3

3.35

14.6

391

482

4250

31610

 

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]