Академический Документы
Профессиональный Документы
Культура Документы
Вариант II:
Построим многочлен 𝑛 = 2 степени:
𝐿2(𝑥 ) = 𝑎𝑥 2 + 𝑏𝑥 + 𝑐;
Тогда найдем коэффициенты, если решим СЛАУ:
𝑐 = 𝑓1,
0,01𝑎 + 0,1𝑏 + 𝑐 = 𝑓2 ,
{
0,09𝑎 + 0,3𝑏 + 𝑐 = 𝑓3 .
𝑎 = 0,333;
𝑏 = 5,767;
{
𝑐 = 8.
𝑥1 = 0,2215; 𝑥2 = 0,0451.
∏ (𝑥1 ) = −0,2215;
3
∏ (𝑥2 ) = −0,0451;
3
𝑎 = 0,73;
𝑏 = −1,45;
{
𝑐 = 0,82;
𝑑 = 1,5.
Тогда искомый многочлен будет иметь вид:
𝑃3 (𝑥 ) = 0,73𝑥 3 − 1,45𝑥 2 + 0,82𝑥 + 1,5.
3. Построить интерполяционный многочлен Эрмита по следующим данным:
𝑥𝑖 −1 0 1
𝑓(𝑥𝑖 ) −1,5 1,2 1
′
𝑓 (𝑥𝑖 ) 0,5
′′
𝑓 (𝑥𝑖 ) 0,25
Вариант I:
Данная задача – это задача интерполяции с кратными узлами.
Кратным узлом называется узел, в котором заданы не только значения
функции, но и значения её производных до определенного порядка.
Введем понятие разделенной разности:
𝑓(𝑥𝑗 )−𝑓(𝑥𝑖 )
𝑓(𝑥𝑖 ; 𝑥𝑗 ) = , 𝑖, 𝑗 = 0,1, … , 𝑛, 𝑖 ≠ 𝑗
𝑥𝑗 −𝑥𝑖
Необходимо построить многочлен степени 𝑛, совпадающий в узлах со
значениями функции и её производных:
𝐻𝑛 (𝑖) (𝑥𝑖 ) = 𝑓 (𝑖)(𝑥𝑖 ), 𝑖 = 0, 𝑛𝑖 , 𝑗 = 0, 𝑚.
А сам многочлен называется интерполяционным многочленом Эрмита или
интерполяционным многочленом с кратными узлами:
𝐻𝑛 (𝑥 ) =
𝑓(𝑥0 ) + (𝑥 − 𝑥0 )𝑓(𝑥0 ; 𝑥0 )
+ (𝑥 − 𝑥0 )2𝑓(𝑥0 ; 𝑥0 ; 𝑥0 )+. . . +(𝑥 − 𝑥0 )𝑛0 −1𝑓(𝑥0 ; 𝑥0 ; … ; 𝑥0 )
+ 𝑓(𝑥0 ; 𝑥0 ; … ; 𝑥0 ; 𝑥1 )(𝑥 − 𝑥0 )𝑛0
+ 𝑓(𝑥0 ; 𝑥0 ; … ; 𝑥0 ; 𝑥1 ; 𝑥1 )(𝑥 − 𝑥0 )𝑛0 (𝑥 − 𝑥1 ) + ⋯
+ 𝑓(𝑥0 ; 𝑥0 ; … ; 𝑥0 ; 𝑥1 ; 𝑥1 ; … ; 𝑥𝑛 )(𝑥 − 𝑥0 )𝑛0 (𝑥 − 𝑥1 )𝑛1 … (𝑥
− 𝑥𝑚 )𝑛𝑚 −1.
Каждому узлу 𝑥𝑘 кратности 𝑛𝑘 поставим в соответствие 𝑛𝑘 простых узлов
𝑥𝑘𝑖 :
𝑥𝑘𝑖 = 𝑥𝑘 + 𝑖, 𝑖 = 0, 𝑛𝑘 − 1,
где > 0 –некоторое малое число. Тогда стоит отметить:
lim 𝑓(𝑥𝑘𝑖 ) = 𝑥𝑘 , 𝑖 = 0, 𝑛𝑘 − 1.
𝜀→0
Считая, что в узлах 𝑥𝑘𝑖 ( 𝑖 = 0, 𝑛𝑘 − 1) известны значения функции 𝑦 =
𝑓 (𝑥 ), построим таблицу разделенных разностей для этих узлов. Учитывая
связь разделенных разностей с производной функции, имеем:
𝑓 (𝑗−𝑖) (𝑥𝑘 )
𝑓(𝑥𝑘 ; … ; 𝑥𝑘 ) = lim 𝑓(𝑥𝑘𝑖 ; 𝑥𝑘,𝑖+1 … ; 𝑥𝑘𝑗 ) = , 0 ≤ i < j ≤ 𝑛𝑘 − 1,
𝜀→0 (𝑗 − 𝑖)!
То есть имеем такое равенство:
𝑓(𝑝) 𝑥𝑘
𝑓(𝑥𝑘 ; … ; 𝑥𝑘 ) = .
𝑝!
Построим таблицу разделенных разностей по данным:
𝑥𝑘 𝑓(𝑥𝑘 )
𝑓(𝑥𝑘 ; 𝑥𝑘 )
𝑥𝑘 𝑓(𝑥𝑘 ) 𝑓(𝑥𝑘 ; 𝑥𝑘 ; 𝑥𝑘 )
𝑓(𝑥𝑘 ; 𝑥𝑘 ) 𝑓(𝑥𝑘 ; 𝑥𝑘 ; 𝑥𝑘 ; 𝑥𝑘 )
𝑥𝑘 𝑓(𝑥𝑘 ) 𝑓(𝑥𝑘 ; 𝑥𝑘 ; 𝑥𝑘 )
𝑓(𝑥𝑘 ; 𝑥𝑘 )
𝑥𝑘 𝑓(𝑥𝑘 )
𝑓(𝑥0 ) = −1,5;
𝑓(𝑥1) = 1,2;
𝑓(𝑥2 ) = 1;
𝑓(𝑥1 ) − 𝑓(𝑥0 ) 1,2 − (−1,5)
𝑓(𝑥0 ; 𝑥1 ) = = = 2,7;
𝑥1 − 𝑥0 0 − (−1)
𝑓 (𝑝)𝑥𝑘 0,5
𝑓(𝑥1 ; 𝑥1 ) = = = 0,5;
𝑝! 1!
𝑓(𝑥2 ) − 𝑓(𝑥1 ) 1 − 1,2
𝑓(𝑥2 ; 𝑥1 ) = = = −0,2;
𝑥2 − 𝑥1 1−0
𝑓(𝑥1 ) − 𝑓(𝑥0 ; 𝑥1 ) 0,5 − 2,7
𝑓(𝑥0 ; 𝑥1 ; 𝑥1 ) = = = −2,2;
𝑥1 − 𝑥0 1−0
𝑓 (𝑝) 𝑥𝑘 0,25
𝑓(𝑥1; 𝑥1 ) = = = 0,125;
𝑝! 2!
−1,5
2,7
1,2 −2,2
0,5 2,325
1,2 0,125 −1,575
0,5 −0,825
1,2 −0,7
−0,2
1
𝐻4 (𝑥 ) = −1,5 + 2,7(𝑥 + 1) − 2.2(𝑥 + 1)𝑥 + 2,325(𝑥 + 1)𝑥 2
− 1,575(𝑥 + 1)𝑥 3 = −1,575𝑥 4 + 0,75𝑥 3 + 0,125𝑥 2 + 0,5𝑥 + 1,2.
𝑓 ′ (𝑥) ≈ 𝐿′2 (𝑥 ) =
𝑓(𝑥0 )(2𝑥 − 𝑥1 − 𝑥2 ) 𝑓(𝑥1 )(2𝑥 − 𝑥0 − 𝑥2 )
= −
(𝑥0 − 𝑥1 )(𝑥0 − 𝑥2 ) (𝑥1 − 𝑥0 )(𝑥1 − 𝑥2 )
𝑓(𝑥2 )(2𝑥 − 𝑥0 − 𝑥1)
+ .
(𝑥2 − 𝑥0 )(𝑥2 − 𝑥1 )
Тогда при 𝑥 = 𝑥0 получаем формулу для приближенного вычисления 𝑓 ′ (𝑥0 )
на произвольной сетке:
𝑓 ′ (𝑥) ≈ 𝐿′2 (𝑥 ) =
𝑓(𝑥0 )(2𝑥 − 𝑥1 − 𝑥2 ) 𝑓(𝑥1 )(2𝑥 − 𝑥0 − 𝑥2 )
= +
−ℎ ∗ (−2ℎ) ℎ2
𝑓(𝑥2 )(2𝑥 − 𝑥0 − 𝑥1)
+ .
2ℎ ∗ ℎ
При 𝑥 = 𝑥0 получаем формулу для приближенного вычисления 𝑓 ′ (𝑥0 ) на
равномерной сетке:
𝑓 ′ (𝑥0 ) ≈ 𝐿′2(𝑥0 ) =
𝑓(𝑥0 )(2𝑥0 − 𝑥1 − 𝑥2 ) 𝑓 (𝑥1 )(2𝑥0 − 𝑥0 − 𝑥2 )
= −
−ℎ ∗ (−2ℎ) ℎ2
𝑓(𝑥2 )(2𝑥0 − 𝑥0 − 𝑥1 )
+ =
2ℎ ∗ ℎ
1
= 2
2ℎ
∗ [𝑓 (𝑥0 )(2𝑥0 − 𝑥1 − 𝑥2 ) − 2𝑓 (𝑥1 )(2𝑥0 − 𝑥0 − 𝑥2 )
1
+ 𝑓(𝑥2 )(2𝑥0 − 𝑥0 − 𝑥1 )] = (−3𝑓 (𝑥0 ) + 4𝑓 (𝑥1 ) − 𝑓(𝑥2 )).
2ℎ
Также можно получить данное выражение методом неопределенных
коэффициентов. Пусть в узлах равномерной сетки
𝜔ℎ = {𝑥𝑖 = 𝑎 + 𝑖𝑏, 𝑖 = ̅̅̅̅̅
0, 𝑛},
известны значения функции. Тогда формулу численного дифференцирования
будем искать в виде:
𝑛
𝑓 𝑘 (𝑥 ) ≈ ∑ 𝑐𝑖 𝑓(𝑥𝑖 ), 𝑘 ∈ 𝑁.
𝑖=0
𝑐0 + 𝑐1 + 𝑐2 = 0,
𝑐1 1
+ 𝑐2 = ,
2 2ℎ
𝑐1
+ 𝑐2 = 0.
{ 4
3
𝑐0 = − ,
2ℎ
2
𝑐1 = ,
ℎ
1
𝑐
{ 2 = − .
2ℎ
(𝑘) 𝑓 (𝑛+1)(𝑥𝑖∗ ) ′
𝑅𝑛 (𝑥 ) = ∏ (𝑥𝑖 ) , где 𝑥𝑖∗ ∈ ( 𝑥0 , 𝑥𝑛 ),
(𝑛 + 1)! 𝑛+1
𝑛
′(
−3𝑓 (𝑥0 ) + 4𝑓 (𝑥1 ) − 𝑓 (𝑥2 ) ℎ2 ′′′ ∗
𝑓 𝑥0 ) ≈ + 𝑓 (𝑥 ), где 𝑥 ∗ ∈ ( 𝑥0 , 𝑥𝑛 ).
2ℎ 3
Теперь оценим погрешность с помощью разложения функции 𝑓 (𝑥 ) в ряд
Тейлора в окрестности точки 𝑥𝑖 при 𝑛 = 2, 𝑘 = 1, ℎ = 𝑥 − 𝑥𝑖 . Укажем, что
𝑥1 = 𝑥0 + ℎ, 𝑥2 = 𝑥1 + ℎ = 𝑥0 + 2ℎ. Имеем:
4 ′′ 8
𝑓( 𝑥𝑖 + 2ℎ) = 𝑓( 𝑥𝑖 ) + 2𝑓 ′ ( 𝑥𝑖 )ℎ + 𝑓 ( 𝑥𝑖 )ℎ2 + 𝑓 ′′′ ( 𝑥𝑖 )ℎ3 …
2! 3!
𝑓 ( 𝑥𝑖 + 2ℎ) − 𝑓 ( 𝑥𝑖 ) 2 4
= 𝑓 ′ ( 𝑥𝑖 ) + 𝑓 ′′ ( 𝑥𝑖 )ℎ + 𝑓 ′′′ ( 𝑥𝑖 )ℎ2 …
2ℎ 2! 3!
1 ′′ 1
𝑓 ( 𝑥𝑖 + ℎ) = 𝑓( 𝑥𝑖 ) + 𝑓 ′ ( 𝑥𝑖 )ℎ + 𝑓 ( 𝑥𝑖 )ℎ2 + 𝑓 ′′′ ( 𝑥𝑖 )ℎ3 …
2! 3!
𝑓 ( 𝑥𝑖 + ℎ) − 𝑓 ( 𝑥𝑖 ) 1 1
= 𝑓 ′ ( 𝑥𝑖 ) + 𝑓 ′′ ( 𝑥𝑖 )ℎ + 𝑓 ′′′ ( 𝑥𝑖 )ℎ2 …
ℎ 2! 3!
𝑓 ( 𝑥𝑖 + ℎ) − 𝑓 ( 𝑥𝑖 ) 𝑓( 𝑥𝑖 + 2ℎ) − 𝑓 ( 𝑥𝑖 )
2 −
ℎ 2ℎ
2 6
= 𝑓 ′ ( 𝑥𝑖 ) − 𝑓 ′′′ ( 𝑥𝑖 )ℎ2 − 𝑓 ′′′′ ( 𝑥𝑖 )ℎ3 −. ..
3! 4!
−3𝑓 ( 𝑥𝑖 ) + 4𝑓 ( 𝑥𝑖 + ℎ) − 𝑓 ( 𝑥𝑖 + 2ℎ)
=
2ℎ
1 1
= 𝑓 ′ ( 𝑥𝑖 ) − 𝑓 ′′′ ( 𝑥𝑖 )ℎ2 − 𝑓 ′′′′ ( 𝑥𝑖 )ℎ3−. . . = 𝑓 ′ ( 𝑥𝑖 ) + 𝑂 (ℎ2 ).
3 4
6. Вычислить глобальный интерполяционный кубический сплайн для
функции, заданной на равномерной сетке из 3 узлов.
𝑠𝑖 ′′′ (𝑥 ) = 𝑑𝑖 ,
Тогда, соответственно:
𝑠𝑖 (𝑥𝑖 ) = 𝑎𝑖 , 𝑖 = ̅̅̅̅̅
0, 𝑛.
Учитывая тот факт, что значение функции 𝑓(𝑥𝑖 ) должны быть равны
значению сплайна 𝑠(𝑥𝑖 ), то имеем:
𝑠𝑖 (𝑥𝑖 ) = 𝑓(𝑥𝑖 ) = 𝑎𝑖 .
𝑠1(𝑥0) = 𝑓(𝑥0 ) = 𝑎1
порождает уравнение:
𝑐1 2 𝑑1
−ℎ𝑏1 + ℎ + ℎ = 𝑓(𝑥0 ) + 𝑓(𝑥1 ).
2 6
Условия непрерывности первой производной сплайна во внутренних узлах
сетки,
сводятся к уравнениям:
𝑑𝑖+1 2
−ℎ𝑐𝑖+1 + ℎ = 𝑏𝑖 + 𝑏𝑖+1, 𝑖 = ̅̅̅̅̅̅̅̅̅̅
1, 𝑛 − 1.
2
Из условий непрерывности второй производной сплайна во внутренних узлах
сетки,
имеем следующее:
получаем:
𝑐1 − ℎ𝑑1 = 0,
𝑐𝑛 = 0.
1 ℎ2
𝑏𝑖 + 𝑏𝑖+1 = [2𝑓(𝑥𝑖 ) + 𝑓(𝑥𝑖−1) − 𝑓(𝑥𝑖+1) + ((𝑐𝑖 − 𝑐𝑖+1)
ℎ 2
ℎ3
− (𝑑𝑖 − 𝑑𝑖+1)) , 𝑖 = ̅̅̅̅̅̅̅̅̅̅
1, 𝑛 − 1.
6
Получаем систему уравнений:
𝑥𝑖 1 2 3
𝑓(𝑥𝑖 ) 1 8 27
Введем сетку
3−1
𝜔ℎ = {𝑥𝑖 = 𝑎 + 𝑖ℎ, 𝑖 = ̅̅̅̅̅
0, 𝑛}, где ℎ = = 1.
2
𝑠 (𝑥 ), 𝑥 ∈ [1,2],
𝑠(𝑥 ) = { 1
𝑠2(𝑥 ), 𝑥 ∈ [2,3].
Имеем систему уравнений:
𝑐 + 4𝑐𝑖 + 𝑐𝑖+1 = (6𝑓(𝑥𝑖−1) − 2𝑓(𝑥𝑖 ) + 𝑓(𝑥𝑖+1))/ℎ2 , 𝑖 = ̅̅̅̅̅̅̅̅̅̅̅
0, 𝑛 − 1,
{ 𝑖−1
𝑐0 = 𝑐𝑛 = 0.
Матрица этой системы симметрична, трёхдиагональная и
положительно определена. Значит система однозначно разрешима.
Так как
𝑐0 = 𝑐𝑛 = 0;
𝑐0 + 4𝑐1 + 𝑐2 = 6(1 − 2 ∗ 23 + 33 ) = 72;
4𝑐1 = 72;
𝑐1 = 𝑑1 = 18;
𝑑𝑖+1 = (𝑐𝑖+1 − 𝑐𝑖 )/ℎ, 𝑖 = ̅̅̅̅̅̅̅̅̅̅̅
0, 𝑛 − 1.
0 − 18
𝑑2 = = −18;
1
ℎ2 ℎ3
ℎ𝑏𝑖+1 = 𝑐𝑖+1 − 𝑑𝑖+1 + 𝑓(𝑥𝑖+1) − 𝑓(𝑥𝑖 ), 𝑖 = ̅̅̅̅̅̅̅̅̅̅̅ 0, 𝑛 − 1.
2 6
1 1
𝑏1 = ∗ 18 − ∗ 18 + (8 − 1) = 9 − 3 + 7 = 13;
2 6
ℎ2
−𝑏2 = −𝑏1 − 𝑐2+ 𝑑2;
2
1
−𝑏2 = −13 − 0 + (−18) = −22;
2
𝑏2 = 22.
Теперь можем определить интерполяционный кубический сплайн:
𝑐𝑖 𝑑𝑖
𝑠𝑖 (𝑥 ) = 𝑎𝑖 + 𝑏𝑖 (𝑥 − 𝑥𝑖 ) + (𝑥 − 𝑥𝑖 )2 + (𝑥 − 𝑥𝑖 )3 .
2 6
18 18
𝑠1(𝑥 ) = 23 + 13(𝑥 − 2) + (𝑥 − 2)2 + (𝑥 − 2)3 =
2 6
3 2
= 3𝑥 − 9𝑥 + 13𝑥 + 42.
𝑠2(𝑥 ) = 27𝑥 3 − 59𝑥 + 42 .
Тогда имеем:
3𝑥 3 − 9𝑥 2 + 13𝑥 + 42, 𝑥 ∈ [1,2],
𝑠 (𝑥 ) = {
27𝑥 3 − 59𝑥 + 42 , 𝑥 ∈ [2,3].