ВУЗ:
Составители:
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
- …
- следующая ›
- последняя »