⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lp.asv

📁 一个我自己编写的求解线性支持向量机的matlab代码
💻 ASV
字号:
function lp(C,p1)
varepsilon=0.1;
 l=50;
 x=linspace(-10,10,l);
 xi=randn(1,l);
 xi3=0.1.*xi;
 y3=sin(x+exp(-20.))./(x+exp(-20.))+xi3;
 p1=2;
 C=1000;
Q=rbfker(x',p1,0);

%线性规划开始
% yueshu 1
E=-1.*eye(l);
for i=1:l
    B1(i,:)=[Q(:,i);-1.*Q(:,i);E(:,i);1;-1]';
end 
%yueshu 2
for i=1:l
    B2(i,:)=[-1.*Q(:,i);Q(:,i);E(:,i);-1;1]';
end 
EE=eye(2.*l);
b=[y3';-1.*y3']+varepsilon;
AA=[B1;B2];
for i=1:(2.*l)
    if b(i)<0 
        EE(i,i)=-1;b(i)=abs(b(i));
        AA(i,:)=-1.*AA(i,:);
    end 
end 
A=[AA';EE']';
f=[ones(2.*l,1);C.*ones(l,1);0;0;zeros(2.*l,1)];
lb=zeros(5*l+2,1);
[alpha,fval]=linprog(f,[],[],A,b,lb);
fprintf('fval =%f',fval);
threshold=alpha(3*l+1)-alpha(3*l+2);
xprime=linspace(-10,10,l);
for i=1:l
    ff(i)=0;
    for j=1:l
        ff(i)=ff(i)+(alpha(j)-alpha(j+l)).*exp(-1.*(dot(x(j)-xprime(i),x(j)-xprime(i)))./(p1.^2));
    end 
    ff(i)=ff(i)+threshold;
end 
y=sin(xprime+exp(-20.))./(xprime+exp(-20.));
%线性规划结束

%二次规划开始

%二次规划结束

%基于线性规划数值的画图、以及消耗的时间、支持向量德的个数
plot(x,y3,'.');
hold on;
plot(xprime,y,'r')
plot(xprime,ff,'g')
plot(xprime,ff+varepsilon,'b')
plot(xprime,ff-varepsilon,'b')
t=cputime;
fprintf('t =%f',t)
%基于线性规划画图的结束

%基于二次规划数值的作图





%基于二次规划作图的结束
hold on;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -