Question: cholesky decomposition

 

hi , can anyone tell me what's wrong witht his! please!!

  thank you in advance!




> choleski:=proc(S::array,n::integer)
> local L,i,j,k,t:
> L:=matrix(n,n,0); # matrice nulle d’ordre n
> for j to n do # calcul de L, colonne par colonne
> t:=S[j,j]; # j-`eme coefficient diagonal de S
> for k to j-1 do # calcule le j-`eme coefficient diagonal de L
> t:=t-L[j,k]^2;
> od;
> if t<=0 then # erreur si S n’est pas d´efinie positive
> ERROR("matrice non def+")
> fi;
> t:=sqrt(t); L[j,j]:=t; # place le j-`eme coefficient diagonal de L
> for i from j+1 to n do # coefficients sous-diagonaux, colonne j
> t:=S[i,j];
> for k to j-1 do
> t:=t-L[i,k]*L[j,k];
> od;
> L[i,j]:=t/L[j,j]; # place le coefficient d’indice (i, j) dans L
> od;
> od;
> RETURN(eval(L)); # renvoie la matrice L
> end:
S = matrix([[1, -2, 4], [-2, 13, -11], [4, -11, 21]]);
L := choleski(S, 3):

                                   S = ()
Error, invalid input: choleski expects its 1st argument, S, to be of type array, but received S

Please Wait...