Zdravím mám vytvořit kód na LU a QR rozklad, ale chybí mi ošetření, když je matice nulová. A nevím, jak to mám napsat a jak určit hodnost té matice. Tak zhruba jak by to mohlo vypadat, jestli by mi někdo nenapsal. Díky
QR_rozklad
function [Q,R] = QR_rozklad(A)
n=size(A,1);
Q=zeros(n,n); R=zeros(n,n);
for j=1:n
v=A(:,j);
for i=1:j-1
R(i,j)=Q(:,i)'*A(:,j);
v=v-R(i,j)*Q(:,i);
end
R(j,j)=norm(v);
Q(:,j)=v/R(j,j);
endLU_rozklad
function [L,U] = LU_rozklad(A)
n=size(A,1);
for k=1:n-1
A(k+1:n,k)=A(k+1:n,k)/A(k,k);
for j=k+1:n
A(k+1:n,j)=A(k+1:n,j)- A(k+1:n,k)*A(k,j);
end
end
L=tril(A,-1)+eye(n);
U=triu(A);Offline
ahoj ↑ pazdy152:,
hodnost matice ti vyplivne funkce rank.
Offline

pomohl by mi někdo prosím s úkolem? Řešte matici a) Choleského rozkladem, b) LR rozkladem, c) QR rozkladem:
2 1 0 = 3
1 4 1 = 4
0 1 2 = 2
QR rozklad mi dělá největší problém, děkuju moc :)
Offline
Tady je kód na QR rozklad ;)
function [Q,R]=QR_rozklad(A)
% QR rozklad (Gramuv - Schmidtuv proces)
n=size(A,1);
Q=zeros(n,n); R=zeros(n,n);
for j=1:n
v=A(:,j);
for i=1:j-1
R(i,j)=Q(:,i)'*A(:,j);
v=v-R(i,j)*Q(:,i);
end
R(j,j)=norm(v);
if abs(R(j,j))>1e-5;
Q(:,j)=v/R(j,j);
else
Q(j,j)=1;
end
end
endOffline