1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
program eiggs3te;
uses
typ,
iom,
omv,
eig;
const
m1 = -10;
m2 = 10;
m3 = -4;
m4 = 15;
n1 = -5;
n2 = 10;
n3 = -3;
n4 = 10;
var
i, j, ex, nex, i1, j1, i2, j2, n, term: ArbInt;
a: array[m1..m2, n1..n2] of ArbFloat;
x, e: array[m3..m4, n3..n4] of ArbFloat;
lam: array[m1..m2] of ArbFloat;
begin
Write(' program results eiggs3te');
case sizeof(ArbFloat) of
4: writeln('(single)');
6: writeln('(real)');
8: writeln('(double)');
end;
Read(nex);
writeln;
writeln('number of examples', nex: 2);
writeln;
for ex := 1 to nex do
begin
writeln('example number', ex: 2);
writeln;
Read(i1, j1, i2, j2, n);
for i := 1 to n do
for j := 1 to i do
Read(a[i1 + i - 1, j1 + j - 1]);
eiggs3(a[i1, j1], n, n2 - n1 + 1, lam[i1], x[i2, j2], n4 - n3 + 1, term);
for i := 1 to n do
for j := 1 to i - 1 do
a[i1 + j - 1, j1 + i - 1] := a[i1 + i - 1, j1 + j - 1];
writeln;
writeln('A=');
iomwrm(output, a[i1, j1], n, n, n2 - n1 + 1, numdig);
writeln;
writeln('term=', term: 2);
if term = 1 then
begin
writeln;
writeln('lambda=');
iomwrv(output, lam[i1], n, numdig);
writeln;
writeln('X=');
iomwrm(output, x[i2, j2], n, n, n4 - n3 + 1, numdig);
writeln;
writeln('AX-lambda.X = ');
omvmmm(a[i1, j1], n, n, n2 - n1 + 1, x[i2, j2], n, n4 - n3 + 1,
e[i2, j2], n4 - n3 + 1);
for j := 1 to n do
for i := 1 to n do
e[i + i2 - 1, j + j2 - 1] := e[i + i2 - 1, j + j2 - 1] - lam[i1 + j - 1] * x[i + i2 - 1, j + j2 - 1];
iomwrm(output, e[i2, j2], n, n, n4 - n3 + 1, numdig);
end;
writeln('-------------------------------------------------------');
end;
Close(input);
Close(output);
end.
|