ВУЗ:
Составители:
Рубрика:
18
Дополнив процедуру KGAUSS оценкой числа обусловленности, от-
транслировав и включив дополненную процедуру KFGAUSS (Карл
Фридрих Гаусс) в библиотеку (названную нами Math32.dll) динамиче-
ского вызова, получим возможность обращаться к ней из VBA. Однако
при этом следует учесть ряд особенностей. Во-первых, необходимо в
VBA декларировать подключаемую процедуру, записав:
Declare Sub KFGAUSS Lib "С:\Путь\Math32.dll" (ByRef Ab As Double, _
ByVal N As Long, ByRef X As Double, ByRef CD As Double)
Во-вторых, следует учесть, что в процедуру надо передавать адрес на-
чала массивов, а не весь массив, включая границы индексов, как это де-
лается в Бейсике. То есть обращение из VBA к процедуре KFGAUSS
может иметь вид:
Call KFGAUSS(AiB(1, 1), N, X(1), CD)
Отметим ещѐ одну особенность реализации процедуры KFGAUSS, по-
зволяющую вычислять определитель левой квадратной (N×N)-части
расширенной матрицы AiB. Этот определитель вычисляется как произ-
ведение диагональных элементов матрицы, а знак произведения, кото-
рый зависит от чѐтного или нечѐтного числа выполненных перестано-
вок, кодируется знаком переменной CD, то есть определитель
det(A)= Aib(1,1)×…×AiB(N,N)×знак(CD).
Число обусловленности матрицы системы положительное и равно аб-
солютной величине |CD|. Если |CD| порядка десятков (не больше 1000),
то система достаточно хорошо обусловлена, и точность еѐ решения вы-
сокая. Большая величина |CD|, скажем, 10
12
, говорит о близости систе-
мы к вырожденной, |CD|=1E32 указывает на точную вырожденность
системы. Отметим, что для представленной на рис. 1.1 СЛАУ число
обусловленности равно 3,534×10
15
. Оно получено в ячейке D4 с помо-
щью разбираемой ниже функции пользователя для решения СЛАУ и
указывает на близость рассмотренной системы к вырожденной.
С учѐтом сделанных замечаний в Excel функция, определённая поль-
зователем, для решения СЛАУ и выдачи числа обусловленности мат-
рицы системы, может иметь следующий вид:
Дополнив процедуру KGAUSS оценкой числа обусловленности, от- транслировав и включив дополненную процедуру KFGAUSS (Карл Фридрих Гаусс) в библиотеку (названную нами Math32.dll) динамиче- ского вызова, получим возможность обращаться к ней из VBA. Однако при этом следует учесть ряд особенностей. Во-первых, необходимо в VBA декларировать подключаемую процедуру, записав: Declare Sub KFGAUSS Lib "С:\Путь\Math32.dll" (ByRef Ab As Double, _ ByVal N As Long, ByRef X As Double, ByRef CD As Double) Во-вторых, следует учесть, что в процедуру надо передавать адрес на- чала массивов, а не весь массив, включая границы индексов, как это де- лается в Бейсике. То есть обращение из VBA к процедуре KFGAUSS может иметь вид: Call KFGAUSS(AiB(1, 1), N, X(1), CD) Отметим ещѐ одну особенность реализации процедуры KFGAUSS, по- зволяющую вычислять определитель левой квадратной (N×N)-части расширенной матрицы AiB. Этот определитель вычисляется как произ- ведение диагональных элементов матрицы, а знак произведения, кото- рый зависит от чѐтного или нечѐтного числа выполненных перестано- вок, кодируется знаком переменной CD, то есть определитель det(A)= Aib(1,1)×…×AiB(N,N)×знак(CD). Число обусловленности матрицы системы положительное и равно аб- солютной величине |CD|. Если |CD| порядка десятков (не больше 1000), то система достаточно хорошо обусловлена, и точность еѐ решения вы- сокая. Большая величина |CD|, скажем, 1012, говорит о близости систе- мы к вырожденной, |CD|=1E32 указывает на точную вырожденность системы. Отметим, что для представленной на рис. 1.1 СЛАУ число обусловленности равно 3,534×1015. Оно получено в ячейке D4 с помо- щью разбираемой ниже функции пользователя для решения СЛАУ и указывает на близость рассмотренной системы к вырожденной. С учѐтом сделанных замечаний в Excel функция, определённая поль- зователем, для решения СЛАУ и выдачи числа обусловленности мат- рицы системы, может иметь следующий вид: 18
Страницы
- « первая
- ‹ предыдущая
- …
- 16
- 17
- 18
- 19
- 20
- …
- следующая ›
- последняя »