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
|
PROCEDURE mtt_solve_lud.p(VAR x : StateVector;
A : StateMatrix;
B : StateVector;
n : integer);
{
Linear equation solution via LU factorisation}
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% % Version control history
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% % $Id$
% % $Log$
% % Revision 1.1 1998/08/17 12:41:37 peterg
% % Initial revision
% %
% % Revision 1.2 1998/08/14 12:09:13 peterg
% % A passed by value - its destroyed by SVDcm
% %
% % Revision 1.1 1998/08/13 08:51:57 peterg
% % Initial revision
% %
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
}
VAR
i : integer;
d : real;
(*$I ludcmp.p *)
(*$I lubksb.p *)
BEGIN{mtt_solve}
(* decompose matrix A using LU decomposition *)
ludcmp(A,n,Index,d);
(* backsubstitute for B *)
lubksb(A,n,Index,B);
(* x now lives in B *)
FOR i := 1 TO n DO
x[i] := B[i];
END{mtt_solve};
|
|
|
>
>
>
|
|
>
|
|
|
|
|
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
|
PROCEDURE mtt_solve_lud(VAR x : StateVector;
A : StateMatrix;
B : StateVector;
n : integer);
{
Linear equation solution via LU factorisation
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% % Version control history
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% % $Id$
% % $Log$
% % Revision 1.1 1998/08/17 12:52:16 peterg
% % Initial revision
% %
% % Revision 1.1 1998/08/17 12:41:37 peterg
% % Initial revision
% %
% % Revision 1.2 1998/08/14 12:09:13 peterg
% % A passed by value - its destroyed by SVDcm
% %
% % Revision 1.1 1998/08/13 08:51:57 peterg
% % Initial revision
% %
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
}
VAR
i : integer;
d : real;
Index : StateVector;
(*$I mtt_ludcmp.p *)
(*$I mtt_lubksb.p *)
BEGIN{mtt_solve}
(* decompose matrix A using LU decomposition *)
mtt_ludcmp(A,n,Index,d);
(* backsubstitute for B *)
mtt_lubksb(A,n,Index,B);
(* x now lives in B *)
FOR i := 1 TO n DO
x[i] := B[i];
END{mtt_solve};
|