Д.П. Костомаров, А.П. Фаворский - Вводные лекции по численным методам (pdf) (1113729), страница 12
Текст из файла (страница 12)
Таким образом, решением данной задачиявляется полиномом Эрмитаm( x − x0 ) 2 K[ k ]K ( x − xm ) 2H 2 m+1 ( x ) = ∑ ⎡⎣ f k + ( f k′ − 2 f k Ak ) ( x − xk )⎤⎦.(49)22(x−x)KkK(x−x)[]k =0kkm0Задача 5- 54 Построить полином Эрмита второй степени H 2 ( x ) для функции sin x по следующимданным:ππsin 0 = 0 , sin = 1 , sin ′ = 0 .22Вычислить с помощью этого полинома приближенное значение синуса в точкеx = π / 4 .
Найти погрешность, сравнить ее с погрешностью, которую даетинтерполяционный полином P2 ( x ) (16) задачи 2 и с теоретической оценкойпогрешности (44).Здесь мы имеем задачу, которая в общем виде была разобрана в примере 1:согласно (49) узел x0 = 0 является простым, а узел x1 = π / 2 - двукратным. В этомслучае в формуле (47) сумма, соответствующая простым узлам, сводится к одномуслагаемому, которое в силу нулевого значения синуса в точке x0 = 0 обращается вноль. Второй член в формуле (47) соответствует кратному корню x1 = π / 2 .Подставляя сюда соответствующее значение синуса и его производной в этой точке, атакже значение коэффициента A1 = 2 / π , будем иметь:π ⎞⎤ 2 x 4⎡ 2⎛H 2 ( x ) = ⎢1 − ⎜ x − ⎟ ⎥x (π − x ) .=(50)2 ⎠⎦ π π 2⎣ π⎝Вычислим значение полинома H 2 ( x ) в точке x = π / 4 и подсчитаемпогрешность⎛π ⎞ 3⎛π ⎞ 1 3− = −0.04282 .H 2 ⎜ ⎟ = , R2 ⎜ ⎟ =(51)2 4⎝4⎠ 4⎝4⎠Теоретическая формула для погрешности (43) принимает в данном случае вид:π3π⎛π ⎞ 1⎛π ⎞R2 ⎜ ⎟ = ( − cos ξ ) ω 3 ⎜ ⎟ = − cos ξ, 0 ≤ξ ≤ .(52)3842⎝4⎠ 6⎝4⎠Она правильно определяет знак погрешности и позволяет написать для неемажорантную оценку3⎛π ⎞ πR2 ⎜ ⎟ ≤< 0.081 .(53)⎝ 4 ⎠ 384Данная оценка согласуется с величиной погрешности (51), подсчитанной «в лоб».При подсчете приближенного значения sin x с помощью полинома ЭрмитаH 2 ( x ) (50) в точке x = π / 4 мы получили погрешность (51), модуль которой в два слишним раза превышает погрешность (17) полинома P2 ( x ) (16).
Чтобы понятьпричину такого расхождения, рассмотрим рис. 3, на котором приведены графикифункций sin x (сплошная линия) и H 2 ( x ) (пунктир). Сравним его с рис. 1, на которомизображены графики функции sin x и полинома P2 ( x ) . Из-за нулевого значенияпроизводной H 2′ ( x ) в точке x = π / 2 график полинома H 2 ( x ) качественно большепохож на график синуса, чем график полином P2 ( x ) . Однако равенство полинома- 55 -⎡ π⎤P2 ( x ) синусу не только в граничных точках отрезка ⎢0, ⎥ , но и во внутренней точке⎣ 2⎦⎡ π⎤x = π / 6 приводит к тому, что полином P2 ( x ) приближает синус на отрезке ⎢0, ⎥⎣ 2⎦лучше чем полином H 2 ( x ) . Это хорошо видно при сравнении рис.
1 и рис. 3. Подсчетпогрешностей (17) и (51) в точке x = π / 4 является дополнительным томуподтверждением.§2. Интерполирование сплайнами.Увеличение степени интерполяционного полинома может оказаться невыгодным из-забыстрого роста объема вычислений. К тому же далеко не всегда оно приводит кповышению точности. Во второй половине ХХ века с появлением компьютеров иразвитием современной вычислительной математики при обработке больших таблицполучила развитие новая идея – строить приближение функций с помощью кусочнополиномиальной интерполяции с использованием полиномов сравнительно невысокихстепеней.
Наиболее удобными оказались полиномы третьей степени. Такиеконструкции получили название кубических сплайнов.2.1. Определение кубического сплайна.Пусть на отрезке [ a , b ] задана функция y = f ( x ) . Рассмотрим сетку узлов(54)a = x0 < x1 < x2 < K < xn = bи обозначим через hi расстояние между смежными узлами(55)hi = xi − xi −1 , i = 1,K , nОпределение:Назовем кубическим сплайном функции y = f ( x ) , x ∈ [ a , b ] на сетке (54) функциюS ( x ) удовлетворяющую условиям:S1.
На каждом отрезке [ xi −1 , xi ] функция S ( x ) является полиномом третьейстепени.S2. Функция S ( x ) , её первая S ′( x ) и вторая S ′′( x ) производные непрерывны насегменте [ a , b ] .S3. S ( xi ) = f ( xi ) = f i , i = 0,K , nS4. На концах сегмента [ a , b ] функция S ′′( x ) удовлетворяет условиямS ′′( a ) = S ′′(b) = 0 .Замечание. На концах сегмента [ a , b ] могут быть заданы в принципе и другиеусловия, например:S ′′( a ) = A, S ′′( b) = B .Справедлива следующая теорема.Теорема.Существует единственный сплайн S ( x ) , удовлетворяющий требованиям (S1) – (S4).Мы проведем конструктивное доказательство этой теоремы.- 56 2.2. Формулировка системы уравнений для коэффициентов кубическогосплайна.Сведем задачу построения сплайна к отысканию коэффициентов упомянутыхполиномов третьей степени на каждом из отрезков [ xi −1 , xi ] .Для этого сопоставимотрезку [ xi −1 , xi ] полином Si ( x ) , для удобства записанный в виде:cdSi ( x ) = ai + bi ( x − xi ) + i ( x − xi )2 + i ( x − xi )3 , x ∈ [ xi −1 , xi ] , i = 1,K , n .(56)26При этом, очевидно:d(57)Si′ ( x ) = bi + ci ( x − xi ) + i ( x − xi 2 ) ,2Si″ ( x ) = ci + di ( x − x i ) ,(58)так, чтоS ( x ) = a , S ′( x ) = b , S ″( x ) = c .(59)iiii −1iiiiiiiДля выполнения требований (S3) в узлах интерполяции с номерами i = 1,K , n следуетположить:(60)ai = f ( xi ) = f i , i = 1,K , nТребуя непрерывности сплайна в узлах x i ( i = 1,K , n − 1) и выполнения условия (S3)при i = 0 , получим:(61)Si ( xi −1 ) = f i −1 , i = 1,K , nилиcdf i + bi ( xi −1 − xi ) + i ( xi −1 − xi )2 + i ( xi −1 − xi )3 = f i −1 , i = 1,K n .26Это равенство можно переписать следующим образом:cdbi hi − i hi 2 + i hi 3 = fi − f i −1 , i = 1,K, n .(62)26Условие (S2) непрерывности первой производной S ′( x ) в узлах x i ( i = 1,K , n − 1)принимает вид:S ′ ( x ) = S ′ ( x ) = b , i = 2,K, n(63)i −1i −1i −1и приводит к соотношениямbi − ci hi +илиdi 2hi = bi −1 , i = 2,K , n2di 2(64)hi = bi − bi −1 , i = 2,K , n .2Аналогичным образом условия непрерывности второй производной S ′′( x ) в тех жеузлах:Si″ ( xi −1 ) = Si−1″ ( xi −1 ) = ci −1 , i = 2,K, n(65)означают, что(66)d i hi = ci − ci −1 , i = 2,K , n .ci hi −- 57 Наконец, дополнительные граничные условия (S4) дают еще два уравнения⎧⎪ S ″ ( x ) = S ″ ( a ) = c − d h = 010111 1.(67)⎨ ″″⎪⎩ Sn ( xn ) = Sn (b) = cn = 0В итоге мы получили замкнутую систему (62), (64), (66), (67), содержащую в сумме 3nлинейных уравнений для отыскания 3n неизвестных: bi , ci , d i , i = 1, 2,K , n2.3.
Редукция системы.Удобно формально ввести ещё одно неизвестное c0 , положив при этом c0 = 0 , ипервое уравнение в (67) переписать в виде:d1h1 = c1 − c0 ,то есть в форме аналогичной (66).Теперь уравнения (66) и (67) естественно представить в единообразном виде(68)d i hi = ci − ci −1 , i = 1, 2,K , n(69)c0 = 0 , cn = 0 .Обратим внимание на то, что из системы (68) можно выразить все коэффициенты d iчерез разности ci − ci −1 , а затем из системы (62) выразить через ci и ci −1 коэффициентыbi . Подставляя полученные выражения в (64), придем к системе линейных уравненийдля ci :⎛ f − f i −1 f i −1 − f i −2 ⎞121ci −2 hi −1 + ci −1 ( hi −1 + hi ) + ci hi = 2 ⎜ i−(70)⎟ , i = 2,3,K , n .333hhii−1⎝⎠Сдвигая индекс i на единицу, получим симметричную форму записи уравнений (70):⎛ f −ff − f i −1 ⎞hi ci −1` + 2( hi + hi +1 )ci + hi +1ci +1 = 6 ⎜ i +1 i − i(71)⎟ , i = 1,K n − 1 .hi ⎠⎝ hi +1Кроме того, согласно (69)(72)c0 = cn = 0 .Система (71) содержит n − 1 уравнение с ( n − 1) -ой неизвестной: c1 , c2 ,K , cn −1 .Величины c0 и cn определены дополнительными соотношениями (72).
Если сетка (54)равномерная, т. е. hi = h = const , то уравнения (71) принимают особенно простой вид:f − 2 f i + f i +1ci−1 + 4ci + ci +1 = 6 i −1.(73)h2Для уравнений системы (71) выполнено условие диагонального преобладания.Отсюда следует существование и единственность решения задачи (71), (72). Понайденным величинам ci можно рассчитать остальные коэффициенты сплайна поформуламc −cd i = i i −1 , i = 1,K, n(74)hiиf − f i −111, i = 1,K, n ,bi = hi ci − hi2 d i + i(75)26h- 58 завершив тем самым построение сплайна. Теорема доказана.2.4. Замечание о решении системы.Уравнения (71) имеют так называемую трехточечную структуру, общий вид такихсистем(76)Ai yi −1 + Ci yi + Bi yi +1 = Fi , i = 1, 2,K , n − 1 ,(77)y0 = 0 , yn = 0соответствует системе линейных уравнений с трехдиагональной матрицей T дляопределения вектора неизвестных y = ( y1 , y 2 , K , y n −1 ) :Ty = F ,гдеC1 B1 0 000F1A2 C2 B2 000F2F0 A3 C3 B300T=, F= 3 .(78)K K K K KKKK K K K KKKFn−10 0 0 0 An−1 Cn−1При этом легко видеть, что в нашем случае(79)Ci > Ai + Bi , i = 1,K , n − 1 ,поскольку(80)Ci = 2( hi + hi +1 ), Ai = hi , Bi = hi +1 .Как было показано в главе 1, решение подобных систем эффективно осуществляетсяметодом прогонки.Задача 6.Рассмотреть функцию y = f ( x) = 3 x на отрезке [− 1,1] с узлами интерполяцииx0 = −1, x1 = 0, x2 = 1 .
Построить кубический сплайн. Найти его значение при x = 1/ 2 ,т. е. вычислить приближенно3 . Подсчитать погрешность.В рассматриваемом случае мы имеем равномерную сетку с шагом h = 1 . У нее однавнутренняя точка x1 и две граничные - x0 и x2 . Система (73) сводится к одномууравнению относительно коэффициента c1 , которое с учетом дополнительныхсоотношений (70), определяющих нулевые значения коэффициентов c0 и c2 ,принимает вид:⎛1⎞4c1 = 6 ⎜ − 2 + 3 ⎟ .(81)⎝3⎠Таким образом, в нашей задаче:c0 = 0 , c1 = 2 , c2 = 0 .Остальные коэффициенты сплайна находятся по формулам (60), (74), (75):- 59 a1 = 1 , a2 = 3 ; d1 = 2 , d 2 = −2 ; b1 = 4 / 3 , b2 = 7 / 3 .Теперь можно выписать кубические полиномы, определяющие сплайн:41 3⎧2=+++−1 ≤ x ≤ 0,Sxxxx ,1()1⎪⎪33(82)S ( x) = ⎨713⎪ S2 ( x ) = 3 + ( x − 1) − ( x − 1) , 0 ≤ x ≤ 1.⎪⎩33Легко проверить, что построенная таким образом функция S ( x ) непрерывна вместе спервой и второй производной во внутренней узловой точке x = 0 .В заключение вычислим значение сплайна в точке x = 1/ 2 , т.
е. подсчитаемприближенно 3 :15⎛ 1 ⎞ 153 ≈ S2 ⎜ ⎟ = , ε = 3 − = -0,142949 .(83)8⎝2⎠ 8Значительная погрешность обусловлена прежде всего большим шагом h = 1 .Определенную роль играют также условия S4:(84)S ′′ ( −1) = S ′′ (1) = 0 .Вторая производная рассматриваемой функции f ( x ) = 3x в точках x = ±1 в ноль необращается, т. е. условие (84) дает о ней искаженную информацию. Если учесть припостроении сплайна истинные значения функции f ′′ ( x ) в точках ±1, то точностьаппроксимации улучшится.2.5.