function r=findgamma_L_curve(M1,E0)

% make H
[nr,nc]=size(M1);
k0=zeros(1,nc);
k1b=[-eye(nc-2),zeros(nc-2,2)];
k1t=[zeros(nc-2,2),-eye(nc-2)];
k2=[zeros(nc-2,1),2*eye(nc-2),zeros(nc-2,1)];
k=[k0;k2+k1b+k1t;k0];
H=k'*k;
%Make H
%_____________________________phillipse
points=20;
g=wlogspace(10^-12, 10^-1, points);
for i=1:points
gam=g(i);
wp=phillipse(M1,E0,gam);
xx(i)=norm(M1*wp-E0);
yy(i)=norm(k*wp);
end
xx=xx*1000;
k_L=(yy(2:points)-yy(1:points-1))./(xx(2:points)-xx(1:points-1));
k_L_1=abs(k_L+1);
k_index=find(k_L_1==min(k_L_1));

r=0.5*(g(k_index+1)+g(k_index));


这是用L曲线法求平滑因子r的matlab程序,是我好几界前的师兄的,我在使用的时候老是出错,其中有个wlogspace函数,好像不是matlab自带的,又没有定义,哪位高人指导一下?我刚学matlab没多久,很多地方都不懂,请多多包含。