clear all;
close all;

%%%1DDataDomain
x=[2 3 1 2 2.5];
y=[2 3 6 6.5 9.5];
lamda1=0.1;
lamda2=0.2;

A1=y*x*inv(x*x);
S=sign(A1);

A=(y*x-(lamda2/2)*S)*inv(x*x+lamda1);

xt=[0 4];
yt=A*xt;

figure;plot(x,y,.);axis([0 4 0 12]);grid on;
hold on;line(xt,yt);xlabel(Feature 1);ylabel(Feature 2);


%%% 2D Data Domain
x1=[2 3 1 2 2.5];
x2=[2 3 2.1 2 2.5];
yy=[2 3 6 6.5 9.5];

xx=[x1; x2];

AA1=yy*xx*inv(xx*xx);
SS=sign(AA1);

nn=length(xx*xx);
AA=(yy*xx-(lamda2/2)*SS)*inv(xx*xx+lamda1*eye(nn));

xx1=[0 0 4 4];
xx2=[0 4 0 4];
xxx=[xx1; xx2];

yy1=AA*xxx;
yy2=reshape(yy1,2,2);
[mg1,mg2]=meshgrid(0:4:4);

figure;plot3(x1,x2,yy,r.);grid on;axis([0 4 0 4 0 12]);
hold on;surf(mg1,mg2,yy2);view([-120 47]);
xlabel(Feature 1);ylabel(Feature 2);zlabel(Responses);

figure;plot3(x1,x2,yy,r.);grid on;axis([0 4 0 4 0 12]);
hold on;surf(mg1,mg2,yy2);view([-120 50]);
xlabel(Feature 1);ylabel(Feature 2);zlabel(Responses);