Текст подпрограммы и версий
av06r_p.zip  av06e_p.zip  av06c_p.zip 
Тексты тестовых примеров
tav06r_p.zip  tav06e_p.zip  tav06c_p.zip 

Функция:  AV06R (модуль AV06R_p)

Назначение

Вычисление выражения (A + (U,V)) / B, где A и B - заданные числа, U и V - заданные векторы.

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

Для заданных векторов U и V длины N вычисляется выражение (А + (U,V)) / В, где

                       N
       (U,V)  =  ∑  UK*VK
                     K=1 

- скаляpное пpоизведение вектоpов U и V, а  А и В - заданные числа.

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

function AV06R(var U :Array of Real; var V :Array of Real; A :Real;
                B :Real; N :Integer): Real;

Параметры

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

Версии

AV06E - вычисление выражения (А + (U,V)) / В с расширенной (Extended) точностью;
AV06C - вычисление выражения (А + (U,V)) / В для комплексных U, V, А и В .

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

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

  1. 

В функции АV06E параметры U, V, А, В имеют тип Extended.

  2. 

В функции АV06С параметры U, V, А, В имеют тип Complex.

  3.  В функции АV06С скалярное произведение вычисляется по формуле
                       N
       (U,V)  =  ∑  UK*VK .
                     K=1 

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

Unit tAv06r_p;
interface
uses
SysUtils, Math, { Delphi }
LStruct, Lfunc, UtRes_p, AV06R_p;

function tAv06r: String;

implementation

function tAv06r: String;
var
N :Integer;
A,B,S :Real;
const
U1 :Array [0..3] of Real = ( 1.0,2.0,3.0,4.0 );
U2 :Array [0..3] of Real = ( 1.0,0.0,1.0,0.0 );
begin
ReSULt := '';
N := 4;
A := 3.0;
B := 2.0;
S := AV06R(U1,U2,A,B,N);
Result := Result + Format(' %20.16f',[S]);
UtRes('tAv06r',Result);  { вывод результатов в файл tAv06r.res }
exit;
end;

end.

Результат:      S = 3.5