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

Малышев Вычислительная математика EQ3

.pdf
Скачиваний:
101
Добавлен:
08.03.2015
Размер:
671.93 Кб
Скачать
dn= (n + 1)(N – 1) – (n – ν + 1)(N – 2) =

31

В общем виде кусочно-полиномиальные функции представляются следующим образом:

P(x) = Pi (x), xi x xi + 1, i = 0, 1, ... , k – 1 – полиномы для каждого отрезка;

Pi(j)(xi) = Pi + 1(j)(xi), j = 0, 1, ... , i – 1, – непрерывность в точках соприкосновения (одинаковость производных соседних полиномов в узлах),

где i = 1, ... , k – 1.

Точки x1, ... xk – 1, которые делят сегмент [a, b] на k подсегментов, называются точками склеивания, а точки воспроизводимой кривой, соответствующие этим значениям x – узлами. Для удобства принимают x0 = a,

xk = b.

Функция Sn,ν (x) называется сплайном степени n класса Cm (0≤ m n; ν = n m) с m непрерывными производными и с узлами на сетке : a = x1 < < ... < xi < ... < xN = b, если:

а) на каждом отрезке [xi, xi + 1], i = 1, ... , N – 1, функция Sn(x) является многочленом степени n, т. е.

n

Sn(x) = Pni (x) = aki (x xi )k =a0 + a1 (x xi ) + a2 (x xi )2 +....

k =0

для x [xi, xi + 1];

б) Sn(x) Cm [a, b].

Производные сплайна Sn(p)(x) порядка выше m и до n включительно, вообще говоря, имеют конечные разрывы в точках xi, p = 2, ... , N – 1 – порядок производной, n – степень полинома (сплайна). Индекс ν = n m указывает на число таких производных. Число ν часто называют дефектом сплайна.

3.3.1. Пространство сплайнов

Множество сплайнов, удовлетворяющих определению, обозначается через Sn( ). Каждое звено сплайна зависит от n + 1 коэффициентов, определяющих его многочлен. Общее число коэффициентов (n + 1)(N – 1). Но в точках xi, i = 2, ... , N – 1 должны выполнятся условия непрерывности первых m = n – ν производных сплайна, которые дают (n – ν + 1) Х (N – 2) линейных уравнений для коэффициентов api. Таким образом, остается число независимых коэффициентов

= (n + 1)(N – 1) – (n + 1)(N – 2) + ν (N – 2) = n + 1 + ν (N – 2). Это есть раз-

мерность пространства сплайнов Sn( ).

32

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

К первым относится задача интерполяции. Для сплайнов нечётных степеней, например первой и третьей, характерна схема, при которой узлы интерполяции и узлы сплайна совпадают. В случае чётных степеней, например параболических сплайнов, узлы не совпадают, а чередуются между собой.

Погрешность аппроксимации сплайнами характеризуется так же, как и в случае многочленов, нормой остаточного члена ||Rn(x)|| = ||Sn(x) –

f(x)||. Она снова зависит от того, к какому классу: Cm[a, b] или C(m)[a, b] принадлежит функция f(x), и от шагов hi сетки .

Уменьшение шага ведёт к увеличению числа узлов. В случае многочленов это связано с возрастанием их степени. Степень же сплайна не изменяется.

При переходе от аппроксимации многочленами к аппроксимации сплайнами преследуют две цели [4]. Первая, это улучшение качества приближения: при одинаковых вычислительных затратах абсолютные погрешности аппроксимации сплайнами меньше, чем погрешности аппроксимации многочленами, а при одинаковых погрешностях уменьшается объём вычислений. Сплайны позволяют избежать осцилляций. Для сходимости аппроксимации к аппроксимируемой функции предъявляются более слабые требования, чем в случае многочленов. Вторая цель – резкое уменьшение вычислительных трудностей как при построении алгоритмов решения задач, так и при дальнейшей работе с аппроксимантами, которые на каждом звене представляют собой многочлены невысоких степеней или иные элементарные функции. С этой точки зрения наиболее простыми оказываются задачи локальной аппроксимации. В таких случаях решения выписываются обычно в явном виде. Нелокальные задачи сводятся к решению систем линейных уравнений размерности порядка N с разреженными (ленточными) матрицами, для которых существуют эффективные алгоритмы. В этом заключается одно из преимуществ сплайнов перед многочленами высоких степеней, где матрицы заполненные [4].

При работе со сплайнами можно использовать либо кусочномногочленное представление, либо представление через базисные функции. В первом случае достигается наибольшая экономия в числе арифметических операций, но зато приходится хранить большой объём информации о многочленах – (n + 1)(N – 1) чисел. Во втором случае достаточно хранить dn= n + 1 + ν (N – 2) коэффициентов сплайна, но при этом увели-

33

чивается число арифметических операций. Следует предупредить, что не все базисы пригодны для организации вычислений. Большей частью их применение приводит к быстрому накоплению погрешностей округления. В частности, при использовании усечённых степенных функций затруднения возникают при вычислении второй суммы при больших N. От этого недостатка свободен лишь базис, состоящий из функций с конечными носителями (отличных от нуля на конечном отрезке), так называемых В-сплайнов.

3.3.2. Сплайны первой степени

Интерполяция. Сплайны первой степени S1(x) класса C на сетке

– это кусочно-линейные функции. (Здесь и далее второй индекс ν сплайна, если он равен единице, опускается). Пусть в узлах сетки заданы значения функции fi = f(xi). Интерполяционный сплайн S1(x) определяется условиями S1(xi) = fi, i = 1, …, N. Геометрически он представляет собой ломаную, проходящую через точки (xi, fi) (рис. 3.3). Между соседними узлами реализуется линейная интерполяция. Согласно [1, 4] при x [xi, xi + 1] сплайн будет иметь вид:

S1 ( x) = (1 − u) fi + ufi +1 ; u = (x xi ) / hi .

S1(x)

xi – 1 xi xi + 1 xi + 2 x

Рис. 3.3. Сплайн первой степени

Если в исходные данные fi внести возмущения δfi ≤ δ, то сплайн изменится в пределах δ. Возмущение его производной оценивается значением δ/hi и растет с уменьшением hi.

Погрешность интерполяции. Пусть f(x) C(2)[a, b], тогда

 

 

S ( p) ( x) − f

( p ) ( x)

 

 

 

 

 

 

K

h

2− p

 

 

 

f ′′( x)

 

[xi , xi+1

]

, p = 0,1,

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

[x , x

 

 

]

 

 

p i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i i+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Где K0 = 1/8, K1= 1/2. Чтобы записать оценки для всего отрезка [a, b],

достаточно заменить hi на H, а

 

 

 

...

 

[x , x

]

на

 

...

 

:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

i+1

 

 

 

 

 

 

 

 

 

 

 

 

34

S ( p ) ( x) − f ( p) ( x)

 

K

p

H 2− p

 

 

 

f ′′( x)

 

, p = 0,1.

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Интерполяция с заданной точностью. На практике обычно требуется осуществить интерполяцию с некоторой заданной точностью. Эта задача решается путем выбора сетки на отрезке [a, b] с учетом свойств интерполируемой функции. Точность интерполяции определяется гладкостью функции внутри отрезков [xi, xi + 1]. Поэтому точки, в которых функция имеет особенности, например, разрывы производных, следует включить в число узлов интерполяции.

Оценка при p = 0 дает возможность определить максимальный шаг

сетки для обеспечения заданной точности

 

S1 ( x) − f ( x)

 

≤ ε .

Для

этого

достаточно выбрать шаг h так, чтобы h

2

 

 

 

≤ 8ε , т. е.

 

 

 

 

 

 

 

 

f (x)

 

h =

8ε /

 

f

( x)

 

,

 

 

′′

 

 

 

 

 

 

 

′′

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

С помощью оценки при p = 0 можно строить более экономичные по

числу шагов сетки, если учитывать значения

 

f ( x)

 

[x , x

] на каждом от-

 

 

 

 

 

 

 

 

 

 

′′

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i i+1

 

резке. Так, если узлы интерполяции выбирать из условий

 

h2

 

 

 

f ′′( x)

 

[xi ,xi +1

]

= 8ε ,

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

то задача будет решена с числом узлов, вообще говоря, меньшим, чем при равномерном разбиении.

Пусть, например, функция f ′′( x) монотонно убывает на [a, b]. Если

узел ti

найден, то в силу монотонности

 

f ( x)

 

 

=

f ( xi )

, и можно

 

 

 

 

 

′′

 

[xi , xi +1 ]

 

′′

 

 

 

 

 

 

 

 

 

 

 

 

 

вычислить hi. Если

f ( xi )

≠ 0 , то полагаем xi + 1

= xi + hi. Если

f ( xi )

= 0 ,

 

 

′′

 

 

 

 

 

′′

 

 

 

 

 

 

 

 

 

 

 

 

 

то xi + 1 = b. Начиная этот процесс от левого конца отрезка [a, b], последовательно находим все узлы сетки. Если f ′′( x) монотонно возрастает, то

построение следует начинать с правого конца отрезка [a, b]. Алгоритм можно применять, если функция f ′′( x) кусочно-монотонна. Алгоритм выбора узлов сплайна, при котором не требуется выделять участки монотонности функции f ′′( x) , будет изложен ниже.

Аппроксимация сплайнами первой степени. Аналогом асимптотиче-

ски наилучшего равномерного приближения многочленом первой степени является следующая аппроксимация сплайном:

35

S (x) = (1 − u) f

 

 

1

max(h2

 

, h2 ) f ′′

+ u

f

 

1

 

max(h2

, h2

) f

′′

 

,

i

 

 

i +1

 

 

 

 

1

 

 

 

 

 

16

 

 

 

i −1

i

 

i

 

 

 

 

 

16

 

 

i

 

 

i +1

 

 

i +1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x [xi , xi +1 ], h−1 = hN = 0 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Погрешность аппроксимации

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S ( x) − f ( x)

 

 

 

 

1

H 2

 

 

 

f ′′( x)

 

 

 

 

+ H

 

 

 

f ′′′( x)

 

 

 

 

 

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

[xi , xi+1]

16

 

i

 

 

 

 

 

 

 

[x

, x + ]

 

 

 

i

 

 

 

 

[x

, x +

 

]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

i

1

 

 

 

 

 

 

 

 

 

i

i 1

 

 

 

 

где Hi

= max(hi – 1, hi, hi + 1).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Производные можно заменить конечно-разностными аппроксимациями (см. п. 5.2 – 5.4). При этом будет внесена погрешность порядка Θ(H2). Отсюда ясно, что главный (первый) член погрешности аппроксимации не изменится.

3.3.3. Кубические сплайны

Кубический сплайн склеивается из полиномов третьей степени, которые для i-го участка записываются так [1 – 5]:

y = ai (x xi)3 + bi (x xi)2 + ci (x xi) + di.

Для всего интервала будет соответственно n кубических полиномов, отличающихся коэффициентами ai, bi, ci, di. Чаще всего узлы при сплайновой интерполяции располагают равномерно, т. е. xi + 1 xi = const = h (хотя это необязательно).

Необходимо найти четыре коэффициента при условии прохождения каждого полинома через две точки (xi, yi) и (xi + 1, yi + 1), следствием чего являются следующие очевидные уравнения:

начальная точка x = xi; yi = di,

i = 0, 1, 2, …, n – 1,

конечная точка x = xi + 1; yi + 1 + ai h3 + bi h2 + ci h + di,

i = 0, 1, 2, …, n – 1.

Найти все коэффициенты из этих уравнений нельзя, т. к. условий меньше, чем искомых параметров. Поэтому указанные условия дополняют условиями гладкости функции (т. е. непрерывности первой производной) и гладкости первой производной (т. е. непрерывности второй производной) в узлах интерполяции. Математически эти условия записываются как равенства соответственно первой и второй производных в конце i-го и в начале (i + l)-гo участков.

Так как

y′ = 3ai (x xi )2 + 2bi ( x xi ) + ci и y′′ = 6ai (x xi ) + 2bi ,

 

 

 

 

 

36

то

 

 

 

 

 

 

 

3a h2

+ 2b h + c = c

 

, i = 0, 1, 2, . . ., n – 2.

 

i

i

i

i +1

 

( y (xi +1 ) в конце i-го участка равна y ( xi +1 ) в начале (i + l)-гo)

 

 

 

 

 

 

6ai h + 2bi = 2bi +1 , i = 0, 1, 2, . . ., n – 2,

′′

 

 

 

′′

( y

( xi +1 ) в конце i-го участка равна

y

(xi +1 ) в начале (i + l)-гo).

Получилась система линейных уравнений (для всех участков), содержащая 4n – 2 уравнения с 4n неизвестными (неизвестные a1, a2, . . ., an, b1, . . ., dn коэффициенты сплайнов). Для решения системы добавляют два граничных условия одного из следующих видов (чаще применяют 1):

1) y′′( x0 ) = y′′( xn ) = 0;

3) y′( x0 ) = y′( xn ) = 0;

2) y′( x0 ) = g0 ; y′(xn ) = gn ;

4) y′( x0 ) = y′( xn ); y′′(x0 ) = y′′( xn ).

Совместное решение 4n уравнений позволяет найти все 4n коэффициента.

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

3.3.4. Эрмитовы кубические сплайны

Интерполяция

В узлах сетки заданы значения функции и ее производной fi = f(xi), fi′ = f ′(xi), i = 1, …, N. Требуется найти кубический сплайн S3,2(x) такой, что

S3,2(xi) = fi; S3,2(xi) = fi′, i = 1, …, N.

Это эрмитов кубический сплайн [2]. Его первая производная непрерывна, а вторая и третья в общем случае разрывны в узлах сетки. График представляет собой гладкую линию.

37

На отрезке [xi, xi + 1] реализуется эрмитова интерполяция кубическим многочленом. Звено сплайна имеет вид

 

S

3, 2

( x) = f ϕ (u) + f

 

ϕ

(u) + h

f

′ϕ (u) + f ′ ϕ

(u) ,

 

 

i 1

i +1 2

 

 

 

 

 

i i

3

 

 

i +1 4

 

где ϕk(u) – функции (см. табл. 2.1). Это локальная интерполяция.

Возмущения исходных данных δfi ≤ δ ,

δfi′≤ δ′ вызывает у сплайна и

его производных возмущения порядка Θ(δhip + δ′hip +1 ) .

 

Погрешность интерполяции. Для функций

f(x) C(2)[a,b] имеем

оценки, которые для сплайнов дают

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S ( p ) ( x) − f ( x) (x)

 

K

h2− p

 

 

f ′′( x)

 

 

x ,

 

 

, p = 0, 1,

 

 

 

 

 

 

 

 

 

 

3, 2

 

 

 

 

 

 

p i

 

 

 

 

 

 

x

 

 

где K0 = 1/16; K1 = 0,2515.

 

 

 

 

 

 

 

 

 

 

 

 

i

i +1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Для функции f(x) C(4) [a, b] получаем

 

 

 

 

 

 

 

 

 

S p

(x) − f ( p ) ( x)

 

K

h4− p

 

 

f IV

( x)

 

 

 

 

, p = 0, 1, 2,

 

 

 

 

 

 

 

 

 

 

3, 2

 

 

 

 

 

 

p i

 

 

 

 

 

 

 

 

x , x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i i +1

 

 

 

где K0 = 1/384; K1 = 3 / 216 ; K2= 1/12.

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

Из полученных формул получаются оценки, справедливые на всем

отрезке [a, b], заменой hi на H и ... на ... .

xi , xi +1

Интерполяция с заданной точностью. Задача интерполяции с точ-

ностью

R( x) = S3, 2 ( x) − f ( x) ≤ ε, x [a, b]

решается двояко. Шаги равномерной сетки для функций f(x) C2 [a, b] можно определить:

h≤ 4ε / f ′′( x) .

Ашаги для функций f(x) C4 [a, b]:

h 4384ε / f IV ( x) .

38

Для построения неравномерных сеток при интерполяции функций f(x) C(2) [a, b] можно использовать алгоритм, приведенный в п. 4. Для функций f(x) C(4) [a, b] в этом алгоритме нужно всюду заменить f ″(x) на f IV(x).

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

На отрезке [a, b] возьмем множество точек (контрольных) τi = a + jδx, j = 0, …, и предположим, что остаточный член интерполяции в них удовлетворяет условию

Rj ) = S3, 2 j ) − f j ) ≤ ε1 < ε .

Выясним, когда на основании этого можно утверждать, что заданная точность обеспечивается на всем отрезке [a, b].

Построим сплайн первой степени S1(x), интерполирующий функцию R(x) по значениям Rj). Поскольку Rj ) ≤ ε1 , то S1 ( x) ≤ ε1 на всем отрезке [a, b]. Отсюда ясно, что достаточно добиться выполнения неравенства

δR(x) = S1 (x) − R( x) ≤ ε − ε1 ,

и тогда условие заданной точности будет выполнено.

Согласно формуле погрешности интерполяции сплайна первой сте-

пени

δR( x) ≤ 0,125(δx)2 R′′( x) .

Если функция f(x) C2[a, b], то учитываем, что

 

 

R′′( x)

 

 

S ′′

(x)

 

+

 

f ′′(x)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3, 2

 

 

 

 

 

 

и на этом основании получаем

 

 

 

 

 

 

δR(x) ≤ 3−1 x)2 f ′′(x) .

На шаги δx налагаем ограничение

δx 3(ε − ε1 ) / f ′′(x) .

При этом ограничении исходные неравенства будут выполнены. Рассмотрим узловые моменты алгоритма. Ввиду локальности эрми-

това сплайна задача состоит в последовательном определении по возмож-

3(ε − ε1 ) / A ;

39

ности максимальных размеров каждого шага сетки . Предполагается, что известна оценка f ′′(x)A . Зададим значение ε1 и по приведенным выше

формулам определим максимально допустимый шаг δx и шаг h равномерной сетки, обеспечивающей точность ε интерполяции: δx =

h = 4ε / A .

Пусть найден узел xi – 1.Узел xi находим путем последовательных

приближений

x(k ) , гдеk = 0, 1, ... . В качестве нулевого приближения при-

 

 

i

 

 

 

 

 

нимаем x(0)

= x

+ h

. Если оказалось, что x(0)

> b , полагаем

x(0)

= b .

i

 

i −1

i − 2

i

 

i

 

Каждое последующее приближение x( k ) выбирается из некоторого допус-

 

 

 

 

 

 

 

i

 

 

тимого отрезка α( k ) , β(k ) . Для x(1)

устанавливаем α(1) = x

+ h , β(1) = b .

 

 

 

 

i

 

 

i −1

 

Приближение

x(k )

определяется следующим образом. По значениям

 

i

 

 

 

 

 

 

 

 

(k −1)

) ,

(k −1)

)

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

f ( xi −1 ) , f ( xi −1 ) , f (xi

 

f ( xi

 

на. Подсчитываются его уклонения ε′j

от f(x) в точках τ j = xi −1 + jδx , j = 1,

…, mk и находится ε = max ε′j . Возможны три случая.

 

1. ε < ε1. Экстраполируем звено сплайна вправо и вычисляем его

уклонения от f(x) в точках τ = x( k −1) + lδx , l = 1, 2. …, lk, до тех пор, пока

 

 

 

 

 

 

 

 

 

 

i

i

 

 

 

 

 

 

 

 

R(τ )

 

≤ ε − ε , а τ α(k ) , β( k )

. В качестве k-го приближения принима-

 

 

 

 

l

 

1

l

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ем точку x(k ) = x(k −1)

+ l

k

δx . Устанавливаем границы допустимого отрезка

 

 

 

 

 

i

i

 

 

 

 

 

 

 

 

 

 

 

для последующего приближения равными α( k +1)

= x(k −1) ,

β(k +1) = β(k ) .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

2. ε = ε1.

Принимаем x(k )

= x(k −1) + δx .

Если

оказалось,

что

 

 

 

 

 

 

 

 

 

 

 

i

i

 

 

 

 

 

 

 

x(k ) ≥ β(k ) , полагаем

x(k )

= β(k ) .

Корректируем границы допустимого от-

 

i

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

резка α( k +1) = x( k −1) ,

β(k +1)

= β(k ) .

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3. ε > ε1.

Принимаем

x(k ) = α(k ) + (x(k −1) − α(k ) ) ε / ε ,

если

 

 

 

 

 

 

 

 

 

 

 

i

i

 

 

1

 

 

 

 

 

 

x(k ) = α(k ) + (x(k −1)

 

 

 

ε / ε ≤ 1/ 2 . В противном случае

− α( k ) ) / 2 . Изменяем

1

 

 

 

 

 

 

 

 

 

i

i

 

 

 

 

 

границы допустимого промежутка α( k +1) = α(k ) ,

β(k +1)

= x(k −1) .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

Нетрудно убедиться, что процесс последовательного приближения сходится, т. к. допустимый отрезок α( k ) (k ) на каждом шаге уменьшает-

ся, и как только он становится меньшим δx , можно считать, что узел xi определен.

0, 3ε / A

40

Основные вычислительные затраты этого алгоритма приходятся на

определение значений f j ), S3, 2 j )

и

S3, 2 j ) − f j )

. Их объем зави-

сит от поведения второй производной

f ( x) , от того насколько точно взято

 

′′

значение A и как выбрано ε1. Очевидно, что большему шагу δx соответствует меньшее значение ε1, т. е. уменьшение числа контрольных точек возможно только за счет уменьшения допустимого уклонения S3,2(x) от f(x) в этих точках. На практике рекомендуется принимать значения ε1 = 0,9 ε. В этом случае δx = и общее число контрольных точек m = (b a) / δx . Отметим, что конечный результат практически не зависит

от того, насколько точно устанавливается оценка

 

f (x)

 

A .

 

 

′′

 

 

В случае интерполяции функции f ( x) C (4) [a, b]

при p = 0 следует

δR( x) ≤ 96−1 x)2 h2 f IV (x) ≤ (δx)2 ε f IV (x) / 24 .

Чтобы выполнялось условие, следует положить

δx 424(ε − ε1 )2 / ε f IV ( x) .

Для применения алгоритма нужно знать оценку f IV ( x) ≤ A.

3.3.5. Аппроксимация с помощью сплайна

Сплайны лишь недавно стали использовать в вычислительной математике. Однако в машиностроительном черчении они фактически применяются уже давно, т. к. сплайн – это в переводе не что иное, как «гибкая линейка», которую деформируют так, чтобы по ней можно было провести кривую через заданные точки (xi, уi). Сплайн (или сплайн- функции) – функция с кусочной структурой и повторяющимся на каждом звене (отрезке) строением, но с различными значениями параметров.

Кубический сплайн – это группа сопряженных кубических многочленов, в местах сопряжения которых первая и вторая производные непрерывны. Чтобы построить кубический сплайн, необходимо задать коэффициенты, которые единственным образом определяют кубический многочлен в промежутке между данными точками. Например, в случае, представленном на рис. 3.4, необходимо задать все кубические функции q1(х),

q2(х), . . ., qm(х).