Je cherche à écrire un programme matlab qui détermine les paramètres d'une machine par les différentes méthodes de moindre carrés.
Ca marche avec les moindres carrés simples.
Arrivé à la méthode des moindres carrés récursifs; quelque soit le programme que j'écrit ça me rend que la matrice P est singulière donc non inversible.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 teta = [] ; %Calcul de Teta1 phi1=PHI(1,:)'; %PHI est la matrice d'information P=inv(phi1*phi1'); teta(:,1)=P*phi1*i(1); %Calcul de Teta(k+1) for k=2:N P=P-[P*PHI(k,:)'*PHI(k,:)*]/[1+PHI(k,:)*P*PHI(k,:)']; teta(:,k)=teta(:,k-1)+P*PHI(k,:)'*[i(k)-PHI(k,:)*teta(:,k-1)]; end plot(t,teta),grid
Partager