Data update
This commit is contained in:
parent
81fd053722
commit
52a6ef48dd
10248 changed files with 63654 additions and 6775 deletions
|
|
@ -0,0 +1,51 @@
|
|||
function Cholesky(a: array of real): array of real;
|
||||
begin
|
||||
var n := Round(Sqrt(a.Length));
|
||||
Result := new real[n * n];
|
||||
for var i := 0 to n - 1 do
|
||||
begin
|
||||
for var j := 0 to i do
|
||||
begin
|
||||
var s := 0.0;
|
||||
for var k := 0 to j - 1 do
|
||||
s += Result[i * n + k] * Result[j * n + k];
|
||||
if i = j then
|
||||
Result[i * n + j] := Sqrt(a[i * n + i] - s)
|
||||
else Result[i * n + j] := 1 / Result[j * n + j] * (a[i * n + j] - s);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure ShowMatrix(a: array of real);
|
||||
begin
|
||||
var n := Round(Sqrt(a.Length));
|
||||
for var i := 0 to n - 1 do
|
||||
begin
|
||||
for var j := 0 to n - 1 do
|
||||
write(a[i * n + j]:10:5);
|
||||
PrintLn('');
|
||||
end;
|
||||
end;
|
||||
|
||||
begin
|
||||
var m1 := new real[9];
|
||||
m1 := |25.0, 15.0, -5.0,
|
||||
15.0, 18.0, 0.0,
|
||||
-5.0, 0.0, 11.0 |;
|
||||
var c1 := Cholesky(m1);
|
||||
ShowMatrix(m1);
|
||||
println('=>');
|
||||
ShowMatrix(c1);
|
||||
|
||||
PrintLn('');
|
||||
|
||||
var m2: array of real :=
|
||||
|18.0, 22.0, 54.0, 42.0,
|
||||
22.0, 70.0, 86.0, 62.0,
|
||||
54.0, 86.0, 174.0, 134.0,
|
||||
42.0, 62.0, 134.0, 106.0 |;
|
||||
var c2 := Cholesky(m2);
|
||||
Showmatrix(m2);
|
||||
println('=>');
|
||||
ShowMatrix(c2);
|
||||
end.
|
||||
Loading…
Add table
Add a link
Reference in a new issue