|
Текст подпрограммы и версий am01r_p.zip , am01e_p.zip , am01c_p.zip |
Тексты тестовых примеров tam01r_p.zip , tam01e_p.zip , tam01c_p.zip |
Вычисление евклидовой нормы симметричной матрицы, заданной в компактной форме.
Для симметричной матрицы А порядка N, заданной в компактной форме, вычисляется евклидова норма
N N
|| A || E = ( ∑ ∑ | a k m | 2 )1/2
k =1 m =1
function AM01R(var A :Array of Real; N :Integer): Real;
Параметры
| A - | вектор длины N * (N + 1)/2, в котором задается симметричная матрица А в компактной форме (тип: вещественный); |
| N - | порядок матрицы А (тип: целый). |
Версии
| AM01E - | вычисление евклидовой нормы вещественной симметричной матрицы, заданной в компактной форме с расширенной (Extended) точностью; |
| AM01C - | вычисление евклидовой нормы комплексной симметричной или эрмитовой матрицы, заданной в компактной форме. |
Вызываемые подпрограммы: нет.
Замечания по использованию
| 1. |
В функции АМ01E параметр А имеет тип Extended. | |
| 2. | В функции AM01C параметр А имеет тип Complex. |
Unit tam01r_p;
interface
uses
SysUtils, Math, { Delphi }
LStruct, Lfunc, UtRes_p, AM01R_p;
function tam01r: String;
implementation
function tam01r: String;
var
N :Integer;
Z :Real;
const
A :Array [0..5] of Real = ( 0.0,2.0,3.0,1.0,1.0,2.0 );
begin
Result := '';
N := 3;
Z := AM01R(A,N);
Result := Result + Format(' %20.16f ',[Z]) + #$0D#$0A;
UtRes('tam01r',Result); { вывод результатов в файл tam01r.res }
exit;
end;
end.
Результат: Z = 5.