function [ x ] = QRlinearequations( A,b )
%QR分解,线性方程组
[m,n]=size(A);
if m<n
x='false input';
return;
end
if m==n
A=[A;zeros(1,n)];
b=[b;0];
m=m+1;
end
[ A,d ] = QRdecom( A );
for k=1:n
vk=[1;A(k+1:m,k)];
Hk=eye(m-k+1)-d(k)*vk*vk';
Hk=[eye(k-1),zeros(k-1,m-k+1);zeros(m-k+1,k-1),Hk];
b=Hk'*b;
end
if norm(b(n+1:m),'inf')>1e-5
x='error';%no answer to the equations%
else
x=feval('uptri',triu(A,0),b(1:n));
end