现在时间是:
当前位置:首 页 >> 矩阵计算>> 教学区>> 文章列表

130213010纪欣烨矩阵计算作业九

作者:130213010   发布时间:2015-06-09 17:47:45   浏览次数:98

3、

function [v,b]=house(x)
n=length(x);
a=norm(x,inf);
x=x/a;
c=x(2:n)'*x(2:n);
v=zeros(n,1);
v(1)=1;
v(2:n)=x(2:n);
if c<1e-14
    b=0;
else
    d=sqrt(x(1)*x(1)+c);
    if x(1)<=1e-14
        v(1)=x(1)-d;
    else
        v(1)=-c/(x(1)+d);
    end
    b=2*v(1)*v(1)/(c+v(1)*v(1));
    v=v/v(1);
end

 

x=[1;0;4;6;3;4];
[v,b]=house(x)
n=length(x);
I=eye(n)
H=I-b*v*v'
y=H*x

计算结果:
        v =

    1.0000
         0
   -0.5107
   -0.7661
   -0.3831
   -0.5107


b =

    0.8868


I =

     1     0     0     0     0     0
     0     1     0     0     0     0
     0     0     1     0     0     0
     0     0     0     1     0     0
     0     0     0     0     1     0
     0     0     0     0     0     1


H =

    0.1132         0    0.4529    0.6794    0.3397    0.4529
         0    1.0000         0         0         0         0
    0.4529         0    0.7687   -0.3470   -0.1735   -0.2313
    0.6794         0   -0.3470    0.4795   -0.2602   -0.3470
    0.3397         0   -0.1735   -0.2602    0.8699   -0.1735
    0.4529         0   -0.2313   -0.3470   -0.1735    0.7687


y =

    8.8318
         0
    0.0000
    0.0000
         0
    0.0000

6、function [c,s]=gives(a,b)
if b=0
    c=1;
    s=0;
else
    if abs(b)>abs(b)
        d=a/b;
        s=1/sqrt(1+d*d);
        c=s*d;
    else
        d=b/a;
        c=1/sqrt(1+d*d);
        s=c*d;
    end
end

例3.3.1

function [Q,R]=qr(A)
n=size(A,1);
R=A;
Q=eye(n);
for j=1:n
   if j<m
       [v,b]=house(A(j:m,j));
       A(j:m,j:n)=(I(m-j+1)-b*v*v')*A(j:m,j:n);
       d(j)=b;
       A(j+1:m,j)=v(2:m-j+1);
   end
end
 

 

U=[1/sqrt(3) 1/sqrt(2);-1/sqrt(3) 0;1/sqrt(3) -1/sqrt(2)];
V=[sqrt(3)/2 1/2;-1/2 sqrt(3)/2];
for k=[10^5,10^7,10^9]
    S=[sqrt(2)*k,0;0,sqrt(2)];
    A=U*S*V';
[Q,R]=qr(A)
r=norm(A*x-b,2)

 







上一篇:没有了    下一篇:没有了

Copyright ©2018    计算数学达人 All Right Reserved.

技术支持:自助建站 | 领地网站建设 |短信接口 版权所有 © 2005-2018 lingw.net.粤ICP备16125321号 -5