有效集 matlab代码
%有效集
function activeset
H=[2 -1; -1 4];
c=[-1 -10]';
Ae=[ ]; be=[ ];
Ai=[-3 -2; 1 0; 0 1];
bi=[-6 0 0]';
x0=[0 0]';
[x,lambda,exitflag,output]=qpact(H,c,Ae,be,Ai,bi,x0) function [x,lamk,exitflag,output]=qpact(H,c,Ae,be,Ai,bi,x0) % 初始化
epsilon=1.0e-9; err=1.0e-6;
k=0; x=x0;
n=length(x); kmax=1.0e3;
ne=length(be); ni=length(bi);
lamk=zeros(ne+ni,1);
index=ones(ni,1);
for i=1:ni
if (Ai(i,:)*x>bi(i)+epsilon)
index(i)=0;
end
end
while (k<=kmax)
%求解子问题
Aee=[]; if(ne>0), Aee=Ae; end
for j=1:ni
if(index(j)>0), Aee=[Aee; Ai(j,:)]; end
end
gk=H*x+c;
[m1,n1] = size(Aee);
[dk,lamk]=qsubp(H,gk,Aee,zeros(m1,1));
if(norm(dk)<=err)
y=0.0;
if(length(lamk)>ne)
[y,jk]=min(lamk(ne+1:length(lamk))); end
if(y>=0)
exitflag=0;
else
exitflag=1;
for i=1:ni
if(index(i)&&(ne+sum(index(1:i)))==jk)
index(i)=0;
break;
end
end
end
k=k+1;
else
exitflag=1;
%求步长
alpha=1.0; tm=1.0;
for i=1:ni
if((index(i)==0)&&(Ai(i,:)*dk<0))
tm1=(bi(i)-Ai(i,:)*x)/(Ai(i,:)*dk);
if(tm1<tm)
tm=tm1; ti=i;
end
end
end
alpha=min(alpha,tm);
x=x+alpha*dk;
%修正有效集
if(tm<1), index(ti)=1;
end
end
if(exitflag==0), break; end
k=k+1;
end
output.fval=0.5*x'*H*x+c'*x;
output.iter=k; % 求解子问题
function [x,lambda]=qsubp(H,c,Ae,be)
ginvH=pinv(H);
[m,n]=size(Ae);
if(m>0)
rb=Ae*ginvH*c + be;
lambda=pinv(Ae*ginvH*Ae')*rb;
x=ginvH*(Ae'*lambda-c);
else
x=-ginvH*c;
lambda=0;
end
有效集 matlab代码的更多相关文章
- SVM实例及Matlab代码
******************************************************** ***数据集下载地址 :http://pan.baidu.com/s/1geb8CQf ...
- 数据分析处理之PCA OLSR PCR PLSR(NIPALS)及其Matlab代码实现
传统的OLS(普通最小二乘)方法无法解决样本数据的共线性(multicollinearity)问题,如果你的数据样本中每个特征变量具有共线性,那么使用基于PCA的PCR和PLSR方法对数据样本进行回归 ...
- 如何加速MATLAB代码运行
学习笔记 V1.0 2015/4/17 如何加速MATLAB代码运行 概述 本文源于LDPCC的MATLAB代码,即<CCSDS标准的LDPC编译码仿真>.由于代码的问题,在信息位长度很长 ...
- 多分类问题中,实现不同分类区域颜色填充的MATLAB代码(demo:Random Forest)
之前建立了一个SVM-based Ordinal regression模型,一种特殊的多分类模型,就想通过可视化的方式展示模型分类的效果,对各个分类区域用不同颜色表示.可是,也看了很多代码,但基本都是 ...
- 卷积相关公式的matlab代码
取半径=3 用matlab代码实现上式公式: length=3;for Ki = 1:length for Kj = 1:length for Kk = 1:length Ksigma(Ki,Kj,K ...
- JAVA调用matlab代码
做实验一直用的matlab代码,需要嵌入到java项目中,matlab代码拼拼凑凑不是很了解,投机取巧采用java调用matlab的方式解决. 1. matlab版本:matlabR2014a ...
- 调试和运行matlab代码(源程序)的技巧和教程
转载请标明出处:专注matlab代码下载的网站http://www.downma.com/ 本文主要给大家分享使用matlab编写代码,完成课程设计.毕业设计或者研究项目时,matlab调试程序的技巧 ...
- 直方图均衡化与Matlab代码实现
昨天说了,今天要好好的来解释说明一下直方图均衡化.并且通过不调用histeq函数来实现直方图的均衡化. 一.直方图均衡化概述 直方图均衡化(Histogram Equalization) 又称直方图平 ...
- 将labelme 生成的.json文件进行可视化的代码+label.png 对比度处理的matlab代码
labelme_to_dataset 指令的代码实现: show.py文件 #!E:\Anaconda3\python.exe import argparse import json import o ...
随机推荐
- Linux的用户(组),权限,文件精妙的三角关系,和强大的帮助系统
在linux中一切都是文件(文件夹和硬件外设是特殊的文件),如果有可能尽量使用文本文件.文本文件是人和机器能理解的文件,也成为人和机器进行 交流的最好途径.由于所有的配置文件都是文本,所以你只需要一个 ...
- 不会几个框架,都不好意思说搞过前端: Node.js & angular.js
Node.js 菜鸟教程 :http://www.runoob.com/nodejs/nodejs-install-setup.html angular.js 菜鸟教程 :http://www.r ...
- 【转】Js获取当前日期时间及其它操作
Js获取当前日期时间及其它操作 原文地址:http://www.cnblogs.com/carekee/articles/1678041.html var myDate = new Date();my ...
- PHP module 安装
Part1:不重新安装php,安装zlib模块--------20171229 先安装zlib源码包 指定到目录 一台服务器,编译PHP时未设置参数,导致缺少zlib扩展,无法执行解压缩,错误信息是: ...
- 前端开发实用工具-Bower的使用。
参看博客:[https://segmentfault.com/a/1190000002971135]
- Bash:常用命令工具-tr命令
tr命令可以用来做简单的字符替换与删除,常用的有-d, -s选项.它的替换与删除是按单个字符来的 假设有以下文本: Read from the file words.txt and output th ...
- centos 删除文件和目录
每次都记不住,发个文章记录一下.直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字-r 就是向下递归,不管有多少级目录,一并删除-f 就是直接强行删除,不作任何提示的意思 删除文件夹 ...
- shiro标签的使用
guest标签 用户没有身份验证时显示相应信息,即游客访问信息. user标签 用户已经身份验证/记住我登录后显示相应的信息. authenticated标签 用户已经身份验证通过, ...
- [WEB面试题] web前端面试题HTML+CSS第一弹,个人整理部分面试题汇总
以下内容仅供参考,网络整理而来 1.XHTML和HTML是什么有什么不同的区别 HTML是一种基本的WEB网页设计语言 XHTML可扩展超文本标记语言,是一种置标语言,表现方式与超文本标记语言(HTM ...
- Spark2.x详解
一.概述 Apache Spark 是一个快速的, 多用途的集群计算系统. 它提供了 Java, Scala, Python 和 R 的高级 API,以及一个支持通用的执行图计算的优化过的引擎. 它还 ...