Решение задач в Excel на VBA. Применение программных средств в проектировании автомобильных конструкций. Калядин В.И. - 45 стр.

UptoLike

Составители: 

45
Если Kod
0, то первая слева цифра указывает, что на левой границе
(
1
x
) заданы: 2 - "без узла", 1 - в p(1) задана 1-ая производная, 0 - ну-
левая 2-ая производная. Вторая слева цифра указывает, что на правой
границе (
n
x
) заданы: 2 - "без узла", 1 - в p(N) задана 1-ая производная,
0 - нулевая 2-ая производная.
Если Kod>0, то массив p(1),...,p(N) считается заданным, он не изменя-
ется, а используется для вычисления значения сплайна. Kod при этом
указывает номер обращения к данной функции.
Выходные аргументы:
HS - ордината сплайна в точке u,
Если на входе задано Kod
0, то предварительно вычисляются элементы
массива производных p(2),...,p(N-1) и устанавливается Kod=1. Если же
на входе Kod>0, то при выходе Kod:=Kod+1.
KodErr код завершения: KodErr = 0 - штатное завершение,
KodErr = №>0 - аварийное завершение, № - код ошибки.
KodErr = 1 - Ошибочное задание сетки узлов (N<2)!
KodErr = 20 - Узлы сетки не упорядочены по возрастанию!
KodErr = 21 - Узлы сетки не упорядочены строго по возрастанию!
KodErr = 3 - Ошибочное задание параметров сплайна!
KodErr = {4 | 5 | 6 | 7} - Ошибочное задание граничных условий!
KodErr = {8 | 9} - Ошибочное задание параметра Kod !
Кубическая сплайн-кривая (на плоскости) представляет собой пара-
метрический сплайн
)(),()( tYtXtV
, составленный из двух кубических
сплайнов
)()(),()( tSytYtSxtX
, зависящих от параметра
t
и заданного
на сетке
n
ttt
10
, в качестве узла
которой принята длина лома-
ной изломами в заданных точках)
от начальной точки
00
, yx
до
точки
ii
yx ,
. В каждом узле
ii
yx ,
сплайн-кривой определяются две
первые производные
ii
pypx ,
соответственно от
X и Y по параметру
t
,
вместе они задают вектор касательной к сплайн-кривой. Процедура
VSpline, вычисляющая недостающие производные
ii
pypx ,
, а также
рассчитывающая Xv, Yv - координаты сплайн-кривой, написана на
VBA и имеет вид:
Если Kod  0, то первая слева цифра указывает, что на левой границе
( x1 ) заданы: 2 - "без узла", 1 - в p(1) задана 1-ая производная, 0 - ну-
левая 2-ая производная. Вторая слева цифра указывает, что на правой
границе ( xn ) заданы: 2 - "без узла", 1 - в p(N) задана 1-ая производная,
0 - нулевая 2-ая производная.
Если Kod>0, то массив p(1),...,p(N) считается заданным, он не изменя-
ется, а используется для вычисления значения сплайна. Kod при этом
указывает номер обращения к данной функции.
Выходные аргументы:
HS - ордината сплайна в точке u,
Если на входе задано Kod  0, то предварительно вычисляются элементы
массива производных p(2),...,p(N-1) и устанавливается Kod=1. Если же
на входе Kod>0, то при выходе Kod:=Kod+1.
KodErr – код завершения: KodErr = 0 - штатное завершение,
KodErr = №>0 - аварийное завершение, № - код ошибки.
KodErr = 1 - Ошибочное задание сетки узлов (N<2)!
KodErr = 20 - Узлы сетки не упорядочены по возрастанию!
KodErr = 21 - Узлы сетки не упорядочены строго по возрастанию!
KodErr = 3 - Ошибочное задание параметров сплайна!
KodErr = {4 | 5 | 6 | 7} - Ошибочное задание граничных условий!
KodErr = {8 | 9} - Ошибочное задание параметра Kod !
  Кубическая сплайн-кривая (на плоскости) представляет собой пара-
метрический сплайн V (t )  X (t ),Y (t ), составленный из двух кубических
сплайнов X (t )  Sx(t ), Y (t )  Sy(t ) , зависящих от параметра t и заданного
на сетке t0  t1    tn , в качестве узла ti которой принята длина лома-
ной (с изломами в заданных точках) от начальной точки x0 , y0  до
точки xi , yi . В каждом узле xi , yi  сплайн-кривой определяются две
первые производные pxi , pyi  соответственно от X и Y по параметру t ,
вместе они задают вектор касательной к сплайн-кривой. Процедура
VSpline, вычисляющая недостающие производные pxi , pyi , а также
рассчитывающая Xv, Yv - координаты сплайн-кривой, написана на
VBA и имеет вид:
                                      45