Численные методы решения инженерных задач в пакете MathCAD. Бедарев И.А - 34 стр.

UptoLike

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