ВУЗ:
Составители:
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
Страницы
- « первая
- ‹ предыдущая
- …
- 10
- 11
- 12
- 13
- 14
- …
- следующая ›
- последняя »
