Implémentation de la methode de Cholesky en MATLAB
serhanus
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
serhanus Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
serhanus Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Salut à tous,
Tout d'abord je rappel que la méthode de Cholesky consiste à résoudre un système linéaire classique Ax=b, On décomposant la matrice A en A=B*Bt (avec B une matrice triangulaire inférieur, et Bt sa transposée).
Il existe une fonction dans MATLAB qui s'appelle "chol" qui retourne Bt, j'ai écrit un script qui résous le système on utilisant cette fonction.
Mais le problème et que je suis demandé d'implémenter une fonction qui fait ce que "chol" fait !
Tout d'abord je rappel que la méthode de Cholesky consiste à résoudre un système linéaire classique Ax=b, On décomposant la matrice A en A=B*Bt (avec B une matrice triangulaire inférieur, et Bt sa transposée).
Il existe une fonction dans MATLAB qui s'appelle "chol" qui retourne Bt, j'ai écrit un script qui résous le système on utilisant cette fonction.
Mais le problème et que je suis demandé d'implémenter une fonction qui fait ce que "chol" fait !
A voir également:
- Algorithme de cholesky
- Logiciel algorithme euromillion - Télécharger - Loisirs créatifs
- Logiciel algorithme gratuit - Télécharger - Édition & Programmation
- Algorithme euromillion excel gratuit - Forum Algorithmes / Méthodes
- Algorithme ajout rapide snapchat - Forum Snapchat
- Ajout rapide snap - Forum Snapchat
mais je te demande pas de résoudre le problème , le problème c'est que c'est première publication , et la à été poster avant de compléter ...
ce que je veus c'est just une indication
voilà ma tentation:
function x=cholesky2(A,b)
%*****************
[n nn]=size(A);
%*****************
for i=1:n
for j=1:n
B(i,j)=0;
end
end
%*****************
for j=1:n-1
som1=0;
for k=1:n
som1=som1+B(j,k)^2;
end
B(j,j)=sqrt(A(j,j)-som1);
n=j+1;
som2=0;
for k=1:j-1
som2=som2+B(j,k)*B(j+1,k);
end
B(j+1,j)=A(j+1,j)-som2;
end
%B(j+1,j)=A(j+1,j)-som2;
B
%*****************
Bt=B';
%******************
for k=1:n
B(k,n+1)=b(k);
end
%******************
y(1)=B(1,n+1)/B(1,1);
for i=1:n;
c=0;
for j=1:i-1;
c=c+B(i,j)*y(j);
end
y(i)=(B(i,n+1)-c)/B(i,i);
end
%******************
for k=1:n
Bt(k,n+1)=y(k);
end
%******************
x(n)=Bt(n,n+1)/Bt(n,n);
for i=n-1:-1:1;
c=0;
for j=i+1:n;
c=c+Bt(i,j)*x(j);
end
x(i)=(Bt(i,n+1)-c)/Bt(i,i);
end
x=x';
%******************
B
Bt