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

UptoLike

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

44
производных (нулевые вторые производные соответствуют распрямле-
нию линии на концах, как в случае реек чертѐжников). Часто использу-
ется условие «без узла», когда на двух крайних интервалах сплайн вы-
ражается одним полиномом. Это условие даѐт плавное изменение кри-
визны у краѐв сплайна.
При вычислениях значений
)(xS
вместе с ординатами
i
y
используются,
например, первые производные
i
p
в узловых точках, которые предва-
рительно вычисляются решением СЛАУ с трѐхдиагональной матрицей.
Вычисление недостающих производных
i
p
в узловых точках и расчѐт
ординат
)(uSv
сплайна в точках
u
выполняется обращением к функ-
ции HS, которая вызывается из библиотеки Math32.dll и должна декла-
рироваться в VBA (см. в модуле Math.bas) оператором:
Declare Function HS Lib "C:\Путь\Math32.dll" _
(ByRef u As Double, ByVal n As Long, ByRef X As Double, ByRef Y As Double, _
ByRef p As Double, ByRef Kod As Long, ByRef KodErr As Long) As Double
Обращаются из VBA к функции HS следующим образом:
v = HS(u, n, x(1), y(1), p(1), Kod, KodErr),
где HS, u, x, y, p типа Double; n, Kod, KodErr типа Long (4 байта).
Функция при Kod
0 вычисляет массив p неизвестных производных
i
p
в узлах, а затем устанавливает Kod в 1 и переходит к следующему
пункту. При Kod
0 узлы сетки сплайна должны строго возрастать.
При Kod>0 функция вычисляет значение
сплайна в точке
u
.
Если при расчете узлы
ii
xx ,
1
совпадают, то принимают
2/)(
1 iii
yyv
.
Значения входных аргументов:
u - абсцисса точки для вычисления ординаты,
n - число узлов сплайна,
x(1), ..., x(n) - абсциссы узлов сплайна,
y(1), ..., y(n) - ординаты узлов сплайна,
p(1), p(n) - производные в граничных узлах сплайна,
Kod - задает способ использования подпрограммы:
Kod={-22, -21, -12, -20, -02, -11, -10, -01, 00, -01, -02,..}
производных (нулевые вторые производные соответствуют распрямле-
нию линии на концах, как в случае реек чертѐжников). Часто использу-
ется условие «без узла», когда на двух крайних интервалах сплайн вы-
ражается одним полиномом. Это условие даѐт плавное изменение кри-
визны у краѐв сплайна.
При вычислениях значений S (x) вместе с ординатами yi используются,
например, первые производные pi в узловых точках, которые предва-
рительно вычисляются решением СЛАУ с трѐхдиагональной матрицей.
Вычисление недостающих производных pi в узловых точках и расчѐт
ординат v  S (u) сплайна в точках u выполняется обращением к функ-
ции HS, которая вызывается из библиотеки Math32.dll и должна декла-
рироваться в VBA (см. в модуле Math.bas) оператором:
Declare Function HS Lib "C:\Путь\Math32.dll" _
(ByRef u As Double, ByVal n As Long, ByRef X As Double, ByRef Y As Double, _
       ByRef p As Double, ByRef Kod As Long, ByRef KodErr As Long) As Double
Обращаются из VBA к функции HS следующим образом:
                     v = HS(u, n, x(1), y(1), p(1), Kod, KodErr),
где HS, u, x, y, p типа Double; n, Kod, KodErr типа Long (4 байта).
  Функция при Kod  0 вычисляет массив p неизвестных производных
pi в узлах, а затем устанавливает Kod в 1 и переходит к следующему
пункту. При Kod  0 узлы сетки сплайна должны строго возрастать.
При Kod>0 функция вычисляет значение v  S (u) сплайна в точке u .
Если при расчете узлы xi1, xi совпадают, то принимают vi  ( yi1  yi ) / 2 .
Значения входных аргументов:
u - абсцисса точки для вычисления ординаты,
n - число узлов сплайна,
x(1), ..., x(n) - абсциссы узлов сплайна,
y(1), ..., y(n) - ординаты узлов сплайна,
p(1), p(n) - производные в граничных узлах сплайна,
Kod - задает способ использования подпрограммы:
Kod={-22, -21, -12, -20, -02, -11, -10, -01, 00, -01, -02,..}

                                             44