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
| program cholesky;
const
n=3;
m=3;
var
a:array [1..n,1..m] of real;
r:array [1..n,1..m] of real;
i,j,k:integer;
s1:real;
s2:real;
begin
s1:=0;
s2:=0;
writeln('entrez votre matrice A');
for i:=1 to n do
for j:=1 to m do
readln(a[i,j]);
repeat
begin
for k:=1 to i-1 do
s1:=s1+sqrt(r[i,i]);
r[i,i]:=sqrt(a[i,i]-s1);
if r[i,i]=0 then
writeln('matrice non reguliere')
while (j>1) and (j<=n) do
for k:=1 to i-1 do
s2:=s2+(r[i,k]*r[j,k]);
r[i,i]:=(a[i,j]-s2)/r[i,i];
end;
until i=n
end. |
Partager