利用Guass算法求解二维的SVP
function [v1,v2 ] = Gauss_svp( v1 , v2 )
%作者:192152王旭
%功能:利用Guass算法求解2维的SVP向量
%输入要求|v2|>|v1|
%v1=[-56 43]
%v2=[95 -73]
%结果为[-1,2] [1,1]
%--------------------------------------------------------------------------
%测试需要
%v1=[-56 43]
%v2=[95 -73]
%[v1,v2]=Gauss_svp(v1,v2)
%--------------------------------------------------------------------------
while 1
% length_v1 = ( v1(1) * v1(1) + v1(2) * v1(2) ) ^ 0.5
% length_v2 = ( v2(1) * v2(1) + v2(2) * v2(2) ) ^ 0.5
m = ( v1(1) * v2(1) + v1(2) * v2(2) ) / ( v1(1) * v1(1) + v1(2) * v1(2) );
m = round( m );
v2 = v2 - m * v1;
if ( v2(1) * v2(1) + v2(2) * v2(2) ) >= ( v1(1) * v1(1) + v1(2) * v1(2) )
break
else
tmp = v1;
v1 = v2;
v2 = tmp;
end
end
end