Составители:
36
d
i
h
i
= c
i
– c
i–1
, i = 2, 3,..., N,
где h
i
= x
i
– x
i–1
. Недостающие два уравнения выводятся из до-
полнительных условий, например S"(a) = S"(b) = 0. Из системы
можно исключить неизвестные b
i
, d
i
, получив систему N+1 ли-
нейных уравнений (СЛАУ) для определения коэффициентов c
i
:
c
0
= 0, c
N
= 0,
h
i
c
i–1
+
2(h
i
+
h
i+1
)c
i
+
h
i+1
c
i+1
= 6
⎟
⎟
⎠
⎞
⎜
⎜
⎝
⎛
−
−
−
−
−+
1
11
i
ii
i
ii
h
ff
h
ff
, i = 1, 2,…, N–1.
Данная CЛАУ имеет трехдиагональную матрицу и решается ме-
тодом прогонки. После этого вычисляются коэффициенты b
i
, d
i
:
i
iiiiii
i
i
ii
i
h
ffhdhc
,b
h
cc
d
1
2
1
62
−−
−
+−=
−
= , i = 1, 2,..., N.
Для вычисления значения S(x) в произвольной точке отрез-
ка z∈ [a, b] необходимо решить систему уравнений на коэффи-
циенты c
i
, i = 1, 2,…, N–1, затем найти все коэффициенты b
i
, d
i
.
Далее необходимо определить, на какой интервал [x
i0,
x
i0–1
] по-
падает эта точка, и, зная номер i
0
, вычислить значение сплайна и
его производных в точке z:
S(z) = a
i0
+ b
i0
(z – x
i0
) + c
i0
(z – x
i0
)
2
/2 + d
i0
(z – x
i0
)
3
/6,
S
′
(z) = b
i0
+ c
i0
(z – x
i0
) + d
i0
(z – x
i0
)
2
/2, S
′′
(z) = c
i0
+ d
i0
(z – x
i0
).
Кубический интерполяционный сплайн имеет достаточно
хорошую точность и в то же время простую и экономичную
реализацию (метод прогонки).
Для построения кубического интерполяционного сплайна в
MathCAD определена функция
interp(s,x,y,t), аппроксимирующая
данные векторов
x и y кубическими сплайнами. Здесь s – вектор
вторых производных от табличной функции (x, y), созданный
одной из функций
cspline(x,y), pspline(x,y) или lspline(x,y);
x
– вектор действительных данных аргумента, элементы которо-
го расположены в порядке возрастания;
y – вектор действи-
тельных данных значений того же размера;
t – значение аргу-
мента, при котором вычисляется интерполирующая функция.
Встроенные функции
lspline(x,y), pspline(x,y) и cspline(x,y)
различаются способом вычисления второй производной в гра-
ничных точках. На рис. 3.2 приведен пример сплайн-аппрокси-
di hi = ci – ci–1 , i = 2, 3,..., N, где hi = xi – xi–1. Недостающие два уравнения выводятся из до- полнительных условий, например S"(a) = S"(b) = 0. Из системы можно исключить неизвестные bi , di , получив систему N+1 ли- нейных уравнений (СЛАУ) для определения коэффициентов ci: c0 = 0, cN = 0, ⎛ f i +1 − f i f i − f i −1 ⎞ hici–1 + 2(hi + hi+1)ci + h i+1ci+1 = 6 ⎜⎜ − ⎟ , i = 1, 2,…, N–1. ⎝ hi hi −1 ⎟⎠ Данная CЛАУ имеет трехдиагональную матрицу и решается ме- тодом прогонки. После этого вычисляются коэффициенты bi, di: c − ci −1 c h d h 2 f − f i −1 di = i ,bi = i i − i i + i , i = 1, 2,..., N. hi 2 6 hi Для вычисления значения S(x) в произвольной точке отрез- ка z∈ [a, b] необходимо решить систему уравнений на коэффи- циенты ci, i = 1, 2,…, N–1, затем найти все коэффициенты bi, di. Далее необходимо определить, на какой интервал [xi0, xi0–1] по- падает эта точка, и, зная номер i0, вычислить значение сплайна и его производных в точке z: S(z) = ai0 + bi0(z – xi0) + ci0(z – xi0)2/2 + di0(z – x i0)3/6, S′(z) = bi0 + ci0(z – xi0) + di0(z – x i0)2/2, S′′(z) = ci0 + di0(z – x i0). Кубический интерполяционный сплайн имеет достаточно хорошую точность и в то же время простую и экономичную реализацию (метод прогонки). Для построения кубического интерполяционного сплайна в MathCAD определена функция interp(s,x,y,t), аппроксимирующая данные векторов x и y кубическими сплайнами. Здесь s – вектор вторых производных от табличной функции (x, y), созданный одной из функций cspline(x,y), pspline(x,y) или lspline(x,y); x – вектор действительных данных аргумента, элементы которо- го расположены в порядке возрастания; y – вектор действи- тельных данных значений того же размера; t – значение аргу- мента, при котором вычисляется интерполирующая функция. Встроенные функции lspline(x,y), pspline(x,y) и cspline(x,y) различаются способом вычисления второй производной в гра- ничных точках. На рис. 3.2 приведен пример сплайн-аппрокси- 36
Страницы
- « первая
- ‹ предыдущая
- …
- 32
- 33
- 34
- 35
- 36
- …
- следующая ›
- последняя »