Текст подпрограммы и версий 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.