Вычислительная математика. Ч. 2. Асламова В.С - 12 стр.

UptoLike

23
Матрица этой системы трехдиагональная, то есть ненулевые элементы на-
ходятся на главной и двух соседних с ней диагоналях, расположенных сверху
и снизу. По найденным из системы (1.29) коэффициентам c
i
легко вычислить
коэффициенты d
i
и b
i
.
Блок-схема метода сплайнов приведена на рис. 7.
1
Начало
ввод n, x
p
и массивов
x
и y
i: = 1,
n
h[i]: = x[i] - x[i - 1]
a[i]: = y[i - 1]
c[1]: = 0
c[n+1]: = 0
находим коэффициенты с
i
методом прогонки
i: = 2,
n
M[i, i]: = 2 (h[i
- 1] + h[i])
M[i, i-1]: = h[i - 1]
M[i, i +1]: = h[i]
M[ n +1]: =3
( (y[i]
-y[i-1])/h[i]
(y[i - 1] - y[i - 2])/h[i -1] )
определяем трехдиагональную
матрицу М
р
асчет
прогоночных
коэф-тов
AA[1]: =M[1,2] / M[1,1]
BB[1]: = M[1, n+1] / M[1,1]
i: = 2,
n - 1
e: = M[i, i -
1]
AA[i
- 1]+ M[i, i]
AA[i]: = - M[i, i+1] / e
BB[i]: = (M[i, n+1]
M[i, i -
1] BB[i
- 1] / e
обратный ход
Размерность массивов
от 0 до n
24
1
i: = n
i > 2
i: = i -1
C[i]: = AA[i]
C[i+1] + BB[i]
да
нет
b[n]: = (y[n] -y[n -1]) / h[n]
2/3
h[n]
C[n]
d[n]: = -
c[n] / (3
h[n] )
i: = 1, n-1
y[i] -y[i-
1] h[i]
(C[i+1] + 2
C[i])
b[i]: =
-
h[i] 3
C[i +1]
C[i]
d[i]: =
3
h[i]
i: = 1, n
печать
a, b, c, d
коэффициенты
сплайна
печать
а[i], b[i], c[i], d[i]
2
M[n,n+1]
M[n,n -
1]
BB[n
-1]
C[n]: =
M[n,n] + M[n,n -
1]
AA[n
-1]
                                                                                                                                      1
   Матрица этой системы трехдиагональная, то есть ненулевые элементы на-
ходятся на главной и двух соседних с ней диагоналях, расположенных сверху                                               M[n,n+1] – M[n,n -1] ⋅BB[n -1]
и снизу. По найденным из системы (1.29) коэффициентам ci легко вычислить                                        C[n]: = ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
коэффициенты di и bi.                                                                                                    M[n,n] + M[n,n -1] ⋅AA[n -1]

   Блок-схема метода сплайнов приведена на рис. 7.
                                                                                                                                   i: = n
                                     Начало
                                                                      Размерность массивов
                                                                                                                                                 нет
                                                                      от 0 до n                                                     i>2
                                 ввод n, xp
                                                                                                                                          да
                               и массивов x и y
                                                                                                                                  i: = i -1
                                     i: = 1, n
                                                                                                                    C[i]: = AA[i] ⋅ C[i+1] + BB[i]
                               h[i]: = x[i] - x[i -1]
                                  a[i]: = y[i -1]

                                                                    находим коэффициенты сi                  b[n]: = (y[n] -y[n -1]) / h[n] – 2/3⋅h[n] ⋅C[n]
                                                                    методом прогонки                                      d[n]: = -c[n] / (3⋅h[n] )
                                   c[1]: = 0
                                  c[n+1]: = 0
                                                                    определяем трехдиагональную                                 i: = 1, n-1
                                                                    матрицу М
                                    i: = 2, n
                                                                                                                   y[i] -y[i-1] h[i] ⋅ (C[i+1] + 2⋅C[i])
                                                                                                            b[i]: = ⎯ ⎯⎯ ⎯ - ⎯⎯ ⎯ ⎯⎯ ⎯⎯ ⎯ ⎯⎯
                          M[i, i]: = 2⋅ (h[i -1] + h[i])                                                              h[i]                 3
                              M[i, i-1]: = h[i -1]
                              M[i, i +1]: = h[i]
         M[ n +1]: =3⋅ ( (y[i] -y[i-1])/h[i] – (y[i -1] -y[i-2])/h[i -1] )
                                                                                                                                C[i +1] –C[i]
                                                                                                                        d[i]: = ⎯ ⎯ ⎯ ⎯ ⎯ ⎯
                                                                                  расчет
                                                                                                                                    3⋅h[i]
                                                                                  прогоночных
                                                                                  коэф -тов
                         AA[1]: =M[1,2] / M[1,1]
                        BB[1]: = M[1, n+1] / M[1,1]                                                                               печать
                                                                                                                      ‘a, b, c, d – коэффициенты
                                                                   обратный ход
                                                                                                                                 сплайна’
                                   i: = 2, n-1
                                                                                                                                  i: = 1, n
                      e: = M[i, i -1] ⋅AA[i -1]+ M[i, i]
                          AA[i]: = - M[i, i+1] / e
                BB[i]: = (M[i, n+1] – M[i, i -1] ⋅BB[i -1] / e                                                                     печать
                                                                                                                            а[i], b[i], c[i], d[i]



                                        1
                                                                                                  23   24                                 2