Текст подпрограммы и версий
av02r_p.zip  av02e_p.zip  av02c_p.zip 
Тексты тестовых примеров
tav02r_p.zip  tav02e_p.zip  tav02c_p.zip 

Функция:  AV02R (модуль AV02R_p)

Назначение

Вычисление евклидовой нормы вектора.

Математическое описание

Для заданного вектора А длины N вычисляется евклидова норма

 || A ||E = ( | a1 |2 + | a2 |2 + ... + | aN |2 )1/2 

Использование

function AV02R(var A :Array of Real; N :Integer): Real;

Параметры

A - одномерный массив длины N, в котором задается исходный вектор (тип: вещественный);
N - размерность вектора А (тип: целый).

Версии

AV02E - вычисление евклидовой нормы вектора с расширенной (Extended) точностью.
AV02C - вычисление евклидовой нормы комплексного вектора.

Вызываемые подпрограммы: нет

Замечания по использованию

  1. 

В функции АV02E параметр А имеет тип Extended.

  2. 

В функции АV02С параметр А имеет тип Complex.

  3.  Функция АV02R и ее версии могут быть использованы для вычисления евклидовой нормы матрицы (см. пример 2).

Пример использования

1.
Unit tAv02r_p;
interface
uses
SysUtils, Math, { Delphi }
LStruct, Lfunc, UtRes_p, AV02R_p;

function tAv02r: String;

implementation

function tAv02r: String;
var
_i,N :Integer;
Z :Real;
const
A :Array [0..4] of Real = ( 1.0,1.0,2.0,3.0,1.0 );
begin
ReSULt := '';
Result := Result + Format('%s',[' A']);
Result := Result + #$0D#$0A;
for _i:=0 to 4 do
 begin
  Result := Result + Format('%20.16f ',[A[_i]]);
  if ( ((_i+1) mod 5)=0 )
   then Result := Result + #$0D#$0A;
 end;
Result := Result + #$0D#$0A;
N := 5;
Z := AV02R(A,N);
Result := Result + Format('%s',[' Z=']);
Result := Result + Format('%20.16f',[Z]);
UtRes('tAv02r',Result);  { вывод результатов в файл tAv02r.res }
exit;
end;

end.

Результат:    Z = 4.

  2.
         .
         .
var
N,N1 :Integer;
Z      :Real;
const
A :Array [0..8] of Real = ( 1.0,1.0,1.0,2.0,2.0,2.0,3.0,3.0,3.0 );
begin
         .
         .
 N := 3;
 N1 := N*N;
 Z := AV02R (A, N1);
         .
         .
end;

Результат:    Z = 6.48