有效集 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 ...
随机推荐
- 终于完成了-- github.com/salomon1184/METP
- eclipse 中文件引用报错不能编译,但引用文件确实存在
方法1:clean工程 方法2: 检查.classpath文件中该引用文件是否被排除在外.
- 把AspDotNetCoreMvc程序运行在Docker上-part4:实现负载均衡
在上一part<把AspDotNetCoreMvc程序运行在Docker上-part3:使用独立的存储容器>,我们利用MySql容器和Volume实现了真正意义上的数据存储.整个结构非常简 ...
- FineUI分组显示弹框最新的在最上边
function TOBTCorrFun(obj){ var msgContent = JSON.parse(obj.dataJson); var tJson = JSON.stringify(obj ...
- 数据库导出Excel(转载)
来源:https://jingyan.baidu.com/article/3065b3b68f2ab7becef8a449.html SQLServer2005或者SQLServer2008.SQLS ...
- Python逐行读取文件内容
更详细的文件按行读取操作可以参考:http://www.cnblogs.com/xuxn/archive/2011/07/27/read-a-file-with-python.html 一行一行得从文 ...
- Bash:常用命令工具-tr命令
tr命令可以用来做简单的字符替换与删除,常用的有-d, -s选项.它的替换与删除是按单个字符来的 假设有以下文本: Read from the file words.txt and output th ...
- axios上传图片(及vue上传图片到七牛))
浏览器上传图片到服务端,我用过两种方法: 1.本地图片转换成base64,然后通过普通的post请求发送到服务端. 操作简单,适合小图,以及如果想兼容低版本的ie没办法用此方法 2.通过form表单提 ...
- Django基础四之模板系统
一 语法 模板渲染的官方文档 关于模板渲染你只需要记两种特殊符号(语法): {{ }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 二 变量 在Django的模板语言中按此语法使 ...
- 【java错误】System.out.println()出错
今天想测试java的System的类,没想到居然出错了.在同一个包下的java文件System全错,而其他包中的System没错.上网查了下资料,原来我是重定义了System类,覆盖了原来的Syste ...