|
Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://num-anal.srcc.msu.su/lib_na/cat/am_htm_p/amz3r_p.htm
Дата изменения: Fri Jul 8 13:32:59 2011 Дата индексирования: Mon Oct 1 23:10:20 2012 Кодировка: Windows-1251 |
|
Текст подпрограммы и версий amz3r_p.zip , amz3e_p.zip , amz3c_p.zip |
Тексты тестовых примеров tamz3r_p.zip , tamz3e_p.zip , tamz3c_p.zip |
Преобразование ленточной матрицы, заданной в компактной форме, в полную форму представления.
Ленточная матрица А порядка N с NUС верхними и NLС нижними ко - диагоналями, заданная в компактной форме, преобразуется в полную форму представления. Таким образом, AMZ3R выполняет действие, обратное по отношению к подпрограмме AMZ2R.
procedure AMZ3R(var A :Array of Real; N :Integer; NUC :Integer;
NLC :Integer; var B :Array of Real);
Параметры
| A - | вещественный двумерный массив размера N на (NUС + 1 + NLС), в котором задается ленточная матрица в компактной форме представления; |
| N - | порядок матрицы (тип: целый); |
| NUC - | число верхних ко - диагоналей (тип: целый); |
| NLC - | заданное число нижних ко - диагоналей (тип: целый); |
| B - | двумерный массив размера N на N, в котором запоминается исходная ленточная матрица в полной форме. |
Версии
| AMZ3E - | преобразование ленточной матрицы, заданной в компактной форме с расширенной (Extended) точностью, в полную форму представления. |
| AMZ3C - | преобразование комплексной ленточной матрицы, заданной в компактной форме, в полную форму представления. |
Вызываемые подпрограммы: нет.
Замечания по использованию
|
Массив B может занимать то же место в памяти, что и массив А (это означает, что первый элемент массива B может совпадать с первым элементом массива А). В подпрограмме АМZ3E параметры А и B должны иметь тип Extended. В подпрограмме АМZ3С параметры А и B должны иметь тип Complex. |
Unit tamz3r_p;
interface
uses
SysUtils, Math, { Delphi }
LStruct, Lfunc, UtRes_p, AMZ3R_p;
function tamz3r: String;
implementation
function tamz3r: String;
var
N,NUC,NLC,_i :Integer;
B :Array [0..24] of Real;
const
A :Array [0..19] of Real = ( 0.0,0.0,3.1,4.2,5.3,0.0,2.1,3.2,4.3,5.4,1.1,2.2,
3.3,4.4,5.5,1.2,2.3,3.4,4.5,0.0 );
begin
Result := '';
N := 5;
NUC := 1;
NLC := 2;
AMZ3R(A,N,NUC,NLC,B);
Result := Result + #$0D#$0A;
for _i:=0 to 24 do
begin
Result := Result + Format('%20.16f ',[B[_i]]);
if ( ((_i+1) mod 3)=0 )
then Result := Result + #$0D#$0A;
end;
Result := Result + #$0D#$0A;
UtRes('tamz3r',Result); { вывод результатов в файл tamz3r.res }
exit;
end;
end.
Результаты:
B = ( 1.1, 2.1, 3.1, 0., 0., 1.2, 2.2, 3.2, 4.2, 0., 0., 2.3, 3.3, 4.3,
5.3, 0., 0., 3.4, 4.4, 5.4, 0., 0., 0., 4.5, 5.5 )