Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
46
Task/Cholesky-decomposition/XPL0/cholesky-decomposition.xpl0
Normal file
46
Task/Cholesky-decomposition/XPL0/cholesky-decomposition.xpl0
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
real L(4*4);
|
||||
|
||||
func real Cholesky(A, N);
|
||||
real A; int N;
|
||||
real S;
|
||||
int I, J, K;
|
||||
[for I:= 0 to N*N-1 do L(I):= 0.;
|
||||
for I:= 0 to N-1 do
|
||||
for J:= 0 to I do
|
||||
[S:= 0.;
|
||||
for K:= 0 to J-1 do
|
||||
S:= S + L(I*N+K) * L(J*N+K);
|
||||
L(I*N+J):= if I = J then sqrt(A(I*N+I) - S)
|
||||
else (1.0 / L(J*N+J) * (A(I*N+J) - S));
|
||||
];
|
||||
return L;
|
||||
];
|
||||
|
||||
proc ShowMatrix(A, N);
|
||||
real A; int N;
|
||||
int I, J;
|
||||
[for I:= 0 to N-1 do
|
||||
[for J:= 0 to N-1 do
|
||||
RlOut(0, A(I*N+J));
|
||||
CrLf(0);
|
||||
];
|
||||
];
|
||||
|
||||
int N;
|
||||
real M1, C1, M2, C2;
|
||||
[N:= 3;
|
||||
M1:= [25., 15., -5.,
|
||||
15., 18., 0.,
|
||||
-5., 0., 11.];
|
||||
C1:= Cholesky(M1, N);
|
||||
ShowMatrix(C1, N);
|
||||
CrLf(0);
|
||||
|
||||
N:= 4;
|
||||
M2:= [18., 22., 54., 42.,
|
||||
22., 70., 86., 62.,
|
||||
54., 86., 174., 134.,
|
||||
42., 62., 134., 106.];
|
||||
C2:= Cholesky(M2, N);
|
||||
ShowMatrix(C2, N);
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue