当前位置:   article > 正文

Gram-Schmidt正交化及其修正方法的matlab实现_matlab实现修正格拉姆-施密特正交化

matlab实现修正格拉姆-施密特正交化

1. 标准Gram-Schmidt正交化

function [v]=GS1(A)

v(:,1)=A(:,1)/norm(A(:,1));%归一化

[Ahang,Alie]=size(A); %矩阵的行和列

for k=2:Alie %求解第j列正交向量

    res(:,1)=A(:,k);

    for i=1:k-1%减去待求向量在以求向量上的投影

        res=res-v(:,i)'*res*v(:,i);

    end

    v(:,k)=res/norm(res);%归一化

end

2. 修正Gram-Schmidt正交化

function [v]=GS2(A)

[Ahang,Alie]=size(A); %矩阵的行和列

v(:,1)=A(:,1)/norm(A(:,1));

for k=2:Alie

    for i=k:Alie

        A(:,i)=A(:,i)-A(:,i)'*v(:,k-1)*v(:,k-1);%对剩余向量进行修正

    end

    v(:,k)=A(:,k)/norm(A(:,k));%对本次得到的正交向量进行归一化

end

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/284673
推荐阅读
相关标签
  

闽ICP备14008679号