Методическое пособие по курсу "Интерактивные графические системы". Найханов В.В - 21 стр.

UptoLike

Так как требовать совпадения значений сплайна и интерполяционной
функции в узлах сетки теперь нельзя, получим другое условие, которое
будет вытекать из того, что функционал (1.31) минимизируется кубическим
сплайном
s(х). Для задачи сглаживания более удобно другое представление
сплайна, в котором вместо m
i
присутствуют вторые производные M
i
=
S
i
.
Запишем условие линейности второй производной от кубического сплайна
s (х) на участке [x
i-1
, x
i
]:
′′
s (х)= M
xx
h
M
xx
h
i
i
i
i
i
i
+
1
1
. (1.33)
Здесь h
i
= x
i
- x
i-1
, M
i
- коэффициенты сплайна. Граничными условиями
будут M
0
= M
N
= 0.
Если рассмотреть выражение Ф. (u -
s), где u (x) - любая функция из
заданного класса, а
s(х) - сглаживающий сплайн, то после некоторых
преобразований (интеграл берется по частям и используются граничные
условия (1.32)) получим:
Ф (u -
s) = Ф (u ) - Ф ( s) - 2 с,
где с =
′′′
−+
==
∑∑
Su S
R
SyuS
i
i
N
X
X
i
iiii
i
N
i
i
() ( )( )
10
1
1
. (1.34)
Если потребовать, чтобы с = 0, то
Ф (u -
s) = Ф (u ) - Ф ( s) 0 (1.35)
(Ф (u -
s) - положительно определенный функционал). Отсюда следует, что
Ф (
s) Ф (u), т.е. тогда кубический сплайн будет минимизировать
рассматриваемый функционал. Из (1.33) можно определить
′′′
S
i
. После
простых преобразований условие с = 0 запишется следующим образом:
s(x
i
) = y
i
- R
i
L
i
, i = 0,1,...,N, (1.36)
где L
i
=
MM
h
MM
h
ii
i
ii
i
+
+
1
1
1
- (1.37)
скачок третьей производной в i - м узле.
Для единообразия записи здесь введено: M
-1
= M
N+1
= 0, h
0
h
N+1
0.
Формула (1.36) заменяет условие
s(x
i
) = y
i
интерполяционной задачи.
Для определения коэффициентов M
i
(i = 1,2,...,N-1) потребуем, чтобы
функция
s(х) и ее первая производная
α
(х) были непрерывны в узлах
сетки, т.е.
s(x
i
- 0) = s(x
i
+ 0),
s (x
i
- 0) =
s (x
i
+ 0). (1.38)
Дважды интегрируя (1.33) и учитывая (1.36) и (1.38), получим для
определения неизвестных коэффициентов систему N - 1 линейных
алгебраических уравнений:
c
i-2
M
i-2
+ b
i-1
M
i-1
+ a
i
M
i
+ b
i
M
i+1
+ c
i
M
i+2
= F
i
; (1.39)
a
1
= c
0
= b
0
= 0; b
N-1
= c
N-1
= c
N-2
= 0;
a
i
=
111 1 1
3
2
1
2
1
2
11
h
R
hh
R
h
Rhh
i
i
ii
i
i
iii
++ + + +
+
+
++
() ();
i = 1,2,...,N-1
b
i
= - ()( )
11 1 1 11
6
112
1
1
1
hh
R
hh
R
h
h
ii
i
ii
i
i
i
+++
+
+++
+
+
+
; (1.40)
      Так как требовать совпадения значений сплайна и интерполяционной
функции в узлах сетки теперь нельзя, получим другое условие, которое
будет вытекать из того, что функционал (1.31) минимизируется кубическим
сплайном s (х). Для задачи сглаживания более удобно другое представление
сплайна, в котором вместо mi присутствуют вторые производные Mi = S i′′ .
Запишем условие линейности второй производной от кубического сплайна
s (х) на участке [xi-1, xi]:
                                             xi − x      x − xi −1
                   s ′′ (х)= M        i −1          + Mi           .                 (1.33)
                                               hi           hi
Здесь hi = xi - xi-1, Mi - коэффициенты сплайна. Граничными условиями
будут M0 = MN = 0.
     Если рассмотреть выражение Ф. (u - s ), где u (x) - любая функция из
заданного класса, а s (х) - сглаживающий сплайн, то после некоторых
преобразований (интеграл берется по частям и используются граничные
условия (1.32)) получим:
            Ф (u - s ) = Ф (u ) - Ф ( s ) - 2 с,
           N                 X i −1           N
                                                    1
где с =   ∑ Si′′′( u − S )
          i =1                Xi
                                       +∑
                                             i =0   Ri
                                                       ( S i − y i )( ui − S i ) .   (1.34)

Если потребовать, чтобы с = 0, то
             Ф (u - s ) = Ф (u ) - Ф ( s ) ≥ 0                 (1.35)
(Ф (u - s ) - положительно определенный функционал). Отсюда следует, что
Ф ( s ) ≤ Ф (u), т.е. тогда кубический сплайн будет минимизировать
рассматриваемый функционал. Из (1.33) можно определить S i′′′ . После
простых преобразований условие с = 0 запишется следующим образом:
              s (xi) = yi - Ri Li , i = 0,1,...,N,             (1.36)
                         M i +1 − M i M i − M i −1
где               Li =               −                                  -            (1.37)
                              hi +1       hi
скачок третьей производной в i - м узле.
      Для единообразия записи здесь введено: M-1 = MN+1 = 0, h0 hN+1 ≠ 0.
Формула (1.36) заменяет условие s (xi) = yi интерполяционной задачи.
      Для определения коэффициентов Mi (i = 1,2,...,N-1) потребуем, чтобы
функция s (х) и ее первая производная α (х) были непрерывны в узлах
сетки, т.е.
      s (xi - 0) = s (xi + 0), s′ (xi - 0) = s′ (xi + 0).         (1.38)
      Дважды интегрируя (1.33) и учитывая (1.36) и (1.38), получим для
определения неизвестных коэффициентов систему N - 1 линейных
алгебраических уравнений:
      ci-2 Mi-2 + bi-1 Mi-1 + ai Mi + bi Mi+1 + ci Mi+2 = Fi ;    (1.39)
      a1 = c0 = b0 = 0; bN-1 = cN-1 = cN-2 = 0;
                  1         1   1 2           1            1
      ai =          2
                      Ri + ( +       ) Ri +       2
                                                    Ri +1 + ( hi + hi +1 ) ;
                 hi         hi hi +1        hi +1          3
                                             i = 1,2,...,N-1
                 ⎡ 1   1             1     1            ⎤ 1     1
      bi = - ⎢(      +      )Ri + (      +       )Ri +1 ⎥      + hi +1 ;             (1.40)
                 ⎣ hi hi +1         hi +1 hi + 2        ⎦ hi +1 6